This is an old revision of the document!
I'll have to get to this later. I had it about 75% typed in, when my stupid web browser crashed… – GaranceDrosehn
Brief background of FreeBSD
- FreeBSD is one of a family of “BSD” operating system projects. “BSD” refers to the kind of license that all the source code is released under.
- Related projects are NetBSD, OpenBSD, Darwin (used by Apple as part of MacOS 10), and the new DragonFly BSD project (which is an offshoot of FreeBSD 4.10). On a FreeBSD system, you can check the file /usr/share/misc/bsd-family-tree for more details. The latest version of that file can be seen at: http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree
- FreeBSD is used by some major network providers/ISPs (Yahoo, NTT/Verio, NY Internet)
- Parts of FreeBSD are also picked up and used by some commercial OS's, such as MacOS 10, IRIX, Solaris. It is also used by some embedded systems.
- The official “1.0 release” of FreeBSD was on November 1993
FreeBSD 4.x vs 5.x - Background
- Official Release cycle:
- Release 4 vs 5 vs 6 — Big Changes happen between these branches.
- Release 4.8 vs 4.9 vs 4.10 — These are smaller, well-tested landmarks on the 4.x branch. API's and ABI's will usually be upwards compatible between these “minor” releases.
- Release 5.2 vs 5.2.1 — Minor but significant fixes (to 5.2, in this example)
- Meaning of the active “CVS branches” in the FreeBSD CVS repository
- What CVS calls “MAIN” is what FreeBSD calls the CURRENT branch
- CURRENT vs STABLE vs SECURITY and ERRATA
- The RELENG_4 (4.x) branch was created in CVS around March 9, 2000 (which means “the 5.x-CURRENT series” started on that date).
- On November 6, 2004, we made available 5.3-RELEASE, and that marks the official start of 5.x-STABLE series.
- http://www.FreeBSD.org/releases/5.3R/announce.html – provides a short announcement for 5.3-RELEASE, information on various ways to obtain the release, and links to various pages that provide much more detail.
FreeBSD 4 vs 5 - Hardware Architectures
- Release 5 adds support for sparc64, amd64, and ia64 hardware ports.
- A port for PowerPC hardware is also close to being ready.
- The level of support for Alpha hardware has been lessened.
- Support for real 80386 systems (as opposed to 486 or Pentium) is de-emphasized. If you to run FreeBSD on real 80386 hardware architectures, then you might be better to stay with 4.x.
- Ports for ARM, MIPS and S370 hardware are “being worked on” by a a few developers (to different degrees).
FreeBSD 4 vs 5 - Kernel Level
- Much much effort on improving our SMP support, with the following goals:
- Better Performance on two CPU's
- Scales better on hardware with more (and more!) SMP processors
- A kernel configured for SMP now works on a single-processor system (although there is still some performance penalty in using an SMP kernel on a single-CPU system, at least you can use it)
- We have added “Kernel Scheduled Entities” == KSE: New option for supporting threaded applications. There are both “M:N” and “1:1” implementations.
- Support for multiple schedulers: SCHED_ULE vs SCHED_4BSD (the default is still SCHED_4BSD). The process scheduler to be used is selected in the kernel configuration. SCHED_ULE is the newer scheduler, but it still needs some work to be completely reliable.
- System now uses the devfs method of populating /dev (so on Release 5.x systems there is no need for the MAKEDEV script).
FreeBSD 4 vs 5 - Filesystems
- Support has been added for UFS2
- UFS2 supports much larger disk partitions compared to the original UFS
- UFS2 will also support Access Control Lists (ACLs), although those are not yet supported by the operating system.
- Softupdates (vs logged filesystems like extfs3)
- See info at http://www.mckusick.com/softdep/index.html
- UFS snapshots (see separate example – not included on this wiki page!)
- The /sbin/dump command includes a -L option to automatically use a snapshot when dumping a live filesystem, so your dump will be a consistent snapshot of the filesystem.
- The /sbin/newfs command creates a .snap directory (which is owned by user operator) after initializing any filesystem partition, for use by /sbin/dump -L .
- In 5.x, softupdates also allows us to do “background fsck” at startup. If these are used, then after a system crash (for any reason), the system startup will not have to wait until the initial “fsck” finishes. That means the system can be available to users, even though “fsck” may not have completed. This is a big advantage on huge partitions that have millions of files.