Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
comparerelease4to5 [2005/02/15 04:00] – GaranceDrosehncomparerelease4to5 [2015/11/15 05:32] (current) – historical interest only MarkLinimon
Line 1: Line 1:
-//I'll have to get to this later.  I had it about 75% typed in, when my stupid web browser crashed... -- GaranceDrosehn//+This is just an **informal** comparison of %%FreeBSD%% release 4.x (such 
 +as release 4.10), and %%FreeBSD%% release 5.3.  It was written mostly for 
 +people who are already familiar with %%FreeBSD%% 4.x, and are wondering 
 +what there might be in release 5.3 (and later) that they might find 
 +interesting.
  
 ===== Brief background of FreeBSD ===== ===== Brief background of FreeBSD =====
Line 5: Line 9:
   * %%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.   * %%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+  * 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)   * %%FreeBSD%% is used by some major network providers/ISPs (Yahoo, NTT/Verio, NY Internet)
Line 29: Line 33:
     * 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.     * 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 =====+===== FreeBSD 4 vs 5.3 - 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.3 - 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.3 - 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 wiki page:  ExampleUfsSnapshots ) 
 +    * 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. 
 + 
 +  * Release 5.3 includes GEOM, which is a major rewrite and improvement of the code which handles the partitioning of hard disks.  Among other changes, this brought in support for the types of disk labels which are standard formats on sparc64 and PPC architecture. This rewrite will also make it easier to reliably implement new features in disk support, disk partitioning and disk I/O (such as additional styles of RAID support). 
 + 
 +  * One of the benefits of GEOM which is available in 5.3 is called GBDE.  This provides support for encrypted disk partitions. 
 + 
 +===== FreeBSD 4 vs 5.3 - Networking ===== 
 + 
 +  * Network drivers:  Out from under "the Giant Lock", which means much better performance on SMP systems. 
 + 
 +  * Imported pf (new packet filter facility) from %%OpenBSD%%.  %%FreeBSD%% 5 now has three packet filters to choose from: IPFW, PF, IPFILTER.  There have also been a number of improvements and new features for IPFW. 
 + 
 +  * Now using Random IP ID's (picked up from %%OpenBSD%%).  This makes certain kinds of network-attacks much less effective. 
 + 
 +  * NDIS Binary Compatiblity, aka "Project Evil".  %%FreeBSD%%/i386 can use binary Ethernet and WLAN network drivers from Windows, if they were written to the %%WindowsXP%% NDIS 5.1 specification. 
 + 
 +  * Ability to rename ethernet interfaces.  Allows you to change any interface name to any arbitrary string of up to 15 characters. E.g.: 
 + 
 +<code> 
 +# ifconfig -a 
 +bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 
 +       options=1a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING> 
 +       inet 62.48.1.1 netmask 0xffffff00 broadcast 62.48.1.255 
 +       inet6 fe80::2e0:81ff:fe27:e0a9%bge0 prefixlen 64 scopeid 0x2 
 +       ether 00:e0:81:27:e0:a9 
 +       media: Ethernet autoselect (100baseTX <full-duplex>) 
 +       status: active 
 + 
 +# ifconfig bge0 name office 
 + 
 +# ifconfig -a 
 +office: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 
 +       options=1a<TXCSUM,VLAN_MTU,VLAN_HWTAGGING> 
 +       inet 62.48.1.1 netmask 0xffffff00 broadcast 62.48.1.255 
 +       inet6 fe80::2e0:81ff:fe27:e0a9%office prefixlen 64 scopeid 0x2 
 +       ether 00:e0:81:27:e0:a9 
 +       media: Ethernet autoselect (100baseTX <full-duplex>) 
 +       status: active 
 +</code> 
 + 
 +  * http://people.freebsd.org/~andre/FreeBSD-5.3-Networking.pdf describes these network changes, along with many others. 
 + 
 +===== FreeBSD 4 vs 5.3 - Applications in Base System ===== 
 + 
 +  * Perl is removed from the "base" system 
 +    * ...but it is almost always pulled in from the ports collection 
 +    * The installation CD's for Release 5.3 include the choice of Perl 5.6.1 vs 5.8.5 
 + 
 +  * The version of 'gcc' changes from 2.95.4 to 3.4.2.  This was partially motivated by the desire to support all the new hardware architectures. 
 + 
 +  * The new version of 'gcc' required matching upgrades for binutils (now version 2.15) and 'gdb' (6.1) 
 + 
 +  * Release 5.x changes from BIND8 to BIND9 in base system. 
 + 
 +===== FreeBSD 4 vs 5.3 - Misc ===== 
 + 
 +  * There is the usual "this release supports more devices, and has better support for some devices".  Examples include bluetooth, firewire and improved PCI and USB support. 
 + 
 +  * Support for ACPI (Advanced Configuration and Power Management) is now available, in addition to the support for the older APM (Advanced Power Management) BIOS standard. 
 + 
 +  * The acpi driver provides support for the Intel/Microsoft/Compaq/Toshiba ACPI standard.  This support includes platform hardware discovery (superseding the %%PnP%% and PCI BIOS), as well as power management (superseding APM) and other features.  ACPI core support is provided by the ACPI CA reference implementation from Intel. 
 + 
 +  * Release 5.x now has a new way of starting/stopping services via the scripts in /etc/rc.d/* (this was adapted from %%NetBSD%%). 
 + 
 +  * Some work has been done so the system can be compiled by icc or tcc in addition to gcc (icc == Intel's C compiler, tcc == C compiler from http://www.tendra.org/ ). 
 + 
 +  * Newer boot-up manager.  Somewhat nicer.  (this might also be in the most recent 4.x releases.  I have not done a clean install of 4.x for some time now).  You will probably only see this if you do a clean install of Release 5.3 (or later), or if you remember to run 'disklabel -B' after building and installing a new system. 
 + 
 +  * dynamically-linked binaries in /bin and /sbin.  This results in smaller executables and a smaller "root partition", but was mainly done so those programs can use dynamically-loaded services (such as 'pam' modules). 
 + 
 +  * 4.x used to have a /stand directory, which really was just for the initial installation of freebsd.  That is gone, but there is now a directory called /rescue.  This holds statically-linked versions of several key programs statically-linked and "crunchgen"ed together. These programs can be used if some event screws up the system libraries (such as a disk error, or a failed attempt to upgrade the OS) 
 + 
 +  * procfs is used much less.  It is not mounted by default, and is likely to disappear at some point (6.0 or later). 
 + 
 +  * /dev/random now provides much better randomness.  It is now "cryptographic quality".  This includes the checking of multiple sources of entropy to make sure it supplies truly unpredictable random values. 
 + 
 +  * You can also checkout the migration guide at: http://www.freebsd.org/releases/5.3R/migration-guide.html 
 + 
 +  * My recommendation: If you are upgrading a system from 4.x to 5.3-RELEASE, you would probably be better off backing up all your important data, and doing a clean install.  You can upgrade from (say) 4.10-release to 5.3-release, but you will have better results if you create brand new partitions, and install into them.  Among other things, you probably want a larger root partition. 
 + 
 +===== Upcoming FreeBSD 6.0 ===== 
 + 
 +  * Major New Features are NOT selected yet! 
 + 
 +  * In hindsight, we attempted way too many things in the 5.x-series, and most developers feel strongly that we must avoid that for 6.0. 
 + 
 +  * Developers really hope to see 6.0-RELEASE in less than two years, and not FOUR years!  And we also expect to have 6.0-RELEASE as the start of the 6.x-STABLE series, instead of going all the way to 6.3-RELEASE before we are comfortable claiming that it is "stable". 
 + 
 +===== Epilogue ===== 
 + 
 +This Wiki page is just an informal outline that I (GaranceDrosehn) 
 +had written up for a few public presentations I had done.  It is not 
 +meant to be an exhaustive comparison of release 4.10 (or later) to 
 +release 5.3 (and later).  It might not even be completely accurate. 
 +In some sense, it is just the changes which "effected me personally". 
 +Other developers are welcome up to update this page, or to contact 
 +me directly if there is anything I have grossly mis-represented. 
 + 
 +I am also pretty sure that there are more changes than this in the 
 +big jump to release 5.3.  This is only meant to be the most noticeable 
 +highlights.  Again, other developers are welcome to add more to this. 
 + 
 +//The initial version of **this** Wiki web page was written on// 
 +//February 14th, 2005.  However, most of it comes from outlines that// 
 +//GaranceDrosehn wrote in November and December 2004, and thus it// 
 +//might be a bit out-of-date//. 
 + 
 +---- 
 + 
 +[[CategoryHistorical]]
  
  • comparerelease4to5.1108440029.txt.gz
  • Last modified: 2005/02/15 04:00
  • by GaranceDrosehn