BSD For Linux Users


Dru Lavigne
Community Manager, PC-BSD Project
OCLUG, December 7, 2010
This presentation will cover...

What exactly is BSD?

How is it different from Linux?

Does release engineering matter?

Any features unique to BSD?

Additional Resources
What exactly is BSD?
aka What exactly is
     Linux?
kernel?
distro?
What is BSD?
Began as a series of patches and
contributed applications for Unix from the
University of Berkeley
Forked into several projects when Berkeley
stopped working on BSD
Twenty Years of Berkeley Unix: From AT&T-
Owned to Freely Redistributable
http://oreilly.com/catalog/opensources/
book/kirkmck.html
What is BSD?
Projects originally differentiated by focus:
NetBSD: clean design and portability (57
supported platforms)
FreeBSD: production server stability and
application support (22,431 apps)
OpenBSD: security and dependable
release cycle
Dragonfly BSD: filesystem architecture
PC-BSD: anyone can install and use BSD
How is BSD different
   from Linux?
Gnome on Ubuntu
KDE on PC-BSD
device names
startup (no runlevels)
one config file philosophy
kernel configuration
consistent layout (man hier)
BSD vs GNU switches
working examples
Release Engineering?
Release Engineering

Complete operating system, not kernel +
distro: one source for security advisories,
less likelihood of incompatible libraries
Integration of features not limited by
copyleft: e.g. drivers and features are built-
in
High “bus factor”
Consistent separation between operating
system and third party and between BSD
and GPL'd code
Release Engineering

●   commit bit indicates write permission to
    code repository
●   FreeBSD 446 commit bits
●   NetBSD 264 commit bits
●   OpenBSD 132 commit bits
●   plus thousands of contributors for
    software, docs, translations, bug fixes, etc
●   Linux has 1 committer, 638 maintainers
Release Engineering

Principles used by the BSD projects reflect
their academic roots:
●   well defined process for earning a
    “commit bit” includes a period of working
    under a mentor
●   code repository from Day 1 and can
    trace original code back to CSRG days
●   no “leader”, instead well defined release
    engineering, security, and doc teams
Release Engineering

●   development occurs on CURRENT which is
    frozen in preparation for a RELEASE
●   nightly builds (operating system and
    apps) help ensure that upgrades and
    installs don't result in library
    incompatibilities (safe for production)
●   documentation considered as important
    as code
Features unique to
      BSD?
securelevels
FreeBSD jails
NetBSD build.sh
pkgsrc
PC-BSD PBIs
VuXML and portaudit




          or pkg_admin audit
          for pkgsrc systems
NetBSD veriexec
binary emulation
FreeBSD netgraph
ZFS support
FreeBSD dtrace suport
CARP
FreeBSD superpages
OpenBSM
FreeBSD snapshots
ALTQ
DragonFly HAMMER
Automated Testing Framework
Non-GPLd Toolchain
Additional Resources
How the FreeBSD Project Works
http://2007.asiabsdcon.org/papers/
P08-slides.pdf

FreeBSD Development
http://www.freebsd.org/projects/index.html

The NetBSD Way
http://www.fosslc.org/drupal/content/
netbsd-way-0

NetBSD Development
http://www.netbsd.org/developers/
Questions?



http://www.slideshare.net
  /dlavigne/oclug-2010


    dru@freebsd.org

Oclug 2010