RELEASE NOTES FreeBSD Release 2.0 1. Technical overview --------------------- FreeBSD is a freely available, full source 4.4 BSD Lite based release for Intel i386/i486/Pentium (or compatible) based PC's. It is based primarily on software from U.C. Berkeley's CSRG group, with some enhancements from NetBSD, 386BSD, and the Free Software Foundation. Since our first release of FreeBSD 1.0 some 18 months ago, FreeBSD has changed almost entirely. A new port from the Berkeley 4.4 code base was done, which brought the legal status of the system out of the shadows with the blessing of Novell (new owners of USL and UNIX). The port to 4.4 has also brought in a host of new features, filesystems and enhanced driver support. With our new unencumbered code base, we have every reason to hope that we'll be able to release quality operating systems without further legal encumbrance for some time to come! FreeBSD 2.0 represents the culmination of almost 2 years of work and many thousands of man hours put in by an international development team. We hope you enjoy it! Many packages have also been upgraded or added, such as XFree86 3.1, xview 3.2, elm, nntp, mh, InterViews and dozens of other miscellaneous utilities have been ported and are now available as add-ons. See the ports collection (or the package collection) for a complete summary. For a list of contributors and a general project description, please see the file "CONTRIB.FreeBSD" which should be bundled with your binary distribution. Also see the "REGISTER.FreeBSD" file for information on registering with the "Free BSD user counter". This counter is for ALL freely available variants of BSD, not just FreeBSD, and we urge you to register yourself with it. The core of FreeBSD does not contain DES code which would inhibit its being exported outside the United States. There is an add-on package to the core distribution, for use only in the United States, that contains the programs that normally use DES. The auxilliary packages provided separately can be used by anyone. A freely (from outside the U.S.) exportable European distribution of DES for our non U.S. users also exists and is described in the FreeBSD FAQ. If password security for FreeBSD is all you need, and you have no requirement for copying encrypted passwords from different hosts (Suns, DEC machines, etc) into FreeBSD password entries, then FreeBSD's MD5 based security may be all you require! We feel that our default security model is more than a match for DES, and without any messy export issues to deal with. If you're outside (or even inside) the U.S., give it a try! 1.1 What's new in 2.0? ---------------------- 4.4 Lite -------- As previously stated, this release is based entirely on CSRG's latest (and last) BSD release - 4.4 Lite. This features a number of improvements over 4.2BSD (Net/2), not least of which are: o Legal approval of Novell & U.C. Berkeley. After the settlement of the longstanding lawsuit between USL/UCB/Novell/BSDI, all parties were (strongly) encouraged to move to 4.4 Lite in order to avoid future legal entanglements. The fact that we've now done so should make this release much more attractive to potential commercial users. o Many new filesystem types, such as stackable filesystems, union filesystems, "portals", kernfs, a simple log-structured filesystem, a new version of NFS (NQNFS), etc. While some of these new filesystems are also rather unpolished and will require significant additional work to be truly robust, they're a good start. o 64bit offsets, allowing filesystems of up to 2^63 bytes in size. o Further work towards full POSIX compliance. IP multicast support -------------------- The IP multicast support has been upgraded from the woefully ancient 1.x code in 4.4-Lite to the most current and up-to-date 3.3 release from Steve D. and Ajit. The non-forwarding code is known to work (for some limited test cases). The multicast forwarder and user-mode multicast routing process are known to compile, but have not been significantly tested (hopefully this will happen before 2.0 release). Owner: wollman Sources involved: sys/netinet, usr.sbin/mrouted Loadable Kernel Modules ----------------------- David Greenman incorporated NetBSD's port of Terry Lambert's loadable kernel module support. Garrett Wollman wrote the support for loadable file systems, and Søren Schmidt did the same for loadable execution classes. Owner: core Sources involved: sys/kern, sbin/modload, sbin/modunload, usr.bin/modstat Loadable filesystems -------------------- Most filesystems are now dynamically loadable on demand, with the exception of the UFS family (FFS, LFS, and MFS). With the exception of NFS, all such filesystems can be unloaded when all references are unmounted. To support this functionality, the getvfsbyname(3) family of functions has been added to the C library and the lsvfs(1) command provides the same information at the shell level. Be aware of the following current restrictions: - /usr/bin may not reside on a dynamically loaded filesystem. - There must be a writable /tmp directory available before filesystems are loaded (moving / to the top of your /etc/fstab file will accomplish this). - Some of the more esoteric filesystems simply don't work when loaded dynamically (though they often don't work "static", either.) Owner: wollman Sources involved: sys/*fs, lkm/*fs, usr.bin/lsvfs, lib/libc/gen S/Key ----- Since version 1.1.5, FreeBSD has supported the S/Key one time password scheme. The version used is derived from the logdaemon package of Wietse Venema. Some of the features new in 2.0 are: - New access control table format to impose the use of S/Keys based on: hostname, ip address, port, username, group id. - S/Key support can be disabled by not having the access control table. The second item explains the absence of skey.access in the installed /etc. To enable S/Key support, create a file skey.access in /etc and fill it according to your needs. See also skey.access(5) and the example in /usr/share/examples/etc/skey.access. Owner: pst, guido Sources involved: lib/libskey, usr.bin/key* (plus patches to others) TCP/IP over parallel (printer) port ----------------------------------- You can now run TCP/IP over a standard LapLink(tm) cable, if both ends have an interrupt-driven printerport. The interface is named "lp0" where '0' is the same as the lpt# unit number. This is not compatible with PLIP. If you run NFS, try setting MTU to 9180, otherwise leave it at 1500 unless you have a good reason to change it. Speed varies with the CPU-type, with up to 70 kbyte/sec having been seen and 50 kbyte/sec being the norm. Owner: phk Sources involved: isa/lpt.c ProAudioSpectrum SCSI driver ---------------------------- If you have a PAS board with a CD-ROM, and the MS-DOS driver is called TSLCDR.SYS, then the "pas" driver should work on your card. You can attach disks, cdroms and tapes, but due to the nature of the hardware involved, the transfer rate is limited to < 690 kbyte/sec. For CD-ROM use, this is generally more than enough. Owner: phk Sources involved: isa/pas.c Adaptec 2742/2842 SCSI driver ----------------------------- Despite the non-cooperation of Adaptec in providing technical information, we now have a driver for the AHA-274x and AHA-284x series SCSI controller family. This driver uses the GPL'd Linux sequencer code, so until we find an alternative, this will be part of the kernel that requires source code to be distributed with it at all times. This shouldn't be a problem for any of FreeBSD's current users. Owner: gibbs Sources involved: isa/aic7770.c sys/gnu/misc/* Gzip'd binaries ---------------- We have an experimental implementation for direct execution of gzip'ed binaries in this release. When enabled, it allows you to simply gzip your binaries, remove the '.gz' extension and make the file executable. There is a big speed and memory consumption penalty for doing this, but for laptop users it may be worthwhile. The maximum savings are generally around 10 Mb of disk space. Owner: phk Sources involved: kern/imgact_gzip.c kern/inflate.c Diskless booting ---------------- Diskless booting in 2.0 is much improved since 1.1.5. The boot-program is in src/sys/i386/boot/netboot, and can be run from an MSDOS system or burned into an EPROM. Local swapping is also possible. WD, SMC, 3COM and Novell ethernet cards are currently supported. Owner: Martin Renters & phk Sources involved: i386/boot/netboot, sys/nfs/nfs_vfsops.h Device configuration database ----------------------------- The kernel now keeps better track of which device drivers are active and where the devices are attached; this information is made available to user programs via the new sysctl(3) management interface. Current applications include lsdev(8), which lists the currently configured devices. In the future, we expect to use this code to automatically generate a configuration file for you at installation time. Owner: wollman Sources involved: sys/i386, sys/scsi, sys/kern/kern_devconf.c, sys/sys/devconf.h, usr.sbin/lsdev Kernel management interface --------------------------- With 4.4-Lite, we now have a better management interface for the endless series of kernel variables and parameters which were previously manipulated by reading and writing /dev/kmem. Many programs have been rewritten to use this interface, although many old-style programs still remain. Some variables which were never accessible before are now available through the sysctl(1) program. In addition to the standard 4.4BSD MIB variables, we have added support for YP/NIS domains (kern.domainname), controlling the update daemon (kern.update), retrieving the OS release date (kern.osreldate), determining the name of the booted kernel (kern.bootfile), and checking for hardware floating-point support (hw.floatingpoint). We have also added support to make management queries of devices and filesystems. Owner: core Sources involved: sys, usr.bin/sysctl iBCS2 support ------------- FreeBSD now supports running iBCS2 compatible binaries (currently SCO UNIX 3.2.2 & 3.2.4 and ISC 2.2 COFF format are supported). The iBCS2 emulator is in its early stages, but it is functional, we haven't been able to do exhaustive testing (lack of commercial apps), but almost all of SCO's 3.2.2 binaries are working, so is an old INFORMIX-2.10 for SCO. Further testing is nessesary to complete this project. There is also work under way for ELF & XOUT loaders, and most of the svr4 syscall wrappers have been written. Owner: Soren Schmidt (sos) & Sean Eric Fagan (sef) Sources involved: sys/i386/ibcs2/* + misc kernel changes. 2. Supported Configurations --------------------------- FreeBSD currently runs on a wide variety of ISA, VLB, EISA and PCI bus based PC's, ranging from 386sx to Pentium class machines (though the 386sx is not recommended). Support for generic IDE or ESDI drive configurations, various SCSI controller, network and serial cards is also provided. Following is a list of all currently known disk controllers and ethernet cards known to work with FreeBSD. Other configurations may very well work, and we have simply not received any indication of this. 2.1. Disk Controllers WD1003 (any generic MFM/RLL) WD1007 (any generic IDE/ESDI) [Note: the new Extended IDE controllers in newer PC's work, although no extended features are used.] Adaptec 152x series ISA SCSI controllers Adaptec 154x series ISA SCSI controllers Adaptec 174x series EISA SCSI controller in standard and enhanced mode. Adaptec 2742/2842 series ISA/EISA SCSI controllers Adaptec AIC-6260 and AIC-6360 based boards, which includes the AHA-152x and SoundBlaster SCSI cards. ** Note: You cannot boot from the Soundblaster cards as they have no on-board BIOS, which is necessary for mapping the boot device into the system BIOS I/O vectors. They're perfectly usable for external tapes, CDROMs, etc, however. The same goes for any other AIC-6x60 based card without a boot ROM. Some systems DO have a boot ROM, which is generally indicated by some sort of message when the system is first powered up or reset. Check your system/board documentation for more details. [Note that Buslogic was formerly known as "Bustec"] Buslogic 545S & 545c Buslogic 445S/445c VLB SCSI controller Buslogic 742A, 747S, 747c EISA SCSI controller. Buslogic 946c PCI SCSI controller NCR 53C810 and 53C825 PCI SCSI controller. DTC 3290 EISA SCSI controller in 1542 emulation mode. UltraStor 14F, 24F and 34F SCSI controllers. Seagate ST01/02 SCSI controllers. Future Domain 8xx/950 series SCSI controllers. With all supported SCSI controllers, full support is provided for SCSI-I & SCSI-II peripherals, including Disks, tape drives (including DAT) and CD ROM drives. Note: This and the mcd driver (Mitsumi CDROM interface card) are the only way a CD ROM drive may be currently attached to a FreeBSD system; we do not support SoundBlaster (non-SCSI) CDROM interface, or other "non-SCSI" adapters. The ProAudio Spectrum SCSI and SoundBlaster SCSI controllers are supported. Some controllers have limitations with the way they deal with >16MB of memory, due to the fact that the ISA bus only has a DMA address space of 24 bits. If you do your arithmetic, you'll see that this makes it impossible to do direct DMA to any address >16MB. This limitation is even true of some EISA controllers (which are normally 32 bit) when they're configured to emulate an ISA card, which they then do in *all* respects. This problem is avoided entirely by IDE controllers (which do not use DMA), true EISA controllers (like the UltraStor or Adaptec 1742A) and most VLB (local bus) controllers. In the cases where it's necessary, the system will use "bounce buffers" to talk to the controller so that you can still use more than 16Mb of memory without difficulty. 2.2. Ethernet cards SMC Elite 16 WD8013 ethernet interface, and most other WD8003E, WD8003EBT, WD8003W, WD8013W, WD8003S, WD8003SBT and WD8013EBT based clones. SMC Elite Ultra is also supported. DEC EtherWORKS III NICs (DE203, DE204, and DE205) DEC EtherWORKS II NICs (DE200, DE201, DE202, and DE422) Isolan AT 4141-0 (16 bit) Isolink 4110 (8 bit) Novell NE1000, NE2000, and NE2100 ethernet interface. 3Com 3C501 cards 3Com 3C503 Etherlink II 3Com 3C507 Etherlink 16/TP 3Com 3C509 and 3C579 Etherlink III Toshiba ethernet cards PCMCIA ethernet cards from IBM and National Semiconductor are also supported. 2.3. Misc AST 4 port serial card using shared IRQ. ARNET 8 port serial card using shared IRQ. BOCA ATIO66 6 port serial card using shared IRQ. STB 4 port card using shared IRQ. Mitsumi (all models) CDROM interface and drive. Soundblaster SCSI and ProAudio Spectrum SCSI CDROM interface and drive. Adlib, Soundblaster, Soundblaster Pro, ProAudioSpectrum, Gravis UltraSound and Roland MPU-401 sound cards. FreeBSD currently does NOT support IBM's microchannel (MCA) bus, but support is apparently close to materializing. Details will be posted as the situation develops. 3. Obtaining FreeBSD. --------------------- You may obtain FreeBSD in a variety of ways: 1. FTP/Mail You can ftp FreeBSD and any or all of its optional packages from `freebsd.cdrom.com' - the offical FreeBSD release site. For other locations that mirror the FreeBSD software see the file MIRROR.SITES. Please ftp the distribution from the nearest site to you netwise. If you do not have access to the internet and electronic mail is your only recourse, then you may still fetch the files by sending mail to `ftpmail@decwrl.dec.com' - putting the keyword "help" in your message to get more information on how to fetch files from freebsd.cdrom.com. Note: This approach will end up sending many *tens of megabytes* through the mail, and should only be employed as an absolute LAST resort! 2. CDROM FreeBSD 2.0 may be ordered on CDROM from: Walnut Creek CDROM 4041 Pike Lane, Suite D Concord CA 94520 1-800-786-9907, +1-510-674-0783, +1-510-674-0821 (fax) Or via the internet from orders@cdrom.com. Their current catalog can be obtained via ftp as ftp.cdrom.com:/cdrom/catalog. Cost is $39.95. Shipping (per order not per disc) is $5 in the US, Canada, or Mexico and $10.00 overseas. They accept Visa, Mastercard, American Express, and ship COD to the United States. California residents please add 8.25% sales tax. Should you be dissatisfied for any reason, the CD comes with an unconditional return policy. Note that Walnut Creek CDROM does NOT provide technical support for FreeBSD, you need to contact the FreeBSD team for that. Please see section 5 for more information. 4. Preparing for the installation. ---------------------------------- 1. Floppy Installation If you must install from floppy disks, either due to space contraints on your hard disk or just because you enjoy doing things the hard way, you must first prepare some floppies for the install. You will need either 10 1.44MB floppies or 12 1.2MB floppies to store just the bindist (binary distribution). These *must* be formatted using MS-DOS, using either the FORMAT command in MS-DOS or the File Manager in Microsoft Windows to prepare the floppies (though factory preformatted floppies will also well well, provided that they haven't been previously used for something else). After you've formatted the floppy disks, you'll need to copy the files onto them. There are 56 total files for the bindist itself, plus three small files (CKSUMS, do_cksum.sh, and extract.sh) for the install program to use. ALL of these files must be copies onto the floppies. Each of the bindist files are named "bindist.??", where the "??" is replaced by the letter sequence aa through cd. Copy these files onto the floppies, placing the three small install files onto the final floppy. The order in which you copy the files to floppy is not important, but it makes labelling the disks easier if you go in some sort of alphabetical order. After you've done this, the floppy disks are ready for the install program to use. Later on, after you get the binary distribution installed and everything is going great, the same instructions will apply for the other distributions, such as the manpages distribution or the XFree86 distribution. The number of floppies required will, of course, change for bigger or smaller distributions. 2. Hard Disk Installation To prepare for installation from an MS-DOS partition, you should simply copy the files from the distribution into a directory with the same name as the distribution. For example, if you are preparing to install the bindist set, then make a directory on your C: drive named C:\BINDIST and copy the files there. This will allow the installation program to find the files automatically. 3. QIC/SCSI Tape Installation. Installing from tape is probably the easiest method, short of an on-line install using ftp or installing from a CDROM. The installation program expects the files to be simply tar'red onto the tape, so after getting all of the files for distribution you're interested in, simply tar them onto the tape with something like: cd tar cvf /dev/rwt0 (or /dev/rst0) . from a directory with just the distribution files in it. Make sure that you remember to put CKSUMS, do_cksum.sh, and extract.sh files in this directory as well! If you wish to install multiple *dist releases from one tape, do the following: 1. cd to the parent directory of the distributions and put them on tape like so: tar cvf /dev/rwt0 (or /dev/rst0) bindist srcdist ... 2. Install the first distribution on the tape using the tape installation method as normal. Afterwards, *do not* erase the contents of the temporary directory. Get a shell with ESC-ESC and cd to the temporary directory yourself. For each additional *dist you want to load, cd to its subdirectory and type `sh ./extract.sh'. 5. Reporting problems, making suggestions, submitting code. ----------------------------------------------------------- Your suggestions, bug reports and contributions of code are always valued - please do not hesitate to report any problems you may find (preferably with a fix attached if you can!). The preferred method to submit bug reports from a machine with internet mail connectivity is to use the send-pr command. Bug reports will be dutifully filed by our faithful bugfiler program and you can be sure that we'll do our best to respond to all reported bugs as soon as possible. If, for some reason, you are unable to use the send-pr command to submit a bug report, you can try to send it to: bugs@FreeBSD.org Otherwise, for any questions or suggestions, please send mail to: questions@FreeBSD.org Additionally, being a volunteer effort, we are always happy to have extra hands willing to help - there are already far more enhancements to be done than we can ever manage to do by ourselves! To contact us on technical matters, or with offers of help, you may send mail to: hackers@FreeBSD.org Since these mailing lists can experience significant amounts of traffic, if you've got slow or expensive mail access and you're only interested in keeping up with significant FreeBSD events, you may find it preferable to subscribe to: announce@FreeBSD.org All but the FreeBSD-bugs groups can be freely joined by anyone wishing to do so. Send mail to MajorDomo@FreeBSD.org and include the keyword `help' on a line by itself somewhere in the body of the message. This will give you more information on joining the various lists, accessing archives, etc. There are a number of mailing lists targeted at special interest groups not mentioned here, so send mail to majordomo and ask about them! 6. Acknowledgements ------------------- FreeBSD represents the cumulative work of many dozens, if not hundreds, of individuals from around the world who have worked very hard to bring you this release. It would be very difficult, if not impossible, to enumerate everyone who's contributed to FreeBSD, but nonetheless we shall try (in alphabetical order, of course). If your name is not mentioned, please be assured that its omission is entirely accidental. The Computer Systems Research Group (CSRG), U.C. Berkeley. Bill Jolitz, for his extensive work with 386BSD. The FreeBSD "core" team: Andrey A. Chernov John Dyson Bruce Evans David Greenman Rodney W. Grimes Jordan K. Hubbard Poul-Henning Kamp Rich Murphey Gary Palmer Geoff Rehmet Paul Richards Soren Schmidt Andreas Schulz Jack Vogel Garrett A. Wollman Special mention to: Robert Bruce and Jack Velte of Walnut Creek CDROM, without whose help (and continuing support) this release would never have been possible. Dermot McDonnell for his donation of a Toshiba XM3401B CDROM drive. The NetBSD group for their frequent assistance and commentary. Additional FreeBSD helpers and beta testers: J.T. Conklin Julian Elischer Sean Eric Fagan Jeffrey Hsu Terry Lambert L Jonas Olsson Chris Provenzano Dave Rivers Guido van Rooij Steven Wallace Atsushi Murai Scott Mace Andrew Moore Nate Williams And everyone at Montana State University for their initial support. Thanks to everyone, especially those not mentioned, and we sincerely hope you enjoy this release of FreeBSD! The FreeBSD Core Team $Id: RELNOTES.FreeBSD,v 1.22 1995/01/27 23:15:31 jkh Exp $