<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" encoding="UTF-8" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:atom="http://www.w3.org/2005/Atom/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:fireside="http://fireside.fm/modules/rss/fireside">
  <channel>
    <fireside:hostname>web01.fireside.fm</fireside:hostname>
    <fireside:genDate>Tue, 14 Apr 2026 15:16:12 -0500</fireside:genDate>
    <generator>Fireside (https://fireside.fm)</generator>
    <title>BSD Now - Episodes Tagged with “Hammer2”</title>
    <link>https://www.bsdnow.tv/tags/hammer2</link>
    <pubDate>Thu, 07 Jan 2021 03:45:00 -0500</pubDate>
    <description>Created by three guys who love BSD, we cover the latest news and have an extensive series of tutorials, as well as interviews with various people from all areas of the BSD community. It also serves as a platform for support and questions. We love and advocate FreeBSD, OpenBSD, NetBSD, DragonFlyBSD and TrueOS. Our show aims to be helpful and informative for new users that want to learn about them, but still be entertaining for the people who are already pros.
The show airs on Wednesdays at 2:00PM (US Eastern time) and the edited version is usually up the following day. 
</description>
    <language>en-us</language>
    <itunes:type>episodic</itunes:type>
    <itunes:subtitle>A weekly podcast and the place to B...SD</itunes:subtitle>
    <itunes:author>JT Pennington</itunes:author>
    <itunes:summary>Created by three guys who love BSD, we cover the latest news and have an extensive series of tutorials, as well as interviews with various people from all areas of the BSD community. It also serves as a platform for support and questions. We love and advocate FreeBSD, OpenBSD, NetBSD, DragonFlyBSD and TrueOS. Our show aims to be helpful and informative for new users that want to learn about them, but still be entertaining for the people who are already pros.
The show airs on Wednesdays at 2:00PM (US Eastern time) and the edited version is usually up the following day. 
</itunes:summary>
    <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
    <itunes:explicit>no</itunes:explicit>
    <itunes:keywords>berkeley,freebsd,openbsd,netbsd,dragonflybsd,trueos,trident,hardenedbsd,tutorial,howto,guide,bsd,interview</itunes:keywords>
    <itunes:owner>
      <itunes:name>JT Pennington</itunes:name>
      <itunes:email>feedback@bsdnow.tv</itunes:email>
    </itunes:owner>
<itunes:category text="News">
  <itunes:category text="Tech News"/>
</itunes:category>
<itunes:category text="Education">
  <itunes:category text="How To"/>
</itunes:category>
<item>
  <title>384: In memoriam</title>
  <link>https://www.bsdnow.tv/384</link>
  <guid isPermaLink="false">d48d2da1-bf8e-4f78-bfa3-48eaf73fe14a</guid>
  <pubDate>Thu, 07 Jan 2021 03:45:00 -0500</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/d48d2da1-bf8e-4f78-bfa3-48eaf73fe14a.mp3" length="32114304" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Allen K. Briggs Memorial Scholarship, Toward an automated tracking of OpenBSD ports contributions, Trying OpenZFS 2 on FreeBSD 12.2-RELEASE, OpenBSD on TECLAST F7 Plus, Multi-volume support in HAMMER2, and more. </itunes:subtitle>
  <itunes:duration>35:00</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Allen K. Briggs Memorial Scholarship, Toward an automated tracking of OpenBSD ports contributions, Trying OpenZFS 2 on FreeBSD 12.2-RELEASE, OpenBSD on TECLAST F7 Plus, Multi-volume support in HAMMER2, and more. 
NOTES
This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/bsdnow)
Headlines
Allen K. Briggs Memorial Scholarship (http://blog.netbsd.org/tnf/entry/allen_k_briggs_memorial_scholarship)
Allen Briggs was one of the earliest members of the NetBSD community, pursuing his interest in macBSD, and moving to become a NetBSD developer when the two projects merged. Allen was known for his quiet and relaxed manner, and always brought a keen wisdom with him; allied with his acute technical expertise, he was one of the most valued members of the NetBSD community.
The Allen K. Briggs Memorial Scholarship is an endowment to provide scholarships in perpetuity for summer programs at the North Carolina School of Science &amp;amp; Math, which Allen considered to be a place that fundamentally shaped him as a person. We would love to invite Allen's friends and colleagues from the BSD community to donate to this cause so that we can provide more scholarships to students with financial need each year. We are approximately halfway to our goal of $50K with aspirations to exceed that target and fund additional scholarships.
Toward an automated tracking of OpenBSD ports contributions (https://dataswamp.org/~solene/2020-11-15-openbsd-ports-ci.html)
A first step for the CI service would be to create a database of diffs sent to ports. This would allow people to track what has been sent and not yet committed and what the state of the contribution is (build/don’t build, apply/don’t apply).
News Roundup
Trying OpenZFS 2 on FreeBSD 12.2-RELEASE (https://rubenerd.com/trying-openzfs-on-freebsd-12-release/?utm_source=bsdnow)
OpenZFS 2 is a huge achievement, and makes me bullish about the long term prospects for the world’s most trustworthy and nicest to use storage system. You can even use try it today on FreeBSD 12.2-RELEASE, though I recommend tracking -CURRENT for these sorts of features.
OpenBSD on TECLAST F7 Plus (https://www.tumfatig.net/20201215/openbsd-on-teclast-f7-plus/?utm_source=bsdnow)
I got myself a TECLAST F7 Plus laptop. It comes preinstalled with Windows 10 but I planned to use it as my daily driver. So I installed OpenBSD 6.8 on it.
Multi-volume support in HAMMER2 (https://www.dragonflydigest.com/2020/12/28/25287.html)
commit (http://lists.dragonflybsd.org/pipermail/commits/2020-December/770072.html)
&amp;gt; This commit adds initial multi-volumes support for HAMMER2. Maximum supported volumes is 64. The feature and implementation is similar to multi-volumes support in HAMMER1.
***
Beastie Bits
FreeBSD Last SVN Commit (https://svnweb.freebsd.org/base/head/README?view=markup&amp;amp;pathrev=368820)
FreeBSD First git Commit (https://cgit.freebsd.org/src/commit/?id=5ef5f51d2bef80b0ede9b10ad5b0e9440b60518c)
Introducing OpenZFS 2.0 Webinar - Jan 20th @ noon Eastern  / 17:00 UTC.  (https://klarasystems.com/learning/webinars/webinar-introducing-openzfs-2-0/?utm_source=bsdnow)
***
Tarsnap
This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
***
Feedback/Questions
jay - feedback for ian (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/384/feedback/jay%20-%20feedback%20for%20ian)
Iebluefire - concerns about freebsd (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/384/feedback/Iebluefire%20-%20concerns%20about%20freebsd)
mike - zfs cluster aware (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/384/feedback/mike%20-%20zfs%20cluster%20aware)
***
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)
***
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, operating system, shell, unix, os, berkeley, software, distribution, release, zfs, zpool, dataset, interview, Allen Briggs, scholarship, memorial, automated, tracking, ports, contributions, openzfs 2, teclast, f7 plus, multi-volume, hammer2, filesystem</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Allen K. Briggs Memorial Scholarship, Toward an automated tracking of OpenBSD ports contributions, Trying OpenZFS 2 on FreeBSD 12.2-RELEASE, OpenBSD on TECLAST F7 Plus, Multi-volume support in HAMMER2, and more. </p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a></p>

<h2>Headlines</h2>

<h3><a href="http://blog.netbsd.org/tnf/entry/allen_k_briggs_memorial_scholarship" rel="nofollow">Allen K. Briggs Memorial Scholarship</a></h3>

<blockquote>
<p>Allen Briggs was one of the earliest members of the NetBSD community, pursuing his interest in macBSD, and moving to become a NetBSD developer when the two projects merged. Allen was known for his quiet and relaxed manner, and always brought a keen wisdom with him; allied with his acute technical expertise, he was one of the most valued members of the NetBSD community.<br>
The Allen K. Briggs Memorial Scholarship is an endowment to provide scholarships in perpetuity for summer programs at the North Carolina School of Science &amp; Math, which Allen considered to be a place that fundamentally shaped him as a person. We would love to invite Allen&#39;s friends and colleagues from the BSD community to donate to this cause so that we can provide more scholarships to students with financial need each year. We are approximately halfway to our goal of $50K with aspirations to exceed that target and fund additional scholarships.</p>
</blockquote>

<hr>

<h3><a href="https://dataswamp.org/%7Esolene/2020-11-15-openbsd-ports-ci.html" rel="nofollow">Toward an automated tracking of OpenBSD ports contributions</a></h3>

<blockquote>
<p>A first step for the CI service would be to create a database of diffs sent to ports. This would allow people to track what has been sent and not yet committed and what the state of the contribution is (build/don’t build, apply/don’t apply).</p>

<hr>
</blockquote>

<h2>News Roundup</h2>

<h3><a href="https://rubenerd.com/trying-openzfs-on-freebsd-12-release/?utm_source=bsdnow" rel="nofollow">Trying OpenZFS 2 on FreeBSD 12.2-RELEASE</a></h3>

<blockquote>
<p>OpenZFS 2 is a huge achievement, and makes me bullish about the long term prospects for the world’s most trustworthy and nicest to use storage system. You can even use try it today on FreeBSD 12.2-RELEASE, though I recommend tracking -CURRENT for these sorts of features.</p>

<hr>
</blockquote>

<h3><a href="https://www.tumfatig.net/20201215/openbsd-on-teclast-f7-plus/?utm_source=bsdnow" rel="nofollow">OpenBSD on TECLAST F7 Plus</a></h3>

<blockquote>
<p>I got myself a TECLAST F7 Plus laptop. It comes preinstalled with Windows 10 but I planned to use it as my daily driver. So I installed OpenBSD 6.8 on it.</p>

<hr>
</blockquote>

<h3><a href="https://www.dragonflydigest.com/2020/12/28/25287.html" rel="nofollow">Multi-volume support in HAMMER2</a></h3>

<ul>
<li><a href="http://lists.dragonflybsd.org/pipermail/commits/2020-December/770072.html" rel="nofollow">commit</a>
&gt; This commit adds initial multi-volumes support for HAMMER2. Maximum supported volumes is 64. The feature and implementation is similar to multi-volumes support in HAMMER1.
***</li>
</ul>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://svnweb.freebsd.org/base/head/README?view=markup&pathrev=368820" rel="nofollow">FreeBSD Last SVN Commit</a></li>
<li><a href="https://cgit.freebsd.org/src/commit/?id=5ef5f51d2bef80b0ede9b10ad5b0e9440b60518c" rel="nofollow">FreeBSD First git Commit</a></li>
<li><a href="https://klarasystems.com/learning/webinars/webinar-introducing-openzfs-2-0/?utm_source=bsdnow" rel="nofollow">Introducing OpenZFS 2.0 Webinar - Jan 20th @ noon Eastern  / 17:00 UTC. </a>
***</li>
</ul>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
***</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/384/feedback/jay%20-%20feedback%20for%20ian" rel="nofollow">jay - feedback for ian</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/384/feedback/Iebluefire%20-%20concerns%20about%20freebsd" rel="nofollow">Iebluefire - concerns about freebsd</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/384/feedback/mike%20-%20zfs%20cluster%20aware" rel="nofollow">mike - zfs cluster aware</a>
***</li>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Allen K. Briggs Memorial Scholarship, Toward an automated tracking of OpenBSD ports contributions, Trying OpenZFS 2 on FreeBSD 12.2-RELEASE, OpenBSD on TECLAST F7 Plus, Multi-volume support in HAMMER2, and more. </p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/bsdnow" rel="nofollow">Tarsnap</a></p>

<h2>Headlines</h2>

<h3><a href="http://blog.netbsd.org/tnf/entry/allen_k_briggs_memorial_scholarship" rel="nofollow">Allen K. Briggs Memorial Scholarship</a></h3>

<blockquote>
<p>Allen Briggs was one of the earliest members of the NetBSD community, pursuing his interest in macBSD, and moving to become a NetBSD developer when the two projects merged. Allen was known for his quiet and relaxed manner, and always brought a keen wisdom with him; allied with his acute technical expertise, he was one of the most valued members of the NetBSD community.<br>
The Allen K. Briggs Memorial Scholarship is an endowment to provide scholarships in perpetuity for summer programs at the North Carolina School of Science &amp; Math, which Allen considered to be a place that fundamentally shaped him as a person. We would love to invite Allen&#39;s friends and colleagues from the BSD community to donate to this cause so that we can provide more scholarships to students with financial need each year. We are approximately halfway to our goal of $50K with aspirations to exceed that target and fund additional scholarships.</p>
</blockquote>

<hr>

<h3><a href="https://dataswamp.org/%7Esolene/2020-11-15-openbsd-ports-ci.html" rel="nofollow">Toward an automated tracking of OpenBSD ports contributions</a></h3>

<blockquote>
<p>A first step for the CI service would be to create a database of diffs sent to ports. This would allow people to track what has been sent and not yet committed and what the state of the contribution is (build/don’t build, apply/don’t apply).</p>

<hr>
</blockquote>

<h2>News Roundup</h2>

<h3><a href="https://rubenerd.com/trying-openzfs-on-freebsd-12-release/?utm_source=bsdnow" rel="nofollow">Trying OpenZFS 2 on FreeBSD 12.2-RELEASE</a></h3>

<blockquote>
<p>OpenZFS 2 is a huge achievement, and makes me bullish about the long term prospects for the world’s most trustworthy and nicest to use storage system. You can even use try it today on FreeBSD 12.2-RELEASE, though I recommend tracking -CURRENT for these sorts of features.</p>

<hr>
</blockquote>

<h3><a href="https://www.tumfatig.net/20201215/openbsd-on-teclast-f7-plus/?utm_source=bsdnow" rel="nofollow">OpenBSD on TECLAST F7 Plus</a></h3>

<blockquote>
<p>I got myself a TECLAST F7 Plus laptop. It comes preinstalled with Windows 10 but I planned to use it as my daily driver. So I installed OpenBSD 6.8 on it.</p>

<hr>
</blockquote>

<h3><a href="https://www.dragonflydigest.com/2020/12/28/25287.html" rel="nofollow">Multi-volume support in HAMMER2</a></h3>

<ul>
<li><a href="http://lists.dragonflybsd.org/pipermail/commits/2020-December/770072.html" rel="nofollow">commit</a>
&gt; This commit adds initial multi-volumes support for HAMMER2. Maximum supported volumes is 64. The feature and implementation is similar to multi-volumes support in HAMMER1.
***</li>
</ul>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://svnweb.freebsd.org/base/head/README?view=markup&pathrev=368820" rel="nofollow">FreeBSD Last SVN Commit</a></li>
<li><a href="https://cgit.freebsd.org/src/commit/?id=5ef5f51d2bef80b0ede9b10ad5b0e9440b60518c" rel="nofollow">FreeBSD First git Commit</a></li>
<li><a href="https://klarasystems.com/learning/webinars/webinar-introducing-openzfs-2-0/?utm_source=bsdnow" rel="nofollow">Introducing OpenZFS 2.0 Webinar - Jan 20th @ noon Eastern  / 17:00 UTC. </a>
***</li>
</ul>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
***</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/384/feedback/jay%20-%20feedback%20for%20ian" rel="nofollow">jay - feedback for ian</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/384/feedback/Iebluefire%20-%20concerns%20about%20freebsd" rel="nofollow">Iebluefire - concerns about freebsd</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/384/feedback/mike%20-%20zfs%20cluster%20aware" rel="nofollow">mike - zfs cluster aware</a>
***</li>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </itunes:summary>
</item>
<item>
  <title>356: Dig in Deeper</title>
  <link>https://www.bsdnow.tv/356</link>
  <guid isPermaLink="false">666c3655-32bf-4341-a986-ab085baa9c10</guid>
  <pubDate>Thu, 25 Jun 2020 07:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/666c3655-32bf-4341-a986-ab085baa9c10.mp3" length="31946816" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>TrueNAS is Multi-OS, Encrypted ZFS on NetBSD, FreeBSD’s new Code of Conduct, Gaming on OpenBSD, dig a little deeper, Hammer2 and periodic snapshots, and more.</itunes:subtitle>
  <itunes:duration>32:08</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>TrueNAS is Multi-OS, Encrypted ZFS on NetBSD, FreeBSD’s new Code of Conduct, Gaming on OpenBSD, dig a little deeper, Hammer2 and periodic snapshots, and more.
NOTES
This episode of BSDNow is brought to you by Tarsnap (https://www.tarsnap.com/)
Headlines
TrueNAS is Multi-OS (https://www.ixsystems.com/blog/truenas-multi-os/)
There was a time in history where all that mattered was an Operating System (OS) and the hardware it ran on — the “pre-software era”, if you will. Your hardware dictated the OS you used.
Once software applications became prominent, your hardware’s OS determined the applications you could run. Application vendors were forced to juggle the burden of “portability” between OS platforms, choosing carefully the operating systems they’d develop their software to. Then, there were the great OS Wars of the 1990s, replete with the rampant competition, licensing battles, and nasty lawsuits, which more or less gave birth to the “open source OS” era.
The advent of the hypervisor simultaneously gave way to the “virtual era” which set us on a path of agnosticism toward the OS. Instead of choosing from the applications available for your chosen OS, you could simply install another OS on the same hardware for your chosen application. The OS became nothing but a necessary cog in the stack.
TrueNAS open storage enables this “post-OS era” with support for storage clients of all UNIX flavors, Linux, FreeBSD, Windows, MacOS, VMware, Citrix, and many others. Containerization has carried that mentality even further. An operating system, like the hardware that runs it, is now just thought of as part of the “infrastructure”.
Encrypted ZFS on NetBSD 9.0, for a FreeBSD guy (https://rubenerd.com/encrypted-zfs-on-netbsd-9-for-a-freebsd-guy/)
I had one of my other HP Microservers brought back from the office last week to help with this working-from-home world we’re in right now. I was going to wipe an old version of Debian Wheezy/Xen and install FreeBSD to mirror my other machines before thinking: why not NetBSD?
News Roundup
FreeBSD's New Code of Conduct (https://www.freebsd.org/internal/code-of-conduct.html)
FreeBSD Announcement Email (https://raw.githubusercontent.com/BSDNow/bsdnow.tv/master/episodes/356/FBSD-CoC-Email)
Gaming on OpenBSD (https://dataswamp.org/~solene/2020-06-05-openbsd-gaming.html)
While no one would expect this, there are huge efforts from a small team to bring more games into OpenBSD. In fact, now some commercial games works natively now, thanks to Mono or Java. There are no wine or linux emulation layer in OpenBSD.
Here is a small list of most well known games that run on OpenBSD:
'dig' a little deeper (https://vishaltelangre.com/dig-a-little-deeper/)
I knew the existence of the dig command but didn't exactly know when and how to use it. Then, just recently I encountered an issue that allowed me to learn and make use of it.
HAMMER2 and periodic snapshots (https://www.dragonflydigest.com/2020/06/15/24635.html)
The first version of HAMMER took automatic snapshots, set within the config for each filesystem.  HAMMER2 now also takes automatic snapshots, via periodic(8) like most every repeating task on your DragonFly system.
+ git: Implement periodic hammer2 snapshots (http://lists.dragonflybsd.org/pipermail/commits/2020-June/769247.html)
Tarsnap
This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.
Feedback/Questions
Cy - OpenSSL relicensing (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/356/feedback/Cy%20-%20OPenSSL%20relicensing.md)
Christian - lagg vlans and iocage (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/356/feedback/Christian%20-%20lagg%20vlans%20and%20iocage)
Brad - SMR (https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/356/feedback/Brad%20-%20SMR)
***
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)
***
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, truenas, multi os, os, operating system, code of conduct, code, conduct, encryption, encrypted, zfs, gaming, dig, hammer2, snapshot, snapshots, periodic, periodic snapshots</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>TrueNAS is Multi-OS, Encrypted ZFS on NetBSD, FreeBSD’s new Code of Conduct, Gaming on OpenBSD, dig a little deeper, Hammer2 and periodic snapshots, and more.</p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/" rel="nofollow">Tarsnap</a></p>

<h2>Headlines</h2>

<h3><a href="https://www.ixsystems.com/blog/truenas-multi-os/" rel="nofollow">TrueNAS is Multi-OS</a></h3>

<blockquote>
<p>There was a time in history where all that mattered was an Operating System (OS) and the hardware it ran on — the “pre-software era”, if you will. Your hardware dictated the OS you used.<br>
Once software applications became prominent, your hardware’s OS determined the applications you could run. Application vendors were forced to juggle the burden of “portability” between OS platforms, choosing carefully the operating systems they’d develop their software to. Then, there were the great OS Wars of the 1990s, replete with the rampant competition, licensing battles, and nasty lawsuits, which more or less gave birth to the “open source OS” era.<br>
The advent of the hypervisor simultaneously gave way to the “virtual era” which set us on a path of agnosticism toward the OS. Instead of choosing from the applications available for your chosen OS, you could simply install another OS on the same hardware for your chosen application. The OS became nothing but a necessary cog in the stack.<br>
TrueNAS open storage enables this “post-OS era” with support for storage clients of all UNIX flavors, Linux, FreeBSD, Windows, MacOS, VMware, Citrix, and many others. Containerization has carried that mentality even further. An operating system, like the hardware that runs it, is now just thought of as part of the “infrastructure”.</p>

<hr>

<h3><a href="https://rubenerd.com/encrypted-zfs-on-netbsd-9-for-a-freebsd-guy/" rel="nofollow">Encrypted ZFS on NetBSD 9.0, for a FreeBSD guy</a></h3>

<p>I had one of my other HP Microservers brought back from the office last week to help with this working-from-home world we’re in right now. I was going to wipe an old version of Debian Wheezy/Xen and install FreeBSD to mirror my other machines before thinking: why not NetBSD?</p>

<hr>
</blockquote>

<h2>News Roundup</h2>

<h3><a href="https://www.freebsd.org/internal/code-of-conduct.html" rel="nofollow">FreeBSD&#39;s New Code of Conduct</a></h3>

<ul>
<li><a href="https://raw.githubusercontent.com/BSDNow/bsdnow.tv/master/episodes/356/FBSD-CoC-Email" rel="nofollow">FreeBSD Announcement Email</a></li>
</ul>

<hr>

<h3><a href="https://dataswamp.org/%7Esolene/2020-06-05-openbsd-gaming.html" rel="nofollow">Gaming on OpenBSD</a></h3>

<blockquote>
<p>While no one would expect this, there are huge efforts from a small team to bring more games into OpenBSD. In fact, now some commercial games works natively now, thanks to Mono or Java. There are no wine or linux emulation layer in OpenBSD.<br>
Here is a small list of most well known games that run on OpenBSD:</p>

<hr>

<h3><a href="https://vishaltelangre.com/dig-a-little-deeper/" rel="nofollow">&#39;dig&#39; a little deeper</a></h3>

<p>I knew the existence of the dig command but didn&#39;t exactly know when and how to use it. Then, just recently I encountered an issue that allowed me to learn and make use of it.</p>

<hr>

<h3><a href="https://www.dragonflydigest.com/2020/06/15/24635.html" rel="nofollow">HAMMER2 and periodic snapshots</a></h3>

<p>The first version of HAMMER took automatic snapshots, set within the config for each filesystem.  HAMMER2 now also takes automatic snapshots, via periodic(8) like most every repeating task on your DragonFly system.</p>

<ul>
<li><a href="http://lists.dragonflybsd.org/pipermail/commits/2020-June/769247.html" rel="nofollow">git: Implement periodic hammer2 snapshots</a>
***</li>
</ul>
</blockquote>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/356/feedback/Cy%20-%20OPenSSL%20relicensing.md" rel="nofollow">Cy - OpenSSL relicensing</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/356/feedback/Christian%20-%20lagg%20vlans%20and%20iocage" rel="nofollow">Christian - lagg vlans and iocage</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/356/feedback/Brad%20-%20SMR" rel="nofollow">Brad - SMR</a>
***</li>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>TrueNAS is Multi-OS, Encrypted ZFS on NetBSD, FreeBSD’s new Code of Conduct, Gaming on OpenBSD, dig a little deeper, Hammer2 and periodic snapshots, and more.</p>

<p><strong><em>NOTES</em></strong><br>
This episode of BSDNow is brought to you by <a href="https://www.tarsnap.com/" rel="nofollow">Tarsnap</a></p>

<h2>Headlines</h2>

<h3><a href="https://www.ixsystems.com/blog/truenas-multi-os/" rel="nofollow">TrueNAS is Multi-OS</a></h3>

<blockquote>
<p>There was a time in history where all that mattered was an Operating System (OS) and the hardware it ran on — the “pre-software era”, if you will. Your hardware dictated the OS you used.<br>
Once software applications became prominent, your hardware’s OS determined the applications you could run. Application vendors were forced to juggle the burden of “portability” between OS platforms, choosing carefully the operating systems they’d develop their software to. Then, there were the great OS Wars of the 1990s, replete with the rampant competition, licensing battles, and nasty lawsuits, which more or less gave birth to the “open source OS” era.<br>
The advent of the hypervisor simultaneously gave way to the “virtual era” which set us on a path of agnosticism toward the OS. Instead of choosing from the applications available for your chosen OS, you could simply install another OS on the same hardware for your chosen application. The OS became nothing but a necessary cog in the stack.<br>
TrueNAS open storage enables this “post-OS era” with support for storage clients of all UNIX flavors, Linux, FreeBSD, Windows, MacOS, VMware, Citrix, and many others. Containerization has carried that mentality even further. An operating system, like the hardware that runs it, is now just thought of as part of the “infrastructure”.</p>

<hr>

<h3><a href="https://rubenerd.com/encrypted-zfs-on-netbsd-9-for-a-freebsd-guy/" rel="nofollow">Encrypted ZFS on NetBSD 9.0, for a FreeBSD guy</a></h3>

<p>I had one of my other HP Microservers brought back from the office last week to help with this working-from-home world we’re in right now. I was going to wipe an old version of Debian Wheezy/Xen and install FreeBSD to mirror my other machines before thinking: why not NetBSD?</p>

<hr>
</blockquote>

<h2>News Roundup</h2>

<h3><a href="https://www.freebsd.org/internal/code-of-conduct.html" rel="nofollow">FreeBSD&#39;s New Code of Conduct</a></h3>

<ul>
<li><a href="https://raw.githubusercontent.com/BSDNow/bsdnow.tv/master/episodes/356/FBSD-CoC-Email" rel="nofollow">FreeBSD Announcement Email</a></li>
</ul>

<hr>

<h3><a href="https://dataswamp.org/%7Esolene/2020-06-05-openbsd-gaming.html" rel="nofollow">Gaming on OpenBSD</a></h3>

<blockquote>
<p>While no one would expect this, there are huge efforts from a small team to bring more games into OpenBSD. In fact, now some commercial games works natively now, thanks to Mono or Java. There are no wine or linux emulation layer in OpenBSD.<br>
Here is a small list of most well known games that run on OpenBSD:</p>

<hr>

<h3><a href="https://vishaltelangre.com/dig-a-little-deeper/" rel="nofollow">&#39;dig&#39; a little deeper</a></h3>

<p>I knew the existence of the dig command but didn&#39;t exactly know when and how to use it. Then, just recently I encountered an issue that allowed me to learn and make use of it.</p>

<hr>

<h3><a href="https://www.dragonflydigest.com/2020/06/15/24635.html" rel="nofollow">HAMMER2 and periodic snapshots</a></h3>

<p>The first version of HAMMER took automatic snapshots, set within the config for each filesystem.  HAMMER2 now also takes automatic snapshots, via periodic(8) like most every repeating task on your DragonFly system.</p>

<ul>
<li><a href="http://lists.dragonflybsd.org/pipermail/commits/2020-June/769247.html" rel="nofollow">git: Implement periodic hammer2 snapshots</a>
***</li>
</ul>
</blockquote>

<h3>Tarsnap</h3>

<ul>
<li>This weeks episode of BSDNow was sponsored by our friends at Tarsnap, the only secure online backup you can trust your data to. Even paranoids need backups.</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/356/feedback/Cy%20-%20OPenSSL%20relicensing.md" rel="nofollow">Cy - OpenSSL relicensing</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/356/feedback/Christian%20-%20lagg%20vlans%20and%20iocage" rel="nofollow">Christian - lagg vlans and iocage</a></li>
<li><a href="https://github.com/BSDNow/bsdnow.tv/blob/master/episodes/356/feedback/Brad%20-%20SMR" rel="nofollow">Brad - SMR</a>
***</li>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>]]>
  </itunes:summary>
</item>
<item>
  <title>323: OSI Burrito Guy</title>
  <link>https://www.bsdnow.tv/323</link>
  <guid isPermaLink="false">cf54c1fe-70ba-49a3-9b13-1ceb64ab896a</guid>
  <pubDate>Thu, 07 Nov 2019 07:00:00 -0500</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/cf54c1fe-70ba-49a3-9b13-1ceb64ab896a.mp3" length="35547347" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>The earliest Unix code, how to replace fail2ban with blacklistd, OpenBSD crossed 400k commits, how to install Bolt CMS on FreeBSD, optimized hammer2, appeasing the OSI 7-layer burrito guys, and more.</itunes:subtitle>
  <itunes:duration>49:22</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>The earliest Unix code, how to replace fail2ban with blacklistd, OpenBSD crossed 400k commits, how to install Bolt CMS on FreeBSD, optimized hammer2, appeasing the OSI 7-layer burrito guys, and more.
Headlines
The Earliest Unix Code: An Anniversary Source Code Release (https://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/)
What is it that runs the servers that hold our online world, be it the web or the cloud? What enables the mobile apps that are at the center of increasingly on-demand lives in the developed world and of mobile banking and messaging in the developing world? The answer is the operating system Unix and its many descendants: Linux, Android, BSD Unix, MacOS, iOS—the list goes on and on. Want to glimpse the Unix in your Mac? Open a Terminal window and enter “man roff” to view the Unix manual entry for an early text formatting program that lives within your operating system.
2019 marks the 50th anniversary of the start of Unix. In the summer of 1969, that same summer that saw humankind’s first steps on the surface of the Moon, computer scientists at the Bell Telephone Laboratories—most centrally Ken Thompson and Dennis Ritchie—began the construction of a new operating system, using a then-aging DEC PDP-7 computer at the labs.
This man sent the first online message 50 years ago (https://www.cbc.ca/radio/thecurrent/the-current-for-oct-29-2019-1.5339212/this-man-sent-the-first-online-message-50-years-ago-he-s-since-seen-the-web-s-dark-side-emerge-1.5339244)
As many of you have heard in the past, the first online message ever sent between two computers was "lo", just over 50 years ago, on Oct. 29, 1969. 
It was supposed to say "log," but the computer sending the message — based at UCLA — crashed before the letter "g" was typed. A computer at Stanford 560 kilometres away was supposed to fill in the remaining characters "in," as in "log in."
The CBC Radio show, “The Current” has a half-hour interview with the man who sent that message, Leonard Kleinrock, distinguished professor of computer science at UCLA
"The idea of the network was you could sit at one computer, log on through the network to a remote computer and use its services there,"
50 years later, the internet has become so ubiquitous that it has almost been rendered invisible. There's hardly an aspect in our daily lives that hasn't been touched and transformed by it.
Q: Take us back to that day 50 years ago. Did you have the sense that this was going to be something you'd be talking about a half a century later?
A: Well, yes and no. Four months before that message was sent, there was a press release that came out of UCLA in which it quotes me as describing what my vision for this network would become. Basically what it said is that this network would be always on, always available. Anybody with any device could get on at anytime from any location, and it would be invisible.
Well, what I missed ... was that this is going to become a social network. People talking to people. Not computers talking to computers, but [the] human element.
Q: Can you briefly explain what you were working on in that lab? Why were you trying to get computers to actually talk to one another?
A: As an MIT graduate student, years before, I recognized I was surrounded by computers and I realized there was no effective [or efficient] way for them to communicate. I did my dissertation, my research, on establishing a mathematical theory of how these networks would work. But there was no such network existing. AT&amp;amp;T said it won't work and, even if it does, we want nothing to do with it.
So I had to wait around for years until the Advanced Research Projects Agency within the Department of Defence decided they needed a network to connect together the computer scientists they were supervising and supporting.
Q: For all the promise of the internet, it has also developed some dark sides that I'm guessing pioneers like yourselves never anticipated.
A: We did not. I knew everybody on the internet at that time, and they were all well-behaved and they all believed in an open, shared free network. So we did not put in any security controls.
When the first spam email occurred, we began to see the dark side emerge as this network reached nefarious people sitting in basements with a high-speed connection, reaching out to millions of people instantaneously, at no cost in time or money, anonymously until all sorts of unpleasant events occurred, which we called the dark side.
But in those early days, I considered the network to be going through its teenage years. Hacking to spam, annoying kinds of effects. I thought that one day this network would mature and grow up. Well, in fact, it took a turn for the worse when nation states, organized crime and extremists came in and began to abuse the network in severe ways.
Q: Is there any part of you that regrets giving birth to this?
A: Absolutely not. The greater good is much more important.
News Roundup
How to use blacklistd(8) with NPF as a fail2ban replacement (https://www.unitedbsd.com/d/63-how-to-use-blacklistd8-with-npf-as-a-fail2ban-replacement)
blacklistd(8) provides an API that can be used by network daemons to communicate with a packet filter via a daemon to enforce opening and closing ports dynamically based on policy.
The interface to the packet filter is in /libexec/blacklistd-helper (this is currently designed for npf) and the configuration file (inspired from inetd.conf) is in etc/blacklistd.conf
Now, blacklistd(8) will require bpfjit(4) (Just-In-Time compiler for Berkeley Packet Filter) in order to properly work, in addition to, naturally, npf(7) as frontend and syslogd(8), as a backend to print diagnostic messages. Also remember npf shall rely on the npflog* virtual network interface to provide logging for tcpdump() to use.
Unfortunately (dont' ask me why ??) in 8.1 all the required kernel components are still not compiled by default in the GENERIC kernel (though they are in HEAD), and are rather provided as modules. Enabling NPF and blacklistd services would normally result in them being automatically loaded as root, but predictably on securelevel=1 this is not going to happen.
FreeBSD’s handbook chapter on blacklistd (https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls-blacklistd.html)
OpenBSD crossed 400,000 commits (https://marc.info/?l=openbsd-tech&amp;amp;m=157059352620659&amp;amp;w=2)
Sometime in the last week OpenBSD crossed 400,000 commits (*) upon all our repositories since starting at 1995/10/18 08:37:01 Canada/Mountain. That's a lot of commits by a lot of amazing people.
(*) by one measure.  Since the repository is so large and old, there are a variety of quirks including ChangeLog missing entries and branches not convertible to other repo forms, so measuring is hard.  If you think you've got a great way of measuring, don't be so sure of yourself -- you may have overcounted or undercounted.
Subject to the notes Theo made about under and over counting, FreeBSD should hit 1 million commits (base + ports + docs) some time in 2020
NetBSD + pkgsrc are approaching 600,000, but of course pkgsrc covers other operating systems too
How to Install Bolt CMS with Nginx and Let's Encrypt on FreeBSD 12 (https://www.howtoforge.com/how-to-install-bolt-cms-nginx-ssl-on-freebsd-12/)
Bolt is a sophisticated, lightweight and simple CMS built with PHP. It is released under the open-source MIT-license and source code is hosted as a public repository on Github. A bolt is a tool for Content Management, which strives to be as simple and straightforward as possible. It is quick to set up, easy to configure, uses elegant templates. Bolt is created using modern open-source libraries and is best suited to build sites in HTML5 with modern markup. In this tutorial, we will go through the Bolt CMS installation on FreeBSD 12 system by using Nginx as a web server, MySQL as a database server, and optionally you can secure the transport layer by using acme.sh client and Let's Encrypt certificate authority to add SSL support.
Requirements
The system requirements for Bolt are modest, and it should run on any fairly modern web server:
PHP version 5.5.9 or higher with the following common PHP extensions: pdo, mysqlnd, pgsql, openssl, curl, gd, intl, json, mbstring, opcache, posix, xml, fileinfo, exif, zip.
Access to SQLite (which comes bundled with PHP), or MySQL or PostgreSQL.
Apache with mod_rewrite enabled (.htaccess files) or Nginx (virtual host configuration covered below).
A minimum of 32MB of memory allocated to PHP.
hammer2 - Optimize hammer2 support threads and dispatch (http://lists.dragonflybsd.org/pipermail/commits/2019-September/719632.html)
Refactor the XOP groups in order to be able to queue strategy calls, whenever possible, to the same CPU as the issuer.  This optimizes several cases and reduces unnecessary IPI traffic between cores.  The next best thing to do would be to not queue certain XOPs to an H2 support thread at all, but I would like to keep the threads intact for later clustering work.  
The best scaling case for this is when one has a large number of user threads doing I/O.  One instance of a single-threaded program on an otherwise idle machine might see a slightly reduction in performance but at the same time we completely avoid unnecessarily spamming all cores in the system on the behalf of a single program, so overhead is also significantly lower.
This will tend to increase the number of H2 support threads since we need a certain degree of multiplication for domain separation.
This should significantly increase I/O performance for multi-threaded workloads.
You know, we might as well just run every network service over HTTPS/2 and build another six layers on top of that to appease the OSI 7-layer burrito guys (http://boston.conman.org/2019/10/17.1)
I've seen the writing on the wall, and while for now you can configure Firefox not to use DoH, I'm not confident enough to think it will remain that way. To that end, I've finally set up my own DoH server for use at Chez Boca. It only involved setting up my own CA to generate the appropriate certificates, install my CA certificate into Firefox, configure Apache to run over HTTP/2 (THANK YOU SO VERY XXXXX­XX MUCH GOOGLE FOR SHOVING THIS HTTP/2 XXXXX­XXX DOWN OUR THROATS!—no, I'm not bitter) and write a 150 line script that just queries my own local DNS, because, you know, it's more XXXXX­XX secure or some XXXXX­XXX reason like that.
Sigh.
Beastie Bits
An Oral History of Unix (https://www.princeton.edu/~hos/Mahoney/unixhistory)
NUMA Siloing in the FreeBSD Network Stack [pdf] (https://people.freebsd.org/~gallatin/talks/euro2019.pdf)
EuroBSDCon 2019 videos available (https://www.youtube.com/playlist?list=PLskKNopggjc6NssLc8GEGSiFYJLYdlTQx)
Barbie knows best (https://twitter.com/eksffa/status/1188638425567682560)
For the #OpenBSD #e2k19 attendees.  I did a pre visit today. (https://twitter.com/bob_beck/status/1188226661684301824)
Drawer Find (https://twitter.com/pasha_sh/status/1187877745499561985)
Slides - Removing ROP Gadgets from OpenBSD - AsiaBSDCon 2019 (https://www.openbsd.org/papers/asiabsdcon2019-rop-slides.pdf)
Feedback/Questions
Bostjan - Open source doesn't mean secure (http://dpaste.com/1M5MVCX#wrap)
Malcolm - Allan is Correct. (http://dpaste.com/2RFNR94)
Michael - FreeNAS inside a Jail (http://dpaste.com/28YW3BB#wrap)
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)

    
    Your browser does not support the HTML5 video tag.
 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, Unix, code, blacklistd, fail2ban, npf, bolt, cms, nginx, lets encrypt, hammer2, OSI, 7 layer, https2 </itunes:keywords>
  <content:encoded>
    <![CDATA[<p>The earliest Unix code, how to replace fail2ban with blacklistd, OpenBSD crossed 400k commits, how to install Bolt CMS on FreeBSD, optimized hammer2, appeasing the OSI 7-layer burrito guys, and more.</p>

<h2>Headlines</h2>

<h3><a href="https://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/" rel="nofollow">The Earliest Unix Code: An Anniversary Source Code Release</a></h3>

<blockquote>
<p>What is it that runs the servers that hold our online world, be it the web or the cloud? What enables the mobile apps that are at the center of increasingly on-demand lives in the developed world and of mobile banking and messaging in the developing world? The answer is the operating system Unix and its many descendants: Linux, Android, BSD Unix, MacOS, iOS—the list goes on and on. Want to glimpse the Unix in your Mac? Open a Terminal window and enter “man roff” to view the Unix manual entry for an early text formatting program that lives within your operating system.</p>

<p>2019 marks the 50th anniversary of the start of Unix. In the summer of 1969, that same summer that saw humankind’s first steps on the surface of the Moon, computer scientists at the Bell Telephone Laboratories—most centrally Ken Thompson and Dennis Ritchie—began the construction of a new operating system, using a then-aging DEC PDP-7 computer at the labs.</p>
</blockquote>

<hr>

<h3><a href="https://www.cbc.ca/radio/thecurrent/the-current-for-oct-29-2019-1.5339212/this-man-sent-the-first-online-message-50-years-ago-he-s-since-seen-the-web-s-dark-side-emerge-1.5339244" rel="nofollow">This man sent the first online message 50 years ago</a></h3>

<ul>
<li>As many of you have heard in the past, the first online message ever sent between two computers was &quot;lo&quot;, just over 50 years ago, on Oct. 29, 1969. </li>
</ul>

<blockquote>
<p>It was supposed to say &quot;log,&quot; but the computer sending the message — based at UCLA — crashed before the letter &quot;g&quot; was typed. A computer at Stanford 560 kilometres away was supposed to fill in the remaining characters &quot;in,&quot; as in &quot;log in.&quot;</p>
</blockquote>

<ul>
<li>The CBC Radio show, “The Current” has a half-hour interview with the man who sent that message, Leonard Kleinrock, distinguished professor of computer science at UCLA</li>
</ul>

<blockquote>
<p>&quot;The idea of the network was you could sit at one computer, log on through the network to a remote computer and use its services there,&quot;</p>

<p>50 years later, the internet has become so ubiquitous that it has almost been rendered invisible. There&#39;s hardly an aspect in our daily lives that hasn&#39;t been touched and transformed by it.</p>

<p>Q: Take us back to that day 50 years ago. Did you have the sense that this was going to be something you&#39;d be talking about a half a century later?</p>

<p>A: Well, yes and no. Four months before that message was sent, there was a press release that came out of UCLA in which it quotes me as describing what my vision for this network would become. Basically what it said is that this network would be always on, always available. Anybody with any device could get on at anytime from any location, and it would be invisible.</p>

<p>Well, what I missed ... was that this is going to become a social network. People talking to people. Not computers talking to computers, but [the] human element.</p>

<p>Q: Can you briefly explain what you were working on in that lab? Why were you trying to get computers to actually talk to one another?</p>

<p>A: As an MIT graduate student, years before, I recognized I was surrounded by computers and I realized there was no effective [or efficient] way for them to communicate. I did my dissertation, my research, on establishing a mathematical theory of how these networks would work. But there was no such network existing. AT&amp;T said it won&#39;t work and, even if it does, we want nothing to do with it.</p>

<p>So I had to wait around for years until the Advanced Research Projects Agency within the Department of Defence decided they needed a network to connect together the computer scientists they were supervising and supporting.</p>

<p>Q: For all the promise of the internet, it has also developed some dark sides that I&#39;m guessing pioneers like yourselves never anticipated.</p>

<p>A: We did not. I knew everybody on the internet at that time, and they were all well-behaved and they all believed in an open, shared free network. So we did not put in any security controls.</p>

<p>When the first spam email occurred, we began to see the dark side emerge as this network reached nefarious people sitting in basements with a high-speed connection, reaching out to millions of people instantaneously, at no cost in time or money, anonymously until all sorts of unpleasant events occurred, which we called the dark side.</p>

<p>But in those early days, I considered the network to be going through its teenage years. Hacking to spam, annoying kinds of effects. I thought that one day this network would mature and grow up. Well, in fact, it took a turn for the worse when nation states, organized crime and extremists came in and began to abuse the network in severe ways.</p>

<p>Q: Is there any part of you that regrets giving birth to this?</p>

<p>A: Absolutely not. The greater good is much more important.</p>
</blockquote>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://www.unitedbsd.com/d/63-how-to-use-blacklistd8-with-npf-as-a-fail2ban-replacement" rel="nofollow">How to use blacklistd(8) with NPF as a fail2ban replacement</a></h3>

<blockquote>
<p>blacklistd(8) provides an API that can be used by network daemons to communicate with a packet filter via a daemon to enforce opening and closing ports dynamically based on policy.</p>

<p>The interface to the packet filter is in /libexec/blacklistd-helper (this is currently designed for npf) and the configuration file (inspired from inetd.conf) is in etc/blacklistd.conf</p>

<p>Now, blacklistd(8) will require bpfjit(4) (Just-In-Time compiler for Berkeley Packet Filter) in order to properly work, in addition to, naturally, npf(7) as frontend and syslogd(8), as a backend to print diagnostic messages. Also remember npf shall rely on the npflog* virtual network interface to provide logging for tcpdump() to use.</p>

<p>Unfortunately (dont&#39; ask me why ??) in 8.1 all the required kernel components are still not compiled by default in the GENERIC kernel (though they are in HEAD), and are rather provided as modules. Enabling NPF and blacklistd services would normally result in them being automatically loaded as root, but predictably on securelevel=1 this is not going to happen.</p>
</blockquote>

<ul>
<li><a href="https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls-blacklistd.html" rel="nofollow">FreeBSD’s handbook chapter on blacklistd</a></li>
</ul>

<hr>

<h3><a href="https://marc.info/?l=openbsd-tech&m=157059352620659&w=2" rel="nofollow">OpenBSD crossed 400,000 commits</a></h3>

<blockquote>
<p>Sometime in the last week OpenBSD crossed 400,000 commits (*) upon all our repositories since starting at 1995/10/18 08:37:01 Canada/Mountain. That&#39;s a lot of commits by a lot of amazing people.</p>

<p>(*) by one measure.  Since the repository is so large and old, there are a variety of quirks including ChangeLog missing entries and branches not convertible to other repo forms, so measuring is hard.  If you think you&#39;ve got a great way of measuring, don&#39;t be so sure of yourself -- you may have overcounted or undercounted.</p>
</blockquote>

<ul>
<li>Subject to the notes Theo made about under and over counting, FreeBSD should hit 1 million commits (base + ports + docs) some time in 2020</li>
<li>NetBSD + pkgsrc are approaching 600,000, but of course pkgsrc covers other operating systems too</li>
</ul>

<hr>

<h3><a href="https://www.howtoforge.com/how-to-install-bolt-cms-nginx-ssl-on-freebsd-12/" rel="nofollow">How to Install Bolt CMS with Nginx and Let&#39;s Encrypt on FreeBSD 12</a></h3>

<blockquote>
<p>Bolt is a sophisticated, lightweight and simple CMS built with PHP. It is released under the open-source MIT-license and source code is hosted as a public repository on Github. A bolt is a tool for Content Management, which strives to be as simple and straightforward as possible. It is quick to set up, easy to configure, uses elegant templates. Bolt is created using modern open-source libraries and is best suited to build sites in HTML5 with modern markup. In this tutorial, we will go through the Bolt CMS installation on FreeBSD 12 system by using Nginx as a web server, MySQL as a database server, and optionally you can secure the transport layer by using acme.sh client and Let&#39;s Encrypt certificate authority to add SSL support.</p>
</blockquote>

<ul>
<li>Requirements</li>
<li>The system requirements for Bolt are modest, and it should run on any fairly modern web server:

<ul>
<li>PHP version 5.5.9 or higher with the following common PHP extensions: pdo, mysqlnd, pgsql, openssl, curl, gd, intl, json, mbstring, opcache, posix, xml, fileinfo, exif, zip.</li>
<li>Access to SQLite (which comes bundled with PHP), or MySQL or PostgreSQL.</li>
<li>Apache with mod_rewrite enabled (.htaccess files) or Nginx (virtual host configuration covered below).</li>
<li>A minimum of 32MB of memory allocated to PHP.</li>
</ul></li>
</ul>

<hr>

<h3><a href="http://lists.dragonflybsd.org/pipermail/commits/2019-September/719632.html" rel="nofollow">hammer2 - Optimize hammer2 support threads and dispatch</a></h3>

<blockquote>
<p>Refactor the XOP groups in order to be able to queue strategy calls, whenever possible, to the same CPU as the issuer.  This optimizes several cases and reduces unnecessary IPI traffic between cores.  The next best thing to do would be to not queue certain XOPs to an H2 support thread at all, but I would like to keep the threads intact for later clustering work.<br><br>
The best scaling case for this is when one has a large number of user threads doing I/O.  One instance of a single-threaded program on an otherwise idle machine might see a slightly reduction in performance but at the same time we completely avoid unnecessarily spamming all cores in the system on the behalf of a single program, so overhead is also significantly lower.</p>

<p>This will tend to increase the number of H2 support threads since we need a certain degree of multiplication for domain separation.</p>

<p>This should significantly increase I/O performance for multi-threaded workloads.</p>
</blockquote>

<hr>

<h3><a href="http://boston.conman.org/2019/10/17.1" rel="nofollow">You know, we might as well just run every network service over HTTPS/2 and build another six layers on top of that to appease the OSI 7-layer burrito guys</a></h3>

<blockquote>
<p>I&#39;ve seen the writing on the wall, and while for now you can configure Firefox not to use DoH, I&#39;m not confident enough to think it will remain that way. To that end, I&#39;ve finally set up my own DoH server for use at Chez Boca. It only involved setting up my own CA to generate the appropriate certificates, install my CA certificate into Firefox, configure Apache to run over HTTP/2 (THANK YOU SO VERY XXXXX­XX MUCH GOOGLE FOR SHOVING THIS HTTP/2 XXXXX­XXX DOWN OUR THROATS!—no, I&#39;m not bitter) and write a 150 line script that just queries my own local DNS, because, you know, it&#39;s more XXXXX­XX secure or some XXXXX­XXX reason like that.</p>

<p>Sigh.</p>
</blockquote>

<hr>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://www.princeton.edu/%7Ehos/Mahoney/unixhistory" rel="nofollow">An Oral History of Unix</a></li>
<li><a href="https://people.freebsd.org/%7Egallatin/talks/euro2019.pdf" rel="nofollow">NUMA Siloing in the FreeBSD Network Stack [pdf]</a></li>
<li><a href="https://www.youtube.com/playlist?list=PLskKNopggjc6NssLc8GEGSiFYJLYdlTQx" rel="nofollow">EuroBSDCon 2019 videos available</a></li>
<li><a href="https://twitter.com/eksffa/status/1188638425567682560" rel="nofollow">Barbie knows best</a></li>
<li><a href="https://twitter.com/bob_beck/status/1188226661684301824" rel="nofollow">For the #OpenBSD #e2k19 attendees.  I did a pre visit today.</a></li>
<li><a href="https://twitter.com/pasha_sh/status/1187877745499561985" rel="nofollow">Drawer Find</a></li>
<li><a href="https://www.openbsd.org/papers/asiabsdcon2019-rop-slides.pdf" rel="nofollow">Slides - Removing ROP Gadgets from OpenBSD - AsiaBSDCon 2019</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li>Bostjan - <a href="http://dpaste.com/1M5MVCX#wrap" rel="nofollow">Open source doesn&#39;t mean secure</a></li>
<li>Malcolm - <a href="http://dpaste.com/2RFNR94" rel="nofollow">Allan is Correct.</a></li>
<li><p>Michael - <a href="http://dpaste.com/28YW3BB#wrap" rel="nofollow">FreeNAS inside a Jail</a></p>

<hr></li>
<li><p>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></p></li>
</ul>

<hr>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0323.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>The earliest Unix code, how to replace fail2ban with blacklistd, OpenBSD crossed 400k commits, how to install Bolt CMS on FreeBSD, optimized hammer2, appeasing the OSI 7-layer burrito guys, and more.</p>

<h2>Headlines</h2>

<h3><a href="https://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/" rel="nofollow">The Earliest Unix Code: An Anniversary Source Code Release</a></h3>

<blockquote>
<p>What is it that runs the servers that hold our online world, be it the web or the cloud? What enables the mobile apps that are at the center of increasingly on-demand lives in the developed world and of mobile banking and messaging in the developing world? The answer is the operating system Unix and its many descendants: Linux, Android, BSD Unix, MacOS, iOS—the list goes on and on. Want to glimpse the Unix in your Mac? Open a Terminal window and enter “man roff” to view the Unix manual entry for an early text formatting program that lives within your operating system.</p>

<p>2019 marks the 50th anniversary of the start of Unix. In the summer of 1969, that same summer that saw humankind’s first steps on the surface of the Moon, computer scientists at the Bell Telephone Laboratories—most centrally Ken Thompson and Dennis Ritchie—began the construction of a new operating system, using a then-aging DEC PDP-7 computer at the labs.</p>
</blockquote>

<hr>

<h3><a href="https://www.cbc.ca/radio/thecurrent/the-current-for-oct-29-2019-1.5339212/this-man-sent-the-first-online-message-50-years-ago-he-s-since-seen-the-web-s-dark-side-emerge-1.5339244" rel="nofollow">This man sent the first online message 50 years ago</a></h3>

<ul>
<li>As many of you have heard in the past, the first online message ever sent between two computers was &quot;lo&quot;, just over 50 years ago, on Oct. 29, 1969. </li>
</ul>

<blockquote>
<p>It was supposed to say &quot;log,&quot; but the computer sending the message — based at UCLA — crashed before the letter &quot;g&quot; was typed. A computer at Stanford 560 kilometres away was supposed to fill in the remaining characters &quot;in,&quot; as in &quot;log in.&quot;</p>
</blockquote>

<ul>
<li>The CBC Radio show, “The Current” has a half-hour interview with the man who sent that message, Leonard Kleinrock, distinguished professor of computer science at UCLA</li>
</ul>

<blockquote>
<p>&quot;The idea of the network was you could sit at one computer, log on through the network to a remote computer and use its services there,&quot;</p>

<p>50 years later, the internet has become so ubiquitous that it has almost been rendered invisible. There&#39;s hardly an aspect in our daily lives that hasn&#39;t been touched and transformed by it.</p>

<p>Q: Take us back to that day 50 years ago. Did you have the sense that this was going to be something you&#39;d be talking about a half a century later?</p>

<p>A: Well, yes and no. Four months before that message was sent, there was a press release that came out of UCLA in which it quotes me as describing what my vision for this network would become. Basically what it said is that this network would be always on, always available. Anybody with any device could get on at anytime from any location, and it would be invisible.</p>

<p>Well, what I missed ... was that this is going to become a social network. People talking to people. Not computers talking to computers, but [the] human element.</p>

<p>Q: Can you briefly explain what you were working on in that lab? Why were you trying to get computers to actually talk to one another?</p>

<p>A: As an MIT graduate student, years before, I recognized I was surrounded by computers and I realized there was no effective [or efficient] way for them to communicate. I did my dissertation, my research, on establishing a mathematical theory of how these networks would work. But there was no such network existing. AT&amp;T said it won&#39;t work and, even if it does, we want nothing to do with it.</p>

<p>So I had to wait around for years until the Advanced Research Projects Agency within the Department of Defence decided they needed a network to connect together the computer scientists they were supervising and supporting.</p>

<p>Q: For all the promise of the internet, it has also developed some dark sides that I&#39;m guessing pioneers like yourselves never anticipated.</p>

<p>A: We did not. I knew everybody on the internet at that time, and they were all well-behaved and they all believed in an open, shared free network. So we did not put in any security controls.</p>

<p>When the first spam email occurred, we began to see the dark side emerge as this network reached nefarious people sitting in basements with a high-speed connection, reaching out to millions of people instantaneously, at no cost in time or money, anonymously until all sorts of unpleasant events occurred, which we called the dark side.</p>

<p>But in those early days, I considered the network to be going through its teenage years. Hacking to spam, annoying kinds of effects. I thought that one day this network would mature and grow up. Well, in fact, it took a turn for the worse when nation states, organized crime and extremists came in and began to abuse the network in severe ways.</p>

<p>Q: Is there any part of you that regrets giving birth to this?</p>

<p>A: Absolutely not. The greater good is much more important.</p>
</blockquote>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://www.unitedbsd.com/d/63-how-to-use-blacklistd8-with-npf-as-a-fail2ban-replacement" rel="nofollow">How to use blacklistd(8) with NPF as a fail2ban replacement</a></h3>

<blockquote>
<p>blacklistd(8) provides an API that can be used by network daemons to communicate with a packet filter via a daemon to enforce opening and closing ports dynamically based on policy.</p>

<p>The interface to the packet filter is in /libexec/blacklistd-helper (this is currently designed for npf) and the configuration file (inspired from inetd.conf) is in etc/blacklistd.conf</p>

<p>Now, blacklistd(8) will require bpfjit(4) (Just-In-Time compiler for Berkeley Packet Filter) in order to properly work, in addition to, naturally, npf(7) as frontend and syslogd(8), as a backend to print diagnostic messages. Also remember npf shall rely on the npflog* virtual network interface to provide logging for tcpdump() to use.</p>

<p>Unfortunately (dont&#39; ask me why ??) in 8.1 all the required kernel components are still not compiled by default in the GENERIC kernel (though they are in HEAD), and are rather provided as modules. Enabling NPF and blacklistd services would normally result in them being automatically loaded as root, but predictably on securelevel=1 this is not going to happen.</p>
</blockquote>

<ul>
<li><a href="https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/firewalls-blacklistd.html" rel="nofollow">FreeBSD’s handbook chapter on blacklistd</a></li>
</ul>

<hr>

<h3><a href="https://marc.info/?l=openbsd-tech&m=157059352620659&w=2" rel="nofollow">OpenBSD crossed 400,000 commits</a></h3>

<blockquote>
<p>Sometime in the last week OpenBSD crossed 400,000 commits (*) upon all our repositories since starting at 1995/10/18 08:37:01 Canada/Mountain. That&#39;s a lot of commits by a lot of amazing people.</p>

<p>(*) by one measure.  Since the repository is so large and old, there are a variety of quirks including ChangeLog missing entries and branches not convertible to other repo forms, so measuring is hard.  If you think you&#39;ve got a great way of measuring, don&#39;t be so sure of yourself -- you may have overcounted or undercounted.</p>
</blockquote>

<ul>
<li>Subject to the notes Theo made about under and over counting, FreeBSD should hit 1 million commits (base + ports + docs) some time in 2020</li>
<li>NetBSD + pkgsrc are approaching 600,000, but of course pkgsrc covers other operating systems too</li>
</ul>

<hr>

<h3><a href="https://www.howtoforge.com/how-to-install-bolt-cms-nginx-ssl-on-freebsd-12/" rel="nofollow">How to Install Bolt CMS with Nginx and Let&#39;s Encrypt on FreeBSD 12</a></h3>

<blockquote>
<p>Bolt is a sophisticated, lightweight and simple CMS built with PHP. It is released under the open-source MIT-license and source code is hosted as a public repository on Github. A bolt is a tool for Content Management, which strives to be as simple and straightforward as possible. It is quick to set up, easy to configure, uses elegant templates. Bolt is created using modern open-source libraries and is best suited to build sites in HTML5 with modern markup. In this tutorial, we will go through the Bolt CMS installation on FreeBSD 12 system by using Nginx as a web server, MySQL as a database server, and optionally you can secure the transport layer by using acme.sh client and Let&#39;s Encrypt certificate authority to add SSL support.</p>
</blockquote>

<ul>
<li>Requirements</li>
<li>The system requirements for Bolt are modest, and it should run on any fairly modern web server:

<ul>
<li>PHP version 5.5.9 or higher with the following common PHP extensions: pdo, mysqlnd, pgsql, openssl, curl, gd, intl, json, mbstring, opcache, posix, xml, fileinfo, exif, zip.</li>
<li>Access to SQLite (which comes bundled with PHP), or MySQL or PostgreSQL.</li>
<li>Apache with mod_rewrite enabled (.htaccess files) or Nginx (virtual host configuration covered below).</li>
<li>A minimum of 32MB of memory allocated to PHP.</li>
</ul></li>
</ul>

<hr>

<h3><a href="http://lists.dragonflybsd.org/pipermail/commits/2019-September/719632.html" rel="nofollow">hammer2 - Optimize hammer2 support threads and dispatch</a></h3>

<blockquote>
<p>Refactor the XOP groups in order to be able to queue strategy calls, whenever possible, to the same CPU as the issuer.  This optimizes several cases and reduces unnecessary IPI traffic between cores.  The next best thing to do would be to not queue certain XOPs to an H2 support thread at all, but I would like to keep the threads intact for later clustering work.<br><br>
The best scaling case for this is when one has a large number of user threads doing I/O.  One instance of a single-threaded program on an otherwise idle machine might see a slightly reduction in performance but at the same time we completely avoid unnecessarily spamming all cores in the system on the behalf of a single program, so overhead is also significantly lower.</p>

<p>This will tend to increase the number of H2 support threads since we need a certain degree of multiplication for domain separation.</p>

<p>This should significantly increase I/O performance for multi-threaded workloads.</p>
</blockquote>

<hr>

<h3><a href="http://boston.conman.org/2019/10/17.1" rel="nofollow">You know, we might as well just run every network service over HTTPS/2 and build another six layers on top of that to appease the OSI 7-layer burrito guys</a></h3>

<blockquote>
<p>I&#39;ve seen the writing on the wall, and while for now you can configure Firefox not to use DoH, I&#39;m not confident enough to think it will remain that way. To that end, I&#39;ve finally set up my own DoH server for use at Chez Boca. It only involved setting up my own CA to generate the appropriate certificates, install my CA certificate into Firefox, configure Apache to run over HTTP/2 (THANK YOU SO VERY XXXXX­XX MUCH GOOGLE FOR SHOVING THIS HTTP/2 XXXXX­XXX DOWN OUR THROATS!—no, I&#39;m not bitter) and write a 150 line script that just queries my own local DNS, because, you know, it&#39;s more XXXXX­XX secure or some XXXXX­XXX reason like that.</p>

<p>Sigh.</p>
</blockquote>

<hr>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://www.princeton.edu/%7Ehos/Mahoney/unixhistory" rel="nofollow">An Oral History of Unix</a></li>
<li><a href="https://people.freebsd.org/%7Egallatin/talks/euro2019.pdf" rel="nofollow">NUMA Siloing in the FreeBSD Network Stack [pdf]</a></li>
<li><a href="https://www.youtube.com/playlist?list=PLskKNopggjc6NssLc8GEGSiFYJLYdlTQx" rel="nofollow">EuroBSDCon 2019 videos available</a></li>
<li><a href="https://twitter.com/eksffa/status/1188638425567682560" rel="nofollow">Barbie knows best</a></li>
<li><a href="https://twitter.com/bob_beck/status/1188226661684301824" rel="nofollow">For the #OpenBSD #e2k19 attendees.  I did a pre visit today.</a></li>
<li><a href="https://twitter.com/pasha_sh/status/1187877745499561985" rel="nofollow">Drawer Find</a></li>
<li><a href="https://www.openbsd.org/papers/asiabsdcon2019-rop-slides.pdf" rel="nofollow">Slides - Removing ROP Gadgets from OpenBSD - AsiaBSDCon 2019</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li>Bostjan - <a href="http://dpaste.com/1M5MVCX#wrap" rel="nofollow">Open source doesn&#39;t mean secure</a></li>
<li>Malcolm - <a href="http://dpaste.com/2RFNR94" rel="nofollow">Allan is Correct.</a></li>
<li><p>Michael - <a href="http://dpaste.com/28YW3BB#wrap" rel="nofollow">FreeNAS inside a Jail</a></p>

<hr></li>
<li><p>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></p></li>
</ul>

<hr>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0323.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </itunes:summary>
</item>
<item>
  <title>320: Codebase: Neck Deep</title>
  <link>https://www.bsdnow.tv/320</link>
  <guid isPermaLink="false">11b9f24e-1789-4328-8396-4b9654aa2dfc</guid>
  <pubDate>Wed, 16 Oct 2019 23:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/11b9f24e-1789-4328-8396-4b9654aa2dfc.mp3" length="40815513" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>FreeBSD on the Google Pixelbook, Porting NetBSD to the AMD x86-64, ZFS performance really does degrade as you approach quota limits, Fixing up KA9Q-unix, HAMMER2 and fsck for review, the return of startx(1) for non-root users, and more.</itunes:subtitle>
  <itunes:duration>56:41</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Headlines
FreeBSD and custom firmware on the Google Pixelbook (https://unrelenting.technology/articles/FreeBSD-and-custom-firmware-on-the-Google-Pixelbook)
FreeBSD and custom firmware on the Google Pixelbook
Back in 2015, I jumped on the ThinkPad bandwagon by getting an X240 to run FreeBSD on. Unlike most people in the ThinkPad crowd, I actually liked the clickpad and didn\u2019t use the trackpoint much. But this summer I\u2019ve decided that it was time for something newer. I wanted something..
lighter and thinner (ha, turns out this is actually important, I got tired of carrying a T H I C C laptop - Apple was right all along);
with a 3:2 display (why is Lenovo making these Serious Work\u2122 laptops 16:9 in the first place?? 16:9 is awful in below-13-inch sizes especially);
with a HiDPI display (and ideally with a good size for exact 2x scaling instead of fractional);
with USB-C ports;
without a dGPU, especially without an NVIDIA GPU;
assembled with screws and not glue (I don\u2019t necessarily need expansion and stuff in a laptop all that much, but being able to replace the battery without dealing with a glued chassis is good);
supported by FreeBSD of course (\u201csome development required\u201d is okay but I\u2019m not going to write big drivers);
how about something with open source firmware, that would be fun.
I was considering a ThinkPad X1 Carbon from an old generation - the one from the same year as the X230 is corebootable, so that\u2019s fun. But going back in processor generations just doesn\u2019t feel great. I want something more efficient, not less!
And then I discovered the Pixelbook. Other than the big huge large bezels around the screen, I liked everything about it. Thin aluminum design, a 3:2 HiDPI screen, rubber palm rests (why isn\u2019t every laptop ever doing that?!), the \u201cconvertibleness\u201d (flip the screen around to turn it into.. something rather big for a tablet, but it is useful actually), a Wacom touchscreen that supports a pen, mostly reasonable hardware (Intel Wi-Fi), and that famous coreboot support (Chromebooks\u2019 stock firmware is coreboot + depthcharge).
So here it is, my new laptop, a Google Pixelbook.
Conclusion
Pixelbook, FreeBSD, coreboot, EDK2 good.
Seriously, I have no big words to say, other than just recommending this laptop to FOSS enthusiasts :)
Porting NetBSD to the AMD x86-64: a case study in OS portability (https://www.usenix.org/legacy/publications/library/proceedings/bsdcon02/full_papers/linden/linden_html/index.html)
Abstract
NetBSD is known as a very portable operating system, currently running on 44 different architectures (12 different types of CPU). This paper takes a look at what has been done to make it portable, and how this has decreased the amount of effort needed to port NetBSD to a new architecture. The new AMD x86-64 architecture, of which the specifications were published at the end of 2000, with hardware to follow in 2002, is used as an example.
Portability
Supporting multiple platforms was a primary goal of the NetBSD project from the start. As NetBSD was ported to more and more platforms, the NetBSD kernel code was adapted to become more portable along the way.
General
Generally, code is shared between ports as much as possible. In NetBSD, it should always be considered if the code can be assumed to be useful on other architectures, present or future. If so, it is machine-independent and put it in an appropriate place in the source tree. When writing code that is intended to be machine-independent, and it contains conditional preprocessor statements depending on the architecture, then the code is likely wrong, or an extra abstraction layer is needed to get rid of these statements.
Types
Assumptions about the size of any type are not made. Assumptions made about type sizes on 32-bit platforms were a large problem when 64-bit platforms came around. Most of the problems of this kind had to be dealt with when NetBSD was ported to the DEC Alpha in 1994. A variation on this problem had to be dealt with with the UltraSPARC (sparc64) port in 1998, which is 64-bit, but big endian (vs. the little-endianness of the Alpha). When interacting with datastructures of a fixed size, such as on-disk metadata for filesystems, or datastructures directly interpreted by device hardware, explicitly sized types are used, such as uint32t, int8t, etc.
Conclusions and future work
The port of NetBSD to AMD's x86-64 architecture was done in six weeks, which confirms NetBSD's reputation as being a very portable operating system. One week was spent setting up the cross-toolchain and reading the x86-64 specifications, three weeks were spent writing the kernel code, one week was spent writing the userspace code, and one week testing and debugging it all. No problems were observed in any of the machine-independent parts of the kernel during test runs; all (simulated) device drivers, file systems, etc, worked without modification.
News Roundup
ZFS performance really does degrade as you approach quota limits (https://utcc.utoronto.ca/~cks/space/blog/solaris/ZFSFullQuotaPerformanceIssue)
Every so often (currently monthly), there is an "OpenZFS leadership meeting". What this really means is 'lead developers from the various ZFS implementations get together to talk about things'. Announcements and meeting notes from these meetings get sent out to various mailing lists, including the ZFS on Linux ones. 
In the September meeting notes, I read a very interesting (to me) agenda item: 
Relax quota semantics for improved performance (Allan Jude)
Problem: As you approach quotas, ZFS performance degrades.
Proposal: Can we have a property like quota-policy=strict or loose, where we can optionally allow ZFS to run over the quota as long as performance is not decreased.
This is very interesting to me because of two reasons. First, in the past we have definitely seen significant problems on our OmniOS machines, both when an entire pool hits a quota limit and when a single filesystem hits a refquota limit. It's nice to know that this wasn't just our imagination and that there is a real issue here. Even better, it might someday be improved (and perhaps in a way that we can use at least some of the time).
Second, any number of people here run very close to and sometimes at the quota limits of both filesystems and pools, fundamentally because people aren't willing to buy more space. We have in the past assumed that this was relatively harmless and would only make people run out of space. If this is a known issue that causes serious performance degradation, well, I don't know if there's anything we can do, but at least we're going to have to think about it and maybe push harder at people. The first step will have to be learning the details of what's going on at the ZFS level to cause the slowdown. (It's apparently similar to what happens when the pool is almost full, but I don't know the specifics of that either.)
With that said, we don't seem to have seen clear adverse effects on our Linux fileservers, and they've definitely run into quota limits (repeatedly). One possible reason for this is that having lots of RAM and SSDs makes the effects mostly go away. Another possible reason is that we haven't been looking closely enough to see that we're experiencing global slowdowns that correlate to filesystems hitting quota limits. We've had issues before with somewhat subtle slowdowns that we didn't understand (cf), so I can't discount that we're having it happen again.
Fixing up KA9Q-unix, or "neck deep in 30 year old codebases.." (http://adrianchadd.blogspot.com/2019/09/fixing-up-ka9q-unix-or-neck-deep-in-30.html)
I'll preface this by saying - yes, I'm still neck deep in FreeBSD's wifi stack and 802.11ac support, but it turns out it's slow work to fix 15 year old locking related issues that worked fine on 11abg cards, kinda worked ok on 11n cards, and are terrible for these 11ac cards. I'll .. get there.
Anyhoo, I've finally been mucking around with AX.25 packet radio. I've been wanting to do this since I was a teenager and found out about its existence, but back in high school and .. well, until a few years ago really .. I didn't have my amateur radio licence. But, now I do, and I've done a bunch of other stuff with a bunch of other radios. The main stumbling block? All my devices are either Apple products or run FreeBSD - and none of them have useful AX.25 stacks. The main stacks of choice these days run on Linux, Windows or are a full hardware TNC.
So yes, I was avoiding hacking on AX.25 stuff because there wasn't a BSD compatible AX.25 stack. I'm 40 now, leave me be.
But! A few weeks ago I found that someone was still running a packet BBS out of San Francisco. And amazingly, his local node ran on FreeBSD! It turns out Jeremy (KK6JJJ) ported both an old copy of KA9Q and N0ARY-BBS to run on FreeBSD! Cool!
I grabbed my 2m radio (which is already cabled up for digital modes), compiled up his KA9Q port, figured out how to get it to speak to Direwolf, and .. ok. Well, it worked. Kinda.
HAMMER2 and fsck for review (https://www.dragonflydigest.com/2019/09/24/23540.html)
HAMMER2 is Copy on Write, meaning changes are made to copies of existing data.  This means operations are generally atomic and can survive a power outage, etc.  (You should read up on it!)  However, there\u2019s now a fsck command, useful if you want a report of data validity rather than any manual repair process.
[The return of startx(1) for non-root users with some caveats (https://undeadly.org/cgi?action=article;sid=20190917091236)
Mark Kettenis (kettenis@) has recently committed changes which restore a certain amount of startx(1)/xinit(1) functionality for non-root users. The commit messages explain the situation:
```
CVSROOT:    /cvs
Module name:    src
Changes by:    kettenis@cvs.openbsd.org    2019/09/15 06:25:41
Modified files:
    etc/etc.amd64  : fbtab 
    etc/etc.arm64  : fbtab 
    etc/etc.hppa   : fbtab 
    etc/etc.i386   : fbtab 
    etc/etc.loongson: fbtab 
    etc/etc.luna88k: fbtab 
    etc/etc.macppc : fbtab 
    etc/etc.octeon : fbtab 
    etc/etc.sgi    : fbtab 
    etc/etc.sparc64: fbtab 
Log message:
Add ttyC4 to lost of devices to change when logging in on ttyC0 (and in some cases also the serial console) such that X can use it as its VT when running without root privileges.
ok jsg@, matthieu@
CVSROOT:    /cvs
Module name:    xenocara
Changes by:    kettenis@cvs.openbsd.org    2019/09/15 06:31:08
Modified files:
    xserver/hw/xfree86/common: xf86AutoConfig.c 
Log message:
Add modesetting driver as a fall-back when appropriate such that we can use it when running without root privileges which prevents us from scanning the PCI bus.
This makes startx(1)/xinit(1) work again on modern systems with inteldrm(4), radeondrm(4) and amdgpu(4).  In some cases this will result in using a different driver than with xenodm(4) which may expose issues (e.g. when we prefer the intel Xorg driver) or loss of acceleration (e.g. older cards supported by radeondrm(4)).
ok jsg@, matthieu@
```
Beastie Bits
ASCII table and history.  Or, why does Ctrl+i insert a Tab in my terminal? (https://bestasciitable.com/)
Sourcehut makes BSD software better (https://sourcehut.org/blog/2019-09-12-sourcehut-makes-bsd-software-better/)
Chaosnet for Unx (https://github.com/LM-3/chaos)
The Vim-Inspired Editor with a Linguistic Twist (https://cosine.blue/2019-09-06-kakoune.html)
bhyvearm64: CPU and Memory Virtualization on Armv8.0-A (https://papers.freebsd.org/2019/bsdcan/elisei-bhyvearm64_cpu_and_memory_virtualization_on_armv8.0_a/)
DefCon25 - Are all BSD created Equally - A Survey of BSD Kernel vulnerabilities (https://www.youtube.com/watch?v=a2m56Yq-EIs)
Feedback/Questions
Tim - GSoC project ideas for pf rule syntax translation (http://dpaste.com/1RCSFK7#wrap)
Brad - Steam on FreeBSD (http://dpaste.com/2SKA9YB#wrap)
Ruslan - FreeBSD Quarterly Status Report - Q2 2019 (http://dpaste.com/0DQM3Q1)
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)

    
    Your browser does not support the HTML5 video tag.
 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, google pixelbook, pixelbook, case study, portability, porting, zfs, zfs performance, performance, quota, quota limits, zfs quota, ka9q, unix, hammer2, fsck, startx</itunes:keywords>
  <content:encoded>
    <![CDATA[<h2>Headlines</h2>

<h3><a href="https://unrelenting.technology/articles/FreeBSD-and-custom-firmware-on-the-Google-Pixelbook" rel="nofollow">FreeBSD and custom firmware on the Google Pixelbook</a></h3>

<ul>
<li>FreeBSD and custom firmware on the Google Pixelbook</li>
</ul>

<blockquote>
<p>Back in 2015, I jumped on the ThinkPad bandwagon by getting an X240 to run FreeBSD on. Unlike most people in the ThinkPad crowd, I actually liked the clickpad and didn\u2019t use the trackpoint much. But this summer I\u2019ve decided that it was time for something newer. I wanted something..</p>
</blockquote>

<ul>
<li>lighter and thinner (ha, turns out this is actually important, I got tired of carrying a T H I C C laptop - Apple was right all along);</li>
<li>with a 3:2 display (why is Lenovo making these Serious Work\u2122 laptops 16:9 in the first place?? 16:9 is awful in below-13-inch sizes especially);</li>
<li>with a HiDPI display (and ideally with a good size for exact 2x scaling instead of fractional);</li>
<li>with USB-C ports;</li>
<li>without a dGPU, especially without an NVIDIA GPU;</li>
<li>assembled with screws and not glue (I don\u2019t necessarily need expansion and stuff in a laptop all that much, but being able to replace the battery without dealing with a glued chassis is good);</li>
<li>supported by FreeBSD of course (\u201csome development required\u201d is okay but I\u2019m not going to write big drivers);</li>
<li>how about something with open source firmware, that would be fun.</li>
</ul>

<blockquote>
<p>I was considering a ThinkPad X1 Carbon from an old generation - the one from the same year as the X230 is corebootable, so that\u2019s fun. But going back in processor generations just doesn\u2019t feel great. I want something more efficient, not less!</p>

<p>And then I discovered the Pixelbook. Other than the big huge large bezels around the screen, I liked everything about it. Thin aluminum design, a 3:2 HiDPI screen, rubber palm rests (why isn\u2019t every laptop ever doing that?!), the \u201cconvertibleness\u201d (flip the screen around to turn it into.. something rather big for a tablet, but it is useful actually), a Wacom touchscreen that supports a pen, mostly reasonable hardware (Intel Wi-Fi), and that famous coreboot support (Chromebooks\u2019 stock firmware is coreboot + depthcharge).</p>

<p>So here it is, my new laptop, a Google Pixelbook.</p>
</blockquote>

<ul>
<li>Conclusion</li>
</ul>

<blockquote>
<p>Pixelbook, FreeBSD, coreboot, EDK2 good.</p>

<p>Seriously, I have no big words to say, other than just recommending this laptop to FOSS enthusiasts :)</p>
</blockquote>

<hr>

<h3><a href="https://www.usenix.org/legacy/publications/library/proceedings/bsdcon02/full_papers/linden/linden_html/index.html" rel="nofollow">Porting NetBSD to the AMD x86-64: a case study in OS portability</a></h3>

<ul>
<li>Abstract</li>
</ul>

<blockquote>
<p>NetBSD is known as a very portable operating system, currently running on 44 different architectures (12 different types of CPU). This paper takes a look at what has been done to make it portable, and how this has decreased the amount of effort needed to port NetBSD to a new architecture. The new AMD x86-64 architecture, of which the specifications were published at the end of 2000, with hardware to follow in 2002, is used as an example.</p>
</blockquote>

<ul>
<li>Portability</li>
</ul>

<blockquote>
<p>Supporting multiple platforms was a primary goal of the NetBSD project from the start. As NetBSD was ported to more and more platforms, the NetBSD kernel code was adapted to become more portable along the way.</p>
</blockquote>

<ul>
<li>General</li>
</ul>

<blockquote>
<p>Generally, code is shared between ports as much as possible. In NetBSD, it should always be considered if the code can be assumed to be useful on other architectures, present or future. If so, it is machine-independent and put it in an appropriate place in the source tree. When writing code that is intended to be machine-independent, and it contains conditional preprocessor statements depending on the architecture, then the code is likely wrong, or an extra abstraction layer is needed to get rid of these statements.</p>
</blockquote>

<ul>
<li>Types</li>
</ul>

<blockquote>
<p>Assumptions about the size of any type are not made. Assumptions made about type sizes on 32-bit platforms were a large problem when 64-bit platforms came around. Most of the problems of this kind had to be dealt with when NetBSD was ported to the DEC Alpha in 1994. A variation on this problem had to be dealt with with the UltraSPARC (sparc64) port in 1998, which is 64-bit, but big endian (vs. the little-endianness of the Alpha). When interacting with datastructures of a fixed size, such as on-disk metadata for filesystems, or datastructures directly interpreted by device hardware, explicitly sized types are used, such as uint32_t, int8_t, etc.</p>
</blockquote>

<ul>
<li>Conclusions and future work</li>
</ul>

<blockquote>
<p>The port of NetBSD to AMD&#39;s x86-64 architecture was done in six weeks, which confirms NetBSD&#39;s reputation as being a very portable operating system. One week was spent setting up the cross-toolchain and reading the x86-64 specifications, three weeks were spent writing the kernel code, one week was spent writing the userspace code, and one week testing and debugging it all. No problems were observed in any of the machine-independent parts of the kernel during test runs; all (simulated) device drivers, file systems, etc, worked without modification.</p>
</blockquote>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://utcc.utoronto.ca/%7Ecks/space/blog/solaris/ZFSFullQuotaPerformanceIssue" rel="nofollow">ZFS performance really does degrade as you approach quota limits</a></h3>

<blockquote>
<p>Every so often (currently monthly), there is an &quot;OpenZFS leadership meeting&quot;. What this really means is &#39;lead developers from the various ZFS implementations get together to talk about things&#39;. Announcements and meeting notes from these meetings get sent out to various mailing lists, including the ZFS on Linux ones. </p>
</blockquote>

<ul>
<li>In the September meeting notes, I read a very interesting (to me) agenda item: 

<ul>
<li>Relax quota semantics for improved performance (Allan Jude)</li>
<li>Problem: As you approach quotas, ZFS performance degrades.</li>
<li>Proposal: Can we have a property like quota-policy=strict or loose, where we can optionally allow ZFS to run over the quota as long as performance is not decreased.</li>
</ul></li>
</ul>

<blockquote>
<p>This is very interesting to me because of two reasons. First, in the past we have definitely seen significant problems on our OmniOS machines, both when an entire pool hits a quota limit and when a single filesystem hits a refquota limit. It&#39;s nice to know that this wasn&#39;t just our imagination and that there is a real issue here. Even better, it might someday be improved (and perhaps in a way that we can use at least some of the time).</p>

<p>Second, any number of people here run very close to and sometimes at the quota limits of both filesystems and pools, fundamentally because people aren&#39;t willing to buy more space. We have in the past assumed that this was relatively harmless and would only make people run out of space. If this is a known issue that causes serious performance degradation, well, I don&#39;t know if there&#39;s anything we can do, but at least we&#39;re going to have to think about it and maybe push harder at people. The first step will have to be learning the details of what&#39;s going on at the ZFS level to cause the slowdown. (It&#39;s apparently similar to what happens when the pool is almost full, but I don&#39;t know the specifics of that either.)</p>

<p>With that said, we don&#39;t seem to have seen clear adverse effects on our Linux fileservers, and they&#39;ve definitely run into quota limits (repeatedly). One possible reason for this is that having lots of RAM and SSDs makes the effects mostly go away. Another possible reason is that we haven&#39;t been looking closely enough to see that we&#39;re experiencing global slowdowns that correlate to filesystems hitting quota limits. We&#39;ve had issues before with somewhat subtle slowdowns that we didn&#39;t understand (cf), so I can&#39;t discount that we&#39;re having it happen again.</p>
</blockquote>

<hr>

<h3><a href="http://adrianchadd.blogspot.com/2019/09/fixing-up-ka9q-unix-or-neck-deep-in-30.html" rel="nofollow">Fixing up KA9Q-unix, or &quot;neck deep in 30 year old codebases..&quot;</a></h3>

<blockquote>
<p>I&#39;ll preface this by saying - yes, I&#39;m still neck deep in FreeBSD&#39;s wifi stack and 802.11ac support, but it turns out it&#39;s slow work to fix 15 year old locking related issues that worked fine on 11abg cards, kinda worked ok on 11n cards, and are terrible for these 11ac cards. I&#39;ll .. get there.</p>

<p>Anyhoo, I&#39;ve finally been mucking around with AX.25 packet radio. I&#39;ve been wanting to do this since I was a teenager and found out about its existence, but back in high school and .. well, until a few years ago really .. I didn&#39;t have my amateur radio licence. But, now I do, and I&#39;ve done a bunch of other stuff with a bunch of other radios. The main stumbling block? All my devices are either Apple products or run FreeBSD - and none of them have useful AX.25 stacks. The main stacks of choice these days run on Linux, Windows or are a full hardware TNC.</p>

<p>So yes, I was avoiding hacking on AX.25 stuff because there wasn&#39;t a BSD compatible AX.25 stack. I&#39;m 40 now, leave me be.</p>

<p>But! A few weeks ago I found that someone was still running a packet BBS out of San Francisco. And amazingly, his local node ran on FreeBSD! It turns out Jeremy (KK6JJJ) ported both an old copy of KA9Q and N0ARY-BBS to run on FreeBSD! Cool!</p>

<p>I grabbed my 2m radio (which is already cabled up for digital modes), compiled up his KA9Q port, figured out how to get it to speak to Direwolf, and .. ok. Well, it worked. Kinda.</p>
</blockquote>

<hr>

<h3><a href="https://www.dragonflydigest.com/2019/09/24/23540.html" rel="nofollow">HAMMER2 and fsck for review</a></h3>

<blockquote>
<p>HAMMER2 is Copy on Write, meaning changes are made to copies of existing data.  This means operations are generally atomic and can survive a power outage, etc.  (You should read up on it!)  However, there\u2019s now a fsck command, useful if you want a report of data validity rather than any manual repair process.</p>
</blockquote>

<hr>

<h3>[The return of startx(1) for non-root users <a href="https://undeadly.org/cgi?action=article;sid=20190917091236" rel="nofollow">with some caveats</a></h3>

<p>Mark Kettenis (kettenis@) has recently committed changes which restore a certain amount of startx(1)/xinit(1) functionality for non-root users. The commit messages explain the situation:</p>

<pre><code>CVSROOT:    /cvs
Module name:    src
Changes by:    kettenis@cvs.openbsd.org    2019/09/15 06:25:41

Modified files:
    etc/etc.amd64  : fbtab 
    etc/etc.arm64  : fbtab 
    etc/etc.hppa   : fbtab 
    etc/etc.i386   : fbtab 
    etc/etc.loongson: fbtab 
    etc/etc.luna88k: fbtab 
    etc/etc.macppc : fbtab 
    etc/etc.octeon : fbtab 
    etc/etc.sgi    : fbtab 
    etc/etc.sparc64: fbtab 

Log message:
Add ttyC4 to lost of devices to change when logging in on ttyC0 (and in some cases also the serial console) such that X can use it as its VT when running without root privileges.

ok jsg@, matthieu@
CVSROOT:    /cvs
Module name:    xenocara
Changes by:    kettenis@cvs.openbsd.org    2019/09/15 06:31:08

Modified files:
    xserver/hw/xfree86/common: xf86AutoConfig.c 

Log message:
Add modesetting driver as a fall-back when appropriate such that we can use it when running without root privileges which prevents us from scanning the PCI bus.

This makes startx(1)/xinit(1) work again on modern systems with inteldrm(4), radeondrm(4) and amdgpu(4).  In some cases this will result in using a different driver than with xenodm(4) which may expose issues (e.g. when we prefer the intel Xorg driver) or loss of acceleration (e.g. older cards supported by radeondrm(4)).

ok jsg@, matthieu@
</code></pre>

<hr>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://bestasciitable.com/" rel="nofollow">ASCII table and history.  Or, why does Ctrl+i insert a Tab in my terminal?</a></li>
<li><a href="https://sourcehut.org/blog/2019-09-12-sourcehut-makes-bsd-software-better/" rel="nofollow">Sourcehut makes BSD software better</a></li>
<li><a href="https://github.com/LM-3/chaos" rel="nofollow">Chaosnet for Unx</a></li>
<li><a href="https://cosine.blue/2019-09-06-kakoune.html" rel="nofollow">The Vim-Inspired Editor with a Linguistic Twist</a></li>
<li><a href="https://papers.freebsd.org/2019/bsdcan/elisei-bhyvearm64_cpu_and_memory_virtualization_on_armv8.0_a/" rel="nofollow">bhyvearm64: CPU and Memory Virtualization on Armv8.0-A</a></li>
<li><a href="https://www.youtube.com/watch?v=a2m56Yq-EIs" rel="nofollow">DefCon25 - Are all BSD created Equally - A Survey of BSD Kernel vulnerabilities</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li>Tim - <a href="http://dpaste.com/1RCSFK7#wrap" rel="nofollow">GSoC project ideas for pf rule syntax translation</a></li>
<li>Brad - <a href="http://dpaste.com/2SKA9YB#wrap" rel="nofollow">Steam on FreeBSD</a></li>
<li>Ruslan - <a href="http://dpaste.com/0DQM3Q1" rel="nofollow">FreeBSD Quarterly Status Report - Q2 2019</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></li>
</ul>

<hr>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0320.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<h2>Headlines</h2>

<h3><a href="https://unrelenting.technology/articles/FreeBSD-and-custom-firmware-on-the-Google-Pixelbook" rel="nofollow">FreeBSD and custom firmware on the Google Pixelbook</a></h3>

<ul>
<li>FreeBSD and custom firmware on the Google Pixelbook</li>
</ul>

<blockquote>
<p>Back in 2015, I jumped on the ThinkPad bandwagon by getting an X240 to run FreeBSD on. Unlike most people in the ThinkPad crowd, I actually liked the clickpad and didn\u2019t use the trackpoint much. But this summer I\u2019ve decided that it was time for something newer. I wanted something..</p>
</blockquote>

<ul>
<li>lighter and thinner (ha, turns out this is actually important, I got tired of carrying a T H I C C laptop - Apple was right all along);</li>
<li>with a 3:2 display (why is Lenovo making these Serious Work\u2122 laptops 16:9 in the first place?? 16:9 is awful in below-13-inch sizes especially);</li>
<li>with a HiDPI display (and ideally with a good size for exact 2x scaling instead of fractional);</li>
<li>with USB-C ports;</li>
<li>without a dGPU, especially without an NVIDIA GPU;</li>
<li>assembled with screws and not glue (I don\u2019t necessarily need expansion and stuff in a laptop all that much, but being able to replace the battery without dealing with a glued chassis is good);</li>
<li>supported by FreeBSD of course (\u201csome development required\u201d is okay but I\u2019m not going to write big drivers);</li>
<li>how about something with open source firmware, that would be fun.</li>
</ul>

<blockquote>
<p>I was considering a ThinkPad X1 Carbon from an old generation - the one from the same year as the X230 is corebootable, so that\u2019s fun. But going back in processor generations just doesn\u2019t feel great. I want something more efficient, not less!</p>

<p>And then I discovered the Pixelbook. Other than the big huge large bezels around the screen, I liked everything about it. Thin aluminum design, a 3:2 HiDPI screen, rubber palm rests (why isn\u2019t every laptop ever doing that?!), the \u201cconvertibleness\u201d (flip the screen around to turn it into.. something rather big for a tablet, but it is useful actually), a Wacom touchscreen that supports a pen, mostly reasonable hardware (Intel Wi-Fi), and that famous coreboot support (Chromebooks\u2019 stock firmware is coreboot + depthcharge).</p>

<p>So here it is, my new laptop, a Google Pixelbook.</p>
</blockquote>

<ul>
<li>Conclusion</li>
</ul>

<blockquote>
<p>Pixelbook, FreeBSD, coreboot, EDK2 good.</p>

<p>Seriously, I have no big words to say, other than just recommending this laptop to FOSS enthusiasts :)</p>
</blockquote>

<hr>

<h3><a href="https://www.usenix.org/legacy/publications/library/proceedings/bsdcon02/full_papers/linden/linden_html/index.html" rel="nofollow">Porting NetBSD to the AMD x86-64: a case study in OS portability</a></h3>

<ul>
<li>Abstract</li>
</ul>

<blockquote>
<p>NetBSD is known as a very portable operating system, currently running on 44 different architectures (12 different types of CPU). This paper takes a look at what has been done to make it portable, and how this has decreased the amount of effort needed to port NetBSD to a new architecture. The new AMD x86-64 architecture, of which the specifications were published at the end of 2000, with hardware to follow in 2002, is used as an example.</p>
</blockquote>

<ul>
<li>Portability</li>
</ul>

<blockquote>
<p>Supporting multiple platforms was a primary goal of the NetBSD project from the start. As NetBSD was ported to more and more platforms, the NetBSD kernel code was adapted to become more portable along the way.</p>
</blockquote>

<ul>
<li>General</li>
</ul>

<blockquote>
<p>Generally, code is shared between ports as much as possible. In NetBSD, it should always be considered if the code can be assumed to be useful on other architectures, present or future. If so, it is machine-independent and put it in an appropriate place in the source tree. When writing code that is intended to be machine-independent, and it contains conditional preprocessor statements depending on the architecture, then the code is likely wrong, or an extra abstraction layer is needed to get rid of these statements.</p>
</blockquote>

<ul>
<li>Types</li>
</ul>

<blockquote>
<p>Assumptions about the size of any type are not made. Assumptions made about type sizes on 32-bit platforms were a large problem when 64-bit platforms came around. Most of the problems of this kind had to be dealt with when NetBSD was ported to the DEC Alpha in 1994. A variation on this problem had to be dealt with with the UltraSPARC (sparc64) port in 1998, which is 64-bit, but big endian (vs. the little-endianness of the Alpha). When interacting with datastructures of a fixed size, such as on-disk metadata for filesystems, or datastructures directly interpreted by device hardware, explicitly sized types are used, such as uint32_t, int8_t, etc.</p>
</blockquote>

<ul>
<li>Conclusions and future work</li>
</ul>

<blockquote>
<p>The port of NetBSD to AMD&#39;s x86-64 architecture was done in six weeks, which confirms NetBSD&#39;s reputation as being a very portable operating system. One week was spent setting up the cross-toolchain and reading the x86-64 specifications, three weeks were spent writing the kernel code, one week was spent writing the userspace code, and one week testing and debugging it all. No problems were observed in any of the machine-independent parts of the kernel during test runs; all (simulated) device drivers, file systems, etc, worked without modification.</p>
</blockquote>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://utcc.utoronto.ca/%7Ecks/space/blog/solaris/ZFSFullQuotaPerformanceIssue" rel="nofollow">ZFS performance really does degrade as you approach quota limits</a></h3>

<blockquote>
<p>Every so often (currently monthly), there is an &quot;OpenZFS leadership meeting&quot;. What this really means is &#39;lead developers from the various ZFS implementations get together to talk about things&#39;. Announcements and meeting notes from these meetings get sent out to various mailing lists, including the ZFS on Linux ones. </p>
</blockquote>

<ul>
<li>In the September meeting notes, I read a very interesting (to me) agenda item: 

<ul>
<li>Relax quota semantics for improved performance (Allan Jude)</li>
<li>Problem: As you approach quotas, ZFS performance degrades.</li>
<li>Proposal: Can we have a property like quota-policy=strict or loose, where we can optionally allow ZFS to run over the quota as long as performance is not decreased.</li>
</ul></li>
</ul>

<blockquote>
<p>This is very interesting to me because of two reasons. First, in the past we have definitely seen significant problems on our OmniOS machines, both when an entire pool hits a quota limit and when a single filesystem hits a refquota limit. It&#39;s nice to know that this wasn&#39;t just our imagination and that there is a real issue here. Even better, it might someday be improved (and perhaps in a way that we can use at least some of the time).</p>

<p>Second, any number of people here run very close to and sometimes at the quota limits of both filesystems and pools, fundamentally because people aren&#39;t willing to buy more space. We have in the past assumed that this was relatively harmless and would only make people run out of space. If this is a known issue that causes serious performance degradation, well, I don&#39;t know if there&#39;s anything we can do, but at least we&#39;re going to have to think about it and maybe push harder at people. The first step will have to be learning the details of what&#39;s going on at the ZFS level to cause the slowdown. (It&#39;s apparently similar to what happens when the pool is almost full, but I don&#39;t know the specifics of that either.)</p>

<p>With that said, we don&#39;t seem to have seen clear adverse effects on our Linux fileservers, and they&#39;ve definitely run into quota limits (repeatedly). One possible reason for this is that having lots of RAM and SSDs makes the effects mostly go away. Another possible reason is that we haven&#39;t been looking closely enough to see that we&#39;re experiencing global slowdowns that correlate to filesystems hitting quota limits. We&#39;ve had issues before with somewhat subtle slowdowns that we didn&#39;t understand (cf), so I can&#39;t discount that we&#39;re having it happen again.</p>
</blockquote>

<hr>

<h3><a href="http://adrianchadd.blogspot.com/2019/09/fixing-up-ka9q-unix-or-neck-deep-in-30.html" rel="nofollow">Fixing up KA9Q-unix, or &quot;neck deep in 30 year old codebases..&quot;</a></h3>

<blockquote>
<p>I&#39;ll preface this by saying - yes, I&#39;m still neck deep in FreeBSD&#39;s wifi stack and 802.11ac support, but it turns out it&#39;s slow work to fix 15 year old locking related issues that worked fine on 11abg cards, kinda worked ok on 11n cards, and are terrible for these 11ac cards. I&#39;ll .. get there.</p>

<p>Anyhoo, I&#39;ve finally been mucking around with AX.25 packet radio. I&#39;ve been wanting to do this since I was a teenager and found out about its existence, but back in high school and .. well, until a few years ago really .. I didn&#39;t have my amateur radio licence. But, now I do, and I&#39;ve done a bunch of other stuff with a bunch of other radios. The main stumbling block? All my devices are either Apple products or run FreeBSD - and none of them have useful AX.25 stacks. The main stacks of choice these days run on Linux, Windows or are a full hardware TNC.</p>

<p>So yes, I was avoiding hacking on AX.25 stuff because there wasn&#39;t a BSD compatible AX.25 stack. I&#39;m 40 now, leave me be.</p>

<p>But! A few weeks ago I found that someone was still running a packet BBS out of San Francisco. And amazingly, his local node ran on FreeBSD! It turns out Jeremy (KK6JJJ) ported both an old copy of KA9Q and N0ARY-BBS to run on FreeBSD! Cool!</p>

<p>I grabbed my 2m radio (which is already cabled up for digital modes), compiled up his KA9Q port, figured out how to get it to speak to Direwolf, and .. ok. Well, it worked. Kinda.</p>
</blockquote>

<hr>

<h3><a href="https://www.dragonflydigest.com/2019/09/24/23540.html" rel="nofollow">HAMMER2 and fsck for review</a></h3>

<blockquote>
<p>HAMMER2 is Copy on Write, meaning changes are made to copies of existing data.  This means operations are generally atomic and can survive a power outage, etc.  (You should read up on it!)  However, there\u2019s now a fsck command, useful if you want a report of data validity rather than any manual repair process.</p>
</blockquote>

<hr>

<h3>[The return of startx(1) for non-root users <a href="https://undeadly.org/cgi?action=article;sid=20190917091236" rel="nofollow">with some caveats</a></h3>

<p>Mark Kettenis (kettenis@) has recently committed changes which restore a certain amount of startx(1)/xinit(1) functionality for non-root users. The commit messages explain the situation:</p>

<pre><code>CVSROOT:    /cvs
Module name:    src
Changes by:    kettenis@cvs.openbsd.org    2019/09/15 06:25:41

Modified files:
    etc/etc.amd64  : fbtab 
    etc/etc.arm64  : fbtab 
    etc/etc.hppa   : fbtab 
    etc/etc.i386   : fbtab 
    etc/etc.loongson: fbtab 
    etc/etc.luna88k: fbtab 
    etc/etc.macppc : fbtab 
    etc/etc.octeon : fbtab 
    etc/etc.sgi    : fbtab 
    etc/etc.sparc64: fbtab 

Log message:
Add ttyC4 to lost of devices to change when logging in on ttyC0 (and in some cases also the serial console) such that X can use it as its VT when running without root privileges.

ok jsg@, matthieu@
CVSROOT:    /cvs
Module name:    xenocara
Changes by:    kettenis@cvs.openbsd.org    2019/09/15 06:31:08

Modified files:
    xserver/hw/xfree86/common: xf86AutoConfig.c 

Log message:
Add modesetting driver as a fall-back when appropriate such that we can use it when running without root privileges which prevents us from scanning the PCI bus.

This makes startx(1)/xinit(1) work again on modern systems with inteldrm(4), radeondrm(4) and amdgpu(4).  In some cases this will result in using a different driver than with xenodm(4) which may expose issues (e.g. when we prefer the intel Xorg driver) or loss of acceleration (e.g. older cards supported by radeondrm(4)).

ok jsg@, matthieu@
</code></pre>

<hr>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://bestasciitable.com/" rel="nofollow">ASCII table and history.  Or, why does Ctrl+i insert a Tab in my terminal?</a></li>
<li><a href="https://sourcehut.org/blog/2019-09-12-sourcehut-makes-bsd-software-better/" rel="nofollow">Sourcehut makes BSD software better</a></li>
<li><a href="https://github.com/LM-3/chaos" rel="nofollow">Chaosnet for Unx</a></li>
<li><a href="https://cosine.blue/2019-09-06-kakoune.html" rel="nofollow">The Vim-Inspired Editor with a Linguistic Twist</a></li>
<li><a href="https://papers.freebsd.org/2019/bsdcan/elisei-bhyvearm64_cpu_and_memory_virtualization_on_armv8.0_a/" rel="nofollow">bhyvearm64: CPU and Memory Virtualization on Armv8.0-A</a></li>
<li><a href="https://www.youtube.com/watch?v=a2m56Yq-EIs" rel="nofollow">DefCon25 - Are all BSD created Equally - A Survey of BSD Kernel vulnerabilities</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li>Tim - <a href="http://dpaste.com/1RCSFK7#wrap" rel="nofollow">GSoC project ideas for pf rule syntax translation</a></li>
<li>Brad - <a href="http://dpaste.com/2SKA9YB#wrap" rel="nofollow">Steam on FreeBSD</a></li>
<li>Ruslan - <a href="http://dpaste.com/0DQM3Q1" rel="nofollow">FreeBSD Quarterly Status Report - Q2 2019</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></li>
</ul>

<hr>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0320.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </itunes:summary>
</item>
<item>
  <title>317: Bots Building Jails</title>
  <link>https://www.bsdnow.tv/317</link>
  <guid isPermaLink="false">e26d9711-a9ef-433e-bf8e-90d57030f3e7</guid>
  <pubDate>Thu, 26 Sep 2019 02:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/e26d9711-a9ef-433e-bf8e-90d57030f3e7.mp3" length="37879559" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Setting up buildbot in FreeBSD jails, Set up a mail server with OpenSMTPD, Dovecot and Rspamd, OpenBSD amateur packet radio with HamBSD, DragonFlyBSD's HAMMER2 gets fsck, return of startx for users.</itunes:subtitle>
  <itunes:duration>52:36</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Setting up buildbot in FreeBSD jails, Set up a mail server with OpenSMTPD, Dovecot and Rspamd, OpenBSD amateur packet radio with HamBSD, DragonFlyBSD's HAMMER2 gets fsck, return of startx for users.
Headlines
EuroBSDcon 2019 Recap (https://2019.eurobsdcon.org/)
We’re back from EuroBSDcon in Lillehammer, Norway. It was a great conference with 212 people attending. 2 days of tutorials (https://2019.eurobsdcon.org/tutorial-speakers/), parallel to the FreeBSD Devsummit (https://wiki.freebsd.org/DevSummit/201909), followed by two days of talks (https://2019.eurobsdcon.org/program/). Some speakers uploaded their slides to papers.freebsd.org (https://papers.freebsd.org/2019/eurobsdcon/) already with more to come.
The social event was also interesting. We visited an open air museum with building preserved from different time periods. In the older section they had a collection of farm buildings, a church originally built in the 1200s and relocated to the museum, and a school house. In the more modern area, they had houses from 1915, and each decade from 1930 to 1990, plus a “house of the future” as imagined in 2001. Many had open doors to allow you to tour the inside, and some were even “inhabited”. The latter fact gave a much more interactive experience and we could learn additional things about the history of that particular house. The town at the end included a general store, a post office, and more. Then, we all had a nice dinner together in the museum’s restaurant.
The opening keynote by Patricia Aas was very good. Her talk on embedded ethics, from her perspective as someone trying to defend the sanctity of Norwegian elections, and a former developer for the Opera web browser, provided a great deal of insight into the issues. Her points about how the tech community has unleashed a very complex digital work upon people with barely any technical literacy were well taken. Her stories of trying to explain the problems with involving computers in the election process to journalists and politicians struck a chord with many of us, who have had to deal with legislation written by those who do not truly understand the issues with technology.
Setting up buildbot in FreeBSD jails (https://andidog.de/blog/2018-04-22-buildbot-setup-freebsd-jails)
In this article, I would like to present a tutorial to set up buildbot, a continuous integration (CI) software (like Jenkins, drone, etc.), making use of FreeBSD’s containerization mechanism "jails". We will cover terminology, rationale for using both buildbot and jails together, and installation steps. At the end, you will have a working buildbot instance using its sample build configuration, ready to play around with your own CI plans (or even CD, it’s very flexible!). Some hints for production-grade installations are given, but the tutorial steps are meant for a test environment (namely a virtual machine). Buildbot’s configuration and detailed concepts are not in scope here.
Setting up a mail server with OpenSMTPD, Dovecot and Rspamd (https://poolp.org/posts/2019-09-14/setting-up-a-mail-server-with-opensmtpd-dovecot-and-rspamd/)
Self-hosting and encouraging smaller providers is for the greater good
First of all, I was not clear enough about the political consequences of centralizing mail services at Big Mailer Corps.
It doesn’t make sense for Random Joe, sharing kitten pictures with his family and friends, to build a personal mail infrastructure when multiple Big Mailer Corps offer “for free” an amazing quality of service. They provide him with an e-mail address that is immediately available and which will generally work reliably. It really doesn’t make sense for Random Joe not to go there, and particularly if even techies go there without hesitation, proving it is a sound choice.
There is nothing wrong with Random Joes using a service that works.
What is terribly wrong though is the centralization of a communication protocol in the hands of a few commercial companies, EVERY SINGLE ONE OF THEM coming from the same country (currently led by a lunatic who abuses power and probably suffers from NPD), EVERY SINGLE ONE OF THEM having been in the news and/or in a court for random/assorted “unpleasant” behaviors (privacy abuses, eavesdropping, monopoly abuse, sexual or professional harassment, you just name it…), and EVERY SINGLE ONE OF THEM growing user bases that far exceeds the total population of multiple countries combined.
News Roundup
The HamBSD project aims to bring amateur packet radio to OpenBSD (https://hambsd.org/)
The HamBSD project aims to bring amateur packet radio to OpenBSD, including support for TCP/IP over AX.25 and APRS tracking/digipeating in the base system.
HamBSD will not provide a full AX.25 stack but instead only implement support for UI frames. There will be a focus on simplicity, security and readable code.
The amateur radio community needs a reliable platform for packet radio for use in both leisure and emergency scenarios. It should be expected that the system is stable and resilient (but as yet it is neither).
DragonFlyBSD's HAMMER2 Gets Basic FSCK Support (https://www.dragonflydigest.com/2019/09/24/23540.html)
HAMMER2 is Copy on Write, meaning changes are made to copies of existing data.  This means operations are generally atomic and can survive a power outage, etc.  (You should read up on it!)  However, there’s now a fsck command, useful if you want a report of data validity rather than any manual repair process.
commit (https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5554cc8b81fbfcfd347f50be3f3b1b9a54b871b)
Add initial fsck support for HAMMER2, although CoW fs doesn't require fsck as a concept. Currently no repairing (no write), just verifying. 
Keep this as a separate command for now.
https://i.redd.it/vkdss0mtdpo31.jpg
The return of startx for users (http://undeadly.org/cgi?action=article;sid=20190917091236)
Add modesetting driver as a fall-back when appropriate such that we can use it when running without root privileges which prevents us from scanning the PCI bus.
This makes startx(1)/xinit(1) work again on modern systems with inteldrm(4), radeondrm(4) and amdgpu(4).  In some cases this will result in using a different driver than with xenodm(4) which may expose issues (e.g. when we prefer the intel Xorg driver) or loss of acceleration (e.g. older cards supported by radeondrm(4)).
Beastie Bits
Ori Bernstein will be giving the October talk at NYCBUG (http://lists.nycbug.org:8080/pipermail/talk/2019-September/018046.html)
BSD Pizza Night: 2019/09/26, 7–9PM, Portland, Oregon, USA (http://calagator.org/events/1250476200)
Nick Wolff : Home Lab Show &amp;amp; Tell (http://knoxbug.org/2019-09-30)
Installing the Lumina Desktop in DragonflyBSD (https://www.youtube.com/watch?v=eWkCjj4_xsk)
dhcpcd 8.0.6 added (https://www.dragonflydigest.com/2019/09/20/23519.html)
Feedback/Questions
Bruce - FOSDEM videos (http://dpaste.com/15ABRRB#wrap)
Lars - Super Cluster of BSD on Rock64Pr (http://dpaste.com/1X9FEJJ)
Madhukar - Question (http://dpaste.com/0TWF1NB#wrap)
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)

    
    Your browser does not support the HTML5 video tag.
 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, buildbot, jails, opensmtp, dovecot, rspamd, mail, mailserver, amateur radio, amateur packet radio, packet radio, hammer2, filesystem, fsck, file system check, startx</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Setting up buildbot in FreeBSD jails, Set up a mail server with OpenSMTPD, Dovecot and Rspamd, OpenBSD amateur packet radio with HamBSD, DragonFlyBSD&#39;s HAMMER2 gets fsck, return of startx for users.</p>

<h2>Headlines</h2>

<h3><a href="https://2019.eurobsdcon.org/" rel="nofollow">EuroBSDcon 2019 Recap</a></h3>

<blockquote>
<p>We’re back from EuroBSDcon in Lillehammer, Norway. It was a great conference with 212 people attending. 2 days of <a href="https://2019.eurobsdcon.org/tutorial-speakers/" rel="nofollow">tutorials</a>, parallel to the <a href="https://wiki.freebsd.org/DevSummit/201909" rel="nofollow">FreeBSD Devsummit</a>, followed by two days of <a href="https://2019.eurobsdcon.org/program/" rel="nofollow">talks</a>. Some speakers uploaded their slides to <a href="https://papers.freebsd.org/2019/eurobsdcon/" rel="nofollow">papers.freebsd.org</a> already with more to come.</p>

<p>The social event was also interesting. We visited an open air museum with building preserved from different time periods. In the older section they had a collection of farm buildings, a church originally built in the 1200s and relocated to the museum, and a school house. In the more modern area, they had houses from 1915, and each decade from 1930 to 1990, plus a “house of the future” as imagined in 2001. Many had open doors to allow you to tour the inside, and some were even “inhabited”. The latter fact gave a much more interactive experience and we could learn additional things about the history of that particular house. The town at the end included a general store, a post office, and more. Then, we all had a nice dinner together in the museum’s restaurant.</p>
</blockquote>

<ul>
<li>The opening keynote by Patricia Aas was very good. Her talk on embedded ethics, from her perspective as someone trying to defend the sanctity of Norwegian elections, and a former developer for the Opera web browser, provided a great deal of insight into the issues. Her points about how the tech community has unleashed a very complex digital work upon people with barely any technical literacy were well taken. Her stories of trying to explain the problems with involving computers in the election process to journalists and politicians struck a chord with many of us, who have had to deal with legislation written by those who do not truly understand the issues with technology.</li>
</ul>

<hr>

<h3><a href="https://andidog.de/blog/2018-04-22-buildbot-setup-freebsd-jails" rel="nofollow">Setting up buildbot in FreeBSD jails</a></h3>

<blockquote>
<p>In this article, I would like to present a tutorial to set up buildbot, a continuous integration (CI) software (like Jenkins, drone, etc.), making use of FreeBSD’s containerization mechanism &quot;jails&quot;. We will cover terminology, rationale for using both buildbot and jails together, and installation steps. At the end, you will have a working buildbot instance using its sample build configuration, ready to play around with your own CI plans (or even CD, it’s very flexible!). Some hints for production-grade installations are given, but the tutorial steps are meant for a test environment (namely a virtual machine). Buildbot’s configuration and detailed concepts are not in scope here.</p>
</blockquote>

<hr>

<h3><a href="https://poolp.org/posts/2019-09-14/setting-up-a-mail-server-with-opensmtpd-dovecot-and-rspamd/" rel="nofollow">Setting up a mail server with OpenSMTPD, Dovecot and Rspamd</a></h3>

<ul>
<li>Self-hosting and encouraging smaller providers is for the greater good</li>
</ul>

<blockquote>
<p>First of all, I was not clear enough about the political consequences of centralizing mail services at Big Mailer Corps.</p>

<p>It doesn’t make sense for Random Joe, sharing kitten pictures with his family and friends, to build a personal mail infrastructure when multiple Big Mailer Corps offer “for free” an amazing quality of service. They provide him with an e-mail address that is immediately available and which will generally work reliably. It really doesn’t make sense for Random Joe not to go there, and particularly if even techies go there without hesitation, proving it is a sound choice.</p>

<p>There is nothing wrong with Random Joes using a service that works.</p>

<p>What is terribly wrong though is the centralization of a communication protocol in the hands of a few commercial companies, EVERY SINGLE ONE OF THEM coming from the same country (currently led by a lunatic who abuses power and probably suffers from NPD), EVERY SINGLE ONE OF THEM having been in the news and/or in a court for random/assorted “unpleasant” behaviors (privacy abuses, eavesdropping, monopoly abuse, sexual or professional harassment, you just name it…), and EVERY SINGLE ONE OF THEM growing user bases that far exceeds the total population of multiple countries combined.</p>
</blockquote>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://hambsd.org/" rel="nofollow">The HamBSD project aims to bring amateur packet radio to OpenBSD</a></h3>

<blockquote>
<p>The HamBSD project aims to bring amateur packet radio to OpenBSD, including support for TCP/IP over AX.25 and APRS tracking/digipeating in the base system.</p>

<p>HamBSD will not provide a full AX.25 stack but instead only implement support for UI frames. There will be a focus on simplicity, security and readable code.</p>

<p>The amateur radio community needs a reliable platform for packet radio for use in both leisure and emergency scenarios. It should be expected that the system is stable and resilient (but as yet it is neither).</p>
</blockquote>

<hr>

<h3><a href="https://www.dragonflydigest.com/2019/09/24/23540.html" rel="nofollow">DragonFlyBSD&#39;s HAMMER2 Gets Basic FSCK Support</a></h3>

<blockquote>
<p>HAMMER2 is Copy on Write, meaning changes are made to copies of existing data.  This means operations are generally atomic and can survive a power outage, etc.  (You should read up on it!)  However, there’s now a fsck command, useful if you want a report of data validity rather than any manual repair process.</p>
</blockquote>

<ul>
<li><a href="https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5554cc8b81fbfcfd347f50be3f3b1b9a54b871b" rel="nofollow">commit</a></li>
</ul>

<blockquote>
<p>Add initial fsck support for HAMMER2, although CoW fs doesn&#39;t require fsck as a concept. Currently no repairing (no write), just verifying. </p>

<p>Keep this as a separate command for now.<br>
<a href="https://i.redd.it/vkdss0mtdpo31.jpg" rel="nofollow">https://i.redd.it/vkdss0mtdpo31.jpg</a></p>

<hr>
</blockquote>

<h3><a href="http://undeadly.org/cgi?action=article;sid=20190917091236" rel="nofollow">The return of startx for users</a></h3>

<blockquote>
<p>Add modesetting driver as a fall-back when appropriate such that we can use it when running without root privileges which prevents us from scanning the PCI bus.</p>

<p>This makes startx(1)/xinit(1) work again on modern systems with inteldrm(4), radeondrm(4) and amdgpu(4).  In some cases this will result in using a different driver than with xenodm(4) which may expose issues (e.g. when we prefer the intel Xorg driver) or loss of acceleration (e.g. older cards supported by radeondrm(4)).</p>
</blockquote>

<hr>

<h2>Beastie Bits</h2>

<ul>
<li><a href="http://lists.nycbug.org:8080/pipermail/talk/2019-September/018046.html" rel="nofollow">Ori Bernstein will be giving the October talk at NYCBUG</a></li>
<li><a href="http://calagator.org/events/1250476200" rel="nofollow">BSD Pizza Night: 2019/09/26, 7–9PM, Portland, Oregon, USA</a></li>
<li><a href="http://knoxbug.org/2019-09-30" rel="nofollow">Nick Wolff : Home Lab Show &amp; Tell</a></li>
<li><a href="https://www.youtube.com/watch?v=eWkCjj4_xsk" rel="nofollow">Installing the Lumina Desktop in DragonflyBSD</a></li>
<li><a href="https://www.dragonflydigest.com/2019/09/20/23519.html" rel="nofollow">dhcpcd 8.0.6 added</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li>Bruce - <a href="http://dpaste.com/15ABRRB#wrap" rel="nofollow">FOSDEM videos</a></li>
<li>Lars - <a href="http://dpaste.com/1X9FEJJ" rel="nofollow">Super Cluster of BSD on Rock64Pr</a></li>
<li>Madhukar - <a href="http://dpaste.com/0TWF1NB#wrap" rel="nofollow">Question</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></li>
</ul>

<hr>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0317.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Setting up buildbot in FreeBSD jails, Set up a mail server with OpenSMTPD, Dovecot and Rspamd, OpenBSD amateur packet radio with HamBSD, DragonFlyBSD&#39;s HAMMER2 gets fsck, return of startx for users.</p>

<h2>Headlines</h2>

<h3><a href="https://2019.eurobsdcon.org/" rel="nofollow">EuroBSDcon 2019 Recap</a></h3>

<blockquote>
<p>We’re back from EuroBSDcon in Lillehammer, Norway. It was a great conference with 212 people attending. 2 days of <a href="https://2019.eurobsdcon.org/tutorial-speakers/" rel="nofollow">tutorials</a>, parallel to the <a href="https://wiki.freebsd.org/DevSummit/201909" rel="nofollow">FreeBSD Devsummit</a>, followed by two days of <a href="https://2019.eurobsdcon.org/program/" rel="nofollow">talks</a>. Some speakers uploaded their slides to <a href="https://papers.freebsd.org/2019/eurobsdcon/" rel="nofollow">papers.freebsd.org</a> already with more to come.</p>

<p>The social event was also interesting. We visited an open air museum with building preserved from different time periods. In the older section they had a collection of farm buildings, a church originally built in the 1200s and relocated to the museum, and a school house. In the more modern area, they had houses from 1915, and each decade from 1930 to 1990, plus a “house of the future” as imagined in 2001. Many had open doors to allow you to tour the inside, and some were even “inhabited”. The latter fact gave a much more interactive experience and we could learn additional things about the history of that particular house. The town at the end included a general store, a post office, and more. Then, we all had a nice dinner together in the museum’s restaurant.</p>
</blockquote>

<ul>
<li>The opening keynote by Patricia Aas was very good. Her talk on embedded ethics, from her perspective as someone trying to defend the sanctity of Norwegian elections, and a former developer for the Opera web browser, provided a great deal of insight into the issues. Her points about how the tech community has unleashed a very complex digital work upon people with barely any technical literacy were well taken. Her stories of trying to explain the problems with involving computers in the election process to journalists and politicians struck a chord with many of us, who have had to deal with legislation written by those who do not truly understand the issues with technology.</li>
</ul>

<hr>

<h3><a href="https://andidog.de/blog/2018-04-22-buildbot-setup-freebsd-jails" rel="nofollow">Setting up buildbot in FreeBSD jails</a></h3>

<blockquote>
<p>In this article, I would like to present a tutorial to set up buildbot, a continuous integration (CI) software (like Jenkins, drone, etc.), making use of FreeBSD’s containerization mechanism &quot;jails&quot;. We will cover terminology, rationale for using both buildbot and jails together, and installation steps. At the end, you will have a working buildbot instance using its sample build configuration, ready to play around with your own CI plans (or even CD, it’s very flexible!). Some hints for production-grade installations are given, but the tutorial steps are meant for a test environment (namely a virtual machine). Buildbot’s configuration and detailed concepts are not in scope here.</p>
</blockquote>

<hr>

<h3><a href="https://poolp.org/posts/2019-09-14/setting-up-a-mail-server-with-opensmtpd-dovecot-and-rspamd/" rel="nofollow">Setting up a mail server with OpenSMTPD, Dovecot and Rspamd</a></h3>

<ul>
<li>Self-hosting and encouraging smaller providers is for the greater good</li>
</ul>

<blockquote>
<p>First of all, I was not clear enough about the political consequences of centralizing mail services at Big Mailer Corps.</p>

<p>It doesn’t make sense for Random Joe, sharing kitten pictures with his family and friends, to build a personal mail infrastructure when multiple Big Mailer Corps offer “for free” an amazing quality of service. They provide him with an e-mail address that is immediately available and which will generally work reliably. It really doesn’t make sense for Random Joe not to go there, and particularly if even techies go there without hesitation, proving it is a sound choice.</p>

<p>There is nothing wrong with Random Joes using a service that works.</p>

<p>What is terribly wrong though is the centralization of a communication protocol in the hands of a few commercial companies, EVERY SINGLE ONE OF THEM coming from the same country (currently led by a lunatic who abuses power and probably suffers from NPD), EVERY SINGLE ONE OF THEM having been in the news and/or in a court for random/assorted “unpleasant” behaviors (privacy abuses, eavesdropping, monopoly abuse, sexual or professional harassment, you just name it…), and EVERY SINGLE ONE OF THEM growing user bases that far exceeds the total population of multiple countries combined.</p>
</blockquote>

<hr>

<h2>News Roundup</h2>

<h3><a href="https://hambsd.org/" rel="nofollow">The HamBSD project aims to bring amateur packet radio to OpenBSD</a></h3>

<blockquote>
<p>The HamBSD project aims to bring amateur packet radio to OpenBSD, including support for TCP/IP over AX.25 and APRS tracking/digipeating in the base system.</p>

<p>HamBSD will not provide a full AX.25 stack but instead only implement support for UI frames. There will be a focus on simplicity, security and readable code.</p>

<p>The amateur radio community needs a reliable platform for packet radio for use in both leisure and emergency scenarios. It should be expected that the system is stable and resilient (but as yet it is neither).</p>
</blockquote>

<hr>

<h3><a href="https://www.dragonflydigest.com/2019/09/24/23540.html" rel="nofollow">DragonFlyBSD&#39;s HAMMER2 Gets Basic FSCK Support</a></h3>

<blockquote>
<p>HAMMER2 is Copy on Write, meaning changes are made to copies of existing data.  This means operations are generally atomic and can survive a power outage, etc.  (You should read up on it!)  However, there’s now a fsck command, useful if you want a report of data validity rather than any manual repair process.</p>
</blockquote>

<ul>
<li><a href="https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5554cc8b81fbfcfd347f50be3f3b1b9a54b871b" rel="nofollow">commit</a></li>
</ul>

<blockquote>
<p>Add initial fsck support for HAMMER2, although CoW fs doesn&#39;t require fsck as a concept. Currently no repairing (no write), just verifying. </p>

<p>Keep this as a separate command for now.<br>
<a href="https://i.redd.it/vkdss0mtdpo31.jpg" rel="nofollow">https://i.redd.it/vkdss0mtdpo31.jpg</a></p>

<hr>
</blockquote>

<h3><a href="http://undeadly.org/cgi?action=article;sid=20190917091236" rel="nofollow">The return of startx for users</a></h3>

<blockquote>
<p>Add modesetting driver as a fall-back when appropriate such that we can use it when running without root privileges which prevents us from scanning the PCI bus.</p>

<p>This makes startx(1)/xinit(1) work again on modern systems with inteldrm(4), radeondrm(4) and amdgpu(4).  In some cases this will result in using a different driver than with xenodm(4) which may expose issues (e.g. when we prefer the intel Xorg driver) or loss of acceleration (e.g. older cards supported by radeondrm(4)).</p>
</blockquote>

<hr>

<h2>Beastie Bits</h2>

<ul>
<li><a href="http://lists.nycbug.org:8080/pipermail/talk/2019-September/018046.html" rel="nofollow">Ori Bernstein will be giving the October talk at NYCBUG</a></li>
<li><a href="http://calagator.org/events/1250476200" rel="nofollow">BSD Pizza Night: 2019/09/26, 7–9PM, Portland, Oregon, USA</a></li>
<li><a href="http://knoxbug.org/2019-09-30" rel="nofollow">Nick Wolff : Home Lab Show &amp; Tell</a></li>
<li><a href="https://www.youtube.com/watch?v=eWkCjj4_xsk" rel="nofollow">Installing the Lumina Desktop in DragonflyBSD</a></li>
<li><a href="https://www.dragonflydigest.com/2019/09/20/23519.html" rel="nofollow">dhcpcd 8.0.6 added</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li>Bruce - <a href="http://dpaste.com/15ABRRB#wrap" rel="nofollow">FOSDEM videos</a></li>
<li>Lars - <a href="http://dpaste.com/1X9FEJJ" rel="nofollow">Super Cluster of BSD on Rock64Pr</a></li>
<li>Madhukar - <a href="http://dpaste.com/0TWF1NB#wrap" rel="nofollow">Question</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></li>
</ul>

<hr>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0317.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </itunes:summary>
</item>
<item>
  <title>310: My New Free NAS</title>
  <link>https://www.bsdnow.tv/310</link>
  <guid isPermaLink="false">11bc3886-8630-42e4-8ce6-a97cfce82f4d</guid>
  <pubDate>Wed, 07 Aug 2019 23:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/11bc3886-8630-42e4-8ce6-a97cfce82f4d.mp3" length="34679977" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>
OPNsense 19.7.1 is out, ZFS on Linux still has annoying issues with ARC size, Hammer2 is now default, NetBSD audio – an application perspective, new FreeNAS Mini, and more. </itunes:subtitle>
  <itunes:duration>48:09</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>OPNsense 19.7.1 is out, ZFS on Linux still has annoying issues with ARC size, Hammer2 is now default, NetBSD audio – an application perspective, new FreeNAS Mini, and more. 
Headlines
OPNsense 19.7.1 (https://opnsense.org/opnsense-19-7-1-released/)
We do not wish to keep you from enjoying your summer time, but this
is a recommended security update enriched with reliability fixes for the
new 19.7 series.  Of special note are performance improvements as well
as a fix for a longstanding NAT before IPsec limitation.
Full patch notes:
system: do not create automatic copies of existing gateways
system: do not translate empty tunables descriptions
system: remove unwanted form action tags
system: do not include Syslog-ng in rc.freebsd handler
system: fix manual system log stop/start/restart
system: scoped IPv6 "%" could confuse mwexecf(), use plain mwexec() instead
system: allow curl-based downloads to use both trusted and local authorities
system: fix group privilege print and correctly redirect after edit
system: use cached address list in referrer check
system: fix Syslog-ng search stats
firewall: HTML-escape dynamic entries to display aliases
firewall: display correct IP version in automatic rules
firewall: fix a warning while reading empty outbound rules configuration
firewall: skip illegal log lines in live log
interfaces: performance improvements for configurations with hundreds of interfaces
reporting: performance improvements for Python 3 NetFlow aggregator rewrite
dhcp: move advanced router advertisement options to correct config section
ipsec: replace global array access with function to ensure side-effect free boot
ipsec: change DPD action on start to "dpdaction = restart"
ipsec: remove already default "dpdaction = none" if not set
ipsec: use interface IP address in local ID when doing NAT before IPsec
web proxy: fix database reset for Squid 4 by replacing use of sslcrtd with securityfile_certgen
plugins: os-acme-client 1.24[1]
plugins: os-bind 1.6[2]
plugins: os-dnscrypt-proxy 1.5[3]
plugins: os-frr now restricts characters BGP prefix-list and route-maps[4]
plugins: os-google-cloud-sdk 1.0[5]
ports: curl 7.65.3[6]
ports: monit 5.26.0[7]
ports: openssh 8.0p1[8]
ports: php 7.2.20[9]
ports: python 3.7.4[10]
ports: sqlite 3.29.0[11]
ports: squid 4.8[12]
Stay safe and hydrated, Your OPNsense team
ZFS on Linux still has annoying issues with ARC size (https://utcc.utoronto.ca/~cks/space/blog/linux/ZFSOnLinuxARCShrinkage)
One of the frustrating things about operating ZFS on Linux is that the ARC size is critical but ZFS's auto-tuning of it is opaque and apparently prone to malfunctions, where your ARC will mysteriously shrink drastically and then stick there.
Linux's regular filesystem disk cache is very predictable; if you do disk IO, the cache will relentlessly grow to use all of your free memory. This sometimes disconcerts people when free reports that there's very little memory actually free, but at least you're getting value from your RAM. This is so reliable and regular that we generally don't think about 'is my system going to use all of my RAM as a disk cache', because the answer is always 'yes'. (The general filesystem cache is also called the page cache.)
This is unfortunately not the case with the ZFS ARC in ZFS on Linux (and it wasn't necessarily the case even on Solaris). ZFS has both a current size and a 'target size' for the ARC (called 'c' in ZFS statistics). When your system boots this target size starts out as the maximum allowed size for the ARC, but various events afterward can cause it to be reduced (which obviously limits the size of your ARC, since that's its purpose). In practice, this reduction in the target size is both pretty sticky and rather mysterious (as ZFS on Linux doesn't currently expose enough statistics to tell why your ARC target size shrunk in any particular case).
The net effect is that the ZFS ARC is not infrequently quite shy and hesitant about using memory, in stark contrast to Linux's normal filesystem cache. The default maximum ARC size starts out as only half of your RAM (unlike the regular filesystem cache, which will use all of it), and then it shrinks from there, sometimes very significantly, and once shrunk it only recovers slowly (if at all).
News Roundup
Hammer2 is now default (http://lists.dragonflybsd.org/pipermail/commits/2019-June/718989.html)
```
commit a49112761c919d42d405ec10252eb0553662c824
Author: Matthew Dillon 
Date:   Mon Jun 10 17:53:46 2019 -0700
installer - Default to HAMMER2

* Change the installer default from HAMMER1 to HAMMER2.

* Adjust the nrelease build to print the location of the image files
  when it finishes.
Summary of changes:
 nrelease/Makefile                          |  2 +-
 usr.sbin/installer/dfuibe_installer/flow.c | 20 ++++++++++----------
 2 files changed, 11 insertions(+), 11 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/a49112761c919d42d405ec10252eb0553662c824
```
NetBSD audio – an application perspective (https://netbsd.org/gallery/presentations/nia/netbsd-audio/)
NetBSD audio – an application perspective ... or, "doing it natively, because we can"
audio options for NetBSD in pkgsrc
Use NetBSD native audio (sun audio/audioio.h)
Or OSS emulation layer: Basically a wrapper around sun audio in the kernel. Incomplete and old version, but works for simple stuff
Many many abstraction layers available:
OpenAL-Soft
alsa-lib (config file required)
libao, GStreamer (plugins!)
PortAudio, SDL
PulseAudio, JACK
... lots more!? some obsolete stuff (esd, nas?)
Advantages of using NetBSD audio directly
Low latency, low CPU usage: Abstraction layers differ in latency (SDL2 vs ALSA/OpenAL)
Query device information: Is /dev/audio1 a USB microphone or another sound card?
Avoid bugs from excessive layering
Nice API, well documented: [nia note: I had no idea how to write audio code. I read a man page and now I do.]
Your code might work on illumos too
[nia note: SDL2 seems very sensitive to the blk_ms sysctl being high or low, with other implementations there seems to be a less noticable difference. I don't know why.]
New FreeNAS Mini (https://www.ixsystems.com/blog/new-freenas-mini-models-release-pr/)
Two new FreeNAS Mini systems join the very popular FreeNAS Mini and Mini XL:
FreeNAS Mini XL+: This powerful 10 Bay platform (8x 3.5” and 1x 2.5” hot-swap, 1x 2.5” internal) includes the latest, compact server technology and provides dual 10GbE ports, 8 CPU cores and 32 GB RAM for high performance workgroups. The Mini XL+ scales beyond 100TB and is ideal for very demanding applications, including hosting virtual machines and multimedia editing. Starting at $1499, the Mini XL+ configured with cache SSD and 80 TB capacity is $4299, and consumes about 100 Watts.
FreeNAS Mini E: This cost-effective 4 Bay platform provides the resources required for SOHO use with quad GbE ports and 8 GB of RAM. The Mini E is ideal for file sharing, streaming and transcoding video at 1080p. Starting at $749, the Mini E configured with 8 TB capacity is $999, and consumes about 36 Watts.
Beastie Bits
Welcome to NetBSD 9.99.1! (https://mail-index.netbsd.org/source-changes/2019/07/30/msg107671.html)
Berkeley smorgasbord — part II (http://blog.snailtext.com/posts/berkeley-smorgasbord-part-2.html)
dtracing postgres (https://www.youtube.com/watch?v=Brt41xnMZqo&amp;amp;list=PLuJmmKtsV1dOTmlImlD9U5j1P1rLxS2V8&amp;amp;index=20&amp;amp;t=0s)
Project Trident 19.07-U1 now available (https://project-trident.org/post/2019-07-30_19.07-u1_available/)
Need a Secure Operating System? Take a Look at OpenBSD (https://www.devprojournal.com/technology-trends/operating-systems/need-a-secure-operating-system-take-a-look-at-openbsd/)
Feedback/Questions
Jeff - OpenZFS Port Testing Feedback (http://dpaste.com/2AT7JGP#wrap)
Malcolm - Best Practices for Custom Ports (http://dpaste.com/1R170D7)
Michael - Little Correction (http://dpaste.com/0CERP6R)
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)

    
    Your browser does not support the HTML5 video tag.
 
</description>
  <itunes:keywords> freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, opnsense, zfs, arc, hammer2, audio, freenas, mini</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>OPNsense 19.7.1 is out, ZFS on Linux still has annoying issues with ARC size, Hammer2 is now default, NetBSD audio – an application perspective, new FreeNAS Mini, and more. </p>

<h2>Headlines</h2>

<h3><a href="https://opnsense.org/opnsense-19-7-1-released/" rel="nofollow">OPNsense 19.7.1</a></h3>

<blockquote>
<p>We do not wish to keep you from enjoying your summer time, but this<br>
is a recommended security update enriched with reliability fixes for the<br>
new 19.7 series.  Of special note are performance improvements as well<br>
as a fix for a longstanding NAT before IPsec limitation.</p>

<p>Full patch notes:</p>
</blockquote>

<ul>
<li>system: do not create automatic copies of existing gateways</li>
<li>system: do not translate empty tunables descriptions</li>
<li>system: remove unwanted form action tags</li>
<li>system: do not include Syslog-ng in rc.freebsd handler</li>
<li>system: fix manual system log stop/start/restart</li>
<li>system: scoped IPv6 &quot;%&quot; could confuse mwexecf(), use plain mwexec() instead</li>
<li>system: allow curl-based downloads to use both trusted and local authorities</li>
<li>system: fix group privilege print and correctly redirect after edit</li>
<li>system: use cached address list in referrer check</li>
<li>system: fix Syslog-ng search stats</li>
<li>firewall: HTML-escape dynamic entries to display aliases</li>
<li>firewall: display correct IP version in automatic rules</li>
<li>firewall: fix a warning while reading empty outbound rules configuration</li>
<li>firewall: skip illegal log lines in live log</li>
<li>interfaces: performance improvements for configurations with hundreds of interfaces</li>
<li>reporting: performance improvements for Python 3 NetFlow aggregator rewrite</li>
<li>dhcp: move advanced router advertisement options to correct config section</li>
<li>ipsec: replace global array access with function to ensure side-effect free boot</li>
<li>ipsec: change DPD action on start to &quot;dpdaction = restart&quot;</li>
<li>ipsec: remove already default &quot;dpdaction = none&quot; if not set</li>
<li>ipsec: use interface IP address in local ID when doing NAT before IPsec</li>
<li>web proxy: fix database reset for Squid 4 by replacing use of ssl_crtd with security_file_certgen</li>
<li>plugins: os-acme-client 1.24[1]</li>
<li>plugins: os-bind 1.6[2]</li>
<li>plugins: os-dnscrypt-proxy 1.5[3]</li>
<li>plugins: os-frr now restricts characters BGP prefix-list and route-maps[4]</li>
<li>plugins: os-google-cloud-sdk 1.0[5]</li>
<li>ports: curl 7.65.3[6]</li>
<li>ports: monit 5.26.0[7]</li>
<li>ports: openssh 8.0p1[8]</li>
<li>ports: php 7.2.20[9]</li>
<li>ports: python 3.7.4[10]</li>
<li>ports: sqlite 3.29.0[11]</li>
<li>ports: squid 4.8[12]</li>
</ul>

<blockquote>
<p>Stay safe and hydrated, Your OPNsense team</p>
</blockquote>

<hr>

<h3><a href="https://utcc.utoronto.ca/%7Ecks/space/blog/linux/ZFSOnLinuxARCShrinkage" rel="nofollow">ZFS on Linux still has annoying issues with ARC size</a></h3>

<p><code>One of the frustrating things about operating ZFS on Linux is that the ARC size is critical but ZFS&#39;s auto-tuning of it is opaque and apparently prone to malfunctions, where your ARC will mysteriously shrink drastically and then stick there.</code></p>

<blockquote>
<p>Linux&#39;s regular filesystem disk cache is very predictable; if you do disk IO, the cache will relentlessly grow to use all of your free memory. This sometimes disconcerts people when free reports that there&#39;s very little memory actually free, but at least you&#39;re getting value from your RAM. This is so reliable and regular that we generally don&#39;t think about &#39;is my system going to use all of my RAM as a disk cache&#39;, because the answer is always &#39;yes&#39;. (The general filesystem cache is also called the page cache.)</p>

<p>This is unfortunately not the case with the ZFS ARC in ZFS on Linux (and it wasn&#39;t necessarily the case even on Solaris). ZFS has both a current size and a &#39;target size&#39; for the ARC (called &#39;c&#39; in ZFS statistics). When your system boots this target size starts out as the maximum allowed size for the ARC, but various events afterward can cause it to be reduced (which obviously limits the size of your ARC, since that&#39;s its purpose). In practice, this reduction in the target size is both pretty sticky and rather mysterious (as ZFS on Linux doesn&#39;t currently expose enough statistics to tell why your ARC target size shrunk in any particular case).</p>

<p>The net effect is that the ZFS ARC is not infrequently quite shy and hesitant about using memory, in stark contrast to Linux&#39;s normal filesystem cache. The default maximum ARC size starts out as only half of your RAM (unlike the regular filesystem cache, which will use all of it), and then it shrinks from there, sometimes very significantly, and once shrunk it only recovers slowly (if at all).</p>
</blockquote>

<hr>

<h2>News Roundup</h2>

<h3><a href="http://lists.dragonflybsd.org/pipermail/commits/2019-June/718989.html" rel="nofollow">Hammer2 is now default</a></h3>

<pre><code>commit a49112761c919d42d405ec10252eb0553662c824
Author: Matthew Dillon &lt;dillon at apollo.backplane.com&gt;
Date:   Mon Jun 10 17:53:46 2019 -0700

    installer - Default to HAMMER2

    * Change the installer default from HAMMER1 to HAMMER2.

    * Adjust the nrelease build to print the location of the image files
      when it finishes.

Summary of changes:
 nrelease/Makefile                          |  2 +-
 usr.sbin/installer/dfuibe_installer/flow.c | 20 ++++++++++----------
 2 files changed, 11 insertions(+), 11 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/a49112761c919d42d405ec10252eb0553662c824
</code></pre>

<hr>

<h3><a href="https://netbsd.org/gallery/presentations/nia/netbsd-audio/" rel="nofollow">NetBSD audio – an application perspective</a></h3>

<blockquote>
<p>NetBSD audio – an application perspective ... or, &quot;doing it natively, because we can&quot;</p>
</blockquote>

<ul>
<li><p>audio options for NetBSD in pkgsrc</p>

<ul>
<li>Use NetBSD native audio (sun audio/audioio.h)</li>
<li>Or OSS emulation layer: Basically a wrapper around sun audio in the kernel. Incomplete and old version, but works for simple stuff</li>
</ul></li>
<li><p>Many many abstraction layers available:</p>

<ul>
<li>OpenAL-Soft</li>
<li>alsa-lib (config file required)</li>
<li>libao, GStreamer (plugins!)</li>
<li>PortAudio, SDL</li>
<li>PulseAudio, JACK</li>
<li>... lots more!? some obsolete stuff (esd, nas?)</li>
</ul></li>
<li><p>Advantages of using NetBSD audio directly</p>

<ul>
<li>Low latency, low CPU usage: Abstraction layers differ in latency (SDL2 vs ALSA/OpenAL)</li>
<li>Query device information: Is /dev/audio1 a USB microphone or another sound card?</li>
<li>Avoid bugs from excessive layering</li>
<li>Nice API, well documented: [nia note: I had no idea how to write audio code. I read a man page and now I do.]</li>
<li>Your code might work on illumos too</li>
</ul></li>
<li><p>[nia note: SDL2 seems very sensitive to the blk_ms sysctl being high or low, with other implementations there seems to be a less noticable difference. I don&#39;t know why.]</p></li>
</ul>

<hr>

<h3><a href="https://www.ixsystems.com/blog/new-freenas-mini-models-release-pr/" rel="nofollow">New FreeNAS Mini</a></h3>

<blockquote>
<p>Two new FreeNAS Mini systems join the very popular FreeNAS Mini and Mini XL:</p>

<p>FreeNAS Mini XL+: This powerful 10 Bay platform (8x 3.5” and 1x 2.5” hot-swap, 1x 2.5” internal) includes the latest, compact server technology and provides dual 10GbE ports, 8 CPU cores and 32 GB RAM for high performance workgroups. The Mini XL+ scales beyond 100TB and is ideal for very demanding applications, including hosting virtual machines and multimedia editing. Starting at $1499, the Mini XL+ configured with cache SSD and 80 TB capacity is $4299, and consumes about 100 Watts.</p>

<p>FreeNAS Mini E: This cost-effective 4 Bay platform provides the resources required for SOHO use with quad GbE ports and 8 GB of RAM. The Mini E is ideal for file sharing, streaming and transcoding video at 1080p. Starting at $749, the Mini E configured with 8 TB capacity is $999, and consumes about 36 Watts.</p>
</blockquote>

<hr>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://mail-index.netbsd.org/source-changes/2019/07/30/msg107671.html" rel="nofollow">Welcome to NetBSD 9.99.1!</a></li>
<li><a href="http://blog.snailtext.com/posts/berkeley-smorgasbord-part-2.html" rel="nofollow">Berkeley smorgasbord — part II</a></li>
<li><a href="https://www.youtube.com/watch?v=Brt41xnMZqo&list=PLuJmmKtsV1dOTmlImlD9U5j1P1rLxS2V8&index=20&t=0s" rel="nofollow">dtracing postgres</a></li>
<li><a href="https://project-trident.org/post/2019-07-30_19.07-u1_available/" rel="nofollow">Project Trident 19.07-U1 now available</a></li>
<li><a href="https://www.devprojournal.com/technology-trends/operating-systems/need-a-secure-operating-system-take-a-look-at-openbsd/" rel="nofollow">Need a Secure Operating System? Take a Look at OpenBSD</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li>Jeff - <a href="http://dpaste.com/2AT7JGP#wrap" rel="nofollow">OpenZFS Port Testing Feedback</a></li>
<li>Malcolm - <a href="http://dpaste.com/1R170D7" rel="nofollow">Best Practices for Custom Ports</a></li>
<li>Michael - <a href="http://dpaste.com/0CERP6R" rel="nofollow">Little Correction</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></li>
</ul>

<hr>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0310.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>OPNsense 19.7.1 is out, ZFS on Linux still has annoying issues with ARC size, Hammer2 is now default, NetBSD audio – an application perspective, new FreeNAS Mini, and more. </p>

<h2>Headlines</h2>

<h3><a href="https://opnsense.org/opnsense-19-7-1-released/" rel="nofollow">OPNsense 19.7.1</a></h3>

<blockquote>
<p>We do not wish to keep you from enjoying your summer time, but this<br>
is a recommended security update enriched with reliability fixes for the<br>
new 19.7 series.  Of special note are performance improvements as well<br>
as a fix for a longstanding NAT before IPsec limitation.</p>

<p>Full patch notes:</p>
</blockquote>

<ul>
<li>system: do not create automatic copies of existing gateways</li>
<li>system: do not translate empty tunables descriptions</li>
<li>system: remove unwanted form action tags</li>
<li>system: do not include Syslog-ng in rc.freebsd handler</li>
<li>system: fix manual system log stop/start/restart</li>
<li>system: scoped IPv6 &quot;%&quot; could confuse mwexecf(), use plain mwexec() instead</li>
<li>system: allow curl-based downloads to use both trusted and local authorities</li>
<li>system: fix group privilege print and correctly redirect after edit</li>
<li>system: use cached address list in referrer check</li>
<li>system: fix Syslog-ng search stats</li>
<li>firewall: HTML-escape dynamic entries to display aliases</li>
<li>firewall: display correct IP version in automatic rules</li>
<li>firewall: fix a warning while reading empty outbound rules configuration</li>
<li>firewall: skip illegal log lines in live log</li>
<li>interfaces: performance improvements for configurations with hundreds of interfaces</li>
<li>reporting: performance improvements for Python 3 NetFlow aggregator rewrite</li>
<li>dhcp: move advanced router advertisement options to correct config section</li>
<li>ipsec: replace global array access with function to ensure side-effect free boot</li>
<li>ipsec: change DPD action on start to &quot;dpdaction = restart&quot;</li>
<li>ipsec: remove already default &quot;dpdaction = none&quot; if not set</li>
<li>ipsec: use interface IP address in local ID when doing NAT before IPsec</li>
<li>web proxy: fix database reset for Squid 4 by replacing use of ssl_crtd with security_file_certgen</li>
<li>plugins: os-acme-client 1.24[1]</li>
<li>plugins: os-bind 1.6[2]</li>
<li>plugins: os-dnscrypt-proxy 1.5[3]</li>
<li>plugins: os-frr now restricts characters BGP prefix-list and route-maps[4]</li>
<li>plugins: os-google-cloud-sdk 1.0[5]</li>
<li>ports: curl 7.65.3[6]</li>
<li>ports: monit 5.26.0[7]</li>
<li>ports: openssh 8.0p1[8]</li>
<li>ports: php 7.2.20[9]</li>
<li>ports: python 3.7.4[10]</li>
<li>ports: sqlite 3.29.0[11]</li>
<li>ports: squid 4.8[12]</li>
</ul>

<blockquote>
<p>Stay safe and hydrated, Your OPNsense team</p>
</blockquote>

<hr>

<h3><a href="https://utcc.utoronto.ca/%7Ecks/space/blog/linux/ZFSOnLinuxARCShrinkage" rel="nofollow">ZFS on Linux still has annoying issues with ARC size</a></h3>

<p><code>One of the frustrating things about operating ZFS on Linux is that the ARC size is critical but ZFS&#39;s auto-tuning of it is opaque and apparently prone to malfunctions, where your ARC will mysteriously shrink drastically and then stick there.</code></p>

<blockquote>
<p>Linux&#39;s regular filesystem disk cache is very predictable; if you do disk IO, the cache will relentlessly grow to use all of your free memory. This sometimes disconcerts people when free reports that there&#39;s very little memory actually free, but at least you&#39;re getting value from your RAM. This is so reliable and regular that we generally don&#39;t think about &#39;is my system going to use all of my RAM as a disk cache&#39;, because the answer is always &#39;yes&#39;. (The general filesystem cache is also called the page cache.)</p>

<p>This is unfortunately not the case with the ZFS ARC in ZFS on Linux (and it wasn&#39;t necessarily the case even on Solaris). ZFS has both a current size and a &#39;target size&#39; for the ARC (called &#39;c&#39; in ZFS statistics). When your system boots this target size starts out as the maximum allowed size for the ARC, but various events afterward can cause it to be reduced (which obviously limits the size of your ARC, since that&#39;s its purpose). In practice, this reduction in the target size is both pretty sticky and rather mysterious (as ZFS on Linux doesn&#39;t currently expose enough statistics to tell why your ARC target size shrunk in any particular case).</p>

<p>The net effect is that the ZFS ARC is not infrequently quite shy and hesitant about using memory, in stark contrast to Linux&#39;s normal filesystem cache. The default maximum ARC size starts out as only half of your RAM (unlike the regular filesystem cache, which will use all of it), and then it shrinks from there, sometimes very significantly, and once shrunk it only recovers slowly (if at all).</p>
</blockquote>

<hr>

<h2>News Roundup</h2>

<h3><a href="http://lists.dragonflybsd.org/pipermail/commits/2019-June/718989.html" rel="nofollow">Hammer2 is now default</a></h3>

<pre><code>commit a49112761c919d42d405ec10252eb0553662c824
Author: Matthew Dillon &lt;dillon at apollo.backplane.com&gt;
Date:   Mon Jun 10 17:53:46 2019 -0700

    installer - Default to HAMMER2

    * Change the installer default from HAMMER1 to HAMMER2.

    * Adjust the nrelease build to print the location of the image files
      when it finishes.

Summary of changes:
 nrelease/Makefile                          |  2 +-
 usr.sbin/installer/dfuibe_installer/flow.c | 20 ++++++++++----------
 2 files changed, 11 insertions(+), 11 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/a49112761c919d42d405ec10252eb0553662c824
</code></pre>

<hr>

<h3><a href="https://netbsd.org/gallery/presentations/nia/netbsd-audio/" rel="nofollow">NetBSD audio – an application perspective</a></h3>

<blockquote>
<p>NetBSD audio – an application perspective ... or, &quot;doing it natively, because we can&quot;</p>
</blockquote>

<ul>
<li><p>audio options for NetBSD in pkgsrc</p>

<ul>
<li>Use NetBSD native audio (sun audio/audioio.h)</li>
<li>Or OSS emulation layer: Basically a wrapper around sun audio in the kernel. Incomplete and old version, but works for simple stuff</li>
</ul></li>
<li><p>Many many abstraction layers available:</p>

<ul>
<li>OpenAL-Soft</li>
<li>alsa-lib (config file required)</li>
<li>libao, GStreamer (plugins!)</li>
<li>PortAudio, SDL</li>
<li>PulseAudio, JACK</li>
<li>... lots more!? some obsolete stuff (esd, nas?)</li>
</ul></li>
<li><p>Advantages of using NetBSD audio directly</p>

<ul>
<li>Low latency, low CPU usage: Abstraction layers differ in latency (SDL2 vs ALSA/OpenAL)</li>
<li>Query device information: Is /dev/audio1 a USB microphone or another sound card?</li>
<li>Avoid bugs from excessive layering</li>
<li>Nice API, well documented: [nia note: I had no idea how to write audio code. I read a man page and now I do.]</li>
<li>Your code might work on illumos too</li>
</ul></li>
<li><p>[nia note: SDL2 seems very sensitive to the blk_ms sysctl being high or low, with other implementations there seems to be a less noticable difference. I don&#39;t know why.]</p></li>
</ul>

<hr>

<h3><a href="https://www.ixsystems.com/blog/new-freenas-mini-models-release-pr/" rel="nofollow">New FreeNAS Mini</a></h3>

<blockquote>
<p>Two new FreeNAS Mini systems join the very popular FreeNAS Mini and Mini XL:</p>

<p>FreeNAS Mini XL+: This powerful 10 Bay platform (8x 3.5” and 1x 2.5” hot-swap, 1x 2.5” internal) includes the latest, compact server technology and provides dual 10GbE ports, 8 CPU cores and 32 GB RAM for high performance workgroups. The Mini XL+ scales beyond 100TB and is ideal for very demanding applications, including hosting virtual machines and multimedia editing. Starting at $1499, the Mini XL+ configured with cache SSD and 80 TB capacity is $4299, and consumes about 100 Watts.</p>

<p>FreeNAS Mini E: This cost-effective 4 Bay platform provides the resources required for SOHO use with quad GbE ports and 8 GB of RAM. The Mini E is ideal for file sharing, streaming and transcoding video at 1080p. Starting at $749, the Mini E configured with 8 TB capacity is $999, and consumes about 36 Watts.</p>
</blockquote>

<hr>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://mail-index.netbsd.org/source-changes/2019/07/30/msg107671.html" rel="nofollow">Welcome to NetBSD 9.99.1!</a></li>
<li><a href="http://blog.snailtext.com/posts/berkeley-smorgasbord-part-2.html" rel="nofollow">Berkeley smorgasbord — part II</a></li>
<li><a href="https://www.youtube.com/watch?v=Brt41xnMZqo&list=PLuJmmKtsV1dOTmlImlD9U5j1P1rLxS2V8&index=20&t=0s" rel="nofollow">dtracing postgres</a></li>
<li><a href="https://project-trident.org/post/2019-07-30_19.07-u1_available/" rel="nofollow">Project Trident 19.07-U1 now available</a></li>
<li><a href="https://www.devprojournal.com/technology-trends/operating-systems/need-a-secure-operating-system-take-a-look-at-openbsd/" rel="nofollow">Need a Secure Operating System? Take a Look at OpenBSD</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li>Jeff - <a href="http://dpaste.com/2AT7JGP#wrap" rel="nofollow">OpenZFS Port Testing Feedback</a></li>
<li>Malcolm - <a href="http://dpaste.com/1R170D7" rel="nofollow">Best Practices for Custom Ports</a></li>
<li>Michael - <a href="http://dpaste.com/0CERP6R" rel="nofollow">Little Correction</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a></li>
</ul>

<hr>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0310.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </itunes:summary>
</item>
<item>
  <title>304: Prospering with Vulkan</title>
  <link>https://www.bsdnow.tv/304</link>
  <guid isPermaLink="false">6da25674-3858-4ebc-b4a5-257e1eefcbf4</guid>
  <pubDate>Thu, 27 Jun 2019 03:45:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/6da25674-3858-4ebc-b4a5-257e1eefcbf4.mp3" length="45762060" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>DragonflyBSD 5.6 is out, OpenBSD Vulkan Support, bad utmp implementations in glibc and FreeBSD, OpenSSH protects itself against Side Channel attacks, ZFS vs OpenZFS, and more.</itunes:subtitle>
  <itunes:duration>1:03:33</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>DragonflyBSD 5.6 is out, OpenBSD Vulkan Support, bad utmp implementations in glibc and FreeBSD, OpenSSH protects itself against Side Channel attacks, ZFS vs OpenZFS, and more.
Headlines
DragonflyBSD 5.6 is out (https://www.dragonflybsd.org/release56)
Version 5.6.0 released 17 June 2019
Version 5.6.1 released 19 June 2019 (https://www.dragonflydigest.com/2019/06/19/23091.html)
Big-ticket items
Improved VM
Informal test results showing the changes from 5.4 to 5.6 are available.
Reduce stalls in the kernel vmpagealloc() code (vmpagelist_find()).
Improve page allocation algorithm to avoid re-iterating the same queues as the search is widened.
Add a vmpagehash*() API that allows the kernel to do heuristical lockless lookups of VM pages.
Change vmhold() and vmunhold() semantics to not require any spin-locks.
Change vmpagewakeup() to not require any spin-locks.
Change wiring vm_page's no longer manipulates the queue the page is on, saving a lot of overhead. Instead, the page will be removed from its queue only if the pageout demon encounters it. This allows pages to enter and leave the buffer cache quickly.
Refactor the handling of fictitious pages.
Remove m-&amp;gt;md.pvlist entirely. VM pages in mappings no longer allocate pventry's, saving an enormous amount of memory when multiple processes utilize large shared memory maps (e.g. postgres database cache).
Refactor vmobject shadowing, disconnecting the backing linkages from the vmobject itself and instead organizing the linkages in a new structure called vmmapbacking which hangs off the vmmapentry.
pmap operations now iterate vmmapbacking structures (rather than spin-locked page lists based on the vmpage and pventry's), and will test/match operations against the PTE found in the pmap at the requisite location. This doubles VM fault performance on shared pages and reduces the locking overhead for fault and pmap operations.
Simplify the collapse code, removing most of the original code and replacing it with simpler per-vmmapentry optimizations to limit the shadow depth.
DRM
Major updates to the radeon and ttm (amd support code) drivers. We have not quite gotten the AMD support up to the more modern cards or Ryzen APUs yet, however.
Improve UEFI framebuffer support.
A major deadlock has been fixed in the radeon/ttm code.
Refactor the startup delay designed to avoid conflicts between the i915 driver initialization and X startup.
Add DRMIOCTLGET_PCIINFO to improve mesa/libdrm support.
Fix excessive wired memory build-ups.
Fix Linux/DragonFly PAGE_MASK confusion in the DRM code.
Fix idr_*() API bugs.
HAMMER2
The filesystem sync code has been rewritten to significantly improve performance.
Sequential write performance also improved.
Add simple dependency tracking to prevent directory/file splits during create/rename/remove operations, for better consistency after a crash.
Refactor the snapshot code to reduce flush latency and to ensure a consistent snapshot.
Attempt to pipeline the flush code against the frontend, improving flush vs frontend write concurrency.
Improve umount operation.
Fix an allocator race that could lead to corruption.
Numerous other bugs fixed.
Improve verbosity of CHECK (CRC error) console messages.
OpenBSD Vulkan Support (https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=OpenBSD-Vulkan-Support)
Somewhat surprisingly, OpenBSD has added the Vulkan library and ICD loader support as their newest port. 
This new graphics/vulkan-loader port provides the generic Vulkan library and ICD support that is the common code for Vulkan implementations on the system. This doesn't enable any Vulkan hardware drivers or provide something new not available elsewhere, but is rare seeing Vulkan work among the BSDs. There is also in ports the related components like the SPIR-V headers and tools, glsllang, and the Vulkan tools and validation layers. 
This is of limited usefulness, at least for the time being considering OpenBSD like the other BSDs lag behind in their DRM kernel driver support that is ported over from the mainline Linux kernel tree but generally years behind the kernel upstream. Particularly with Vulkan, newer kernel releases are needed for some Vulkan features as well as achieving decent performance. The Vulkan drivers of relevance are the open-source Intel ANV Vulkan driver and Radeon RADV drivers, both of which are in Mesa though we haven't seen any testing results to know how well they would work if at all currently on OpenBSD, but they're at least in Mesa and obviously open-source. 
+ A note: The BSDs are no longer that far behind.
+ FreeBSD 12.0 uses DRM from Linux 4.16 (April 2018), and the drm-devel port is based on Linux 5.0 (March 2019)
+ OpenBSD -current as of April 2019 uses DRM from Linux 4.19.34
News Roundup
Bad utmp implementations in glibc and freebsd (https://davmac.wordpress.com/2019/05/04/bad-utmp-implementations-in-glibc-and-freebsd/)
I recently released another version – 0.5.0 – of Dinit, the service manager / init system. There were a number of minor improvements, including to the build system (just running “make” or “gmake” should be enough on any of the systems which have a pre-defined configuration, no need to edit mconfig by hand), but the main features of the release were S6-compatible readiness notification, and support for updating the utmp database.
In other words, utmp is a record of who is currently logged in to the system (another file, “wtmp”, records all logins and logouts, as well as, potentially, certain system events such as reboots and time updates). This is a hint at the main motivation for having utmp support in Dinit – I wanted the “who” command to correctly report current logins (and I wanted boot time to be correctly recorded in the wtmp file).
I wondered: If the files consist of fixed-sized records, and are readable by regular users, how is consistency maintained? That is – how can a process ensure that, when it updates the database, it doesn’t conflict with another process also attempting to update the database at the same time? Similarly, how can a process reading an entry from the database be sure that it receives a consistent, full record and not a record which has been partially updated? (after all, POSIX allows that a write(2) call can return without having written all the requested bytes, and I’m not aware of Linux or any of the *BSDs documenting that this cannot happen for regular files). Clearly, some kind of locking is needed; a process that wants to write to or read from the database locks it first, performs its operation, and then unlocks the database. Once again, this happens under the hood, in the implementation of the getutent/pututline functions or their equivalents.
Then I wondered: if a user process is able to lock the utmp file, and this prevents updates, what’s to stop a user process from manually acquiring and then holding such a lock for a long – even practically infinite – duration? This would prevent the database from being updated, and would perhaps even prevent logins/logouts from completing. Unfortunately, the answer is – nothing; and yes, it is possible on different systems to prevent the database from being correctly updated or even to prevent all other users – including root – from logging in to the system.
+ A good find
+ On FreeBSD, even though write(2) can be asynchronous, once the write syscall returns, the data is in the buffer cache (or ARC), and any future read(2) will see that new data even if it has not yet been written to disk.
OpenSSH gets an update to protect against Side Channel attacks (https://securityboulevard.com/2019/06/openssh-code-gets-an-update-to-protect-against-side-channel-attacks/)
Last week, Damien Miller, a Google security researcher, and one of the popular OpenSSH and OpenBSD developers announced an update to the existing OpenSSH code that can help protect against the side-channel attacks that leak sensitive data from computer’s memory. This protection, Miller says, will protect the private keys residing in the RAM against Spectre, Meltdown, Rowhammer, and the latest RAMBleed attack.
SSH private keys can be used by malicious threat actors to connect to remote servers without the need of a password. According to CSO, “The approach used by OpenSSH could be copied by other software projects to protect their own keys and secrets in memory”.
However, if the attacker is successful in extracting the data from a computer or server’s RAM, they will only obtain an encrypted version of an SSH private key, rather than the cleartext version.
In an email to OpenBSD, Miller writes, “this change encrypts private keys when they are not in use with a symmetric key that is derived from a relatively large ‘prekey’ consisting of random data (currently 16KB).”
ZFS vs OpenZFS (https://www.ixsystems.com/blog/zfs-vs-openzfs/)
You’ve probably heard us say a mix of “ZFS” and “OpenZFS” and an explanation is long-overdue. 
From its inception, “ZFS” has referred to the “Zettabyte File System” developed at Sun Microsystems and published under the CDDL Open Source license in 2005 as part of the OpenSolaris operating system. ZFS was revolutionary for completely decoupling the file system from specialized storage hardware and even a specific computer platform. The portable nature and advanced features of ZFS led FreeBSD, Linux, and even Apple developers to start porting ZFS to their operating systems and by 2008, FreeBSD shipped with ZFS in the 7.0 release. For the first time, ZFS empowered users of any budget with enterprise-class scalability and data integrity and management features like checksumming, compression and snapshotting, and those features remain unrivaled at any price to this day. On any ZFS platform, administrators use the zpool and zfs utilities to configure and manage their storage devices and file systems respectively. Both commands employ a user-friendly syntax such as‘zfs create mypool/mydataset’ and I welcome you to watch the appropriately-titled webinar “Why we love ZFS &amp;amp; you should too” or try a completely-graphical ZFS experience with FreeNAS.
Oracle has steadily continued to develop its own proprietary branch of ZFS and Matt Ahrens points out that over 50% of the original OpenSolaris ZFS code has been replaced in OpenZFS with community contributions. This means that there are, sadly, two politically and technologically-incompatible branches of “ZFS” but fortunately, OpenZFS is orders of magnitude more popular thanks to its open nature. The two projects should be referred to as “Oracle ZFS” and “OpenZFS” to distinguish them as development efforts, but the user still types the ‘zfs’ command, which on FreeBSD relies on the ‘zfs.ko’ kernel module. My impression is that the terms of the CDDL license under which the OpenZFS branch of ZFS is published protects its users from any patent and trademark risks. Hopefully, this all helps you distinguish the OpenZFS project from the ZFS technology.
+ There was further discussion of how the ZFSOnLinux repo will become the OpenZFS repo in the future once it also contains the bits to build on FreeBSD as well during the June 25th ZFS Leadership Meeting. The videos for all of the meetings are available here (https://www.youtube.com/channel/UC0IK6Y4Go2KtRueHDiQcxow)
Beastie Bits
How to safely and portably close a file descriptor in a multithreaded process without running into problems with EINTR (https://twitter.com/cperciva/status/1141852451756105729?s=03)
KnoxBug Meetup June 27th at 6pm (http://knoxbug.org/2019-06-27)
BSD Pizza Night, June 27th at 7pm, Flying Pie Pizzeria, 3 Monroe Pkwy, Ste S, Lake Oswego, OR (https://www.flying-pie.com/locations/lake-oswego/)
Difference between $x and ${x} (https://moopost.blogspot.com/2019/06/difference-between-x-and-x.html)
Beware of Software Engineering Media Sites (https://www.nemil.com/on-software-engineering/beware-engineering-media.html)
How Verizon and a BGP optimizer knocked large parts of the internet offline today (https://blog.cloudflare.com/how-verizon-and-a-bgp-optimizer-knocked-large-parts-of-the-internet-offline-today/)
DragonflyBSD - MDS mitigation added a while ago (http://lists.dragonflybsd.org/pipermail/commits/2019-May/718899.html)
Reminder: Register for EuroBSDcon 2019 in Lillehammer, Norway (https://eurobsdcon.org)
Feedback/Questions
Dave - CheriBSD (http://dpaste.com/38233JC)
Neb - Hello from Norway (http://dpaste.com/0B8XKXT#wrap)
Lars - Ansible tutorial? (http://dpaste.com/3N85SHR)
Send questions, comments, show ideas/topics, or stories you want mentioned on the show to feedback@bsdnow.tv (mailto:feedback@bsdnow.tv)
***

    
    Your browser does not support the HTML5 video tag.
 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, vm, drm, hammer2, vulkan, openssh, zfs, openzfs,</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>DragonflyBSD 5.6 is out, OpenBSD Vulkan Support, bad utmp implementations in glibc and FreeBSD, OpenSSH protects itself against Side Channel attacks, ZFS vs OpenZFS, and more.</p>

<h2>Headlines</h2>

<h3><a href="https://www.dragonflybsd.org/release56" rel="nofollow">DragonflyBSD 5.6 is out</a></h3>

<ul>
<li>Version 5.6.0 released 17 June 2019</li>
<li><p><a href="https://www.dragonflydigest.com/2019/06/19/23091.html" rel="nofollow">Version 5.6.1 released 19 June 2019</a></p></li>
<li><p>Big-ticket items</p></li>
<li><p>Improved VM</p>

<ul>
<li>Informal test results showing the changes from 5.4 to 5.6 are available.</li>
<li>Reduce stalls in the kernel vm_page_alloc() code (vm_page_list_find()).</li>
<li>Improve page allocation algorithm to avoid re-iterating the same queues as the search is widened.</li>
<li>Add a vm_page_hash*() API that allows the kernel to do heuristical lockless lookups of VM pages.</li>
<li>Change vm_hold() and vm_unhold() semantics to not require any spin-locks.</li>
<li>Change vm_page_wakeup() to not require any spin-locks.</li>
<li>Change wiring vm_page&#39;s no longer manipulates the queue the page is on, saving a lot of overhead. Instead, the page will be removed from its queue only if the pageout demon encounters it. This allows pages to enter and leave the buffer cache quickly.</li>
<li>Refactor the handling of fictitious pages.</li>
<li>Remove m-&gt;md.pv_list entirely. VM pages in mappings no longer allocate pv_entry&#39;s, saving an enormous amount of memory when multiple processes utilize large shared memory maps (e.g. postgres database cache).</li>
<li>Refactor vm_object shadowing, disconnecting the backing linkages from the vm_object itself and instead organizing the linkages in a new structure called vm_map_backing which hangs off the vm_map_entry.</li>
<li>pmap operations now iterate vm_map_backing structures (rather than spin-locked page lists based on the vm_page and pv_entry&#39;s), and will test/match operations against the PTE found in the pmap at the requisite location. This doubles VM fault performance on shared pages and reduces the locking overhead for fault and pmap operations.</li>
<li>Simplify the collapse code, removing most of the original code and replacing it with simpler per-vm_map_entry optimizations to limit the shadow depth.</li>
</ul></li>
<li><p>DRM</p>

<ul>
<li>Major updates to the radeon and ttm (amd support code) drivers. We have not quite gotten the AMD support up to the more modern cards or Ryzen APUs yet, however.</li>
<li>Improve UEFI framebuffer support.</li>
<li>A major deadlock has been fixed in the radeon/ttm code.</li>
<li>Refactor the startup delay designed to avoid conflicts between the i915 driver initialization and X startup.</li>
<li>Add DRM_IOCTL_GET_PCIINFO to improve mesa/libdrm support.</li>
<li>Fix excessive wired memory build-ups.</li>
<li>Fix Linux/DragonFly PAGE_MASK confusion in the DRM code.</li>
<li>Fix idr_*() API bugs.</li>
</ul></li>
<li><p>HAMMER2</p>

<ul>
<li>The filesystem sync code has been rewritten to significantly improve performance.</li>
<li>Sequential write performance also improved.</li>
<li>Add simple dependency tracking to prevent directory/file splits during create/rename/remove operations, for better consistency after a crash.</li>
<li>Refactor the snapshot code to reduce flush latency and to ensure a consistent snapshot.</li>
<li>Attempt to pipeline the flush code against the frontend, improving flush vs frontend write concurrency.</li>
<li>Improve umount operation.</li>
<li>Fix an allocator race that could lead to corruption.</li>
<li>Numerous other bugs fixed.</li>
<li>Improve verbosity of CHECK (CRC error) console messages.</li>
</ul></li>
</ul>

<hr>

<h3><a href="https://www.phoronix.com/scan.php?page=news_item&px=OpenBSD-Vulkan-Support" rel="nofollow">OpenBSD Vulkan Support</a></h3>

<blockquote>
<p>Somewhat surprisingly, OpenBSD has added the Vulkan library and ICD loader support as their newest port. <br>
This new graphics/vulkan-loader port provides the generic Vulkan library and ICD support that is the common code for Vulkan implementations on the system. This doesn&#39;t enable any Vulkan hardware drivers or provide something new not available elsewhere, but is rare seeing Vulkan work among the BSDs. There is also in ports the related components like the SPIR-V headers and tools, glsllang, and the Vulkan tools and validation layers. <br>
This is of limited usefulness, at least for the time being considering OpenBSD like the other BSDs lag behind in their DRM kernel driver support that is ported over from the mainline Linux kernel tree but generally years behind the kernel upstream. Particularly with Vulkan, newer kernel releases are needed for some Vulkan features as well as achieving decent performance. The Vulkan drivers of relevance are the open-source Intel ANV Vulkan driver and Radeon RADV drivers, both of which are in Mesa though we haven&#39;t seen any testing results to know how well they would work if at all currently on OpenBSD, but they&#39;re at least in Mesa and obviously open-source. </p>

<ul>
<li>A note: The BSDs are no longer that far behind.</li>
<li>FreeBSD 12.0 uses DRM from Linux 4.16 (April 2018), and the drm-devel port is based on Linux 5.0 (March 2019)</li>
<li>OpenBSD -current as of April 2019 uses DRM from Linux 4.19.34
***</li>
</ul>
</blockquote>

<h2>News Roundup</h2>

<h3><a href="https://davmac.wordpress.com/2019/05/04/bad-utmp-implementations-in-glibc-and-freebsd/" rel="nofollow">Bad utmp implementations in glibc and freebsd</a></h3>

<blockquote>
<p>I recently released another version – 0.5.0 – of Dinit, the service manager / init system. There were a number of minor improvements, including to the build system (just running “make” or “gmake” should be enough on any of the systems which have a pre-defined configuration, no need to edit mconfig by hand), but the main features of the release were S6-compatible readiness notification, and support for updating the utmp database.<br>
In other words, utmp is a record of who is currently logged in to the system (another file, “wtmp”, records all logins and logouts, as well as, potentially, certain system events such as reboots and time updates). This is a hint at the main motivation for having utmp support in Dinit – I wanted the “who” command to correctly report current logins (and I wanted boot time to be correctly recorded in the wtmp file).<br>
I wondered: If the files consist of fixed-sized records, and are readable by regular users, how is consistency maintained? That is – how can a process ensure that, when it updates the database, it doesn’t conflict with another process also attempting to update the database at the same time? Similarly, how can a process reading an entry from the database be sure that it receives a consistent, full record and not a record which has been partially updated? (after all, POSIX allows that a write(2) call can return without having written all the requested bytes, and I’m not aware of Linux or any of the *BSDs documenting that this cannot happen for regular files). Clearly, some kind of locking is needed; a process that wants to write to or read from the database locks it first, performs its operation, and then unlocks the database. Once again, this happens under the hood, in the implementation of the getutent/pututline functions or their equivalents.<br>
Then I wondered: if a user process is able to lock the utmp file, and this prevents updates, what’s to stop a user process from manually acquiring and then holding such a lock for a long – even practically infinite – duration? This would prevent the database from being updated, and would perhaps even prevent logins/logouts from completing. Unfortunately, the answer is – nothing; and yes, it is possible on different systems to prevent the database from being correctly updated or even to prevent all other users – including root – from logging in to the system.</p>

<ul>
<li>A good find</li>
<li>On FreeBSD, even though write(2) can be asynchronous, once the write syscall returns, the data is in the buffer cache (or ARC), and any future read(2) will see that new data even if it has not yet been written to disk.
***</li>
</ul>
</blockquote>

<h3><a href="https://securityboulevard.com/2019/06/openssh-code-gets-an-update-to-protect-against-side-channel-attacks/" rel="nofollow">OpenSSH gets an update to protect against Side Channel attacks</a></h3>

<blockquote>
<p>Last week, Damien Miller, a Google security researcher, and one of the popular OpenSSH and OpenBSD developers announced an update to the existing OpenSSH code that can help protect against the side-channel attacks that leak sensitive data from computer’s memory. This protection, Miller says, will protect the private keys residing in the RAM against Spectre, Meltdown, Rowhammer, and the latest RAMBleed attack.<br>
SSH private keys can be used by malicious threat actors to connect to remote servers without the need of a password. According to CSO, “The approach used by OpenSSH could be copied by other software projects to protect their own keys and secrets in memory”.<br>
However, if the attacker is successful in extracting the data from a computer or server’s RAM, they will only obtain an encrypted version of an SSH private key, rather than the cleartext version.<br>
In an email to OpenBSD, Miller writes, “this change encrypts private keys when they are not in use with a symmetric key that is derived from a relatively large ‘prekey’ consisting of random data (currently 16KB).”</p>
</blockquote>

<hr>

<h3><a href="https://www.ixsystems.com/blog/zfs-vs-openzfs/" rel="nofollow">ZFS vs OpenZFS</a></h3>

<blockquote>
<p>You’ve probably heard us say a mix of “ZFS” and “OpenZFS” and an explanation is long-overdue. <br>
From its inception, “ZFS” has referred to the “Zettabyte File System” developed at Sun Microsystems and published under the CDDL Open Source license in 2005 as part of the OpenSolaris operating system. ZFS was revolutionary for completely decoupling the file system from specialized storage hardware and even a specific computer platform. The portable nature and advanced features of ZFS led FreeBSD, Linux, and even Apple developers to start porting ZFS to their operating systems and by 2008, FreeBSD shipped with ZFS in the 7.0 release. For the first time, ZFS empowered users of any budget with enterprise-class scalability and data integrity and management features like checksumming, compression and snapshotting, and those features remain unrivaled at any price to this day. On any ZFS platform, administrators use the zpool and zfs utilities to configure and manage their storage devices and file systems respectively. Both commands employ a user-friendly syntax such as‘zfs create mypool/mydataset’ and I welcome you to watch the appropriately-titled webinar “Why we love ZFS &amp; you should too” or try a completely-graphical ZFS experience with FreeNAS.<br>
Oracle has steadily continued to develop its own proprietary branch of ZFS and Matt Ahrens points out that over 50% of the original OpenSolaris ZFS code has been replaced in OpenZFS with community contributions. This means that there are, sadly, two politically and technologically-incompatible branches of “ZFS” but fortunately, OpenZFS is orders of magnitude more popular thanks to its open nature. The two projects should be referred to as “Oracle ZFS” and “OpenZFS” to distinguish them as development efforts, but the user still types the ‘zfs’ command, which on FreeBSD relies on the ‘zfs.ko’ kernel module. My impression is that the terms of the CDDL license under which the OpenZFS branch of ZFS is published protects its users from any patent and trademark risks. Hopefully, this all helps you distinguish the OpenZFS project from the ZFS technology.</p>

<ul>
<li>There was further discussion of how the ZFSOnLinux repo will become the OpenZFS repo in the future once it also contains the bits to build on FreeBSD as well during the June 25th ZFS Leadership Meeting. The videos for all of the meetings are available <a href="https://www.youtube.com/channel/UC0IK6Y4Go2KtRueHDiQcxow" rel="nofollow">here</a>
***</li>
</ul>
</blockquote>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://twitter.com/cperciva/status/1141852451756105729?s=03" rel="nofollow">How to safely and portably close a file descriptor in a multithreaded process without running into problems with EINTR</a></li>
<li><a href="http://knoxbug.org/2019-06-27" rel="nofollow">KnoxBug Meetup June 27th at 6pm</a></li>
<li><a href="https://www.flying-pie.com/locations/lake-oswego/" rel="nofollow">BSD Pizza Night, June 27th at 7pm, Flying Pie Pizzeria, 3 Monroe Pkwy, Ste S, Lake Oswego, OR</a></li>
<li><a href="https://moopost.blogspot.com/2019/06/difference-between-x-and-x.html" rel="nofollow">Difference between $x and ${x}</a></li>
<li><a href="https://www.nemil.com/on-software-engineering/beware-engineering-media.html" rel="nofollow">Beware of Software Engineering Media Sites</a></li>
<li><a href="https://blog.cloudflare.com/how-verizon-and-a-bgp-optimizer-knocked-large-parts-of-the-internet-offline-today/" rel="nofollow">How Verizon and a BGP optimizer knocked large parts of the internet offline today</a></li>
<li><a href="http://lists.dragonflybsd.org/pipermail/commits/2019-May/718899.html" rel="nofollow">DragonflyBSD - MDS mitigation added a while ago</a></li>
<li><a href="https://eurobsdcon.org" rel="nofollow">Reminder: Register for EuroBSDcon 2019 in Lillehammer, Norway</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li>Dave - <a href="http://dpaste.com/38233JC" rel="nofollow">CheriBSD</a></li>
<li>Neb - <a href="http://dpaste.com/0B8XKXT#wrap" rel="nofollow">Hello from Norway</a></li>
<li>Lars - <a href="http://dpaste.com/3N85SHR" rel="nofollow">Ansible tutorial?</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0304.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>DragonflyBSD 5.6 is out, OpenBSD Vulkan Support, bad utmp implementations in glibc and FreeBSD, OpenSSH protects itself against Side Channel attacks, ZFS vs OpenZFS, and more.</p>

<h2>Headlines</h2>

<h3><a href="https://www.dragonflybsd.org/release56" rel="nofollow">DragonflyBSD 5.6 is out</a></h3>

<ul>
<li>Version 5.6.0 released 17 June 2019</li>
<li><p><a href="https://www.dragonflydigest.com/2019/06/19/23091.html" rel="nofollow">Version 5.6.1 released 19 June 2019</a></p></li>
<li><p>Big-ticket items</p></li>
<li><p>Improved VM</p>

<ul>
<li>Informal test results showing the changes from 5.4 to 5.6 are available.</li>
<li>Reduce stalls in the kernel vm_page_alloc() code (vm_page_list_find()).</li>
<li>Improve page allocation algorithm to avoid re-iterating the same queues as the search is widened.</li>
<li>Add a vm_page_hash*() API that allows the kernel to do heuristical lockless lookups of VM pages.</li>
<li>Change vm_hold() and vm_unhold() semantics to not require any spin-locks.</li>
<li>Change vm_page_wakeup() to not require any spin-locks.</li>
<li>Change wiring vm_page&#39;s no longer manipulates the queue the page is on, saving a lot of overhead. Instead, the page will be removed from its queue only if the pageout demon encounters it. This allows pages to enter and leave the buffer cache quickly.</li>
<li>Refactor the handling of fictitious pages.</li>
<li>Remove m-&gt;md.pv_list entirely. VM pages in mappings no longer allocate pv_entry&#39;s, saving an enormous amount of memory when multiple processes utilize large shared memory maps (e.g. postgres database cache).</li>
<li>Refactor vm_object shadowing, disconnecting the backing linkages from the vm_object itself and instead organizing the linkages in a new structure called vm_map_backing which hangs off the vm_map_entry.</li>
<li>pmap operations now iterate vm_map_backing structures (rather than spin-locked page lists based on the vm_page and pv_entry&#39;s), and will test/match operations against the PTE found in the pmap at the requisite location. This doubles VM fault performance on shared pages and reduces the locking overhead for fault and pmap operations.</li>
<li>Simplify the collapse code, removing most of the original code and replacing it with simpler per-vm_map_entry optimizations to limit the shadow depth.</li>
</ul></li>
<li><p>DRM</p>

<ul>
<li>Major updates to the radeon and ttm (amd support code) drivers. We have not quite gotten the AMD support up to the more modern cards or Ryzen APUs yet, however.</li>
<li>Improve UEFI framebuffer support.</li>
<li>A major deadlock has been fixed in the radeon/ttm code.</li>
<li>Refactor the startup delay designed to avoid conflicts between the i915 driver initialization and X startup.</li>
<li>Add DRM_IOCTL_GET_PCIINFO to improve mesa/libdrm support.</li>
<li>Fix excessive wired memory build-ups.</li>
<li>Fix Linux/DragonFly PAGE_MASK confusion in the DRM code.</li>
<li>Fix idr_*() API bugs.</li>
</ul></li>
<li><p>HAMMER2</p>

<ul>
<li>The filesystem sync code has been rewritten to significantly improve performance.</li>
<li>Sequential write performance also improved.</li>
<li>Add simple dependency tracking to prevent directory/file splits during create/rename/remove operations, for better consistency after a crash.</li>
<li>Refactor the snapshot code to reduce flush latency and to ensure a consistent snapshot.</li>
<li>Attempt to pipeline the flush code against the frontend, improving flush vs frontend write concurrency.</li>
<li>Improve umount operation.</li>
<li>Fix an allocator race that could lead to corruption.</li>
<li>Numerous other bugs fixed.</li>
<li>Improve verbosity of CHECK (CRC error) console messages.</li>
</ul></li>
</ul>

<hr>

<h3><a href="https://www.phoronix.com/scan.php?page=news_item&px=OpenBSD-Vulkan-Support" rel="nofollow">OpenBSD Vulkan Support</a></h3>

<blockquote>
<p>Somewhat surprisingly, OpenBSD has added the Vulkan library and ICD loader support as their newest port. <br>
This new graphics/vulkan-loader port provides the generic Vulkan library and ICD support that is the common code for Vulkan implementations on the system. This doesn&#39;t enable any Vulkan hardware drivers or provide something new not available elsewhere, but is rare seeing Vulkan work among the BSDs. There is also in ports the related components like the SPIR-V headers and tools, glsllang, and the Vulkan tools and validation layers. <br>
This is of limited usefulness, at least for the time being considering OpenBSD like the other BSDs lag behind in their DRM kernel driver support that is ported over from the mainline Linux kernel tree but generally years behind the kernel upstream. Particularly with Vulkan, newer kernel releases are needed for some Vulkan features as well as achieving decent performance. The Vulkan drivers of relevance are the open-source Intel ANV Vulkan driver and Radeon RADV drivers, both of which are in Mesa though we haven&#39;t seen any testing results to know how well they would work if at all currently on OpenBSD, but they&#39;re at least in Mesa and obviously open-source. </p>

<ul>
<li>A note: The BSDs are no longer that far behind.</li>
<li>FreeBSD 12.0 uses DRM from Linux 4.16 (April 2018), and the drm-devel port is based on Linux 5.0 (March 2019)</li>
<li>OpenBSD -current as of April 2019 uses DRM from Linux 4.19.34
***</li>
</ul>
</blockquote>

<h2>News Roundup</h2>

<h3><a href="https://davmac.wordpress.com/2019/05/04/bad-utmp-implementations-in-glibc-and-freebsd/" rel="nofollow">Bad utmp implementations in glibc and freebsd</a></h3>

<blockquote>
<p>I recently released another version – 0.5.0 – of Dinit, the service manager / init system. There were a number of minor improvements, including to the build system (just running “make” or “gmake” should be enough on any of the systems which have a pre-defined configuration, no need to edit mconfig by hand), but the main features of the release were S6-compatible readiness notification, and support for updating the utmp database.<br>
In other words, utmp is a record of who is currently logged in to the system (another file, “wtmp”, records all logins and logouts, as well as, potentially, certain system events such as reboots and time updates). This is a hint at the main motivation for having utmp support in Dinit – I wanted the “who” command to correctly report current logins (and I wanted boot time to be correctly recorded in the wtmp file).<br>
I wondered: If the files consist of fixed-sized records, and are readable by regular users, how is consistency maintained? That is – how can a process ensure that, when it updates the database, it doesn’t conflict with another process also attempting to update the database at the same time? Similarly, how can a process reading an entry from the database be sure that it receives a consistent, full record and not a record which has been partially updated? (after all, POSIX allows that a write(2) call can return without having written all the requested bytes, and I’m not aware of Linux or any of the *BSDs documenting that this cannot happen for regular files). Clearly, some kind of locking is needed; a process that wants to write to or read from the database locks it first, performs its operation, and then unlocks the database. Once again, this happens under the hood, in the implementation of the getutent/pututline functions or their equivalents.<br>
Then I wondered: if a user process is able to lock the utmp file, and this prevents updates, what’s to stop a user process from manually acquiring and then holding such a lock for a long – even practically infinite – duration? This would prevent the database from being updated, and would perhaps even prevent logins/logouts from completing. Unfortunately, the answer is – nothing; and yes, it is possible on different systems to prevent the database from being correctly updated or even to prevent all other users – including root – from logging in to the system.</p>

<ul>
<li>A good find</li>
<li>On FreeBSD, even though write(2) can be asynchronous, once the write syscall returns, the data is in the buffer cache (or ARC), and any future read(2) will see that new data even if it has not yet been written to disk.
***</li>
</ul>
</blockquote>

<h3><a href="https://securityboulevard.com/2019/06/openssh-code-gets-an-update-to-protect-against-side-channel-attacks/" rel="nofollow">OpenSSH gets an update to protect against Side Channel attacks</a></h3>

<blockquote>
<p>Last week, Damien Miller, a Google security researcher, and one of the popular OpenSSH and OpenBSD developers announced an update to the existing OpenSSH code that can help protect against the side-channel attacks that leak sensitive data from computer’s memory. This protection, Miller says, will protect the private keys residing in the RAM against Spectre, Meltdown, Rowhammer, and the latest RAMBleed attack.<br>
SSH private keys can be used by malicious threat actors to connect to remote servers without the need of a password. According to CSO, “The approach used by OpenSSH could be copied by other software projects to protect their own keys and secrets in memory”.<br>
However, if the attacker is successful in extracting the data from a computer or server’s RAM, they will only obtain an encrypted version of an SSH private key, rather than the cleartext version.<br>
In an email to OpenBSD, Miller writes, “this change encrypts private keys when they are not in use with a symmetric key that is derived from a relatively large ‘prekey’ consisting of random data (currently 16KB).”</p>
</blockquote>

<hr>

<h3><a href="https://www.ixsystems.com/blog/zfs-vs-openzfs/" rel="nofollow">ZFS vs OpenZFS</a></h3>

<blockquote>
<p>You’ve probably heard us say a mix of “ZFS” and “OpenZFS” and an explanation is long-overdue. <br>
From its inception, “ZFS” has referred to the “Zettabyte File System” developed at Sun Microsystems and published under the CDDL Open Source license in 2005 as part of the OpenSolaris operating system. ZFS was revolutionary for completely decoupling the file system from specialized storage hardware and even a specific computer platform. The portable nature and advanced features of ZFS led FreeBSD, Linux, and even Apple developers to start porting ZFS to their operating systems and by 2008, FreeBSD shipped with ZFS in the 7.0 release. For the first time, ZFS empowered users of any budget with enterprise-class scalability and data integrity and management features like checksumming, compression and snapshotting, and those features remain unrivaled at any price to this day. On any ZFS platform, administrators use the zpool and zfs utilities to configure and manage their storage devices and file systems respectively. Both commands employ a user-friendly syntax such as‘zfs create mypool/mydataset’ and I welcome you to watch the appropriately-titled webinar “Why we love ZFS &amp; you should too” or try a completely-graphical ZFS experience with FreeNAS.<br>
Oracle has steadily continued to develop its own proprietary branch of ZFS and Matt Ahrens points out that over 50% of the original OpenSolaris ZFS code has been replaced in OpenZFS with community contributions. This means that there are, sadly, two politically and technologically-incompatible branches of “ZFS” but fortunately, OpenZFS is orders of magnitude more popular thanks to its open nature. The two projects should be referred to as “Oracle ZFS” and “OpenZFS” to distinguish them as development efforts, but the user still types the ‘zfs’ command, which on FreeBSD relies on the ‘zfs.ko’ kernel module. My impression is that the terms of the CDDL license under which the OpenZFS branch of ZFS is published protects its users from any patent and trademark risks. Hopefully, this all helps you distinguish the OpenZFS project from the ZFS technology.</p>

<ul>
<li>There was further discussion of how the ZFSOnLinux repo will become the OpenZFS repo in the future once it also contains the bits to build on FreeBSD as well during the June 25th ZFS Leadership Meeting. The videos for all of the meetings are available <a href="https://www.youtube.com/channel/UC0IK6Y4Go2KtRueHDiQcxow" rel="nofollow">here</a>
***</li>
</ul>
</blockquote>

<h2>Beastie Bits</h2>

<ul>
<li><a href="https://twitter.com/cperciva/status/1141852451756105729?s=03" rel="nofollow">How to safely and portably close a file descriptor in a multithreaded process without running into problems with EINTR</a></li>
<li><a href="http://knoxbug.org/2019-06-27" rel="nofollow">KnoxBug Meetup June 27th at 6pm</a></li>
<li><a href="https://www.flying-pie.com/locations/lake-oswego/" rel="nofollow">BSD Pizza Night, June 27th at 7pm, Flying Pie Pizzeria, 3 Monroe Pkwy, Ste S, Lake Oswego, OR</a></li>
<li><a href="https://moopost.blogspot.com/2019/06/difference-between-x-and-x.html" rel="nofollow">Difference between $x and ${x}</a></li>
<li><a href="https://www.nemil.com/on-software-engineering/beware-engineering-media.html" rel="nofollow">Beware of Software Engineering Media Sites</a></li>
<li><a href="https://blog.cloudflare.com/how-verizon-and-a-bgp-optimizer-knocked-large-parts-of-the-internet-offline-today/" rel="nofollow">How Verizon and a BGP optimizer knocked large parts of the internet offline today</a></li>
<li><a href="http://lists.dragonflybsd.org/pipermail/commits/2019-May/718899.html" rel="nofollow">DragonflyBSD - MDS mitigation added a while ago</a></li>
<li><a href="https://eurobsdcon.org" rel="nofollow">Reminder: Register for EuroBSDcon 2019 in Lillehammer, Norway</a></li>
</ul>

<hr>

<h2>Feedback/Questions</h2>

<ul>
<li>Dave - <a href="http://dpaste.com/38233JC" rel="nofollow">CheriBSD</a></li>
<li>Neb - <a href="http://dpaste.com/0B8XKXT#wrap" rel="nofollow">Hello from Norway</a></li>
<li>Lars - <a href="http://dpaste.com/3N85SHR" rel="nofollow">Ansible tutorial?</a></li>
</ul>

<hr>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv" rel="nofollow">feedback@bsdnow.tv</a>
***</li>
</ul>

<video controls preload="metadata" style=" width:426px;  height:240px;">
    <source src="http://201406.jb-dl.cdn.scaleengine.net/bsdnow/2019/bsd-0304.mp4" type="video/mp4">
    Your browser does not support the HTML5 video tag.
</video>]]>
  </itunes:summary>
</item>
<item>
  <title>Episode 274: Language: Assembly | BSD Now 274</title>
  <link>https://www.bsdnow.tv/274</link>
  <guid isPermaLink="false">http://feed.jupiter.zone/bsdnow#entry-2962</guid>
  <pubDate>Thu, 29 Nov 2018 02:00:00 -0500</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/64460b53-258b-484d-be91-f4b60eac299f.mp3" length="38828711" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Assembly language on OpenBSD, using bhyve for FreeBSD development, FreeBSD Gaming, FreeBSD for Thanksgiving, no space left on Dragonfly’s hammer2, and more.</itunes:subtitle>
  <itunes:duration>1:04:24</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Assembly language on OpenBSD, using bhyve for FreeBSD development, FreeBSD Gaming, FreeBSD for Thanksgiving, no space left on Dragonfly’s hammer2, and more.
&lt;p&gt;##Headlines&lt;br&gt;
&lt;a href="https://cryogenix.net/OpenBSD_assembly.html"&gt;Assembly language on OpenBSD amd64+arm64&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is a short introduction to assembly language programming on OpenBSD/amd64+arm64. Because of security features in the kernel, I have had to rethink a series of tutorials covering Aarch64 assembly language on OpenBSD, and therefore this will serve as a placeholder-cum-reminder.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;OpenBSD, like many UNIX and unix-like operating systems, now uses the Executable and Linkable Format (ELF) for its binary libraries and executables. Although the structure of this format is beyond the scope of this short introduction, it is necessary for me to explain part of one of the headers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Within the program header there are sections known as PT_NOTE that OpenBSD and other systems use to distinguish their ELF executables - OpenBSD looks for this section to check if it should attempt to execute the program or not.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Our first program: in C!&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;It’s often a good idea to prototype your assembly programs in a high level language such as C - it can then double up as both a set of notes and a working program that you can debug and compile into assembly language to compare with your own asm code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;See the article for the rest on:&lt;/li&gt;
&lt;li&gt;Our first program: in x86-64 Asm (AT&amp;amp;T/GAS syntax)&lt;/li&gt;
&lt;li&gt;Our first program: in inline x86-64 assembly&lt;/li&gt;
&lt;li&gt;Our first program: in x86-64 asm (NASM syntax)&lt;/li&gt;
&lt;li&gt;Our first program: in ARMv8 AArch64 assembly&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;###&lt;a href="https://bsdjhb.blogspot.com/2018/10/using-bhyve-for-freebsd-development.html"&gt;Using bhyve for FreeBSD Development&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Hypervisor&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;The bhyve hypervisor requires a 64-bit x86 processor with hardware support for virtualization.  This requirement allows for a simple, clean hypervisor implementation, but it does require a fairly recent&lt;br&gt;
processor.  The current hypervisor requires an Intel processor, but there is an active development branch with support for AMD processors.&lt;br&gt;
The hypervisor itself contains both user and kernel components.  The kernel driver is contained in the vmm.ko module and can be loaded either at boot from the boot loader or at runtime.  It must&lt;br&gt;
be loaded before any guests can be created.  When a guest is created, the kernel driver creates a device file in /dev/vmm which is used by the user programs to interact with the guest.&lt;br&gt;
The primary user component is the bhyve(8) program.  It constructs the emulated device tree in the guest and provides the implementation for most of the emulated devices.  It also calls the kernel driver to execute the guest.  Note that the guest always executes inside the driver itself, so guest execution time in the host is counted as system time in the bhyve process.&lt;br&gt;
Currently, bhyve does not provide a system firmware interface to the guest (neither BIOS nor UEFI).  Instead, a user program running on the host is used to perform boot time operations including loading the guest operating system kernel into the guest’s memory and setting the initial guest state so that the guest begins execution at the kernel’s entry point.  For FreeBSD guests, the bhyveload(8) program can be used to load the kernel and prepare the guest for execution.  Support for some other operating systems is available via the grub2-bhyve program which is available via the sysutils/grub2-bhyve port or as a prebuilt package.&lt;br&gt;
The bhyveload(8) program in FreeBSD 10.0 only supports 64-bit guests.  Support for 32-bit guests will be included in FreeBSD 10.1.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;See the article for the very technical breakdown of the following:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Network Setup&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Bridged Configuration&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Private Network with NAT&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using dnsmasq with a Private Network&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Running Guests via &lt;a href="http://vmrun.sh"&gt;vmrun.sh&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configuring Guests&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using a bhyve Guest as a Target&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Conclusion&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;The bhyve hypervisor is a nice addition to a FreeBSD developer’s toolbox.  Guests can be used both to develop new features and to test merges to stable branches.  The hypervisor has a wide variety of uses beyond developing FreeBSD as well.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;##News Roundup&lt;br&gt;
&lt;a href="https://oshogbo.vexillium.org/blog/58/"&gt;Games on FreeBSD&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What do all programmers like to do after work? Ok, what do most programers like to do after work? The answer is simple: play a good game! Recently at the Polish BSD User Group meetup mulander was telling us how you can play games on OpenBSD. Today let’s discuss how this looks in the FreeBSD world using the “server only” operating system.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;XNA based games&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;One of the ways of playing natively is to play indie games which use XNA. XNA is a framework from Microsoft which uses .NET, for creating games. Fortunately, in the BSD world we have Mono, an open source implementation of Microsoft’s .NET Framework which you can use to run games. There is also FNA framework which is a reimplementation of XNA which allows you to run the games under Linux. Thomas Frohwein, from OpenBSD, prepared a script, fnaify. Fnaify translate all dependencies used by an FNA game to OpenBSD dependencies.&lt;br&gt;
I decided to port the script to FreeBSD. The script is using /bin/sh which in the case of OpenBSD is a Korn Shell.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;I didn’t test it with many games, but I don’t see any reason why it shouldn’t work with all the games tested by the OpenBSD guys. For example, with:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Cryptark&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Rouge Legacy&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Apotheon&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Escape Goat&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Bastion&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;CrossCode&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Atom Zombie Smasher&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open-Source games&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;In FreeBSD and OpenBSD we also will find popular games which were open sourced. For example, I spend a lot of time playing in Quake 3 Arena on my FreeBSD machine. You can very simply install it using pkg: &lt;code&gt;# pkg install ioquake3&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Then move the files for the skins and maps to the .ioquake3 directory from your copy of Quake. In the past I also played UrbanTerror which is a fully open source shooter based on the Quake 3 Arena engine. It’s is also very easy to install it from ports: &lt;code&gt;# pkg install iourbanterror&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;In the ports tree in the games directory you can find over 1000 directories, many of them with fully implemented games. I didn’t test many games in this category, but you can find some interesting titles like:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;openxcom (Open-source re-implementation of the original X-Com)&lt;/li&gt;
&lt;li&gt;openjazz (Free re-implementation of the Jazz Jackrabbit™ game engine)&lt;/li&gt;
&lt;li&gt;corsixth (Open source re-implementation of Theme Hospital)&lt;/li&gt;
&lt;li&gt;quake2&lt;/li&gt;
&lt;li&gt;openra (Red Alert)&lt;/li&gt;
&lt;li&gt;openrct2 (Open source re-implementation of RollerCoaster Tycoon 2)&lt;/li&gt;
&lt;li&gt;openmw (Open source engine reimplementation of the game Morrowind)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;All those titles are simply installed through the packages. In that case I don’t think FreeBSD has any difference from OpenBSD.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Wine&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;One of the big advantages of FreeBSD over OpenBSD is that FreeBSD supports wine. Wine allows you to run Windows applications under other operating systems (including mac). If you are a FreeBSD 11 user, you can simply fetch wine from packages: &lt;code&gt;# pkg install i386-wine&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;To run Windows games, you need to have a 32-bit wine because most of the games on Windows are built on 32-bits (maybe this has changed – I don’t play so much these days). In my case, because I run FreeBSD-CURRENT I needed to build wine from ports. It wasn’t nice, but it also wasn’t unpleasant. The whole step-by-step building process of a wine from ports can be found here.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Summary&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;As you can see there are many titles available for *BSDs. Thanks to the FNA and fnaify, OpenBSD and FreeBSD can work with indie games which use the XNA framework. There are many interesting games implemented using this framework. Open source is not only for big server machines, and there are many re-implementations of popular games like Theme Hospital or RollerCoaster Tycoon 2. The biggest market is still enabled through wine, although its creates a lot of problems to run the games. Also, if you are an OpenBSD user only this option is not available for you. Please also note that we didn’t discuss any other emulators besides wine. In OpenBSD and FreeBSD there are many of them for GameBoy, SNES, NeoGeo and other games consoles.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;###&lt;a href="https://bwidawsk.net/blog/index.php/2018/11/freebsd-for-thanksgiving/"&gt;FreeBSD For Thanksgiving&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I’ve been working on FreeBSD for Intel for almost 6 months now. In the world of programmers, I am considered an old dog, and these 6 months have been all about learning new tricks. Luckily, I’ve found myself in a remarkably inclusive and receptive community whose patience seems plentiful. As I get ready to take some time off for the holidays, and move into that retrospective time of year, I thought I’d beat the rush a bit and update on the progress&lt;br&gt;
Earlier this year, I decided to move from architect of the Linux graphics driver into a more nebulous role of FreeBSD enabling. I was excited, but also uncertain if I was making the right decision.&lt;br&gt;
Earlier this half, I decided some general work in power management was highly important and began working there. I attended BSDCam (handsome guy on the right), and led a session on Power Management. I was honored to be able to lead this kind of effort.&lt;br&gt;
Earlier this quarter, I put the first round of my patches up for review, implementing suspend-to-idle. I have some rougher patches to handle s0ix support when suspending-to-idle. I gave a talk MeetBSD about our team’s work.&lt;br&gt;
Earlier this month, I noticed that FreeBSD doesn’t have an implementation for Intel Speed Shift (HWPstates), and I started working on that.&lt;br&gt;
Earlier this week, I was promoted from a lowly mentee committer to a full src committer.&lt;br&gt;
Earlier today, I decided to relegate my Linux laptop to the role of my backup machine, and I am writing this from my Dell XPS13 running FreeBSD&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;vandamme 13.0-CURRENT FreeBSD 13.0-CURRENT #45 881fee072ff(hwp)-dirty: Mon Nov 19 16:19:32 PST 2018 bwidawsk@vandamme:/usr/home/bwidawsk/usr/obj/usr/home/bwidawsk/usr/src/amd64.amd64/sys/DEVMACHINE amd64&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;6 months later, I feel a lot less uncertain about making the right decision. In fact, I think both opportunities would be great, and I’m thankful this Thanksgiving that this is my life and career. I have more plans and things I want to get done. I’m looking forward to being thankful again next year.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;###&lt;a href="https://www.garyshood.com/hammer2-space/"&gt;hammer2: no space left on device on Dragonfly BSD&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Issue&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;hammer2 does not actually delete a file when you rm or unlink it. Since recovery of the file is possible (this is the design of hammer2), there will still be an entry taking up data. It’s similar to how git works.&lt;br&gt;
Even with 75% usage listed here, the filesystem could still have filled up. If you are using it as your root filesystem, then attempts to clean up data may fail. If the kernel panics over this, you will see something like this.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;The Fix&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;If you have a recent enough version of the rescue ramdisk installed, on bootup you can press ‘r’ and access the rescue ramdisk. Your provider will have to offer some sort of remote interface for interacting with the operating system before it boots, like VNC or IPMI. You can then mount your filesystem using:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;[root@ ~]# mkdir /tmp/fs&lt;/code&gt;&lt;br&gt;
&lt;code&gt;[root@ ~]# mount_hammer2 -o local /dev/vbd0s1a /tmp/fs&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you receive an error that /sbin/hammer2 is not found, then your rescue ramdisk is not up to date enough. In that scenario, download the latest 5.2 iso from &lt;a href="http://dragonflybsd.org"&gt;dragonflybsd.org&lt;/a&gt; and boot from the cd-rom on your virtual machine or physical device. Just login as root instead of installer.&lt;br&gt;
If the mount does succeed, then all you have to do is run the following twice:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;[root@ ~]# /sbin/hammer2 bulkfree /tmp/fs&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you do not have enough memory on your machine, you may need to mount swap. Add your swap partition to the /etc/fstab and then do:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;[root@ ~]# swapon -a&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Once you have ran the bulkfree command twice, the usage reported by df -h will be correct. However, there is a chance on reboot that a core dump will be placed in /var/crash/ so be prepared to have plenty of space free in case that happens. You should also delete any files you can and run the bulkfree operation twice afterwards to clear up additional space.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;##Beastie Bits&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://dpaste.com/1S9NMZA"&gt;BSD Pizza Night - Portland&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dpaste.com/3T0AB7M"&gt;bsd@35c3: …the place for you…*NIX!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://project-trident.org/download/"&gt;Project Trident PreRelease Image now available&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dataswamp.org/~solene/2018-11-09-stardew-valley.html"&gt;Play Stardew Valley on OpenBSD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/charlesdaniels/gmixerctl"&gt;GUI Wrapper for OpenBSD mixerctl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/q5sys/qtv/"&gt;qtv - QuickTextViewer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;##Feedback/Questions&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ron - &lt;a href="http://dpaste.com/16XT6PQ#wrap"&gt;Ideas for feedback section&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Paulo - &lt;a href="http://dpaste.com/0BEE730"&gt;SDIO Firmware&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Dan - &lt;a href="http://dpaste.com/3Q7DERN#wrap"&gt;Some fun ZFS questions about labels&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;Send questions, comments, show ideas/topics, or stories you want mentioned on the show to &lt;a href="mailto:feedback@bsdnow.tv"&gt;feedback@bsdnow.tv&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt; 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, trident, hardenedbsd, tutorial, howto, guide, bsd, interview, gaming, assembly language, hammer2</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Assembly language on OpenBSD, using bhyve for FreeBSD development, FreeBSD Gaming, FreeBSD for Thanksgiving, no space left on Dragonfly’s hammer2, and more.</p>

<p>##Headlines<br>
###<a href="https://cryogenix.net/OpenBSD_assembly.html">Assembly language on OpenBSD amd64+arm64</a></p>

<blockquote>
<p>This is a short introduction to assembly language programming on OpenBSD/amd64+arm64. Because of security features in the kernel, I have had to rethink a series of tutorials covering Aarch64 assembly language on OpenBSD, and therefore this will serve as a placeholder-cum-reminder.</p>
</blockquote>

<blockquote>
<p>OpenBSD, like many UNIX and unix-like operating systems, now uses the Executable and Linkable Format (ELF) for its binary libraries and executables. Although the structure of this format is beyond the scope of this short introduction, it is necessary for me to explain part of one of the headers.</p>
</blockquote>

<blockquote>
<p>Within the program header there are sections known as PT_NOTE that OpenBSD and other systems use to distinguish their ELF executables - OpenBSD looks for this section to check if it should attempt to execute the program or not.</p>
</blockquote>

<ul>
<li>Our first program: in C!</li>
</ul>

<blockquote>
<p>It’s often a good idea to prototype your assembly programs in a high level language such as C - it can then double up as both a set of notes and a working program that you can debug and compile into assembly language to compare with your own asm code.</p>
</blockquote>

<ul>
<li>See the article for the rest on:</li>
<li>Our first program: in x86-64 Asm (AT&amp;T/GAS syntax)</li>
<li>Our first program: in inline x86-64 assembly</li>
<li>Our first program: in x86-64 asm (NASM syntax)</li>
<li>Our first program: in ARMv8 AArch64 assembly</li>
</ul>

<p><hr></p>

<p>###<a href="https://bsdjhb.blogspot.com/2018/10/using-bhyve-for-freebsd-development.html">Using bhyve for FreeBSD Development</a></p>

<ul>
<li>The Hypervisor</li>
</ul>

<blockquote>
<p>The bhyve hypervisor requires a 64-bit x86 processor with hardware support for virtualization.  This requirement allows for a simple, clean hypervisor implementation, but it does require a fairly recent<br>
processor.  The current hypervisor requires an Intel processor, but there is an active development branch with support for AMD processors.<br>
The hypervisor itself contains both user and kernel components.  The kernel driver is contained in the vmm.ko module and can be loaded either at boot from the boot loader or at runtime.  It must<br>
be loaded before any guests can be created.  When a guest is created, the kernel driver creates a device file in /dev/vmm which is used by the user programs to interact with the guest.<br>
The primary user component is the bhyve(8) program.  It constructs the emulated device tree in the guest and provides the implementation for most of the emulated devices.  It also calls the kernel driver to execute the guest.  Note that the guest always executes inside the driver itself, so guest execution time in the host is counted as system time in the bhyve process.<br>
Currently, bhyve does not provide a system firmware interface to the guest (neither BIOS nor UEFI).  Instead, a user program running on the host is used to perform boot time operations including loading the guest operating system kernel into the guest’s memory and setting the initial guest state so that the guest begins execution at the kernel’s entry point.  For FreeBSD guests, the bhyveload(8) program can be used to load the kernel and prepare the guest for execution.  Support for some other operating systems is available via the grub2-bhyve program which is available via the sysutils/grub2-bhyve port or as a prebuilt package.<br>
The bhyveload(8) program in FreeBSD 10.0 only supports 64-bit guests.  Support for 32-bit guests will be included in FreeBSD 10.1.</p>
</blockquote>

<ul>
<li>
<p>See the article for the very technical breakdown of the following:</p>
</li>
<li>
<p>Network Setup</p>
</li>
<li>
<p>Bridged Configuration</p>
</li>
<li>
<p>Private Network with NAT</p>
</li>
<li>
<p>Using dnsmasq with a Private Network</p>
</li>
<li>
<p>Running Guests via <a href="http://vmrun.sh">vmrun.sh</a></p>
</li>
<li>
<p>Configuring Guests</p>
</li>
<li>
<p>Using a bhyve Guest as a Target</p>
</li>
<li>
<p>Conclusion</p>
</li>
</ul>

<blockquote>
<p>The bhyve hypervisor is a nice addition to a FreeBSD developer’s toolbox.  Guests can be used both to develop new features and to test merges to stable branches.  The hypervisor has a wide variety of uses beyond developing FreeBSD as well.</p>
</blockquote>

<p><hr></p>

<p>##News Roundup<br>
###<a href="https://oshogbo.vexillium.org/blog/58/">Games on FreeBSD</a></p>

<blockquote>
<p>What do all programmers like to do after work? Ok, what do most programers like to do after work? The answer is simple: play a good game! Recently at the Polish BSD User Group meetup mulander was telling us how you can play games on OpenBSD. Today let’s discuss how this looks in the FreeBSD world using the “server only” operating system.</p>
</blockquote>

<ul>
<li>XNA based games</li>
</ul>

<blockquote>
<p>One of the ways of playing natively is to play indie games which use XNA. XNA is a framework from Microsoft which uses .NET, for creating games. Fortunately, in the BSD world we have Mono, an open source implementation of Microsoft’s .NET Framework which you can use to run games. There is also FNA framework which is a reimplementation of XNA which allows you to run the games under Linux. Thomas Frohwein, from OpenBSD, prepared a script, fnaify. Fnaify translate all dependencies used by an FNA game to OpenBSD dependencies.<br>
I decided to port the script to FreeBSD. The script is using /bin/sh which in the case of OpenBSD is a Korn Shell.</p>
</blockquote>

<blockquote>
<p>I didn’t test it with many games, but I don’t see any reason why it shouldn’t work with all the games tested by the OpenBSD guys. For example, with:</p>
</blockquote>

<ul>
<li>
<p>Cryptark</p>
</li>
<li>
<p>Rouge Legacy</p>
</li>
<li>
<p>Apotheon</p>
</li>
<li>
<p>Escape Goat</p>
</li>
<li>
<p>Bastion</p>
</li>
<li>
<p>CrossCode</p>
</li>
<li>
<p>Atom Zombie Smasher</p>
</li>
<li>
<p>Open-Source games</p>
</li>
</ul>

<blockquote>
<p>In FreeBSD and OpenBSD we also will find popular games which were open sourced. For example, I spend a lot of time playing in Quake 3 Arena on my FreeBSD machine. You can very simply install it using pkg: <code># pkg install ioquake3</code></p>
</blockquote>

<blockquote>
<p>Then move the files for the skins and maps to the .ioquake3 directory from your copy of Quake. In the past I also played UrbanTerror which is a fully open source shooter based on the Quake 3 Arena engine. It’s is also very easy to install it from ports: <code># pkg install iourbanterror</code></p>
</blockquote>

<blockquote>
<p>In the ports tree in the games directory you can find over 1000 directories, many of them with fully implemented games. I didn’t test many games in this category, but you can find some interesting titles like:</p>
</blockquote>

<ul>
<li>openxcom (Open-source re-implementation of the original X-Com)</li>
<li>openjazz (Free re-implementation of the Jazz Jackrabbit™ game engine)</li>
<li>corsixth (Open source re-implementation of Theme Hospital)</li>
<li>quake2</li>
<li>openra (Red Alert)</li>
<li>openrct2 (Open source re-implementation of RollerCoaster Tycoon 2)</li>
<li>openmw (Open source engine reimplementation of the game Morrowind)</li>
</ul>

<blockquote>
<p>All those titles are simply installed through the packages. In that case I don’t think FreeBSD has any difference from OpenBSD.</p>
</blockquote>

<ul>
<li>Wine</li>
</ul>

<blockquote>
<p>One of the big advantages of FreeBSD over OpenBSD is that FreeBSD supports wine. Wine allows you to run Windows applications under other operating systems (including mac). If you are a FreeBSD 11 user, you can simply fetch wine from packages: <code># pkg install i386-wine</code></p>
</blockquote>

<blockquote>
<p>To run Windows games, you need to have a 32-bit wine because most of the games on Windows are built on 32-bits (maybe this has changed – I don’t play so much these days). In my case, because I run FreeBSD-CURRENT I needed to build wine from ports. It wasn’t nice, but it also wasn’t unpleasant. The whole step-by-step building process of a wine from ports can be found here.</p>
</blockquote>

<ul>
<li>Summary</li>
</ul>

<blockquote>
<p>As you can see there are many titles available for *BSDs. Thanks to the FNA and fnaify, OpenBSD and FreeBSD can work with indie games which use the XNA framework. There are many interesting games implemented using this framework. Open source is not only for big server machines, and there are many re-implementations of popular games like Theme Hospital or RollerCoaster Tycoon 2. The biggest market is still enabled through wine, although its creates a lot of problems to run the games. Also, if you are an OpenBSD user only this option is not available for you. Please also note that we didn’t discuss any other emulators besides wine. In OpenBSD and FreeBSD there are many of them for GameBoy, SNES, NeoGeo and other games consoles.</p>
</blockquote>

<p><hr></p>

<p>###<a href="https://bwidawsk.net/blog/index.php/2018/11/freebsd-for-thanksgiving/">FreeBSD For Thanksgiving</a></p>

<blockquote>
<p>I’ve been working on FreeBSD for Intel for almost 6 months now. In the world of programmers, I am considered an old dog, and these 6 months have been all about learning new tricks. Luckily, I’ve found myself in a remarkably inclusive and receptive community whose patience seems plentiful. As I get ready to take some time off for the holidays, and move into that retrospective time of year, I thought I’d beat the rush a bit and update on the progress<br>
Earlier this year, I decided to move from architect of the Linux graphics driver into a more nebulous role of FreeBSD enabling. I was excited, but also uncertain if I was making the right decision.<br>
Earlier this half, I decided some general work in power management was highly important and began working there. I attended BSDCam (handsome guy on the right), and led a session on Power Management. I was honored to be able to lead this kind of effort.<br>
Earlier this quarter, I put the first round of my patches up for review, implementing suspend-to-idle. I have some rougher patches to handle s0ix support when suspending-to-idle. I gave a talk MeetBSD about our team’s work.<br>
Earlier this month, I noticed that FreeBSD doesn’t have an implementation for Intel Speed Shift (HWPstates), and I started working on that.<br>
Earlier this week, I was promoted from a lowly mentee committer to a full src committer.<br>
Earlier today, I decided to relegate my Linux laptop to the role of my backup machine, and I am writing this from my Dell XPS13 running FreeBSD</p>
</blockquote>

<p><code>vandamme 13.0-CURRENT FreeBSD 13.0-CURRENT #45 881fee072ff(hwp)-dirty: Mon Nov 19 16:19:32 PST 2018 bwidawsk@vandamme:/usr/home/bwidawsk/usr/obj/usr/home/bwidawsk/usr/src/amd64.amd64/sys/DEVMACHINE amd64</code></p>

<blockquote>
<p>6 months later, I feel a lot less uncertain about making the right decision. In fact, I think both opportunities would be great, and I’m thankful this Thanksgiving that this is my life and career. I have more plans and things I want to get done. I’m looking forward to being thankful again next year.</p>
</blockquote>

<p><hr></p>

<p>###<a href="https://www.garyshood.com/hammer2-space/">hammer2: no space left on device on Dragonfly BSD</a></p>

<ul>
<li>The Issue</li>
</ul>

<blockquote>
<p>hammer2 does not actually delete a file when you rm or unlink it. Since recovery of the file is possible (this is the design of hammer2), there will still be an entry taking up data. It’s similar to how git works.<br>
Even with 75% usage listed here, the filesystem could still have filled up. If you are using it as your root filesystem, then attempts to clean up data may fail. If the kernel panics over this, you will see something like this.</p>
</blockquote>

<ul>
<li>The Fix</li>
</ul>

<blockquote>
<p>If you have a recent enough version of the rescue ramdisk installed, on bootup you can press ‘r’ and access the rescue ramdisk. Your provider will have to offer some sort of remote interface for interacting with the operating system before it boots, like VNC or IPMI. You can then mount your filesystem using:</p>
</blockquote>

<p><code>[root@ ~]# mkdir /tmp/fs</code><br>
<code>[root@ ~]# mount_hammer2 -o local /dev/vbd0s1a /tmp/fs</code></p>

<blockquote>
<p>If you receive an error that /sbin/hammer2 is not found, then your rescue ramdisk is not up to date enough. In that scenario, download the latest 5.2 iso from <a href="http://dragonflybsd.org">dragonflybsd.org</a> and boot from the cd-rom on your virtual machine or physical device. Just login as root instead of installer.<br>
If the mount does succeed, then all you have to do is run the following twice:</p>
</blockquote>

<p><code>[root@ ~]# /sbin/hammer2 bulkfree /tmp/fs</code></p>

<blockquote>
<p>If you do not have enough memory on your machine, you may need to mount swap. Add your swap partition to the /etc/fstab and then do:</p>
</blockquote>

<p><code>[root@ ~]# swapon -a</code></p>

<blockquote>
<p>Once you have ran the bulkfree command twice, the usage reported by df -h will be correct. However, there is a chance on reboot that a core dump will be placed in /var/crash/ so be prepared to have plenty of space free in case that happens. You should also delete any files you can and run the bulkfree operation twice afterwards to clear up additional space.</p>
</blockquote>

<p><hr></p>

<p>##Beastie Bits</p>

<ul>
<li><a href="http://dpaste.com/1S9NMZA">BSD Pizza Night - Portland</a></li>
<li><a href="http://dpaste.com/3T0AB7M">bsd@35c3: …the place for you…*NIX!</a></li>
<li><a href="http://project-trident.org/download/">Project Trident PreRelease Image now available</a></li>
<li><a href="https://dataswamp.org/~solene/2018-11-09-stardew-valley.html">Play Stardew Valley on OpenBSD</a></li>
<li><a href="https://github.com/charlesdaniels/gmixerctl">GUI Wrapper for OpenBSD mixerctl</a></li>
<li><a href="https://github.com/q5sys/qtv/">qtv - QuickTextViewer</a></li>
</ul>

<p><hr></p>

<p>##Feedback/Questions</p>

<ul>
<li>Ron - <a href="http://dpaste.com/16XT6PQ#wrap">Ideas for feedback section</a></li>
<li>Paulo - <a href="http://dpaste.com/0BEE730">SDIO Firmware</a></li>
<li>Dan - <a href="http://dpaste.com/3Q7DERN#wrap">Some fun ZFS questions about labels</a></li>
</ul>

<p><hr></p>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li>
</ul>

<p><hr></p>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Assembly language on OpenBSD, using bhyve for FreeBSD development, FreeBSD Gaming, FreeBSD for Thanksgiving, no space left on Dragonfly’s hammer2, and more.</p>

<p>##Headlines<br>
###<a href="https://cryogenix.net/OpenBSD_assembly.html">Assembly language on OpenBSD amd64+arm64</a></p>

<blockquote>
<p>This is a short introduction to assembly language programming on OpenBSD/amd64+arm64. Because of security features in the kernel, I have had to rethink a series of tutorials covering Aarch64 assembly language on OpenBSD, and therefore this will serve as a placeholder-cum-reminder.</p>
</blockquote>

<blockquote>
<p>OpenBSD, like many UNIX and unix-like operating systems, now uses the Executable and Linkable Format (ELF) for its binary libraries and executables. Although the structure of this format is beyond the scope of this short introduction, it is necessary for me to explain part of one of the headers.</p>
</blockquote>

<blockquote>
<p>Within the program header there are sections known as PT_NOTE that OpenBSD and other systems use to distinguish their ELF executables - OpenBSD looks for this section to check if it should attempt to execute the program or not.</p>
</blockquote>

<ul>
<li>Our first program: in C!</li>
</ul>

<blockquote>
<p>It’s often a good idea to prototype your assembly programs in a high level language such as C - it can then double up as both a set of notes and a working program that you can debug and compile into assembly language to compare with your own asm code.</p>
</blockquote>

<ul>
<li>See the article for the rest on:</li>
<li>Our first program: in x86-64 Asm (AT&amp;T/GAS syntax)</li>
<li>Our first program: in inline x86-64 assembly</li>
<li>Our first program: in x86-64 asm (NASM syntax)</li>
<li>Our first program: in ARMv8 AArch64 assembly</li>
</ul>

<p><hr></p>

<p>###<a href="https://bsdjhb.blogspot.com/2018/10/using-bhyve-for-freebsd-development.html">Using bhyve for FreeBSD Development</a></p>

<ul>
<li>The Hypervisor</li>
</ul>

<blockquote>
<p>The bhyve hypervisor requires a 64-bit x86 processor with hardware support for virtualization.  This requirement allows for a simple, clean hypervisor implementation, but it does require a fairly recent<br>
processor.  The current hypervisor requires an Intel processor, but there is an active development branch with support for AMD processors.<br>
The hypervisor itself contains both user and kernel components.  The kernel driver is contained in the vmm.ko module and can be loaded either at boot from the boot loader or at runtime.  It must<br>
be loaded before any guests can be created.  When a guest is created, the kernel driver creates a device file in /dev/vmm which is used by the user programs to interact with the guest.<br>
The primary user component is the bhyve(8) program.  It constructs the emulated device tree in the guest and provides the implementation for most of the emulated devices.  It also calls the kernel driver to execute the guest.  Note that the guest always executes inside the driver itself, so guest execution time in the host is counted as system time in the bhyve process.<br>
Currently, bhyve does not provide a system firmware interface to the guest (neither BIOS nor UEFI).  Instead, a user program running on the host is used to perform boot time operations including loading the guest operating system kernel into the guest’s memory and setting the initial guest state so that the guest begins execution at the kernel’s entry point.  For FreeBSD guests, the bhyveload(8) program can be used to load the kernel and prepare the guest for execution.  Support for some other operating systems is available via the grub2-bhyve program which is available via the sysutils/grub2-bhyve port or as a prebuilt package.<br>
The bhyveload(8) program in FreeBSD 10.0 only supports 64-bit guests.  Support for 32-bit guests will be included in FreeBSD 10.1.</p>
</blockquote>

<ul>
<li>
<p>See the article for the very technical breakdown of the following:</p>
</li>
<li>
<p>Network Setup</p>
</li>
<li>
<p>Bridged Configuration</p>
</li>
<li>
<p>Private Network with NAT</p>
</li>
<li>
<p>Using dnsmasq with a Private Network</p>
</li>
<li>
<p>Running Guests via <a href="http://vmrun.sh">vmrun.sh</a></p>
</li>
<li>
<p>Configuring Guests</p>
</li>
<li>
<p>Using a bhyve Guest as a Target</p>
</li>
<li>
<p>Conclusion</p>
</li>
</ul>

<blockquote>
<p>The bhyve hypervisor is a nice addition to a FreeBSD developer’s toolbox.  Guests can be used both to develop new features and to test merges to stable branches.  The hypervisor has a wide variety of uses beyond developing FreeBSD as well.</p>
</blockquote>

<p><hr></p>

<p>##News Roundup<br>
###<a href="https://oshogbo.vexillium.org/blog/58/">Games on FreeBSD</a></p>

<blockquote>
<p>What do all programmers like to do after work? Ok, what do most programers like to do after work? The answer is simple: play a good game! Recently at the Polish BSD User Group meetup mulander was telling us how you can play games on OpenBSD. Today let’s discuss how this looks in the FreeBSD world using the “server only” operating system.</p>
</blockquote>

<ul>
<li>XNA based games</li>
</ul>

<blockquote>
<p>One of the ways of playing natively is to play indie games which use XNA. XNA is a framework from Microsoft which uses .NET, for creating games. Fortunately, in the BSD world we have Mono, an open source implementation of Microsoft’s .NET Framework which you can use to run games. There is also FNA framework which is a reimplementation of XNA which allows you to run the games under Linux. Thomas Frohwein, from OpenBSD, prepared a script, fnaify. Fnaify translate all dependencies used by an FNA game to OpenBSD dependencies.<br>
I decided to port the script to FreeBSD. The script is using /bin/sh which in the case of OpenBSD is a Korn Shell.</p>
</blockquote>

<blockquote>
<p>I didn’t test it with many games, but I don’t see any reason why it shouldn’t work with all the games tested by the OpenBSD guys. For example, with:</p>
</blockquote>

<ul>
<li>
<p>Cryptark</p>
</li>
<li>
<p>Rouge Legacy</p>
</li>
<li>
<p>Apotheon</p>
</li>
<li>
<p>Escape Goat</p>
</li>
<li>
<p>Bastion</p>
</li>
<li>
<p>CrossCode</p>
</li>
<li>
<p>Atom Zombie Smasher</p>
</li>
<li>
<p>Open-Source games</p>
</li>
</ul>

<blockquote>
<p>In FreeBSD and OpenBSD we also will find popular games which were open sourced. For example, I spend a lot of time playing in Quake 3 Arena on my FreeBSD machine. You can very simply install it using pkg: <code># pkg install ioquake3</code></p>
</blockquote>

<blockquote>
<p>Then move the files for the skins and maps to the .ioquake3 directory from your copy of Quake. In the past I also played UrbanTerror which is a fully open source shooter based on the Quake 3 Arena engine. It’s is also very easy to install it from ports: <code># pkg install iourbanterror</code></p>
</blockquote>

<blockquote>
<p>In the ports tree in the games directory you can find over 1000 directories, many of them with fully implemented games. I didn’t test many games in this category, but you can find some interesting titles like:</p>
</blockquote>

<ul>
<li>openxcom (Open-source re-implementation of the original X-Com)</li>
<li>openjazz (Free re-implementation of the Jazz Jackrabbit™ game engine)</li>
<li>corsixth (Open source re-implementation of Theme Hospital)</li>
<li>quake2</li>
<li>openra (Red Alert)</li>
<li>openrct2 (Open source re-implementation of RollerCoaster Tycoon 2)</li>
<li>openmw (Open source engine reimplementation of the game Morrowind)</li>
</ul>

<blockquote>
<p>All those titles are simply installed through the packages. In that case I don’t think FreeBSD has any difference from OpenBSD.</p>
</blockquote>

<ul>
<li>Wine</li>
</ul>

<blockquote>
<p>One of the big advantages of FreeBSD over OpenBSD is that FreeBSD supports wine. Wine allows you to run Windows applications under other operating systems (including mac). If you are a FreeBSD 11 user, you can simply fetch wine from packages: <code># pkg install i386-wine</code></p>
</blockquote>

<blockquote>
<p>To run Windows games, you need to have a 32-bit wine because most of the games on Windows are built on 32-bits (maybe this has changed – I don’t play so much these days). In my case, because I run FreeBSD-CURRENT I needed to build wine from ports. It wasn’t nice, but it also wasn’t unpleasant. The whole step-by-step building process of a wine from ports can be found here.</p>
</blockquote>

<ul>
<li>Summary</li>
</ul>

<blockquote>
<p>As you can see there are many titles available for *BSDs. Thanks to the FNA and fnaify, OpenBSD and FreeBSD can work with indie games which use the XNA framework. There are many interesting games implemented using this framework. Open source is not only for big server machines, and there are many re-implementations of popular games like Theme Hospital or RollerCoaster Tycoon 2. The biggest market is still enabled through wine, although its creates a lot of problems to run the games. Also, if you are an OpenBSD user only this option is not available for you. Please also note that we didn’t discuss any other emulators besides wine. In OpenBSD and FreeBSD there are many of them for GameBoy, SNES, NeoGeo and other games consoles.</p>
</blockquote>

<p><hr></p>

<p>###<a href="https://bwidawsk.net/blog/index.php/2018/11/freebsd-for-thanksgiving/">FreeBSD For Thanksgiving</a></p>

<blockquote>
<p>I’ve been working on FreeBSD for Intel for almost 6 months now. In the world of programmers, I am considered an old dog, and these 6 months have been all about learning new tricks. Luckily, I’ve found myself in a remarkably inclusive and receptive community whose patience seems plentiful. As I get ready to take some time off for the holidays, and move into that retrospective time of year, I thought I’d beat the rush a bit and update on the progress<br>
Earlier this year, I decided to move from architect of the Linux graphics driver into a more nebulous role of FreeBSD enabling. I was excited, but also uncertain if I was making the right decision.<br>
Earlier this half, I decided some general work in power management was highly important and began working there. I attended BSDCam (handsome guy on the right), and led a session on Power Management. I was honored to be able to lead this kind of effort.<br>
Earlier this quarter, I put the first round of my patches up for review, implementing suspend-to-idle. I have some rougher patches to handle s0ix support when suspending-to-idle. I gave a talk MeetBSD about our team’s work.<br>
Earlier this month, I noticed that FreeBSD doesn’t have an implementation for Intel Speed Shift (HWPstates), and I started working on that.<br>
Earlier this week, I was promoted from a lowly mentee committer to a full src committer.<br>
Earlier today, I decided to relegate my Linux laptop to the role of my backup machine, and I am writing this from my Dell XPS13 running FreeBSD</p>
</blockquote>

<p><code>vandamme 13.0-CURRENT FreeBSD 13.0-CURRENT #45 881fee072ff(hwp)-dirty: Mon Nov 19 16:19:32 PST 2018 bwidawsk@vandamme:/usr/home/bwidawsk/usr/obj/usr/home/bwidawsk/usr/src/amd64.amd64/sys/DEVMACHINE amd64</code></p>

<blockquote>
<p>6 months later, I feel a lot less uncertain about making the right decision. In fact, I think both opportunities would be great, and I’m thankful this Thanksgiving that this is my life and career. I have more plans and things I want to get done. I’m looking forward to being thankful again next year.</p>
</blockquote>

<p><hr></p>

<p>###<a href="https://www.garyshood.com/hammer2-space/">hammer2: no space left on device on Dragonfly BSD</a></p>

<ul>
<li>The Issue</li>
</ul>

<blockquote>
<p>hammer2 does not actually delete a file when you rm or unlink it. Since recovery of the file is possible (this is the design of hammer2), there will still be an entry taking up data. It’s similar to how git works.<br>
Even with 75% usage listed here, the filesystem could still have filled up. If you are using it as your root filesystem, then attempts to clean up data may fail. If the kernel panics over this, you will see something like this.</p>
</blockquote>

<ul>
<li>The Fix</li>
</ul>

<blockquote>
<p>If you have a recent enough version of the rescue ramdisk installed, on bootup you can press ‘r’ and access the rescue ramdisk. Your provider will have to offer some sort of remote interface for interacting with the operating system before it boots, like VNC or IPMI. You can then mount your filesystem using:</p>
</blockquote>

<p><code>[root@ ~]# mkdir /tmp/fs</code><br>
<code>[root@ ~]# mount_hammer2 -o local /dev/vbd0s1a /tmp/fs</code></p>

<blockquote>
<p>If you receive an error that /sbin/hammer2 is not found, then your rescue ramdisk is not up to date enough. In that scenario, download the latest 5.2 iso from <a href="http://dragonflybsd.org">dragonflybsd.org</a> and boot from the cd-rom on your virtual machine or physical device. Just login as root instead of installer.<br>
If the mount does succeed, then all you have to do is run the following twice:</p>
</blockquote>

<p><code>[root@ ~]# /sbin/hammer2 bulkfree /tmp/fs</code></p>

<blockquote>
<p>If you do not have enough memory on your machine, you may need to mount swap. Add your swap partition to the /etc/fstab and then do:</p>
</blockquote>

<p><code>[root@ ~]# swapon -a</code></p>

<blockquote>
<p>Once you have ran the bulkfree command twice, the usage reported by df -h will be correct. However, there is a chance on reboot that a core dump will be placed in /var/crash/ so be prepared to have plenty of space free in case that happens. You should also delete any files you can and run the bulkfree operation twice afterwards to clear up additional space.</p>
</blockquote>

<p><hr></p>

<p>##Beastie Bits</p>

<ul>
<li><a href="http://dpaste.com/1S9NMZA">BSD Pizza Night - Portland</a></li>
<li><a href="http://dpaste.com/3T0AB7M">bsd@35c3: …the place for you…*NIX!</a></li>
<li><a href="http://project-trident.org/download/">Project Trident PreRelease Image now available</a></li>
<li><a href="https://dataswamp.org/~solene/2018-11-09-stardew-valley.html">Play Stardew Valley on OpenBSD</a></li>
<li><a href="https://github.com/charlesdaniels/gmixerctl">GUI Wrapper for OpenBSD mixerctl</a></li>
<li><a href="https://github.com/q5sys/qtv/">qtv - QuickTextViewer</a></li>
</ul>

<p><hr></p>

<p>##Feedback/Questions</p>

<ul>
<li>Ron - <a href="http://dpaste.com/16XT6PQ#wrap">Ideas for feedback section</a></li>
<li>Paulo - <a href="http://dpaste.com/0BEE730">SDIO Firmware</a></li>
<li>Dan - <a href="http://dpaste.com/3Q7DERN#wrap">Some fun ZFS questions about labels</a></li>
</ul>

<p><hr></p>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li>
</ul>

<p><hr></p>]]>
  </itunes:summary>
</item>
<item>
  <title>Episode 248: Show Me The Mooney | BSD Now 248</title>
  <link>https://www.bsdnow.tv/248</link>
  <guid isPermaLink="false">http://feed.jupiter.zone/bsdnow#entry-2016</guid>
  <pubDate>Tue, 29 May 2018 14:30:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/a0ea5b3c-e781-499e-bfa4-cee1d550f915.mp3" length="62803024" type="audio/mp3"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>DragonflyBSD release 5.2.1 is here, BPF kernel exploit writeup, Remote Debugging the running OpenBSD kernel, interview with Patrick Mooney, FreeBSD buildbot setup in a jail, dumping your USB, and 5 years of gaming on FreeBSD.</itunes:subtitle>
  <itunes:duration>1:44:33</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>DragonflyBSD release 5.2.1 is here, BPF kernel exploit writeup, Remote Debugging the running OpenBSD kernel, interview with Patrick Mooney, FreeBSD buildbot setup in a jail, dumping your USB, and 5 years of gaming on FreeBSD.
&lt;h2&gt;Headlines&lt;/h2&gt;
&lt;h3&gt;&lt;a href="https://www.dragonflybsd.org/release52/"&gt;DragonFlyBSD: release52 (w/stable HAMMER2, as default root)&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;DragonflyBSD 5.2.1 was released on May 21, 2018&lt;/li&gt;
&lt;li&gt;&amp;gt; Big Ticket items:


&lt;blockquote&gt;
  Meltdown and Spectre mitigation support
  Meltdown isolation and spectre mitigation support added. Meltdown mitigation is automatically enabled for all Intel cpus. Spectre mitigation must be enabled manually via sysctl if desired, using sysctls machdep.spectre&lt;em&gt;mitigation and machdep.meltdown&lt;/em&gt;mitigation.
  HAMMER2
  H2 has received a very large number of bug fixes and performance improvements. We can now recommend H2 as the default root filesystem in non-clustered mode.
  Clustered support is not yet available.
  ipfw Updates
  Implement state based "redirect", i.e. without using libalias.
  ipfw now supports all possible ICMP types.
  Fix ICMP&lt;em&gt;MAXTYPE assumptions (now 40 as of this release).
  Improved graphics support
  The drm/i915 kernel driver has been updated to support Intel Coffeelake GPUs
  Add 24-bit pixel format support to the EFI frame buffer code.
  Significantly improve fbio support for the "scfb" XOrg driver. This allows EFI frame buffers to be used by X in situations where we do not otherwise support the GPU.
  Partly implement the FBIO&lt;/em&gt;BLANK ioctl for display powersaving.
  Syscons waits for drm modesetting at appropriate places, avoiding races.&lt;/blockquote&gt;
&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr&gt;


&lt;h3&gt;&lt;a href="https://github.com/Cryptogenic/Exploit-Writeups/blob/master/FreeBSD/PS4%204.55%20BPF%20Race%20Condition%20Kernel%20Exploit%20Writeup.md"&gt;PS4 4.55 BPF Race Condition Kernel Exploit Writeup&lt;/a&gt;&lt;/h3&gt;



&lt;blockquote&gt;
  &lt;p&gt;Note: While this bug is primarily interesting for exploitation on the PS4, this bug can also potentially be exploited on other unpatched platforms using FreeBSD if the attacker has read/write permissions on /dev/bpf, or if they want to escalate from root user to kernel code execution. As such, I've published it under the "FreeBSD" folder and not the "PS4" folder.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;Welcome to the kernel portion of the PS4 4.55FW full exploit chain write-up. This bug was found by qwerty, and is fairly unique in the way it's exploited, so I wanted to do a detailed write-up on how it worked. The full source of the exploit can be found &lt;a href="https://github.com/Cryptogenic/PS4-4.55-Kernel-Exploit"&gt;here&lt;/a&gt;. I've previously covered the webkit exploit implementation for userland access &lt;a href="https://github.com/Cryptogenic/Exploit-Writeups/blob/master/WebKit/setAttributeNodeNS%20UAF%20Write-up.md"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;FreeBSD or Sony's fault? Why not both...&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;Interestingly, this bug is actually a FreeBSD bug and was not (at least directly) introduced by Sony code. While this is a FreeBSD bug however, it's not very useful for most systems because the /dev/bpf device driver is root-owned, and the permissions for it are set to 0600 (meaning owner has read/write privileges, and nobody else does) - though it can be used for escalating from root to kernel mode code execution. However, let’s take a look at the make_dev() call inside the PS4 kernel for /dev/bpf (taken from a 4.05 kernel dump).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;
seg000:FFFFFFFFA181F15B                 lea     rdi, unk_FFFFFFFFA2D77640
seg000:FFFFFFFFA181F162                 lea     r9, aBpf        ; "bpf"
seg000:FFFFFFFFA181F169                 mov     esi, 0
seg000:FFFFFFFFA181F16E                 mov     edx, 0
seg000:FFFFFFFFA181F173                 xor     ecx, ecx
seg000:FFFFFFFFA181F175                 mov     r8d, 1B6h
seg000:FFFFFFFFA181F17B                 xor     eax, eax
seg000:FFFFFFFFA181F17D                 mov     cs:qword_FFFFFFFFA34EC770, 0
seg000:FFFFFFFFA181F188                 call    make_dev
&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;We see UID 0 (the UID for the root user) getting moved into the register for the 3rd argument, which is the owner argument. However, the permissions bits are being set to 0x1B6, which in octal is 0666. This means anyone can open /dev/bpf with read/write privileges. I’m not sure why this is the case, qwerty speculates that perhaps bpf is used for LAN gaming. In any case, this was a poor design decision because bpf is usually considered privileged, and should not be accessible to a process that is completely untrusted, such as WebKit. On most platforms, permissions for /dev/bpf will be set to 0x180, or 0600.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Race Conditions - What are they?&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;The class of the bug abused in this exploit is known as a "race condition". Before we get into bug specifics, it's important for the reader to understand what race conditions are and how they can be an issue (especially in something like a kernel). Often in complex software (such as a kernel), resources will be shared (or "global"). This means other threads could potentially execute code that will access some resource that could be accessed by another thread at the same point in time. What happens if one thread accesses this resource while another thread does without exclusive access? Race conditions are introduced.&lt;/p&gt;
  
  &lt;p&gt;Race conditions are defined as possible scenarios where events happen in a sequence different than the developer intended which leads to undefined behavior. In simple, single-threaded programs, this is not an issue because execution is linear. In more complex programs where code can be running in parallel however, this becomes a real issue. To prevent these problems, atomic instructions and locking mechanisms were introduced. When one thread wants to access a critical resource, it will attempt to acquire a "lock". If another thread is already using this resource, generally the thread attempting to acquire the lock will wait until the other thread is finished with it. Each thread must release the lock to the resource after they're done with it, failure to do so could result in a deadlock.&lt;/p&gt;
  
  &lt;p&gt;While locking mechanisms such as mutexes have been introduced, developers sometimes struggle to use them properly. For example, what if a piece of shared data gets validated and processed, but while the processing of the data is locked, the validation is not? There is a window between validation and locking where that data can change, and while the developer thinks the data has been validated, it could be substituted with something malicious after it is validated, but before it is used. Parallel programming can be difficult, especially when, as a developer, you also want to factor in the fact that you don't want to put too much code in between locking and unlocking as it can impact performance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;See &lt;a href="https://github.com/Cryptogenic/Exploit-Writeups/blob/master/FreeBSD/PS4%204.55%20BPF%20Race%20Condition%20Kernel%20Exploit%20Writeup.md"&gt;article&lt;/a&gt; for the rest&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;iXsystems&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://bijanebrahimi.github.io/blog/remote-debugging-the-running-openbsd-kernel.html"&gt;Remote Debugging the running OpenBSD kernel&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Subtitled: A way to understand the OpenBSD internals
+&amp;gt; The Problem
+&amp;gt; A few month ago, I tried porting the FreeBSD kdb along with it's gdb stub implementations to OpenBSD as a practice of learning the internals of an BSD operating system. The ddb code in both FreeBSD and OpenBSD looks pretty much the same and the GDB Remote Serial Protocol looks very minimal.
+&amp;gt; But sadly I got very busy and the work is stalled but I'm planning on resuming the attempt as soon as I get the chance, But there is an alternative way to Debugging the OpenBSD kernel via QEMU. What I did below is basically the same with a few minor changes which I hope to describe it as best.
+&amp;gt; Installing OpenBSD on Qemu
+&amp;gt; For debugging the kernel, we need a working OpenBSD system running on Qemu. I chose to create a raw disk file to be able to easily mount it later via the host and copy the custom kernel onto it.


&lt;blockquote&gt;
  $ qemu-img create -f raw disk.raw 5G
  $ qemu-system-x86&lt;em&gt;64 -m 256M \
  -drive format=raw,file=install63.fs \
  -drive format=raw,file=disk.raw
  +&amp;gt; Custom Kernel
  +&amp;gt; To debug the kernel, we need a version of the kernel with debugging symbols and for that we have to recompile it first. The process is documented at Building the System from Source:
  ...
  +&amp;gt; Then we can copy the bsd kernel to the guest machine and keep the bsd.gdb on the host to start the remote debugging via gdb.
  +&amp;gt; Remote debugging kernel
  +&amp;gt; Now it's to time to boot the guest with the new custom kernel. Remember that the -s argument enables the gdb server on qemu on localhost port 1234 by default:
  $ qemu-system-x86&lt;/em&gt;64 -m 256M -s \
     -net nic -net user \
  -drive format=raw,file=install63.fs \
  +&amp;gt; Now to finally attach to the running kernel:&lt;/blockquote&gt;
&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr&gt;


&lt;h2&gt;Interview - Patrick Mooney - Software Engineer &lt;a href="pmooney@pfmooney.com"&gt;pmooney@pfmooney.com&lt;/a&gt; / &lt;a href="https://twitter.com/pfmooney"&gt;@pfmooney&lt;/a&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;BR: How did you first get introduced to UNIX?&lt;/li&gt;
&lt;li&gt;AJ: What got you started contributing to an open source project?&lt;/li&gt;
&lt;li&gt;BR: What sorts of things have you worked on in the past?&lt;/li&gt;
&lt;li&gt;AJ: Can you tell us more about what attracted you to illumos?&lt;/li&gt;
&lt;li&gt;BR: How did you get interested in, and started with, systems development?&lt;/li&gt;
&lt;li&gt;AJ: When did you first get interested in bhyve?&lt;/li&gt;
&lt;li&gt;BR: How much work was it to take the years-old port of bhyve and get it working on modern IllumOS?&lt;/li&gt;
&lt;li&gt;AJ: What was the process for getting the bhyve port caught up to current FreeBSD?&lt;/li&gt;
&lt;li&gt;BR: How usable is bhyve on illumOS?&lt;/li&gt;
&lt;li&gt;AJ: What area are you most interested in improving in bhyve?&lt;/li&gt;
&lt;li&gt;BR: Do you think the FreeBSD and illumos versions of bhyve will stay in sync with each other?&lt;/li&gt;
&lt;li&gt;AJ: What do you do for fun?&lt;/li&gt;
&lt;li&gt;BR: Anything else you want to mention?&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
&lt;h2&gt;News Roundup&lt;/h2&gt;

&lt;h3&gt;&lt;a href="https://andidog.de/blog/2018-04-22-buildbot-setup-freebsd-jails"&gt;Setting up buildbot in FreeBSD Jails&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;In this article, I would like to present a tutorial to set up buildbot, a continuous integration (CI) software (like Jenkins, drone, etc.), making use of FreeBSD’s containerization mechanism "jails". We will cover terminology, rationale for using both buildbot and jails together, and installation steps. At the end, you will have a working buildbot instance using its sample build configuration, ready to play around with your own CI plans (or even CD, it’s very flexible!). Some hints for production-grade installations are given, but the tutorial steps are meant for a test environment (namely a virtual machine). Buildbot’s configuration and detailed concepts are not in scope here.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Table of contents&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choosing host operating system and version for buildbot&lt;/li&gt;
&lt;li&gt;Create a FreeBSD playground&lt;/li&gt;
&lt;li&gt;Introduction to jails&lt;/li&gt;
&lt;li&gt;Overview of buildbot&lt;/li&gt;
&lt;li&gt;Set up jails&lt;/li&gt;
&lt;li&gt;Install buildbot master&lt;/li&gt;
&lt;li&gt;Run buildbot master&lt;/li&gt;
&lt;li&gt;Install buildbot worker&lt;/li&gt;
&lt;li&gt;Run buildbot worker&lt;/li&gt;
&lt;li&gt;Set up web server nginx to access buildbot UI&lt;/li&gt;
&lt;li&gt;Run your first build&lt;/li&gt;
&lt;li&gt;Production hints&lt;/li&gt;
&lt;li&gt;Finished!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choosing host operating system and version for buildbot&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;We choose the released version of FreeBSD (11.1-RELEASE at the moment). There is no particular reason for it, and as a matter of fact buildbot as a Python-based server is very cross-platform; therefore the underlying OS platform and version should not make a large difference.&lt;/p&gt;
  
  &lt;p&gt;It will make a difference for what you do with buildbot, however. For instance, poudriere is the de-facto standard for building packages from source on FreeBSD. Builds run in jails which may be any FreeBSD base system version older or equal to the host’s version (reason will be explained below). In other words, if the host is FreeBSD 11.1, build jails created by poudriere could e.g. use 9.1, 10.3, 11.0, 11.1, but potentially not version 12 or newer because of incompatibilities with the host’s kernel (jails do not run their own kernel as full virtual machines do). To not prolong this article over the intended scope, the details of which nice things could be done or automated with buildbot are not covered.&lt;/p&gt;
  
  &lt;p&gt;Package names on the FreeBSD platform are independent of the OS version, since external software (as in: not part of base system) is maintained in FreeBSD ports. So, if your chosen FreeBSD version (here: 11) is still officially supported, the packages mentioned in this post should work. In the unlikely event of package name changes before you read this article, you should be able to find the actual package names like pkg search buildbot.&lt;/p&gt;
  
  &lt;p&gt;Other operating systems like the various Linux distributions will use different package names but might also offer buildbot pre-packaged. If not, the buildbot installation manual offers steps to install it manually. In such case, the downside is that you will have to maintain and update the buildbot modules outside the stability and (semi-)automatic updates of your OS packages.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;See &lt;a href="https://andidog.de/blog/2018-04-22-buildbot-setup-freebsd-jails"&gt;article&lt;/a&gt; for the rest&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;DigitalOcean&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;&lt;a href="http://www.grenadille.net/post/2018/03/29/Dumping-your-USB"&gt;Dumping your USB&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;One of the many new features of OpenBSD 6.3 is the possibility to dump USB traffic to userland via bpf(4). This can be done with tcpdump(8) by specifying a USB bus as interface:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;```&lt;/p&gt;

&lt;h1&gt;tcpdump -Xx -i usb0&lt;/h1&gt;

&lt;p&gt;tcpdump: listening on usb0, link-type USBPCAP
12:28:03.317945 bus 0 &amp;lt; addr 1: ep1 intr 2
  0000: 0400                                     ..&lt;/p&gt;

&lt;p&gt;12:28:03.318018 bus 0 &amp;gt; addr 1: ep0 ctrl 8
  0000: 00a3 0000 0002 0004 00                   ......... &lt;br&gt;
[...]
```&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;As you might have noted I decided to implement the existing USBPcap capture format. A capture format is required because USB packets do not include all the necessary information to properly interpret them. I first thought I would implement libpcap's DLT&lt;em&gt;USB but then I quickly realize that this was not a standard. It is instead a FreeBSD specific format which has been since then renamed DLT&lt;/em&gt;USB&lt;em&gt;FREEBSD.
  But I didn't want to embrace xkcd #927, so I look at the existing formats: DLT&lt;/em&gt;USB&lt;em&gt;FREEBSD, DLT&lt;/em&gt;USB&lt;em&gt;LINUX, DLT&lt;/em&gt;USB&lt;em&gt;LINUX&lt;/em&gt;MMAPPED, DLT&lt;em&gt;USB&lt;/em&gt;DARWIN and DLT_USBPCAP. I was first a bit sad to see that nobody could agree on a common format then I moved on and picked the simplest one: USBPcap.
  Implementing an already existing format gives us out-of-box support for all the tools supporting it. That's why having common formats let us share our energy. In the case of USBPcap it is already supported by Wireshark, so you can already inspect your packet graphically. For that you need to first capture raw packets:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;```&lt;/p&gt;

&lt;h1&gt;tcpdump -s 3303 -w usb.pcap -i usb0&lt;/h1&gt;

&lt;p&gt;tcpdump: listening on usb0, link-type USBPCAP
^C
208 packets received by filter
0 packets dropped by kernel
```&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;USB packets can be quite big, that's why I'm not using tcpdump(8)'s default packet size. In this case, I want to make sure I can dump the complete uaudio(4) frames.
  It is important to say that what is dumped to userland is what the USB stack sees. Packets sent on the wire might differ, especially when it comes to retries and timing. So this feature is not here to replace any USB analyser, however I hope that it will help people understand how things work and what the USB stack is doing. Even I found some interesting timing issues while implementing isochronous support.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr&gt;
&lt;h3&gt;&lt;a href="https://www.romanzolotarev.com/openbsd/webserver.html"&gt;Run OpenBSD on your web server&lt;/a&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.romanzolotarev.com/vultr.html"&gt;Deploy and login to your OpenBSD server first.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;As soon as you're there you can enable an httpd(8) daemon, it's already installed on OpenBSD, you just need to configure it:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;www# vi /etc/httpd.conf&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add two server sections---one for www and another for naked domain (all requests are redirected to www).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;```
server "www.example.com" {
  listen on * port 80
  root "/htdocs/www.example.com"
}&lt;/p&gt;

&lt;p&gt;server "example.com" {
  listen on * port 80
  block return 301 "http://www.example.com$REQUEST_URI"
}
```&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;httpd is chrooted to /var/www by default, so let's make a document root directory:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;www# mkdir -p /var/www/htdocs/www.example.com&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Save and check this configuration:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;
www# httpd -n
configuration ok
&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enable httpd(8) daemon and start it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;
www# rcctl enable httpd
www# rcctl start httpd
&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Publish your website&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy your website content into /var/www/htdocs/www.example.com and then test it your web browser.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;http://XXX.XXX.XXX.XXX/&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Your web server should be up and running.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Update DNS records&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;If there is another HTTPS server using this domain, configure that server to redirect all HTTPS requests to HTTP.&lt;/p&gt;
  
  &lt;p&gt;Now as your new server is ready you can update DNS records accordingly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;
    example.com. 300 IN     A XXX.XXX.XXX.XXX
www.example.com. 300 IN     A XXX.XXX.XXX.XXX
&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Examine your DNS is propagated.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;$ dig example.com www.example.com&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Check IP addresses it answer sections. If they are correct, you should be able to access your new web server by its domain name.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.romanzolotarev.com/openbsd/acme-client.html"&gt;What's next? Enable HTTPS on your server.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
&lt;h3&gt;&lt;a href="https://euroquis.nl/bobulate/?p=1827"&gt;Modern Akonadi and KMail on FreeBSD&lt;/a&gt;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;For, quite literally a year or more, KMail and Akonadi on FreeBSD have been only marginally useful, at best. KDE4 era KMail was pretty darn good, but everything after that has had a number of FreeBSD users tearing out their hair. Sure, you can go to Trojitá, which has its own special problems and is generally “meh”, or bail out entirely to webmail, but .. KMail is a really great mail client when it works. Which, on Linux desktops, is nearly always, and on FreeBSD, is was nearly never.&lt;/p&gt;
  
  &lt;p&gt;I looked at it with Dan and Volker last summer, briefly, and we got not much further than “hmm”. There’s a message about “The world is going to end!” which hardly makes sense, it means that a message has been truncated or corrupted while traversing a UNIX domain socket.&lt;/p&gt;
  
  &lt;p&gt;Now Alexandre Martins — praise be! — has wandered in with a likely solution. KDE Bug 381850 contains a suggestion, which deserves to be publicised (and tested):&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;sysctl net.local.stream.recvspace=65536&lt;/code&gt;
&lt;code&gt;sysctl net.local.stream.sendspace=65536&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The default FreeBSD UNIX local socket buffer space is 8kiB. Bumping the size up to 64kiB — which matches the size that Linux has by default — suddenly makes KMail and Akonadi shine again. No other changes, no recompiling, just .. bump the sysctls (perhaps also in /etc/sysctl.conf) and KMail from Area51 hums along all day without ending the world.&lt;/p&gt;
  
  &lt;p&gt;Since changing this value may have other effects, and Akonadi shouldn’t be dependent on a specific buffer size anyway, I’m looking into the Akonadi code (encouraged by Dan) to either automatically size the socket buffers, or to figure out where in the underlying code the assumption about buffer size lives. So for now, sysctl can make KMail users on FreeBSD happy, and later we hope to have things fully automatic (and if that doesn’t pan out, well, pkg-message exists).&lt;/p&gt;
  
  &lt;p&gt;PS. Modern KDE PIM applications — Akonadi, KMail — which live in the deskutils/ category of the official FreeBSD ports were added to the official tree April 10th, so you can get your fix now from the official tree.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr&gt;
&lt;h2&gt;Beastie Bits&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://lists.dragonflybsd.org/pipermail/users/2018-April/335722.html"&gt;pkg-provides support for DragonFly (from Rodrigo Osorio)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://monades.roperzh.com/memories-writing-parser-man-pages/"&gt;Memories of writing a parser for man pages&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://developeronfire.com/podcast/episode-198-bryan-cantrill-persistence-and-action"&gt;Bryan Cantrill interview over at DeveloperOnFire podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://minnie.tuhs.org/pipermail/tuhs/2018-March/013285.html"&gt;1978-03-25 - 2018-03-25: 40 years BSD Mail&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://imgur.com/a/KOTJS"&gt;My 5 years of FreeBSD gaming: a compendium of free games and engines running natively on FreeBSD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://reviews.freebsd.org/D15562"&gt;Sequential Resilver being upstreamed to FreeBSD, from FreeNAS, where it was ported from ZFS-on-Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://lists.freebsd.org/pipermail/freebsd-jobs/2018-May/000944.html"&gt;University of Aberdeen’s Internet Transport Research Group is hiring  &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Tarsnap ad&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;Feedback/Questions&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Dave - &lt;a href="http://dpaste.com/0KHRB4Z#wrap"&gt;mounting non-filesystem things inside jails&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Morgan - &lt;a href="http://dpaste.com/10QD42T#wrap"&gt;ZFS on Linux Data loss bug&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Rene - &lt;a href="http://dpaste.com/30VM51S#wrap"&gt;How to keep your ISP’s nose out of your browser history with encrypted DNS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Rodriguez - &lt;a href="http://dpaste.com/3WVYR9D#wrap"&gt;Feedback question! Relating to Windows&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;Send questions, comments, show ideas/topics, or stories you want mentioned on the show to &lt;a href="mailto:feedback@bsdnow.tv"&gt;feedback@bsdnow.tv&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt; 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, trueos, tutorial, howto, guide, bsd, interview, HAMMER2, PS4, Kernel Exploit, debugging</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>DragonflyBSD release 5.2.1 is here, BPF kernel exploit writeup, Remote Debugging the running OpenBSD kernel, interview with Patrick Mooney, FreeBSD buildbot setup in a jail, dumping your USB, and 5 years of gaming on FreeBSD.</p>

<h2>Headlines</h2>

<h3><a href="https://www.dragonflybsd.org/release52/">DragonFlyBSD: release52 (w/stable HAMMER2, as default root)</a></h3>

<ul>
<li>DragonflyBSD 5.2.1 was released on May 21, 2018</li>
<li>> Big Ticket items:


<blockquote>
  Meltdown and Spectre mitigation support
  Meltdown isolation and spectre mitigation support added. Meltdown mitigation is automatically enabled for all Intel cpus. Spectre mitigation must be enabled manually via sysctl if desired, using sysctls machdep.spectre<em>mitigation and machdep.meltdown</em>mitigation.
  HAMMER2
  H2 has received a very large number of bug fixes and performance improvements. We can now recommend H2 as the default root filesystem in non-clustered mode.
  Clustered support is not yet available.
  ipfw Updates
  Implement state based "redirect", i.e. without using libalias.
  ipfw now supports all possible ICMP types.
  Fix ICMP<em>MAXTYPE assumptions (now 40 as of this release).
  Improved graphics support
  The drm/i915 kernel driver has been updated to support Intel Coffeelake GPUs
  Add 24-bit pixel format support to the EFI frame buffer code.
  Significantly improve fbio support for the "scfb" XOrg driver. This allows EFI frame buffers to be used by X in situations where we do not otherwise support the GPU.
  Partly implement the FBIO</em>BLANK ioctl for display powersaving.
  Syscons waits for drm modesetting at appropriate places, avoiding races.</li>
  </ul>
  <hr />
</blockquote>

<h3><a href="https://github.com/Cryptogenic/Exploit-Writeups/blob/master/FreeBSD/PS4%204.55%20BPF%20Race%20Condition%20Kernel%20Exploit%20Writeup.md">PS4 4.55 BPF Race Condition Kernel Exploit Writeup</a></h3>



<blockquote>
  <p>Note: While this bug is primarily interesting for exploitation on the PS4, this bug can also potentially be exploited on other unpatched platforms using FreeBSD if the attacker has read/write permissions on /dev/bpf, or if they want to escalate from root user to kernel code execution. As such, I've published it under the "FreeBSD" folder and not the "PS4" folder.</p>
</blockquote>

<ul>
<li>Introduction</li>
</ul>

<blockquote>
  <p>Welcome to the kernel portion of the PS4 4.55FW full exploit chain write-up. This bug was found by qwerty, and is fairly unique in the way it's exploited, so I wanted to do a detailed write-up on how it worked. The full source of the exploit can be found <a href="https://github.com/Cryptogenic/PS4-4.55-Kernel-Exploit">here</a>. I've previously covered the webkit exploit implementation for userland access <a href="https://github.com/Cryptogenic/Exploit-Writeups/blob/master/WebKit/setAttributeNodeNS%20UAF%20Write-up.md">here</a>.</p>
</blockquote>

<ul>
<li>FreeBSD or Sony's fault? Why not both...</li>
</ul>

<blockquote>
  <p>Interestingly, this bug is actually a FreeBSD bug and was not (at least directly) introduced by Sony code. While this is a FreeBSD bug however, it's not very useful for most systems because the /dev/bpf device driver is root-owned, and the permissions for it are set to 0600 (meaning owner has read/write privileges, and nobody else does) - though it can be used for escalating from root to kernel mode code execution. However, let’s take a look at the make_dev() call inside the PS4 kernel for /dev/bpf (taken from a 4.05 kernel dump).</p>
</blockquote>

<p><code>
seg000:FFFFFFFFA181F15B                 lea     rdi, unk_FFFFFFFFA2D77640
seg000:FFFFFFFFA181F162                 lea     r9, aBpf        ; "bpf"
seg000:FFFFFFFFA181F169                 mov     esi, 0
seg000:FFFFFFFFA181F16E                 mov     edx, 0
seg000:FFFFFFFFA181F173                 xor     ecx, ecx
seg000:FFFFFFFFA181F175                 mov     r8d, 1B6h
seg000:FFFFFFFFA181F17B                 xor     eax, eax
seg000:FFFFFFFFA181F17D                 mov     cs:qword_FFFFFFFFA34EC770, 0
seg000:FFFFFFFFA181F188                 call    make_dev
</code></p>

<blockquote>
  <p>We see UID 0 (the UID for the root user) getting moved into the register for the 3rd argument, which is the owner argument. However, the permissions bits are being set to 0x1B6, which in octal is 0666. This means anyone can open /dev/bpf with read/write privileges. I’m not sure why this is the case, qwerty speculates that perhaps bpf is used for LAN gaming. In any case, this was a poor design decision because bpf is usually considered privileged, and should not be accessible to a process that is completely untrusted, such as WebKit. On most platforms, permissions for /dev/bpf will be set to 0x180, or 0600.</p>
</blockquote>

<ul>
<li>Race Conditions - What are they?</li>
</ul>

<blockquote>
  <p>The class of the bug abused in this exploit is known as a "race condition". Before we get into bug specifics, it's important for the reader to understand what race conditions are and how they can be an issue (especially in something like a kernel). Often in complex software (such as a kernel), resources will be shared (or "global"). This means other threads could potentially execute code that will access some resource that could be accessed by another thread at the same point in time. What happens if one thread accesses this resource while another thread does without exclusive access? Race conditions are introduced.</p>
  
  <p>Race conditions are defined as possible scenarios where events happen in a sequence different than the developer intended which leads to undefined behavior. In simple, single-threaded programs, this is not an issue because execution is linear. In more complex programs where code can be running in parallel however, this becomes a real issue. To prevent these problems, atomic instructions and locking mechanisms were introduced. When one thread wants to access a critical resource, it will attempt to acquire a "lock". If another thread is already using this resource, generally the thread attempting to acquire the lock will wait until the other thread is finished with it. Each thread must release the lock to the resource after they're done with it, failure to do so could result in a deadlock.</p>
  
  <p>While locking mechanisms such as mutexes have been introduced, developers sometimes struggle to use them properly. For example, what if a piece of shared data gets validated and processed, but while the processing of the data is locked, the validation is not? There is a window between validation and locking where that data can change, and while the developer thinks the data has been validated, it could be substituted with something malicious after it is validated, but before it is used. Parallel programming can be difficult, especially when, as a developer, you also want to factor in the fact that you don't want to put too much code in between locking and unlocking as it can impact performance.</p>
</blockquote>

<ul>
<li>See <a href="https://github.com/Cryptogenic/Exploit-Writeups/blob/master/FreeBSD/PS4%204.55%20BPF%20Race%20Condition%20Kernel%20Exploit%20Writeup.md">article</a> for the rest</li>
</ul>

<p><hr /></p>

<p><strong>iXsystems</strong></p>

<h3><a href="http://bijanebrahimi.github.io/blog/remote-debugging-the-running-openbsd-kernel.html">Remote Debugging the running OpenBSD kernel</a></h3>

<ul>
<li>Subtitled: A way to understand the OpenBSD internals
+> The Problem
+> A few month ago, I tried porting the FreeBSD kdb along with it's gdb stub implementations to OpenBSD as a practice of learning the internals of an BSD operating system. The ddb code in both FreeBSD and OpenBSD looks pretty much the same and the GDB Remote Serial Protocol looks very minimal.
+> But sadly I got very busy and the work is stalled but I'm planning on resuming the attempt as soon as I get the chance, But there is an alternative way to Debugging the OpenBSD kernel via QEMU. What I did below is basically the same with a few minor changes which I hope to describe it as best.
+> Installing OpenBSD on Qemu
+> For debugging the kernel, we need a working OpenBSD system running on Qemu. I chose to create a raw disk file to be able to easily mount it later via the host and copy the custom kernel onto it.


<blockquote>
  $ qemu-img create -f raw disk.raw 5G
  $ qemu-system-x86<em>64 -m 256M \
  -drive format=raw,file=install63.fs \
  -drive format=raw,file=disk.raw
  +> Custom Kernel
  +> To debug the kernel, we need a version of the kernel with debugging symbols and for that we have to recompile it first. The process is documented at Building the System from Source:
  ...
  +> Then we can copy the bsd kernel to the guest machine and keep the bsd.gdb on the host to start the remote debugging via gdb.
  +> Remote debugging kernel
  +> Now it's to time to boot the guest with the new custom kernel. Remember that the -s argument enables the gdb server on qemu on localhost port 1234 by default:
  $ qemu-system-x86</em>64 -m 256M -s \
     -net nic -net user \
  -drive format=raw,file=install63.fs \
  +> Now to finally attach to the running kernel:</li>
  </ul>
  <hr />
</blockquote>

<h2>Interview - Patrick Mooney - Software Engineer <a href="pmooney@pfmooney.com">pmooney@pfmooney.com</a> / <a href="https://twitter.com/pfmooney">@pfmooney</a></h2>

<ul>
<li>BR: How did you first get introduced to UNIX?</li>
<li>AJ: What got you started contributing to an open source project?</li>
<li>BR: What sorts of things have you worked on in the past?</li>
<li>AJ: Can you tell us more about what attracted you to illumos?</li>
<li>BR: How did you get interested in, and started with, systems development?</li>
<li>AJ: When did you first get interested in bhyve?</li>
<li>BR: How much work was it to take the years-old port of bhyve and get it working on modern IllumOS?</li>
<li>AJ: What was the process for getting the bhyve port caught up to current FreeBSD?</li>
<li>BR: How usable is bhyve on illumOS?</li>
<li>AJ: What area are you most interested in improving in bhyve?</li>
<li>BR: Do you think the FreeBSD and illumos versions of bhyve will stay in sync with each other?</li>
<li>AJ: What do you do for fun?</li>
<li>BR: Anything else you want to mention?</li>
</ul>

<p><hr /></p>

<h2>News Roundup</h2>

<h3><a href="https://andidog.de/blog/2018-04-22-buildbot-setup-freebsd-jails">Setting up buildbot in FreeBSD Jails</a></h3>

<blockquote>
  <p>In this article, I would like to present a tutorial to set up buildbot, a continuous integration (CI) software (like Jenkins, drone, etc.), making use of FreeBSD’s containerization mechanism "jails". We will cover terminology, rationale for using both buildbot and jails together, and installation steps. At the end, you will have a working buildbot instance using its sample build configuration, ready to play around with your own CI plans (or even CD, it’s very flexible!). Some hints for production-grade installations are given, but the tutorial steps are meant for a test environment (namely a virtual machine). Buildbot’s configuration and detailed concepts are not in scope here.</p>
</blockquote>

<ul>
<li><p>Table of contents</p>

<ul><li>Choosing host operating system and version for buildbot</li>
<li>Create a FreeBSD playground</li>
<li>Introduction to jails</li>
<li>Overview of buildbot</li>
<li>Set up jails</li>
<li>Install buildbot master</li>
<li>Run buildbot master</li>
<li>Install buildbot worker</li>
<li>Run buildbot worker</li>
<li>Set up web server nginx to access buildbot UI</li>
<li>Run your first build</li>
<li>Production hints</li>
<li>Finished!</li></ul></li>
<li><p>Choosing host operating system and version for buildbot</p></li>
</ul>

<blockquote>
  <p>We choose the released version of FreeBSD (11.1-RELEASE at the moment). There is no particular reason for it, and as a matter of fact buildbot as a Python-based server is very cross-platform; therefore the underlying OS platform and version should not make a large difference.</p>
  
  <p>It will make a difference for what you do with buildbot, however. For instance, poudriere is the de-facto standard for building packages from source on FreeBSD. Builds run in jails which may be any FreeBSD base system version older or equal to the host’s version (reason will be explained below). In other words, if the host is FreeBSD 11.1, build jails created by poudriere could e.g. use 9.1, 10.3, 11.0, 11.1, but potentially not version 12 or newer because of incompatibilities with the host’s kernel (jails do not run their own kernel as full virtual machines do). To not prolong this article over the intended scope, the details of which nice things could be done or automated with buildbot are not covered.</p>
  
  <p>Package names on the FreeBSD platform are independent of the OS version, since external software (as in: not part of base system) is maintained in FreeBSD ports. So, if your chosen FreeBSD version (here: 11) is still officially supported, the packages mentioned in this post should work. In the unlikely event of package name changes before you read this article, you should be able to find the actual package names like pkg search buildbot.</p>
  
  <p>Other operating systems like the various Linux distributions will use different package names but might also offer buildbot pre-packaged. If not, the buildbot installation manual offers steps to install it manually. In such case, the downside is that you will have to maintain and update the buildbot modules outside the stability and (semi-)automatic updates of your OS packages.</p>
</blockquote>

<ul>
<li>See <a href="https://andidog.de/blog/2018-04-22-buildbot-setup-freebsd-jails">article</a> for the rest</li>
</ul>

<p><hr /></p>

<p><strong>DigitalOcean</strong></p>

<h3><a href="http://www.grenadille.net/post/2018/03/29/Dumping-your-USB">Dumping your USB</a></h3>

<blockquote>
  <p>One of the many new features of OpenBSD 6.3 is the possibility to dump USB traffic to userland via bpf(4). This can be done with tcpdump(8) by specifying a USB bus as interface:</p>
</blockquote>

<p>```</p>

<h1>tcpdump -Xx -i usb0</h1>

<p>tcpdump: listening on usb0, link-type USBPCAP
12:28:03.317945 bus 0 &lt; addr 1: ep1 intr 2
  0000: 0400                                     ..</p>

<p>12:28:03.318018 bus 0 > addr 1: ep0 ctrl 8
  0000: 00a3 0000 0002 0004 00                   ......... <br />
[...]
```</p>

<blockquote>
  <p>As you might have noted I decided to implement the existing USBPcap capture format. A capture format is required because USB packets do not include all the necessary information to properly interpret them. I first thought I would implement libpcap's DLT<em>USB but then I quickly realize that this was not a standard. It is instead a FreeBSD specific format which has been since then renamed DLT</em>USB<em>FREEBSD.
  But I didn't want to embrace xkcd #927, so I look at the existing formats: DLT</em>USB<em>FREEBSD, DLT</em>USB<em>LINUX, DLT</em>USB<em>LINUX</em>MMAPPED, DLT<em>USB</em>DARWIN and DLT_USBPCAP. I was first a bit sad to see that nobody could agree on a common format then I moved on and picked the simplest one: USBPcap.
  Implementing an already existing format gives us out-of-box support for all the tools supporting it. That's why having common formats let us share our energy. In the case of USBPcap it is already supported by Wireshark, so you can already inspect your packet graphically. For that you need to first capture raw packets:</p>
</blockquote>

<p>```</p>

<h1>tcpdump -s 3303 -w usb.pcap -i usb0</h1>

<p>tcpdump: listening on usb0, link-type USBPCAP
^C
208 packets received by filter
0 packets dropped by kernel
```</p>

<blockquote>
  <p>USB packets can be quite big, that's why I'm not using tcpdump(8)'s default packet size. In this case, I want to make sure I can dump the complete uaudio(4) frames.
  It is important to say that what is dumped to userland is what the USB stack sees. Packets sent on the wire might differ, especially when it comes to retries and timing. So this feature is not here to replace any USB analyser, however I hope that it will help people understand how things work and what the USB stack is doing. Even I found some interesting timing issues while implementing isochronous support.</p>
</blockquote>

<p><hr /></p>

<h3><a href="https://www.romanzolotarev.com/openbsd/webserver.html">Run OpenBSD on your web server</a></h3>

<ul>
<li><a href="https://www.romanzolotarev.com/vultr.html">Deploy and login to your OpenBSD server first.</a></li>
</ul>

<blockquote>
  <p>As soon as you're there you can enable an httpd(8) daemon, it's already installed on OpenBSD, you just need to configure it:</p>
</blockquote>

<p><code>www# vi /etc/httpd.conf</code></p>

<ul>
<li>Add two server sections---one for www and another for naked domain (all requests are redirected to www).</li>
</ul>

<p>```
server "www.example.com" {
  listen on * port 80
  root "/htdocs/www.example.com"
}</p>

<p>server "example.com" {
  listen on * port 80
  block return 301 "http://www.example.com$REQUEST_URI"
}
```</p>

<ul>
<li>httpd is chrooted to /var/www by default, so let's make a document root directory:</li>
</ul>

<p><code>www# mkdir -p /var/www/htdocs/www.example.com</code></p>

<ul>
<li>Save and check this configuration:</li>
</ul>

<p><code>
www# httpd -n
configuration ok
</code></p>

<ul>
<li>Enable httpd(8) daemon and start it.</li>
</ul>

<p><code>
www# rcctl enable httpd
www# rcctl start httpd
</code></p>

<ul>
<li><p>Publish your website</p></li>
<li><p>Copy your website content into /var/www/htdocs/www.example.com and then test it your web browser.</p></li>
</ul>

<p><code>http://XXX.XXX.XXX.XXX/</code></p>

<blockquote>
  <p>Your web server should be up and running.</p>
</blockquote>

<ul>
<li>Update DNS records</li>
</ul>

<blockquote>
  <p>If there is another HTTPS server using this domain, configure that server to redirect all HTTPS requests to HTTP.</p>
  
  <p>Now as your new server is ready you can update DNS records accordingly.</p>
</blockquote>

<p><code>
    example.com. 300 IN     A XXX.XXX.XXX.XXX
www.example.com. 300 IN     A XXX.XXX.XXX.XXX
</code></p>

<ul>
<li>Examine your DNS is propagated.</li>
</ul>

<p><code>$ dig example.com www.example.com</code></p>

<ul>
<li><p>Check IP addresses it answer sections. If they are correct, you should be able to access your new web server by its domain name.</p></li>
<li><p><a href="https://www.romanzolotarev.com/openbsd/acme-client.html">What's next? Enable HTTPS on your server.</a></p></li>
</ul>

<p><hr /></p>

<h3><a href="https://euroquis.nl/bobulate/?p=1827">Modern Akonadi and KMail on FreeBSD</a></h3>

<blockquote>
  <p>For, quite literally a year or more, KMail and Akonadi on FreeBSD have been only marginally useful, at best. KDE4 era KMail was pretty darn good, but everything after that has had a number of FreeBSD users tearing out their hair. Sure, you can go to Trojitá, which has its own special problems and is generally “meh”, or bail out entirely to webmail, but .. KMail is a really great mail client when it works. Which, on Linux desktops, is nearly always, and on FreeBSD, is was nearly never.</p>
  
  <p>I looked at it with Dan and Volker last summer, briefly, and we got not much further than “hmm”. There’s a message about “The world is going to end!” which hardly makes sense, it means that a message has been truncated or corrupted while traversing a UNIX domain socket.</p>
  
  <p>Now Alexandre Martins — praise be! — has wandered in with a likely solution. KDE Bug 381850 contains a suggestion, which deserves to be publicised (and tested):</p>
</blockquote>

<p><code>sysctl net.local.stream.recvspace=65536</code>
<code>sysctl net.local.stream.sendspace=65536</code></p>

<blockquote>
  <p>The default FreeBSD UNIX local socket buffer space is 8kiB. Bumping the size up to 64kiB — which matches the size that Linux has by default — suddenly makes KMail and Akonadi shine again. No other changes, no recompiling, just .. bump the sysctls (perhaps also in /etc/sysctl.conf) and KMail from Area51 hums along all day without ending the world.</p>
  
  <p>Since changing this value may have other effects, and Akonadi shouldn’t be dependent on a specific buffer size anyway, I’m looking into the Akonadi code (encouraged by Dan) to either automatically size the socket buffers, or to figure out where in the underlying code the assumption about buffer size lives. So for now, sysctl can make KMail users on FreeBSD happy, and later we hope to have things fully automatic (and if that doesn’t pan out, well, pkg-message exists).</p>
  
  <p>PS. Modern KDE PIM applications — Akonadi, KMail — which live in the deskutils/ category of the official FreeBSD ports were added to the official tree April 10th, so you can get your fix now from the official tree.</p>
</blockquote>

<p><hr /></p>

<h2>Beastie Bits</h2>

<ul>
<li><a href="http://lists.dragonflybsd.org/pipermail/users/2018-April/335722.html">pkg-provides support for DragonFly (from Rodrigo Osorio)</a></li>
<li><a href="https://monades.roperzh.com/memories-writing-parser-man-pages/">Memories of writing a parser for man pages</a></li>
<li><a href="http://developeronfire.com/podcast/episode-198-bryan-cantrill-persistence-and-action">Bryan Cantrill interview over at DeveloperOnFire podcast</a></li>
<li><a href="http://minnie.tuhs.org/pipermail/tuhs/2018-March/013285.html">1978-03-25 - 2018-03-25: 40 years BSD Mail</a></li>
<li><a href="https://imgur.com/a/KOTJS">My 5 years of FreeBSD gaming: a compendium of free games and engines running natively on FreeBSD</a></li>
<li><a href="https://reviews.freebsd.org/D15562">Sequential Resilver being upstreamed to FreeBSD, from FreeNAS, where it was ported from ZFS-on-Linux</a></li>
<li><a href="https://lists.freebsd.org/pipermail/freebsd-jobs/2018-May/000944.html">University of Aberdeen’s Internet Transport Research Group is hiring  </a></li>
</ul>

<p><hr /></p>

<p><strong>Tarsnap ad</strong></p>

<h2>Feedback/Questions</h2>

<ul>
<li>Dave - <a href="http://dpaste.com/0KHRB4Z#wrap">mounting non-filesystem things inside jails</a></li>
<li>Morgan - <a href="http://dpaste.com/10QD42T#wrap">ZFS on Linux Data loss bug</a></li>
<li>Rene - <a href="http://dpaste.com/30VM51S#wrap">How to keep your ISP’s nose out of your browser history with encrypted DNS</a></li>
<li>Rodriguez - <a href="http://dpaste.com/3WVYR9D#wrap">Feedback question! Relating to Windows</a></li>
</ul>

<p><hr /></p>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>DragonflyBSD release 5.2.1 is here, BPF kernel exploit writeup, Remote Debugging the running OpenBSD kernel, interview with Patrick Mooney, FreeBSD buildbot setup in a jail, dumping your USB, and 5 years of gaming on FreeBSD.</p>

<h2>Headlines</h2>

<h3><a href="https://www.dragonflybsd.org/release52/">DragonFlyBSD: release52 (w/stable HAMMER2, as default root)</a></h3>

<ul>
<li>DragonflyBSD 5.2.1 was released on May 21, 2018</li>
<li>> Big Ticket items:


<blockquote>
  Meltdown and Spectre mitigation support
  Meltdown isolation and spectre mitigation support added. Meltdown mitigation is automatically enabled for all Intel cpus. Spectre mitigation must be enabled manually via sysctl if desired, using sysctls machdep.spectre<em>mitigation and machdep.meltdown</em>mitigation.
  HAMMER2
  H2 has received a very large number of bug fixes and performance improvements. We can now recommend H2 as the default root filesystem in non-clustered mode.
  Clustered support is not yet available.
  ipfw Updates
  Implement state based "redirect", i.e. without using libalias.
  ipfw now supports all possible ICMP types.
  Fix ICMP<em>MAXTYPE assumptions (now 40 as of this release).
  Improved graphics support
  The drm/i915 kernel driver has been updated to support Intel Coffeelake GPUs
  Add 24-bit pixel format support to the EFI frame buffer code.
  Significantly improve fbio support for the "scfb" XOrg driver. This allows EFI frame buffers to be used by X in situations where we do not otherwise support the GPU.
  Partly implement the FBIO</em>BLANK ioctl for display powersaving.
  Syscons waits for drm modesetting at appropriate places, avoiding races.</li>
  </ul>
  <hr />
</blockquote>

<h3><a href="https://github.com/Cryptogenic/Exploit-Writeups/blob/master/FreeBSD/PS4%204.55%20BPF%20Race%20Condition%20Kernel%20Exploit%20Writeup.md">PS4 4.55 BPF Race Condition Kernel Exploit Writeup</a></h3>



<blockquote>
  <p>Note: While this bug is primarily interesting for exploitation on the PS4, this bug can also potentially be exploited on other unpatched platforms using FreeBSD if the attacker has read/write permissions on /dev/bpf, or if they want to escalate from root user to kernel code execution. As such, I've published it under the "FreeBSD" folder and not the "PS4" folder.</p>
</blockquote>

<ul>
<li>Introduction</li>
</ul>

<blockquote>
  <p>Welcome to the kernel portion of the PS4 4.55FW full exploit chain write-up. This bug was found by qwerty, and is fairly unique in the way it's exploited, so I wanted to do a detailed write-up on how it worked. The full source of the exploit can be found <a href="https://github.com/Cryptogenic/PS4-4.55-Kernel-Exploit">here</a>. I've previously covered the webkit exploit implementation for userland access <a href="https://github.com/Cryptogenic/Exploit-Writeups/blob/master/WebKit/setAttributeNodeNS%20UAF%20Write-up.md">here</a>.</p>
</blockquote>

<ul>
<li>FreeBSD or Sony's fault? Why not both...</li>
</ul>

<blockquote>
  <p>Interestingly, this bug is actually a FreeBSD bug and was not (at least directly) introduced by Sony code. While this is a FreeBSD bug however, it's not very useful for most systems because the /dev/bpf device driver is root-owned, and the permissions for it are set to 0600 (meaning owner has read/write privileges, and nobody else does) - though it can be used for escalating from root to kernel mode code execution. However, let’s take a look at the make_dev() call inside the PS4 kernel for /dev/bpf (taken from a 4.05 kernel dump).</p>
</blockquote>

<p><code>
seg000:FFFFFFFFA181F15B                 lea     rdi, unk_FFFFFFFFA2D77640
seg000:FFFFFFFFA181F162                 lea     r9, aBpf        ; "bpf"
seg000:FFFFFFFFA181F169                 mov     esi, 0
seg000:FFFFFFFFA181F16E                 mov     edx, 0
seg000:FFFFFFFFA181F173                 xor     ecx, ecx
seg000:FFFFFFFFA181F175                 mov     r8d, 1B6h
seg000:FFFFFFFFA181F17B                 xor     eax, eax
seg000:FFFFFFFFA181F17D                 mov     cs:qword_FFFFFFFFA34EC770, 0
seg000:FFFFFFFFA181F188                 call    make_dev
</code></p>

<blockquote>
  <p>We see UID 0 (the UID for the root user) getting moved into the register for the 3rd argument, which is the owner argument. However, the permissions bits are being set to 0x1B6, which in octal is 0666. This means anyone can open /dev/bpf with read/write privileges. I’m not sure why this is the case, qwerty speculates that perhaps bpf is used for LAN gaming. In any case, this was a poor design decision because bpf is usually considered privileged, and should not be accessible to a process that is completely untrusted, such as WebKit. On most platforms, permissions for /dev/bpf will be set to 0x180, or 0600.</p>
</blockquote>

<ul>
<li>Race Conditions - What are they?</li>
</ul>

<blockquote>
  <p>The class of the bug abused in this exploit is known as a "race condition". Before we get into bug specifics, it's important for the reader to understand what race conditions are and how they can be an issue (especially in something like a kernel). Often in complex software (such as a kernel), resources will be shared (or "global"). This means other threads could potentially execute code that will access some resource that could be accessed by another thread at the same point in time. What happens if one thread accesses this resource while another thread does without exclusive access? Race conditions are introduced.</p>
  
  <p>Race conditions are defined as possible scenarios where events happen in a sequence different than the developer intended which leads to undefined behavior. In simple, single-threaded programs, this is not an issue because execution is linear. In more complex programs where code can be running in parallel however, this becomes a real issue. To prevent these problems, atomic instructions and locking mechanisms were introduced. When one thread wants to access a critical resource, it will attempt to acquire a "lock". If another thread is already using this resource, generally the thread attempting to acquire the lock will wait until the other thread is finished with it. Each thread must release the lock to the resource after they're done with it, failure to do so could result in a deadlock.</p>
  
  <p>While locking mechanisms such as mutexes have been introduced, developers sometimes struggle to use them properly. For example, what if a piece of shared data gets validated and processed, but while the processing of the data is locked, the validation is not? There is a window between validation and locking where that data can change, and while the developer thinks the data has been validated, it could be substituted with something malicious after it is validated, but before it is used. Parallel programming can be difficult, especially when, as a developer, you also want to factor in the fact that you don't want to put too much code in between locking and unlocking as it can impact performance.</p>
</blockquote>

<ul>
<li>See <a href="https://github.com/Cryptogenic/Exploit-Writeups/blob/master/FreeBSD/PS4%204.55%20BPF%20Race%20Condition%20Kernel%20Exploit%20Writeup.md">article</a> for the rest</li>
</ul>

<p><hr /></p>

<p><strong>iXsystems</strong></p>

<h3><a href="http://bijanebrahimi.github.io/blog/remote-debugging-the-running-openbsd-kernel.html">Remote Debugging the running OpenBSD kernel</a></h3>

<ul>
<li>Subtitled: A way to understand the OpenBSD internals
+> The Problem
+> A few month ago, I tried porting the FreeBSD kdb along with it's gdb stub implementations to OpenBSD as a practice of learning the internals of an BSD operating system. The ddb code in both FreeBSD and OpenBSD looks pretty much the same and the GDB Remote Serial Protocol looks very minimal.
+> But sadly I got very busy and the work is stalled but I'm planning on resuming the attempt as soon as I get the chance, But there is an alternative way to Debugging the OpenBSD kernel via QEMU. What I did below is basically the same with a few minor changes which I hope to describe it as best.
+> Installing OpenBSD on Qemu
+> For debugging the kernel, we need a working OpenBSD system running on Qemu. I chose to create a raw disk file to be able to easily mount it later via the host and copy the custom kernel onto it.


<blockquote>
  $ qemu-img create -f raw disk.raw 5G
  $ qemu-system-x86<em>64 -m 256M \
  -drive format=raw,file=install63.fs \
  -drive format=raw,file=disk.raw
  +> Custom Kernel
  +> To debug the kernel, we need a version of the kernel with debugging symbols and for that we have to recompile it first. The process is documented at Building the System from Source:
  ...
  +> Then we can copy the bsd kernel to the guest machine and keep the bsd.gdb on the host to start the remote debugging via gdb.
  +> Remote debugging kernel
  +> Now it's to time to boot the guest with the new custom kernel. Remember that the -s argument enables the gdb server on qemu on localhost port 1234 by default:
  $ qemu-system-x86</em>64 -m 256M -s \
     -net nic -net user \
  -drive format=raw,file=install63.fs \
  +> Now to finally attach to the running kernel:</li>
  </ul>
  <hr />
</blockquote>

<h2>Interview - Patrick Mooney - Software Engineer <a href="pmooney@pfmooney.com">pmooney@pfmooney.com</a> / <a href="https://twitter.com/pfmooney">@pfmooney</a></h2>

<ul>
<li>BR: How did you first get introduced to UNIX?</li>
<li>AJ: What got you started contributing to an open source project?</li>
<li>BR: What sorts of things have you worked on in the past?</li>
<li>AJ: Can you tell us more about what attracted you to illumos?</li>
<li>BR: How did you get interested in, and started with, systems development?</li>
<li>AJ: When did you first get interested in bhyve?</li>
<li>BR: How much work was it to take the years-old port of bhyve and get it working on modern IllumOS?</li>
<li>AJ: What was the process for getting the bhyve port caught up to current FreeBSD?</li>
<li>BR: How usable is bhyve on illumOS?</li>
<li>AJ: What area are you most interested in improving in bhyve?</li>
<li>BR: Do you think the FreeBSD and illumos versions of bhyve will stay in sync with each other?</li>
<li>AJ: What do you do for fun?</li>
<li>BR: Anything else you want to mention?</li>
</ul>

<p><hr /></p>

<h2>News Roundup</h2>

<h3><a href="https://andidog.de/blog/2018-04-22-buildbot-setup-freebsd-jails">Setting up buildbot in FreeBSD Jails</a></h3>

<blockquote>
  <p>In this article, I would like to present a tutorial to set up buildbot, a continuous integration (CI) software (like Jenkins, drone, etc.), making use of FreeBSD’s containerization mechanism "jails". We will cover terminology, rationale for using both buildbot and jails together, and installation steps. At the end, you will have a working buildbot instance using its sample build configuration, ready to play around with your own CI plans (or even CD, it’s very flexible!). Some hints for production-grade installations are given, but the tutorial steps are meant for a test environment (namely a virtual machine). Buildbot’s configuration and detailed concepts are not in scope here.</p>
</blockquote>

<ul>
<li><p>Table of contents</p>

<ul><li>Choosing host operating system and version for buildbot</li>
<li>Create a FreeBSD playground</li>
<li>Introduction to jails</li>
<li>Overview of buildbot</li>
<li>Set up jails</li>
<li>Install buildbot master</li>
<li>Run buildbot master</li>
<li>Install buildbot worker</li>
<li>Run buildbot worker</li>
<li>Set up web server nginx to access buildbot UI</li>
<li>Run your first build</li>
<li>Production hints</li>
<li>Finished!</li></ul></li>
<li><p>Choosing host operating system and version for buildbot</p></li>
</ul>

<blockquote>
  <p>We choose the released version of FreeBSD (11.1-RELEASE at the moment). There is no particular reason for it, and as a matter of fact buildbot as a Python-based server is very cross-platform; therefore the underlying OS platform and version should not make a large difference.</p>
  
  <p>It will make a difference for what you do with buildbot, however. For instance, poudriere is the de-facto standard for building packages from source on FreeBSD. Builds run in jails which may be any FreeBSD base system version older or equal to the host’s version (reason will be explained below). In other words, if the host is FreeBSD 11.1, build jails created by poudriere could e.g. use 9.1, 10.3, 11.0, 11.1, but potentially not version 12 or newer because of incompatibilities with the host’s kernel (jails do not run their own kernel as full virtual machines do). To not prolong this article over the intended scope, the details of which nice things could be done or automated with buildbot are not covered.</p>
  
  <p>Package names on the FreeBSD platform are independent of the OS version, since external software (as in: not part of base system) is maintained in FreeBSD ports. So, if your chosen FreeBSD version (here: 11) is still officially supported, the packages mentioned in this post should work. In the unlikely event of package name changes before you read this article, you should be able to find the actual package names like pkg search buildbot.</p>
  
  <p>Other operating systems like the various Linux distributions will use different package names but might also offer buildbot pre-packaged. If not, the buildbot installation manual offers steps to install it manually. In such case, the downside is that you will have to maintain and update the buildbot modules outside the stability and (semi-)automatic updates of your OS packages.</p>
</blockquote>

<ul>
<li>See <a href="https://andidog.de/blog/2018-04-22-buildbot-setup-freebsd-jails">article</a> for the rest</li>
</ul>

<p><hr /></p>

<p><strong>DigitalOcean</strong></p>

<h3><a href="http://www.grenadille.net/post/2018/03/29/Dumping-your-USB">Dumping your USB</a></h3>

<blockquote>
  <p>One of the many new features of OpenBSD 6.3 is the possibility to dump USB traffic to userland via bpf(4). This can be done with tcpdump(8) by specifying a USB bus as interface:</p>
</blockquote>

<p>```</p>

<h1>tcpdump -Xx -i usb0</h1>

<p>tcpdump: listening on usb0, link-type USBPCAP
12:28:03.317945 bus 0 &lt; addr 1: ep1 intr 2
  0000: 0400                                     ..</p>

<p>12:28:03.318018 bus 0 > addr 1: ep0 ctrl 8
  0000: 00a3 0000 0002 0004 00                   ......... <br />
[...]
```</p>

<blockquote>
  <p>As you might have noted I decided to implement the existing USBPcap capture format. A capture format is required because USB packets do not include all the necessary information to properly interpret them. I first thought I would implement libpcap's DLT<em>USB but then I quickly realize that this was not a standard. It is instead a FreeBSD specific format which has been since then renamed DLT</em>USB<em>FREEBSD.
  But I didn't want to embrace xkcd #927, so I look at the existing formats: DLT</em>USB<em>FREEBSD, DLT</em>USB<em>LINUX, DLT</em>USB<em>LINUX</em>MMAPPED, DLT<em>USB</em>DARWIN and DLT_USBPCAP. I was first a bit sad to see that nobody could agree on a common format then I moved on and picked the simplest one: USBPcap.
  Implementing an already existing format gives us out-of-box support for all the tools supporting it. That's why having common formats let us share our energy. In the case of USBPcap it is already supported by Wireshark, so you can already inspect your packet graphically. For that you need to first capture raw packets:</p>
</blockquote>

<p>```</p>

<h1>tcpdump -s 3303 -w usb.pcap -i usb0</h1>

<p>tcpdump: listening on usb0, link-type USBPCAP
^C
208 packets received by filter
0 packets dropped by kernel
```</p>

<blockquote>
  <p>USB packets can be quite big, that's why I'm not using tcpdump(8)'s default packet size. In this case, I want to make sure I can dump the complete uaudio(4) frames.
  It is important to say that what is dumped to userland is what the USB stack sees. Packets sent on the wire might differ, especially when it comes to retries and timing. So this feature is not here to replace any USB analyser, however I hope that it will help people understand how things work and what the USB stack is doing. Even I found some interesting timing issues while implementing isochronous support.</p>
</blockquote>

<p><hr /></p>

<h3><a href="https://www.romanzolotarev.com/openbsd/webserver.html">Run OpenBSD on your web server</a></h3>

<ul>
<li><a href="https://www.romanzolotarev.com/vultr.html">Deploy and login to your OpenBSD server first.</a></li>
</ul>

<blockquote>
  <p>As soon as you're there you can enable an httpd(8) daemon, it's already installed on OpenBSD, you just need to configure it:</p>
</blockquote>

<p><code>www# vi /etc/httpd.conf</code></p>

<ul>
<li>Add two server sections---one for www and another for naked domain (all requests are redirected to www).</li>
</ul>

<p>```
server "www.example.com" {
  listen on * port 80
  root "/htdocs/www.example.com"
}</p>

<p>server "example.com" {
  listen on * port 80
  block return 301 "http://www.example.com$REQUEST_URI"
}
```</p>

<ul>
<li>httpd is chrooted to /var/www by default, so let's make a document root directory:</li>
</ul>

<p><code>www# mkdir -p /var/www/htdocs/www.example.com</code></p>

<ul>
<li>Save and check this configuration:</li>
</ul>

<p><code>
www# httpd -n
configuration ok
</code></p>

<ul>
<li>Enable httpd(8) daemon and start it.</li>
</ul>

<p><code>
www# rcctl enable httpd
www# rcctl start httpd
</code></p>

<ul>
<li><p>Publish your website</p></li>
<li><p>Copy your website content into /var/www/htdocs/www.example.com and then test it your web browser.</p></li>
</ul>

<p><code>http://XXX.XXX.XXX.XXX/</code></p>

<blockquote>
  <p>Your web server should be up and running.</p>
</blockquote>

<ul>
<li>Update DNS records</li>
</ul>

<blockquote>
  <p>If there is another HTTPS server using this domain, configure that server to redirect all HTTPS requests to HTTP.</p>
  
  <p>Now as your new server is ready you can update DNS records accordingly.</p>
</blockquote>

<p><code>
    example.com. 300 IN     A XXX.XXX.XXX.XXX
www.example.com. 300 IN     A XXX.XXX.XXX.XXX
</code></p>

<ul>
<li>Examine your DNS is propagated.</li>
</ul>

<p><code>$ dig example.com www.example.com</code></p>

<ul>
<li><p>Check IP addresses it answer sections. If they are correct, you should be able to access your new web server by its domain name.</p></li>
<li><p><a href="https://www.romanzolotarev.com/openbsd/acme-client.html">What's next? Enable HTTPS on your server.</a></p></li>
</ul>

<p><hr /></p>

<h3><a href="https://euroquis.nl/bobulate/?p=1827">Modern Akonadi and KMail on FreeBSD</a></h3>

<blockquote>
  <p>For, quite literally a year or more, KMail and Akonadi on FreeBSD have been only marginally useful, at best. KDE4 era KMail was pretty darn good, but everything after that has had a number of FreeBSD users tearing out their hair. Sure, you can go to Trojitá, which has its own special problems and is generally “meh”, or bail out entirely to webmail, but .. KMail is a really great mail client when it works. Which, on Linux desktops, is nearly always, and on FreeBSD, is was nearly never.</p>
  
  <p>I looked at it with Dan and Volker last summer, briefly, and we got not much further than “hmm”. There’s a message about “The world is going to end!” which hardly makes sense, it means that a message has been truncated or corrupted while traversing a UNIX domain socket.</p>
  
  <p>Now Alexandre Martins — praise be! — has wandered in with a likely solution. KDE Bug 381850 contains a suggestion, which deserves to be publicised (and tested):</p>
</blockquote>

<p><code>sysctl net.local.stream.recvspace=65536</code>
<code>sysctl net.local.stream.sendspace=65536</code></p>

<blockquote>
  <p>The default FreeBSD UNIX local socket buffer space is 8kiB. Bumping the size up to 64kiB — which matches the size that Linux has by default — suddenly makes KMail and Akonadi shine again. No other changes, no recompiling, just .. bump the sysctls (perhaps also in /etc/sysctl.conf) and KMail from Area51 hums along all day without ending the world.</p>
  
  <p>Since changing this value may have other effects, and Akonadi shouldn’t be dependent on a specific buffer size anyway, I’m looking into the Akonadi code (encouraged by Dan) to either automatically size the socket buffers, or to figure out where in the underlying code the assumption about buffer size lives. So for now, sysctl can make KMail users on FreeBSD happy, and later we hope to have things fully automatic (and if that doesn’t pan out, well, pkg-message exists).</p>
  
  <p>PS. Modern KDE PIM applications — Akonadi, KMail — which live in the deskutils/ category of the official FreeBSD ports were added to the official tree April 10th, so you can get your fix now from the official tree.</p>
</blockquote>

<p><hr /></p>

<h2>Beastie Bits</h2>

<ul>
<li><a href="http://lists.dragonflybsd.org/pipermail/users/2018-April/335722.html">pkg-provides support for DragonFly (from Rodrigo Osorio)</a></li>
<li><a href="https://monades.roperzh.com/memories-writing-parser-man-pages/">Memories of writing a parser for man pages</a></li>
<li><a href="http://developeronfire.com/podcast/episode-198-bryan-cantrill-persistence-and-action">Bryan Cantrill interview over at DeveloperOnFire podcast</a></li>
<li><a href="http://minnie.tuhs.org/pipermail/tuhs/2018-March/013285.html">1978-03-25 - 2018-03-25: 40 years BSD Mail</a></li>
<li><a href="https://imgur.com/a/KOTJS">My 5 years of FreeBSD gaming: a compendium of free games and engines running natively on FreeBSD</a></li>
<li><a href="https://reviews.freebsd.org/D15562">Sequential Resilver being upstreamed to FreeBSD, from FreeNAS, where it was ported from ZFS-on-Linux</a></li>
<li><a href="https://lists.freebsd.org/pipermail/freebsd-jobs/2018-May/000944.html">University of Aberdeen’s Internet Transport Research Group is hiring  </a></li>
</ul>

<p><hr /></p>

<p><strong>Tarsnap ad</strong></p>

<h2>Feedback/Questions</h2>

<ul>
<li>Dave - <a href="http://dpaste.com/0KHRB4Z#wrap">mounting non-filesystem things inside jails</a></li>
<li>Morgan - <a href="http://dpaste.com/10QD42T#wrap">ZFS on Linux Data loss bug</a></li>
<li>Rene - <a href="http://dpaste.com/30VM51S#wrap">How to keep your ISP’s nose out of your browser history with encrypted DNS</a></li>
<li>Rodriguez - <a href="http://dpaste.com/3WVYR9D#wrap">Feedback question! Relating to Windows</a></li>
</ul>

<p><hr /></p>

<ul>
<li>Send questions, comments, show ideas/topics, or stories you want mentioned on the show to <a href="mailto:feedback@bsdnow.tv">feedback@bsdnow.tv</a></li>
</ul>]]>
  </itunes:summary>
</item>
<item>
  <title>85: PIE in the Sky</title>
  <link>https://www.bsdnow.tv/85</link>
  <guid isPermaLink="false">7b947cd6-04e4-4210-a3a1-3f80d96ccc79</guid>
  <pubDate>Wed, 15 Apr 2015 08:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/7b947cd6-04e4-4210-a3a1-3f80d96ccc79.mp3" length="58114516" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>This time on the show, we'll be talking with Pascal Stumpf about static PIE in the upcoming OpenBSD release. He'll tell us what types of attacks it prevents, and why it's such a big deal. We've also got answers to questions from you in the audience and all this week's news, on BSD Now - the place to B.. SD.</itunes:subtitle>
  <itunes:duration>1:20:42</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>This time on the show, we'll be talking with Pascal Stumpf about static PIE in the upcoming OpenBSD release. He'll tell us what types of attacks it prevents, and why it's such a big deal. We've also got answers to questions from you in the audience and all this week's news, on BSD Now - the place to B.. SD.
This episode was brought to you by
&lt;a href="http://www.ixsystems.com/bsdnow" title="iXsystems"&gt;&lt;img src="/images/1.png" alt="iXsystems - Enterprise Servers and Storage for Open Source"&gt;&lt;/a&gt;&lt;a href="http://www.digitalocean.com/" title="DigitalOcean"&gt;&lt;img src="/images/2.png" alt="DigitalOcean - Simple Cloud Hosting, Built for Developers"&gt;&lt;/a&gt;&lt;a href="http://www.tarsnap.com/bsdnow" title="Tarsnap"&gt;&lt;img src="/images/3.png" alt="Tarsnap - Online Backups for the Truly Paranoid"&gt;&lt;/a&gt;
Headlines
Solaris' networking future is with OpenBSD (http://bsdly.blogspot.com/2015/04/solaris-admins-for-glimpse-of-your.html)
A curious patch from someone with an Oracle email address was recently sent in (https://www.marc.info/?l=openbsd-tech&amp;amp;m=142822852613581&amp;amp;w=2) to one of the OpenBSD mailing lists
It was revealed that future releases of Solaris are going to drop their IPFilter firewall entirely, in favor of a port of the current version of PF
For anyone unfamiliar with the history of PF, it was actually made as a replacement for IPFilter in OpenBSD, due to some licensing issues
What's more, Solaris was the original development platform for IPFilter, so the fact that it would be replaced in its own home is pretty interesting
This blog post goes through some of the backstory of the two firewalls
PF is in a lot of places - other BSDs, Mac OS X and iOS - but there are plenty of other OpenBSD-developed technologies end up ported to other projects too
"Many of the world's largest corporations and government agencies are heavy Solaris users, meaning that even if you're neither an OpenBSD user or a Solaris user, your kit is likely interacting intensely with both kinds, and with Solaris moving to OpenBSD's PF for their filtering needs, we will all be benefiting even more from the OpenBSD project's emphasis on correctness, quality and security"
You're welcome, Oracle
***
BAFUG discussion videos (https://www.youtube.com/watch?v=Cb--h-iOQEM#t=15)
The Bay Area FreeBSD users group has been uploading some videos from their recent meetings
Sean Bruno gave a recap of his experiences at EuroBSDCon last year, including the devsummit and some proposed ideas from it (as well as their current status)
Craig Rodrigues also gave a talk (https://www.youtube.com/watch?v=kPs8Dni_g3M#t=15) about Kyua and the FreeBSD testing framework
Lastly, Kip Macy gave a talk (https://www.youtube.com/watch?v=Q13WtuqbZ7E#t=15) titled "network stack changes, user-level FreeBSD"
The main two subjects there are some network stack changes, and how to get more people contributing, but there's also open discussion about a variety of FreeBSD topics
If you're close to the Bay Area in California, be sure to check out their group and attend a meeting sometime
***
More than just a makefile (http://homing-on-code.blogspot.com/2015/04/ports-are-more-than-just-makefile.html)
If you're not a BSD user just yet, you might be wondering how the various ports and pkgsrc systems compare to the binary way of doing things on Linux
This blog entry talks about the ports system in OpenBSD, but a lot of the concepts apply to all the ports systems across the BSDs
As it turns out, the ports system really isn't that different from a binary package manager - they are what's used to create binary packages, after all
The author goes through what makefiles do, customizing which options software is compiled with, patching source code to build and getting those patches back upstream
After that, he shows you how to get your new port tested, if you're interesting in doing some porting yourself, and getting involved with the rest of the community
This post is very long and there's a lot more to it, so check it out (and more discussion on Hacker News (https://news.ycombinator.com/item?id=9360827))
***
Securing your home fences (http://www.scip.ch/en/?labs.20150409)
Hopefully all our listeners have realized that trusting your network(s) to a consumer router is a bad (http://www.devttys0.com/2015/04/hacking-the-d-link-dir-890l/) idea (https://threatpost.com/12-million-home-routers-vulnerable-to-takeover/109970) by now
We hear from a lot of users who want to set up some kind of BSD-based firewall, but don't hear back from them after they've done it.. until now
In this post, someone goes through the process of setting up a home firewall using OPNsense on a PCEngines APU board (http://www.pcengines.ch/apu1d4.htm)
He notes that you have a lot of options software-wise, including vanilla FreeBSD (http://blog.pcbsd.org/2015/01/using-trueos-as-a-ipfw-based-home-router/), OpenBSD (http://www.bsdnow.tv/tutorials/openbsd-router) or even Linux, but decided to go with OPNsense because of the easy interface and configuration
The post covers all the hardware you'll need, getting the OS installed to a flash drive or SD card and going through the whole process
Finally, he goes through setting up the firewall with the graphical interface, applying updates and finishing everything up
If you don't have any experience using a serial console, this guide also has some good info for beginners about those (which also applies to regular FreeBSD)
We love super-detailed guides like this, so everyone should write more and send them to us immediately
***
Interview - Pascal Stumpf - pascal@openbsd.org (mailto:pascal@openbsd.org)
Static PIE in OpenBSD
News Roundup
LLVM's new libFuzzer (http://blog.llvm.org/2015/04/fuzz-all-clangs.html)
We've discussed fuzzing on the show a number of times, albeit mostly with the American Fuzzy Lop utility
It looks like LLVM is going to have their own fuzzing tool too now
The Clang and LLVM guys are no strangers to this type of code testing, but decided to "close the loop" and start fuzzing parts of LLVM (including Clang) using LLVM itself
With Clang being the default in both FreeBSD and Bitrig, and with the other BSDs considering the switch, this could make for some good bug hunting across all the projects in the future
***
HardenedBSD upgrades secadm (http://hardenedbsd.org/article/shawn-webb/2015-04-14/introducing-secadm-02)
The HardenedBSD guys have released a new version of their secadm tool, with the showcase feature being integriforce support
We covered both the secadm tool and integriforce in previous episodes, but the short version is that it's a way to prevent files from being altered (even as root)
Their integriforce feature itself has also gotten a couple improvements: shared objects are now checked too, instead of just binaries, and it uses more caching to speed up the whole process now
***
RAID5 returns to OpenBSD (https://www.marc.info/?l=openbsd-tech&amp;amp;m=142877132517229&amp;amp;w=2)
OpenBSD's softraid (http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man4/softraid.4) subsystem, somewhat similar to FreeBSD's GEOM, has had experimental RAID5 support for a while
However, it was exactly that - experimental - and required a recompile to enable
With some work from recent hackathons, the final piece (https://www.marc.info/?l=openbsd-cvs&amp;amp;m=142876943116907&amp;amp;w=2) was added to enable resuming partial array rebuilds
Now it's on by default (https://www.marc.info/?l=openbsd-cvs&amp;amp;m=142877026917030&amp;amp;w=2), and there's a call for testing being put out, so grab a snapshot and put the code through its paces
The bioctl softraid command also now supports (https://www.marc.info/?l=openbsd-cvs&amp;amp;m=142877223817406&amp;amp;w=2) DUIDs during pseudo-device detachment, possibly paving the way for the installer to drop (https://www.marc.info/?l=openbsd-tech&amp;amp;m=142643313416298&amp;amp;w=2) the "do you want to enable DUIDs?" question entirely
***
pkgng 1.5.0 released (https://lists.freebsd.org/pipermail/freebsd-current/2015-April/055463.html)
Going back to what we talked about last week (http://www.bsdnow.tv/episodes/2015_04_08-pkg_remove_freebsd-update), the final version of pkgng 1.5.0 is out
The "provides" and "requires" support is finally in a regular release
A new "-r" switch will allow for direct installation to a chroot or alternate root directory
Memory usage should be much better now, and some general code speed-ups were added
This version also introduces support for Mac OS X, NetBSD and EdgeBSD - it'll be interesting to see if anything comes of that
Many more bugs were fixed, so check the mailing list announcement for the rest (and plenty new bugs were added, according to bapt)
***
p2k15 hackathon reports (http://undeadly.org/cgi?action=article&amp;amp;sid=20150411160247)
There was another OpenBSD hackathon that just finished up in the UK - this time it was mainly for ports work
As usual, the developers sent in reports of some of the things they got done at the event
Landry Breuil, both an upstream Mozilla developer and an OpenBSD developer, wrote in about the work he did on the Firefox port (specifically WebRTC) and some others, as well as reviewing lots of patches that were ready to commit
Stefan Sperling wrote in (http://undeadly.org/cgi?action=article&amp;amp;sid=20150414064710), detailing his work with wireless chipsets, specifically when the vendor doesn't provide any hardware documentation, as well as updating some of the games in ports
Ken Westerback also sent in a report (http://undeadly.org/cgi?action=article&amp;amp;sid=20150413163333), but decided to be a rebel and not work on ports at all - he got a lot of GPT-related work done, and also reviewed the RAID5 support we talked about earlier
***
Feedback/Questions
Shaun writes in (http://slexy.org/view/s2iNBo2swq)
Hrishi writes in (http://slexy.org/view/s202BRLwrd)
Randy writes in (http://slexy.org/view/s2KT7M35uY)
Zach writes in (http://slexy.org/view/s2Q5lOoxzl)
Ben writes in (http://slexy.org/view/s2ynDjuzVi)
***
Mailing List Gold
Gstreamer hates us (https://www.marc.info/?l=openbsd-ports&amp;amp;m=142884995931428&amp;amp;w=2)
At least he's honest (https://lists.torproject.org/pipermail/tor-relays/2015-April/006765.html)
I find myself in a situation (https://lists.freebsd.org/pipermail/freebsd-current/2015-April/055390.html)
*** 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, pcbsd, tutorial, howto, guide, bsd, interview, aslr, pie, position-independent executable, static, binary, dynamic, linking, security, llvm, fuzzing, clang, opnsense, pcengines, apu, alix, hammer2, zfs, oracle, solaris, pf</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>This time on the show, we&#39;ll be talking with Pascal Stumpf about static PIE in the upcoming OpenBSD release. He&#39;ll tell us what types of attacks it prevents, and why it&#39;s such a big deal. We&#39;ve also got answers to questions from you in the audience and all this week&#39;s news, on BSD Now - the place to B.. SD.</p>

<h2>This episode was brought to you by</h2>

<p><a href="http://www.ixsystems.com/bsdnow" title="iXsystems"><img src="/images/1.png" alt="iXsystems - Enterprise Servers and Storage for Open Source" /></a><a href="http://www.digitalocean.com/" title="DigitalOcean"><img src="/images/2.png" alt="DigitalOcean - Simple Cloud Hosting, Built for Developers" /></a><a href="http://www.tarsnap.com/bsdnow" title="Tarsnap"><img src="/images/3.png" alt="Tarsnap - Online Backups for the Truly Paranoid" /></a></p>

<hr>

<h2>Headlines</h2>

<h3><a href="http://bsdly.blogspot.com/2015/04/solaris-admins-for-glimpse-of-your.html" rel="nofollow">Solaris&#39; networking future is with OpenBSD</a></h3>

<ul>
<li>A curious patch from someone with an Oracle email address was <a href="https://www.marc.info/?l=openbsd-tech&m=142822852613581&w=2" rel="nofollow">recently sent in</a> to one of the OpenBSD mailing lists</li>
<li>It was revealed that future releases of Solaris are going to drop their IPFilter firewall entirely, in favor of a port of the <strong>current</strong> version of PF</li>
<li>For anyone unfamiliar with the history of PF, it was actually made <em>as a replacement for</em> IPFilter in OpenBSD, due to some licensing issues</li>
<li>What&#39;s more, Solaris was the original development platform for IPFilter, so the fact that it would be replaced in its own home is pretty interesting</li>
<li>This blog post goes through some of the backstory of the two firewalls</li>
<li>PF is in a lot of places - other BSDs, Mac OS X and iOS - but there are plenty of other OpenBSD-developed technologies end up ported to other projects too</li>
<li>&quot;Many of the world&#39;s largest corporations and government agencies are heavy Solaris users, meaning that even if you&#39;re neither an OpenBSD user or a Solaris user, your kit is likely interacting intensely with both kinds, and with Solaris moving to OpenBSD&#39;s PF for their filtering needs, we will all be benefiting even more from the OpenBSD project&#39;s emphasis on correctness, quality and security&quot;</li>
<li>You&#39;re welcome, Oracle
***</li>
</ul>

<h3><a href="https://www.youtube.com/watch?v=Cb--h-iOQEM#t=15" rel="nofollow">BAFUG discussion videos</a></h3>

<ul>
<li>The Bay Area FreeBSD users group has been uploading some videos from their recent meetings</li>
<li>Sean Bruno gave a recap of his experiences at EuroBSDCon last year, including the devsummit and some proposed ideas from it (as well as their current status)</li>
<li>Craig Rodrigues also gave <a href="https://www.youtube.com/watch?v=kPs8Dni_g3M#t=15" rel="nofollow">a talk</a> about Kyua and the FreeBSD testing framework</li>
<li>Lastly, Kip Macy gave <a href="https://www.youtube.com/watch?v=Q13WtuqbZ7E#t=15" rel="nofollow">a talk</a> titled &quot;network stack changes, user-level FreeBSD&quot;</li>
<li>The main two subjects there are some network stack changes, and how to get more people contributing, but there&#39;s also open discussion about a variety of FreeBSD topics</li>
<li>If you&#39;re close to the Bay Area in California, be sure to check out their group and attend a meeting sometime
***</li>
</ul>

<h3><a href="http://homing-on-code.blogspot.com/2015/04/ports-are-more-than-just-makefile.html" rel="nofollow">More than just a makefile</a></h3>

<ul>
<li>If you&#39;re not a BSD user just yet, you might be wondering how the various ports and pkgsrc systems compare to the binary way of doing things on Linux</li>
<li>This blog entry talks about the ports system in OpenBSD, but a lot of the concepts apply to all the ports systems across the BSDs</li>
<li>As it turns out, the ports system really isn&#39;t that different from a binary package manager - they are what&#39;s <em>used</em> to create binary packages, after all</li>
<li>The author goes through what makefiles do, customizing which options software is compiled with, patching source code to build and getting those patches back upstream</li>
<li>After that, he shows you how to get your new port tested, if you&#39;re interesting in doing some porting yourself, and getting involved with the rest of the community</li>
<li>This post is very long and there&#39;s a lot more to it, so check it out (and more discussion <a href="https://news.ycombinator.com/item?id=9360827" rel="nofollow">on Hacker News</a>)
***</li>
</ul>

<h3><a href="http://www.scip.ch/en/?labs.20150409" rel="nofollow">Securing your home fences</a></h3>

<ul>
<li>Hopefully all our listeners have realized that trusting your network(s) to a consumer router is a <a href="http://www.devttys0.com/2015/04/hacking-the-d-link-dir-890l/" rel="nofollow">bad</a> <a href="https://threatpost.com/12-million-home-routers-vulnerable-to-takeover/109970" rel="nofollow">idea</a> by now</li>
<li>We hear from a lot of users who want to set up some kind of BSD-based firewall, but don&#39;t hear back from them after they&#39;ve done it.. until now</li>
<li>In this post, someone goes through the process of setting up a home firewall using OPNsense on a PCEngines <a href="http://www.pcengines.ch/apu1d4.htm" rel="nofollow">APU board</a></li>
<li>He notes that you have a lot of options software-wise, including vanilla <a href="http://blog.pcbsd.org/2015/01/using-trueos-as-a-ipfw-based-home-router/" rel="nofollow">FreeBSD</a>, <a href="http://www.bsdnow.tv/tutorials/openbsd-router" rel="nofollow">OpenBSD</a> or even Linux, but decided to go with OPNsense because of the easy interface and configuration</li>
<li>The post covers all the hardware you&#39;ll need, getting the OS installed to a flash drive or SD card and going through the whole process</li>
<li>Finally, he goes through setting up the firewall with the graphical interface, applying updates and finishing everything up</li>
<li>If you don&#39;t have any experience using a serial console, this guide also has some good info for beginners about those (which also applies to regular FreeBSD)</li>
<li>We love super-detailed guides like this, so everyone should write more and send them to us immediately
***</li>
</ul>

<h2>Interview - Pascal Stumpf - <a href="mailto:pascal@openbsd.org" rel="nofollow">pascal@openbsd.org</a></h2>

<p>Static PIE in OpenBSD</p>

<hr>

<h2>News Roundup</h2>

<h3><a href="http://blog.llvm.org/2015/04/fuzz-all-clangs.html" rel="nofollow">LLVM&#39;s new libFuzzer</a></h3>

<ul>
<li>We&#39;ve discussed fuzzing on the show a number of times, albeit mostly with the American Fuzzy Lop utility</li>
<li>It looks like LLVM is going to have their own fuzzing tool too now</li>
<li>The Clang and LLVM guys are no strangers to this type of code testing, but decided to &quot;close the loop&quot; and start fuzzing parts of LLVM (including Clang) using LLVM itself</li>
<li>With Clang being the default in both FreeBSD and Bitrig, and with the other BSDs considering the switch, this could make for some good bug hunting across all the projects in the future
***</li>
</ul>

<h3><a href="http://hardenedbsd.org/article/shawn-webb/2015-04-14/introducing-secadm-02" rel="nofollow">HardenedBSD upgrades secadm</a></h3>

<ul>
<li>The HardenedBSD guys have released a new version of their secadm tool, with the showcase feature being integriforce support</li>
<li>We covered both the secadm tool and integriforce in previous episodes, but the short version is that it&#39;s a way to prevent files from being altered (even as root)</li>
<li>Their integriforce feature itself has also gotten a couple improvements: shared objects are now checked too, instead of just binaries, and it uses more caching to speed up the whole process now
***</li>
</ul>

<h3><a href="https://www.marc.info/?l=openbsd-tech&m=142877132517229&w=2" rel="nofollow">RAID5 returns to OpenBSD</a></h3>

<ul>
<li>OpenBSD&#39;s <a href="http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man4/softraid.4" rel="nofollow">softraid</a> subsystem, somewhat similar to FreeBSD&#39;s GEOM, has had experimental RAID5 support for a while</li>
<li>However, it was exactly that - experimental - and required a recompile to enable</li>
<li>With some work from recent hackathons, the <a href="https://www.marc.info/?l=openbsd-cvs&m=142876943116907&w=2" rel="nofollow">final piece</a> was added to enable resuming partial array rebuilds</li>
<li>Now it&#39;s <a href="https://www.marc.info/?l=openbsd-cvs&m=142877026917030&w=2" rel="nofollow">on by default</a>, and there&#39;s a call for testing being put out, so grab a snapshot and put the code through its paces</li>
<li>The bioctl softraid command also <a href="https://www.marc.info/?l=openbsd-cvs&m=142877223817406&w=2" rel="nofollow">now supports</a> DUIDs during pseudo-device detachment, possibly paving the way for the installer to <a href="https://www.marc.info/?l=openbsd-tech&m=142643313416298&w=2" rel="nofollow">drop</a> the &quot;do you want to enable DUIDs?&quot; question entirely
***</li>
</ul>

<h3><a href="https://lists.freebsd.org/pipermail/freebsd-current/2015-April/055463.html" rel="nofollow">pkgng 1.5.0 released</a></h3>

<ul>
<li>Going back to what we <a href="http://www.bsdnow.tv/episodes/2015_04_08-pkg_remove_freebsd-update" rel="nofollow">talked about last week</a>, the final version of pkgng 1.5.0 is out</li>
<li>The &quot;provides&quot; and &quot;requires&quot; support is finally in a regular release</li>
<li>A new &quot;-r&quot; switch will allow for direct installation to a chroot or alternate root directory</li>
<li>Memory usage should be much better now, and some general code speed-ups were added</li>
<li>This version also introduces support for Mac OS X, NetBSD and EdgeBSD - it&#39;ll be interesting to see if anything comes of that</li>
<li>Many more bugs were fixed, so check the mailing list announcement for the rest (and plenty new bugs were added, according to bapt)
***</li>
</ul>

<h3><a href="http://undeadly.org/cgi?action=article&sid=20150411160247" rel="nofollow">p2k15 hackathon reports</a></h3>

<ul>
<li>There was another OpenBSD hackathon that just finished up in the UK - this time it was mainly for ports work</li>
<li>As usual, the developers sent in reports of some of the things they got done at the event</li>
<li>Landry Breuil, both an upstream Mozilla developer and an OpenBSD developer, wrote in about the work he did on the Firefox port (specifically WebRTC) and some others, as well as reviewing lots of patches that were ready to commit</li>
<li>Stefan Sperling <a href="http://undeadly.org/cgi?action=article&sid=20150414064710" rel="nofollow">wrote in</a>, detailing his work with wireless chipsets, specifically when the vendor doesn&#39;t provide any hardware documentation, as well as updating some of the games in ports</li>
<li>Ken Westerback <a href="http://undeadly.org/cgi?action=article&sid=20150413163333" rel="nofollow">also sent in a report</a>, but decided to be a rebel and not work on ports at all - he got a lot of GPT-related work done, and also reviewed the RAID5 support we talked about earlier
***</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="http://slexy.org/view/s2iNBo2swq" rel="nofollow">Shaun writes in</a></li>
<li><a href="http://slexy.org/view/s202BRLwrd" rel="nofollow">Hrishi writes in</a></li>
<li><a href="http://slexy.org/view/s2KT7M35uY" rel="nofollow">Randy writes in</a></li>
<li><a href="http://slexy.org/view/s2Q5lOoxzl" rel="nofollow">Zach writes in</a></li>
<li><a href="http://slexy.org/view/s2ynDjuzVi" rel="nofollow">Ben writes in</a>
***</li>
</ul>

<h2>Mailing List Gold</h2>

<ul>
<li><a href="https://www.marc.info/?l=openbsd-ports&m=142884995931428&w=2" rel="nofollow">Gstreamer hates us</a></li>
<li><a href="https://lists.torproject.org/pipermail/tor-relays/2015-April/006765.html" rel="nofollow">At least he&#39;s honest</a></li>
<li><a href="https://lists.freebsd.org/pipermail/freebsd-current/2015-April/055390.html" rel="nofollow">I find myself in a situation</a>
***</li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>This time on the show, we&#39;ll be talking with Pascal Stumpf about static PIE in the upcoming OpenBSD release. He&#39;ll tell us what types of attacks it prevents, and why it&#39;s such a big deal. We&#39;ve also got answers to questions from you in the audience and all this week&#39;s news, on BSD Now - the place to B.. SD.</p>

<h2>This episode was brought to you by</h2>

<p><a href="http://www.ixsystems.com/bsdnow" title="iXsystems"><img src="/images/1.png" alt="iXsystems - Enterprise Servers and Storage for Open Source" /></a><a href="http://www.digitalocean.com/" title="DigitalOcean"><img src="/images/2.png" alt="DigitalOcean - Simple Cloud Hosting, Built for Developers" /></a><a href="http://www.tarsnap.com/bsdnow" title="Tarsnap"><img src="/images/3.png" alt="Tarsnap - Online Backups for the Truly Paranoid" /></a></p>

<hr>

<h2>Headlines</h2>

<h3><a href="http://bsdly.blogspot.com/2015/04/solaris-admins-for-glimpse-of-your.html" rel="nofollow">Solaris&#39; networking future is with OpenBSD</a></h3>

<ul>
<li>A curious patch from someone with an Oracle email address was <a href="https://www.marc.info/?l=openbsd-tech&m=142822852613581&w=2" rel="nofollow">recently sent in</a> to one of the OpenBSD mailing lists</li>
<li>It was revealed that future releases of Solaris are going to drop their IPFilter firewall entirely, in favor of a port of the <strong>current</strong> version of PF</li>
<li>For anyone unfamiliar with the history of PF, it was actually made <em>as a replacement for</em> IPFilter in OpenBSD, due to some licensing issues</li>
<li>What&#39;s more, Solaris was the original development platform for IPFilter, so the fact that it would be replaced in its own home is pretty interesting</li>
<li>This blog post goes through some of the backstory of the two firewalls</li>
<li>PF is in a lot of places - other BSDs, Mac OS X and iOS - but there are plenty of other OpenBSD-developed technologies end up ported to other projects too</li>
<li>&quot;Many of the world&#39;s largest corporations and government agencies are heavy Solaris users, meaning that even if you&#39;re neither an OpenBSD user or a Solaris user, your kit is likely interacting intensely with both kinds, and with Solaris moving to OpenBSD&#39;s PF for their filtering needs, we will all be benefiting even more from the OpenBSD project&#39;s emphasis on correctness, quality and security&quot;</li>
<li>You&#39;re welcome, Oracle
***</li>
</ul>

<h3><a href="https://www.youtube.com/watch?v=Cb--h-iOQEM#t=15" rel="nofollow">BAFUG discussion videos</a></h3>

<ul>
<li>The Bay Area FreeBSD users group has been uploading some videos from their recent meetings</li>
<li>Sean Bruno gave a recap of his experiences at EuroBSDCon last year, including the devsummit and some proposed ideas from it (as well as their current status)</li>
<li>Craig Rodrigues also gave <a href="https://www.youtube.com/watch?v=kPs8Dni_g3M#t=15" rel="nofollow">a talk</a> about Kyua and the FreeBSD testing framework</li>
<li>Lastly, Kip Macy gave <a href="https://www.youtube.com/watch?v=Q13WtuqbZ7E#t=15" rel="nofollow">a talk</a> titled &quot;network stack changes, user-level FreeBSD&quot;</li>
<li>The main two subjects there are some network stack changes, and how to get more people contributing, but there&#39;s also open discussion about a variety of FreeBSD topics</li>
<li>If you&#39;re close to the Bay Area in California, be sure to check out their group and attend a meeting sometime
***</li>
</ul>

<h3><a href="http://homing-on-code.blogspot.com/2015/04/ports-are-more-than-just-makefile.html" rel="nofollow">More than just a makefile</a></h3>

<ul>
<li>If you&#39;re not a BSD user just yet, you might be wondering how the various ports and pkgsrc systems compare to the binary way of doing things on Linux</li>
<li>This blog entry talks about the ports system in OpenBSD, but a lot of the concepts apply to all the ports systems across the BSDs</li>
<li>As it turns out, the ports system really isn&#39;t that different from a binary package manager - they are what&#39;s <em>used</em> to create binary packages, after all</li>
<li>The author goes through what makefiles do, customizing which options software is compiled with, patching source code to build and getting those patches back upstream</li>
<li>After that, he shows you how to get your new port tested, if you&#39;re interesting in doing some porting yourself, and getting involved with the rest of the community</li>
<li>This post is very long and there&#39;s a lot more to it, so check it out (and more discussion <a href="https://news.ycombinator.com/item?id=9360827" rel="nofollow">on Hacker News</a>)
***</li>
</ul>

<h3><a href="http://www.scip.ch/en/?labs.20150409" rel="nofollow">Securing your home fences</a></h3>

<ul>
<li>Hopefully all our listeners have realized that trusting your network(s) to a consumer router is a <a href="http://www.devttys0.com/2015/04/hacking-the-d-link-dir-890l/" rel="nofollow">bad</a> <a href="https://threatpost.com/12-million-home-routers-vulnerable-to-takeover/109970" rel="nofollow">idea</a> by now</li>
<li>We hear from a lot of users who want to set up some kind of BSD-based firewall, but don&#39;t hear back from them after they&#39;ve done it.. until now</li>
<li>In this post, someone goes through the process of setting up a home firewall using OPNsense on a PCEngines <a href="http://www.pcengines.ch/apu1d4.htm" rel="nofollow">APU board</a></li>
<li>He notes that you have a lot of options software-wise, including vanilla <a href="http://blog.pcbsd.org/2015/01/using-trueos-as-a-ipfw-based-home-router/" rel="nofollow">FreeBSD</a>, <a href="http://www.bsdnow.tv/tutorials/openbsd-router" rel="nofollow">OpenBSD</a> or even Linux, but decided to go with OPNsense because of the easy interface and configuration</li>
<li>The post covers all the hardware you&#39;ll need, getting the OS installed to a flash drive or SD card and going through the whole process</li>
<li>Finally, he goes through setting up the firewall with the graphical interface, applying updates and finishing everything up</li>
<li>If you don&#39;t have any experience using a serial console, this guide also has some good info for beginners about those (which also applies to regular FreeBSD)</li>
<li>We love super-detailed guides like this, so everyone should write more and send them to us immediately
***</li>
</ul>

<h2>Interview - Pascal Stumpf - <a href="mailto:pascal@openbsd.org" rel="nofollow">pascal@openbsd.org</a></h2>

<p>Static PIE in OpenBSD</p>

<hr>

<h2>News Roundup</h2>

<h3><a href="http://blog.llvm.org/2015/04/fuzz-all-clangs.html" rel="nofollow">LLVM&#39;s new libFuzzer</a></h3>

<ul>
<li>We&#39;ve discussed fuzzing on the show a number of times, albeit mostly with the American Fuzzy Lop utility</li>
<li>It looks like LLVM is going to have their own fuzzing tool too now</li>
<li>The Clang and LLVM guys are no strangers to this type of code testing, but decided to &quot;close the loop&quot; and start fuzzing parts of LLVM (including Clang) using LLVM itself</li>
<li>With Clang being the default in both FreeBSD and Bitrig, and with the other BSDs considering the switch, this could make for some good bug hunting across all the projects in the future
***</li>
</ul>

<h3><a href="http://hardenedbsd.org/article/shawn-webb/2015-04-14/introducing-secadm-02" rel="nofollow">HardenedBSD upgrades secadm</a></h3>

<ul>
<li>The HardenedBSD guys have released a new version of their secadm tool, with the showcase feature being integriforce support</li>
<li>We covered both the secadm tool and integriforce in previous episodes, but the short version is that it&#39;s a way to prevent files from being altered (even as root)</li>
<li>Their integriforce feature itself has also gotten a couple improvements: shared objects are now checked too, instead of just binaries, and it uses more caching to speed up the whole process now
***</li>
</ul>

<h3><a href="https://www.marc.info/?l=openbsd-tech&m=142877132517229&w=2" rel="nofollow">RAID5 returns to OpenBSD</a></h3>

<ul>
<li>OpenBSD&#39;s <a href="http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man4/softraid.4" rel="nofollow">softraid</a> subsystem, somewhat similar to FreeBSD&#39;s GEOM, has had experimental RAID5 support for a while</li>
<li>However, it was exactly that - experimental - and required a recompile to enable</li>
<li>With some work from recent hackathons, the <a href="https://www.marc.info/?l=openbsd-cvs&m=142876943116907&w=2" rel="nofollow">final piece</a> was added to enable resuming partial array rebuilds</li>
<li>Now it&#39;s <a href="https://www.marc.info/?l=openbsd-cvs&m=142877026917030&w=2" rel="nofollow">on by default</a>, and there&#39;s a call for testing being put out, so grab a snapshot and put the code through its paces</li>
<li>The bioctl softraid command also <a href="https://www.marc.info/?l=openbsd-cvs&m=142877223817406&w=2" rel="nofollow">now supports</a> DUIDs during pseudo-device detachment, possibly paving the way for the installer to <a href="https://www.marc.info/?l=openbsd-tech&m=142643313416298&w=2" rel="nofollow">drop</a> the &quot;do you want to enable DUIDs?&quot; question entirely
***</li>
</ul>

<h3><a href="https://lists.freebsd.org/pipermail/freebsd-current/2015-April/055463.html" rel="nofollow">pkgng 1.5.0 released</a></h3>

<ul>
<li>Going back to what we <a href="http://www.bsdnow.tv/episodes/2015_04_08-pkg_remove_freebsd-update" rel="nofollow">talked about last week</a>, the final version of pkgng 1.5.0 is out</li>
<li>The &quot;provides&quot; and &quot;requires&quot; support is finally in a regular release</li>
<li>A new &quot;-r&quot; switch will allow for direct installation to a chroot or alternate root directory</li>
<li>Memory usage should be much better now, and some general code speed-ups were added</li>
<li>This version also introduces support for Mac OS X, NetBSD and EdgeBSD - it&#39;ll be interesting to see if anything comes of that</li>
<li>Many more bugs were fixed, so check the mailing list announcement for the rest (and plenty new bugs were added, according to bapt)
***</li>
</ul>

<h3><a href="http://undeadly.org/cgi?action=article&sid=20150411160247" rel="nofollow">p2k15 hackathon reports</a></h3>

<ul>
<li>There was another OpenBSD hackathon that just finished up in the UK - this time it was mainly for ports work</li>
<li>As usual, the developers sent in reports of some of the things they got done at the event</li>
<li>Landry Breuil, both an upstream Mozilla developer and an OpenBSD developer, wrote in about the work he did on the Firefox port (specifically WebRTC) and some others, as well as reviewing lots of patches that were ready to commit</li>
<li>Stefan Sperling <a href="http://undeadly.org/cgi?action=article&sid=20150414064710" rel="nofollow">wrote in</a>, detailing his work with wireless chipsets, specifically when the vendor doesn&#39;t provide any hardware documentation, as well as updating some of the games in ports</li>
<li>Ken Westerback <a href="http://undeadly.org/cgi?action=article&sid=20150413163333" rel="nofollow">also sent in a report</a>, but decided to be a rebel and not work on ports at all - he got a lot of GPT-related work done, and also reviewed the RAID5 support we talked about earlier
***</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="http://slexy.org/view/s2iNBo2swq" rel="nofollow">Shaun writes in</a></li>
<li><a href="http://slexy.org/view/s202BRLwrd" rel="nofollow">Hrishi writes in</a></li>
<li><a href="http://slexy.org/view/s2KT7M35uY" rel="nofollow">Randy writes in</a></li>
<li><a href="http://slexy.org/view/s2Q5lOoxzl" rel="nofollow">Zach writes in</a></li>
<li><a href="http://slexy.org/view/s2ynDjuzVi" rel="nofollow">Ben writes in</a>
***</li>
</ul>

<h2>Mailing List Gold</h2>

<ul>
<li><a href="https://www.marc.info/?l=openbsd-ports&m=142884995931428&w=2" rel="nofollow">Gstreamer hates us</a></li>
<li><a href="https://lists.torproject.org/pipermail/tor-relays/2015-April/006765.html" rel="nofollow">At least he&#39;s honest</a></li>
<li><a href="https://lists.freebsd.org/pipermail/freebsd-current/2015-April/055390.html" rel="nofollow">I find myself in a situation</a>
***</li>
</ul>]]>
  </itunes:summary>
</item>
<item>
  <title>30: Documentation is King</title>
  <link>https://www.bsdnow.tv/30</link>
  <guid isPermaLink="false">ab836072-6c9b-4d13-9011-8d9ddf4294e7</guid>
  <pubDate>Wed, 26 Mar 2014 08:00:00 -0400</pubDate>
  <author>JT Pennington</author>
  <enclosure url="https://aphid.fireside.fm/d/1437767933/c91b88f1-e824-4815-bcb8-5227818d6010/ab836072-6c9b-4d13-9011-8d9ddf4294e7.mp3" length="59694113" type="audio/mpeg"/>
  <itunes:episodeType>full</itunes:episodeType>
  <itunes:author>JT Pennington</itunes:author>
  <itunes:subtitle>Finally hit 30 episodes! Today we'll be chatting with Warren Block to discuss BSD documentation efforts and future plans. If you've ever wondered about the scary world of mailing lists, today's tutorial will show you the basics of how to get help and contribute back. There's lots to get to today, so sit back and enjoy some BSD Now - the place to B.. SD.</itunes:subtitle>
  <itunes:duration>1:22:54</itunes:duration>
  <itunes:explicit>no</itunes:explicit>
  <itunes:image href="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/c/c91b88f1-e824-4815-bcb8-5227818d6010/cover.jpg?v=4"/>
  <description>Finally hit 30 episodes! Today we'll be chatting with Warren Block to discuss BSD documentation efforts and future plans. If you've ever wondered about the scary world of mailing lists, today's tutorial will show you the basics of how to get help and contribute back. There's lots to get to today, so sit back and enjoy some BSD Now - the place to B.. SD.
This episode was brought to you by
&lt;a href="http://www.ixsystems.com/bsdnow" title="iXsystems"&gt;&lt;img src="/images/iXlogo2.png" alt="iXsystems - Enterprise Servers and Storage For Open Source"&gt;&lt;/a&gt;
Headlines
OpenBSD on a Sun T5120 (http://www.tedunangst.com/flak/post/OpenBSD-on-a-Sun-T5120)
Our buddy Ted Unangst (http://www.bsdnow.tv/episodes/2014_02_05-time_signatures) got himself a cool Sun box
Of course he had to write a post about installing and running OpenBSD on it
The post goes through some of the quirks and steps to go through in case you're interested in one of these fine SPARC machines
He's also got another post about OpenBSD on a Dell CS24-SC server (http://www.tedunangst.com/flak/post/Dell-CS24-SC-server)
***
Bhyvecon 2014 videos are up (https://www.youtube.com/results?search_query=bhyvecon%20tokyo&amp;amp;sm=3)
Like we mentioned last week, Bhyvecon (http://bhyvecon.org/) was an almost-impromptu conference before AsiaBSDCon
The talks have apparently already been uploaded!
Subjects include Bhyve's past, present and future, OSv on Bhyve, a general introduction to the tool, migrating those last few pesky Linux boxes to virtualization
Lots more detail in the videos, so check 'em all out
***
Building a FreeBSD wireless access point (http://blog.khubla.com/freebsd/building-my-own-wireless-point)
We've got a new blog post about creating a wireless access point with FreeBSD
After all the recent news of consumer routers being pwned like candy, it's time for people to start building BSD routers (http://www.bsdnow.tv/tutorials/openbsd-router)
The author goes through a lot of the process of getting one set up using good ol' FreeBSD
Using hostapd, he's able to share his wireless card in hostap mode and offer DHCP to all the clients
Plenty of config files and more messy details in the post
***
Switching from Synology to FreeNAS (http://www.notquitemainstream.com/2014/03/15/why-im-switching-from-synology-to-freenas/)
The author has been considering getting a NAS for quite a while and documents his research
He was faced with the compromise of convenience vs. flexibility - prebuilt or DIY
After seeing the potential security issues with proprietary NAS devices, and dealing with frustration with trying to get bugs fixed, he makes the right choice
The post also goes into some detail about his setup, all the things he needed a NAS to do as well as all the advantages an open source solution would give
***
Interview - Warren Block - wblock@freebsd.org (mailto:wblock@freebsd.org)
FreeBSD's documentation project, igor, doceng
Tutorial
The world of BSD mailing lists (http://www.bsdnow.tv/tutorials/mailing-lists)
News Roundup
HAMMER2 work and notes (http://www.shiningsilence.com/dbsdlog/2014/03/18/13651.html)
Matthew Dillon has posted some updated notes about the development of the new HAMMER version
The start of a cluster API was committed to the tree
There are also links to design document, a freemap design document, a changes list and a todo list
***
BSD Breaking Barriers (https://www.youtube.com/watch?v=buo5JlMnGPI)
Our friend MWL (http://www.bsdnow.tv/episodes/2013_11_06-year_of_the_bsd_desktop) gave a talk at NYCBSDCon about BSD "breaking barriers"
"What makes the BSD operating systems special? Why should you deploy your applications on BSD? Why does the BSD community keep growing, and why do Linux sites like DistroWatch say that BSD is where the interesting development work is happening? We'll cover the not-so-obvious reasons why BSD still stands tall after almost 40 years."
He also has another upcoming talk, (or "webcast") called "Beyond Security: Getting to Know OpenBSD's Real Purpose (http://oreillynet.com/pub/e/3059)"
"OpenBSD is frequently billed as a high-security operating system. That's true, but security isn't the OpenBSD Project's main goal. This webcast will introduce systems administrators to OpenBSD, explain the project's mission, and discuss the features and benefits."
It's on May 27th and will hopefully be recorded
***
FreeBSD in a chroot (http://dreamcat4.github.io/finch/)
Finch, "FreeBSD running IN a CHroot," is a new project
It's a way to extend the functionality of restricted USB-based FreeBSD systems (FreeNAS, etc.)
All the details and some interesting use cases are on the github page
He really needs to change the project name (https://www.freshports.org/net-im/finch) though
***
PCBSD weekly digest (http://blog.pcbsd.org/2014/03/pc-bsd-weekly-feature-digest-22/)
Lots of bugfixes for PCBSD coming down the tubes
LZ4 compression is now enabled by default on the whole pool
The latest 10-STABLE has been imported and builds are going
Also the latest GNOME and Cinnamon builds have been imported and much more
***
Feedback/Questions
Bostjan writes in (http://slexy.org/view/s20SlvTcwd) (IRC suggests md5deep)
Don writes in (http://slexy.org/view/s2PeMqXFid)
kaltheat writes in (http://slexy.org/view/s21yii6KZe) (We use R0DE Podcast microphones and Logitech C920 HD webcams)
Harri writes in (http://slexy.org/view/s21SkX19Cp)
*** 
</description>
  <itunes:keywords>freebsd, openbsd, netbsd, dragonflybsd, pcbsd, tutorial, howto, guide, bsd, interview, rtfm, mailing lists, lists, documentation, doceng, igor, man pages, manpages, wireless, access point, wap, router, pfsense, sun, t5120, dell, cs24-c, server, bhyve, bhyvecon, asiabsdcon, 2014, synology, freenas, ixsystems, megaport, foundation, rack, datacenter, mail, hammer, hammer2, hammerfs, fs, filesystem, rump kernels</itunes:keywords>
  <content:encoded>
    <![CDATA[<p>Finally hit 30 episodes! Today we&#39;ll be chatting with Warren Block to discuss BSD documentation efforts and future plans. If you&#39;ve ever wondered about the scary world of mailing lists, today&#39;s tutorial will show you the basics of how to get help and contribute back. There&#39;s lots to get to today, so sit back and enjoy some BSD Now - the place to B.. SD.</p>

<h2>This episode was brought to you by</h2>

<p><a href="http://www.ixsystems.com/bsdnow" title="iXsystems"><img src="/images/iXlogo2.png" alt="iXsystems - Enterprise Servers and Storage For Open Source" /></a></p>

<hr>

<h2>Headlines</h2>

<h3><a href="http://www.tedunangst.com/flak/post/OpenBSD-on-a-Sun-T5120" rel="nofollow">OpenBSD on a Sun T5120</a></h3>

<ul>
<li>Our buddy <a href="http://www.bsdnow.tv/episodes/2014_02_05-time_signatures" rel="nofollow">Ted Unangst</a> got himself a cool Sun box</li>
<li>Of course he had to write a post about installing and running OpenBSD on it</li>
<li>The post goes through some of the quirks and steps to go through in case you&#39;re interested in one of these fine SPARC machines</li>
<li>He&#39;s also got another post about OpenBSD on a <a href="http://www.tedunangst.com/flak/post/Dell-CS24-SC-server" rel="nofollow">Dell CS24-SC server</a>
***</li>
</ul>

<h3><a href="https://www.youtube.com/results?search_query=bhyvecon%20tokyo&sm=3" rel="nofollow">Bhyvecon 2014 videos are up</a></h3>

<ul>
<li>Like we mentioned last week, <a href="http://bhyvecon.org/" rel="nofollow">Bhyvecon</a> was an almost-impromptu conference before AsiaBSDCon</li>
<li>The talks have apparently already been uploaded!</li>
<li>Subjects include Bhyve&#39;s past, present and future, OSv on Bhyve, a general introduction to the tool, migrating those last few pesky Linux boxes to virtualization</li>
<li>Lots more detail in the videos, so check &#39;em all out
***</li>
</ul>

<h3><a href="http://blog.khubla.com/freebsd/building-my-own-wireless-point" rel="nofollow">Building a FreeBSD wireless access point</a></h3>

<ul>
<li>We&#39;ve got a new blog post about creating a wireless access point with FreeBSD</li>
<li>After all the recent news of consumer routers being pwned like candy, it&#39;s time for people to start building <a href="http://www.bsdnow.tv/tutorials/openbsd-router" rel="nofollow">BSD routers</a></li>
<li>The author goes through a lot of the process of getting one set up using good ol&#39; FreeBSD</li>
<li>Using hostapd, he&#39;s able to share his wireless card in hostap mode and offer DHCP to all the clients</li>
<li>Plenty of config files and more messy details in the post
***</li>
</ul>

<h3><a href="http://www.notquitemainstream.com/2014/03/15/why-im-switching-from-synology-to-freenas/" rel="nofollow">Switching from Synology to FreeNAS</a></h3>

<ul>
<li>The author has been considering getting a NAS for quite a while and documents his research</li>
<li>He was faced with the compromise of convenience vs. flexibility - prebuilt or DIY</li>
<li>After seeing the potential security issues with proprietary NAS devices, and dealing with frustration with trying to get bugs fixed, he makes the right choice</li>
<li>The post also goes into some detail about his setup, all the things he needed a NAS to do as well as all the advantages an open source solution would give
***</li>
</ul>

<h2>Interview - Warren Block - <a href="mailto:wblock@freebsd.org" rel="nofollow">wblock@freebsd.org</a></h2>

<p>FreeBSD&#39;s documentation project, igor, doceng</p>

<hr>

<h2>Tutorial</h2>

<h3><a href="http://www.bsdnow.tv/tutorials/mailing-lists" rel="nofollow">The world of BSD mailing lists</a></h3>

<hr>

<h2>News Roundup</h2>

<h3><a href="http://www.shiningsilence.com/dbsdlog/2014/03/18/13651.html" rel="nofollow">HAMMER2 work and notes</a></h3>

<ul>
<li>Matthew Dillon has posted some updated notes about the development of the new HAMMER version</li>
<li>The start of a cluster API was committed to the tree</li>
<li>There are also links to design document, a freemap design document, a changes list and a todo list
***</li>
</ul>

<h3><a href="https://www.youtube.com/watch?v=buo5JlMnGPI" rel="nofollow">BSD Breaking Barriers</a></h3>

<ul>
<li>Our friend <a href="http://www.bsdnow.tv/episodes/2013_11_06-year_of_the_bsd_desktop" rel="nofollow">MWL</a> gave a talk at NYCBSDCon about BSD &quot;breaking barriers&quot;</li>
<li>&quot;What makes the BSD operating systems special? Why should you deploy your applications on BSD? Why does the BSD community keep growing, and why do Linux sites like DistroWatch say that BSD is where the interesting development work is happening? We&#39;ll cover the not-so-obvious reasons why BSD still stands tall after almost 40 years.&quot;</li>
<li>He also has another upcoming talk, (or &quot;webcast&quot;) called &quot;<a href="http://oreillynet.com/pub/e/3059" rel="nofollow">Beyond Security: Getting to Know OpenBSD&#39;s Real Purpose</a>&quot;</li>
<li>&quot;OpenBSD is frequently billed as a high-security operating system. That&#39;s true, but security isn&#39;t the OpenBSD Project&#39;s main goal. This webcast will introduce systems administrators to OpenBSD, explain the project&#39;s mission, and discuss the features and benefits.&quot;</li>
<li>It&#39;s on May 27th and will hopefully be recorded
***</li>
</ul>

<h3><a href="http://dreamcat4.github.io/finch/" rel="nofollow">FreeBSD in a chroot</a></h3>

<ul>
<li>Finch, &quot;FreeBSD running IN a CHroot,&quot; is a new project</li>
<li>It&#39;s a way to extend the functionality of restricted USB-based FreeBSD systems (FreeNAS, etc.)</li>
<li>All the details and some interesting use cases are on the github page</li>
<li>He really needs to <a href="https://www.freshports.org/net-im/finch" rel="nofollow">change the project name</a> though
***</li>
</ul>

<h3><a href="http://blog.pcbsd.org/2014/03/pc-bsd-weekly-feature-digest-22/" rel="nofollow">PCBSD weekly digest</a></h3>

<ul>
<li>Lots of bugfixes for PCBSD coming down the tubes</li>
<li>LZ4 compression is now enabled by default on the whole pool</li>
<li>The latest 10-STABLE has been imported and builds are going</li>
<li>Also the latest GNOME and Cinnamon builds have been imported and much more
***</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="http://slexy.org/view/s20SlvTcwd" rel="nofollow">Bostjan writes in</a> (IRC suggests md5deep)</li>
<li><a href="http://slexy.org/view/s2PeMqXFid" rel="nofollow">Don writes in</a></li>
<li><a href="http://slexy.org/view/s21yii6KZe" rel="nofollow">kaltheat writes in</a> (We use R0DE Podcast microphones and Logitech C920 HD webcams)</li>
<li><a href="http://slexy.org/view/s21SkX19Cp" rel="nofollow">Harri writes in</a>
***</li>
</ul>]]>
  </content:encoded>
  <itunes:summary>
    <![CDATA[<p>Finally hit 30 episodes! Today we&#39;ll be chatting with Warren Block to discuss BSD documentation efforts and future plans. If you&#39;ve ever wondered about the scary world of mailing lists, today&#39;s tutorial will show you the basics of how to get help and contribute back. There&#39;s lots to get to today, so sit back and enjoy some BSD Now - the place to B.. SD.</p>

<h2>This episode was brought to you by</h2>

<p><a href="http://www.ixsystems.com/bsdnow" title="iXsystems"><img src="/images/iXlogo2.png" alt="iXsystems - Enterprise Servers and Storage For Open Source" /></a></p>

<hr>

<h2>Headlines</h2>

<h3><a href="http://www.tedunangst.com/flak/post/OpenBSD-on-a-Sun-T5120" rel="nofollow">OpenBSD on a Sun T5120</a></h3>

<ul>
<li>Our buddy <a href="http://www.bsdnow.tv/episodes/2014_02_05-time_signatures" rel="nofollow">Ted Unangst</a> got himself a cool Sun box</li>
<li>Of course he had to write a post about installing and running OpenBSD on it</li>
<li>The post goes through some of the quirks and steps to go through in case you&#39;re interested in one of these fine SPARC machines</li>
<li>He&#39;s also got another post about OpenBSD on a <a href="http://www.tedunangst.com/flak/post/Dell-CS24-SC-server" rel="nofollow">Dell CS24-SC server</a>
***</li>
</ul>

<h3><a href="https://www.youtube.com/results?search_query=bhyvecon%20tokyo&sm=3" rel="nofollow">Bhyvecon 2014 videos are up</a></h3>

<ul>
<li>Like we mentioned last week, <a href="http://bhyvecon.org/" rel="nofollow">Bhyvecon</a> was an almost-impromptu conference before AsiaBSDCon</li>
<li>The talks have apparently already been uploaded!</li>
<li>Subjects include Bhyve&#39;s past, present and future, OSv on Bhyve, a general introduction to the tool, migrating those last few pesky Linux boxes to virtualization</li>
<li>Lots more detail in the videos, so check &#39;em all out
***</li>
</ul>

<h3><a href="http://blog.khubla.com/freebsd/building-my-own-wireless-point" rel="nofollow">Building a FreeBSD wireless access point</a></h3>

<ul>
<li>We&#39;ve got a new blog post about creating a wireless access point with FreeBSD</li>
<li>After all the recent news of consumer routers being pwned like candy, it&#39;s time for people to start building <a href="http://www.bsdnow.tv/tutorials/openbsd-router" rel="nofollow">BSD routers</a></li>
<li>The author goes through a lot of the process of getting one set up using good ol&#39; FreeBSD</li>
<li>Using hostapd, he&#39;s able to share his wireless card in hostap mode and offer DHCP to all the clients</li>
<li>Plenty of config files and more messy details in the post
***</li>
</ul>

<h3><a href="http://www.notquitemainstream.com/2014/03/15/why-im-switching-from-synology-to-freenas/" rel="nofollow">Switching from Synology to FreeNAS</a></h3>

<ul>
<li>The author has been considering getting a NAS for quite a while and documents his research</li>
<li>He was faced with the compromise of convenience vs. flexibility - prebuilt or DIY</li>
<li>After seeing the potential security issues with proprietary NAS devices, and dealing with frustration with trying to get bugs fixed, he makes the right choice</li>
<li>The post also goes into some detail about his setup, all the things he needed a NAS to do as well as all the advantages an open source solution would give
***</li>
</ul>

<h2>Interview - Warren Block - <a href="mailto:wblock@freebsd.org" rel="nofollow">wblock@freebsd.org</a></h2>

<p>FreeBSD&#39;s documentation project, igor, doceng</p>

<hr>

<h2>Tutorial</h2>

<h3><a href="http://www.bsdnow.tv/tutorials/mailing-lists" rel="nofollow">The world of BSD mailing lists</a></h3>

<hr>

<h2>News Roundup</h2>

<h3><a href="http://www.shiningsilence.com/dbsdlog/2014/03/18/13651.html" rel="nofollow">HAMMER2 work and notes</a></h3>

<ul>
<li>Matthew Dillon has posted some updated notes about the development of the new HAMMER version</li>
<li>The start of a cluster API was committed to the tree</li>
<li>There are also links to design document, a freemap design document, a changes list and a todo list
***</li>
</ul>

<h3><a href="https://www.youtube.com/watch?v=buo5JlMnGPI" rel="nofollow">BSD Breaking Barriers</a></h3>

<ul>
<li>Our friend <a href="http://www.bsdnow.tv/episodes/2013_11_06-year_of_the_bsd_desktop" rel="nofollow">MWL</a> gave a talk at NYCBSDCon about BSD &quot;breaking barriers&quot;</li>
<li>&quot;What makes the BSD operating systems special? Why should you deploy your applications on BSD? Why does the BSD community keep growing, and why do Linux sites like DistroWatch say that BSD is where the interesting development work is happening? We&#39;ll cover the not-so-obvious reasons why BSD still stands tall after almost 40 years.&quot;</li>
<li>He also has another upcoming talk, (or &quot;webcast&quot;) called &quot;<a href="http://oreillynet.com/pub/e/3059" rel="nofollow">Beyond Security: Getting to Know OpenBSD&#39;s Real Purpose</a>&quot;</li>
<li>&quot;OpenBSD is frequently billed as a high-security operating system. That&#39;s true, but security isn&#39;t the OpenBSD Project&#39;s main goal. This webcast will introduce systems administrators to OpenBSD, explain the project&#39;s mission, and discuss the features and benefits.&quot;</li>
<li>It&#39;s on May 27th and will hopefully be recorded
***</li>
</ul>

<h3><a href="http://dreamcat4.github.io/finch/" rel="nofollow">FreeBSD in a chroot</a></h3>

<ul>
<li>Finch, &quot;FreeBSD running IN a CHroot,&quot; is a new project</li>
<li>It&#39;s a way to extend the functionality of restricted USB-based FreeBSD systems (FreeNAS, etc.)</li>
<li>All the details and some interesting use cases are on the github page</li>
<li>He really needs to <a href="https://www.freshports.org/net-im/finch" rel="nofollow">change the project name</a> though
***</li>
</ul>

<h3><a href="http://blog.pcbsd.org/2014/03/pc-bsd-weekly-feature-digest-22/" rel="nofollow">PCBSD weekly digest</a></h3>

<ul>
<li>Lots of bugfixes for PCBSD coming down the tubes</li>
<li>LZ4 compression is now enabled by default on the whole pool</li>
<li>The latest 10-STABLE has been imported and builds are going</li>
<li>Also the latest GNOME and Cinnamon builds have been imported and much more
***</li>
</ul>

<h2>Feedback/Questions</h2>

<ul>
<li><a href="http://slexy.org/view/s20SlvTcwd" rel="nofollow">Bostjan writes in</a> (IRC suggests md5deep)</li>
<li><a href="http://slexy.org/view/s2PeMqXFid" rel="nofollow">Don writes in</a></li>
<li><a href="http://slexy.org/view/s21yii6KZe" rel="nofollow">kaltheat writes in</a> (We use R0DE Podcast microphones and Logitech C920 HD webcams)</li>
<li><a href="http://slexy.org/view/s21SkX19Cp" rel="nofollow">Harri writes in</a>
***</li>
</ul>]]>
  </itunes:summary>
</item>
  </channel>
</rss>
