Comparison with Linux
|Distribution formats||ISO image, pkgsrc, pkgng, tarballs||ISO image, rpm, dpkg, tarballs|
|Distribution Depots||Central repository with mirrors for base, several binary package repositories||Debian: many mirrors; Redhat: central; Ubuntu: central; SUSE: ?|
|Number of Distributions||one (3 sibs: FreeBSD, NetBSD, OpenBSD; most popular: FreeBSD)||hundreds (most popular: RedHat (sub-distro: Fedora), Debian (sub-distro: Ubuntu))|
|Update methods||git, cvsup, rsync, pkg_add, pkg||up2date, yum, apt-get, pacman, emerge, etc.|
|Compiler||gcc 4.7.3||gcc 4.7.2 (Debian 7), gcc 4.4.7 (Redhat 6), gcc 4.1.2 (Redhat 5)|
|Firewall||default: pf; other: ipfw2, ipf||default: iptables; other: pf|
|Livecd||yes (DVD)||yes, many sizes, versions|
|Default GUI||none (or bare X)||none, kde, gnome, xfce, etc. (depend on distro)|
|File systems||UFS1, MFS, EXT2, FAT (16/32), NTFS (write experimental), HAMMER||BTRFS, EXT2, EXT3, EXT4, FAT (16/32), NTFS (read-write experimental?), XFS, REISERFS, REISER4, JFS, ZFS, UFS2|
|Encryption Mechanisms||LUKS, TrueCrypt (tcplay)||LUKS, TrueCrypt (tcplay)|
|Kernel compilable from supplied source?||Yes||Yes (depend on distro)|
|Predominant Licenses||3-clause DragonFly, 3-clause BSD, 4-clause BSD, MIT, GPL||GPL, Lesser GPL, MIT, 3-clause BSD?|
|Commercial Support||Not yet||many; leaders: RedHat, Novell?|
|Processor Architectures||x86, AMD64||x86, AMD64, Sparc, PowerPC, etc|
|NUMA||under development||yes (depending on kernel?)|
|Boot loader||default: bsd boot block; lilo, grub work||default: lilo, grub|
|Disk partitioning||BSD-style: slices on fdisk'ed partitions||fdisk partitions|
|Logical volume management||vinum, LVM2||LVM1, LVM2,|
|Release schedule||about twice a year (developer-driven)||Redhat: 18 month; Debian: feature-driven; Ubuntu: 6 month; Fedora: 6 months;|
Advantages over Linux
- BSD licensed
- All you have to do is give credit.
- Except where the 4-clause BSD License is used, of course: BSD License (http://en.wikipedia.org/wiki/BSD_License)
- More control
- You can easily build your own base system / release / live cd.
- The rpm/deb based distros lack that.
- Everything is developed in GIT. And the GIT repository is available, so that you can download it and commit to your own repository.
- Guaranteed to build from source
- jail(2) support
- A jail is a chroot(2) on steroids with low overhead.
- Since jails have their own IP, you can easily setup up Virtual Hosting enviroments on shared servers.
- VKERNELs can be compared with UML.
- Many packet filter packages:
- ipf - by Darren Reed
- ipfw2 - the successor to ipfw
- pf - by Daniel Hartmeier and the OpenBSD project, the most flexible, can e.g. match Operating Systems
- SIGINFO signal
- You can send a SIGINFO to a process (e.g. via CTRL-T) and it prints useful information e.g. fsck reports how many percent are done
- Kernel debugger
- CTRL-ALT-ESC in a console gives you a debugger prompt.
- There are non-standard patches for something like that for Linux.
- Debugging via a firewire console is also available, see dconschat(8)
- Linux compatibility
- Since the kernel exposes a Linux ABI, many Linux binaries run natively.
- No binary blobs
- Integration of gcc 3.x and gcc 4.x
Easily switch your default compiler by setting the environment variable CCVER to gcc34 or gcc40.
$ CCVER=gcc34 cc -v Using built-in specs. Configured with: ./configure --prefix#/usr --hosti386-just-dragonflybsd Thread model: posix gcc version 3.4.3 [DragonFly] (propolice, visibility)
Disadvantages compared to Linux
Most of these disadvantages are curable, not inherent.
- Less popular which means fewer developers, testers
- Linux ABI support not complete (actively developed)
- Not all Linux binaries run. . e.g. we can't do the new nptl threading, but maybe possible in future.
- No binary driver support from some graphics card companies
|IDE disk||ad0, ad1, ...||hda, hdb, ...|
|IDE disk partition||ad0s1a, ad0s1b, ...||hda1, hda2, ...|
|Manage startup scripts||rcrun||chkconfig (Red Hat)/update-rc.d (Debian)|
*Some packages put their startup scripts in /usr/pkg/share/examples/rc.d/. You can put a symlink in /etc/rc.d or copy the script there.