Return to BSD News archive
Xref: sserve comp.os.386bsd.announce:417 comp.answers:5955 news.answers:24409 Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!agate!library.ucla.edu!news.mic.ucla.edu!ux1.lmu.edu!s069.infonet.net!s069.infonet.net!not-for-mail From: burgess@cynjut.infonet.net (Dave Burgess) Newsgroups: comp.os.386bsd.announce,comp.answers,news.answers Subject: [comp.os.386bsd] BNR/2 derived BSD for PCs FAQ (Part 1 of 10) Supersedes: <386bsd-faq-1-774161545@cynjut.infonet.net> Followup-To: comp.os.386bsd.misc Date: 27 Jul 1994 22:29:16 -0500 Organization: Dave's House in Omaha Lines: 1135 Sender: burgess@s069.infonet.net Approved: news-answers-request@MIT.Edu,cgd@sun-lamp.cs.berkeley.edu Distribution: world Expires: 08/14/94 22:29:12 CDT Message-ID: <386bsd-faq-1-775366152@cynjut.infonet.net> Reply-To: burgess@cynjut.infonet.net (386bsd FAQ Maintainer) NNTP-Posting-Host: s069.infonet.net Keywords: FAQ 386bsd NetBSD FreeBSD X-Posting-Frequency: Posted on/about the 10th and the 24th of every month. Posted-By: auto-faq 3.1.1.2 Archive-name: 386bsd-faq/part1 Frequently Asked Questions 386BSD, NetBSD, FreeBSD, and other BSD derived Operating Systems. EXTREMELY UNOFFICIAL Original FAQ by: Terry Lambert terry_lambert@gateway.novell.com terry@icarus.weber.edu New FAQ by: TSgt Dave Burgess NCOIC, Configuration Management Section, US Strategic Command Instructor, Computer Science Dept, Nebraska School of Business burgess@s069.infonet.net burgess@cynjut.infonet.net Last Update: 26 Jul 1994 Section 0. (Basic FAQ information) 0.0 Master Index. 0.0 Master Index. 0.1 Introduction 0.2 About this FAQ. 0.2a What are the differences between *BSD and (your favorite operating system name here)? 0.2b Which is better, (your favorite operating system name here) or *BSD? 0.2c Is 386bsd better than (your favorite operating system name here)? 0.2.1 So what ARE the differences between the *BSD family and Linux? 0.2.2 Are all of the Berkeley derived systems binary compatible? If not, what are the differences? 0.3 How to add your pet answer to the FAQ. 0.4 Administrivia. 1.0 What is 386BSD? (Taken from the original INSTALL.NOTES by the Jolitz's, specifically Lynne) 1.0.1 What are these other Free BSD systems? 1.0.2 I just downloaded all of 386bsd version 0.1 and I get can't get [some feature] to work? Do you have any suggestions? 1.1 Feature summary 1.2 The future of 386BSD. 1.3 386BSD software projects in progress 1.3.1 Contacting software authors 1.4 Minimum hardware configuration recommended 1.5 Where to get the source and binaries 1.5.1 Forms available (floppy, FTP, CD-ROM) 1.5.1.1 Where can I get the distribution on floppy or tape? 1.5.1.2 Where can I get the distribution via FTP? 1.5.1.3 Where can I get the distribution on CD ROM? 1.6 Electronic Information Groups for 386BSD 1.6.1 Usenet newsgroups 1.6.2 Newsgroup archives. 1.6.3 386bsd Derived mailing lists. 1.6.4 Other electronic resources. 1.6.5 System Updates. 1.7 Documentation available 1.7.1 BSD manuals 1.7.2 BSD books 1.7.3 The Jolitz Book 1.7.4 Dr. Dobbs' journal 1.7.5 Documentation that comes with most of the distributions. 1.7.6 Other FAQ's on the net that are relevant 1.8 FTP sites for 386BSD 1.8.1 FTP Site List 1.8.2 Official distribution sites 1.8.3 Reference sites 1.8.4 Unofficial archive sites that have neat stuff! 1.8.5 X for 386BSD 0.1 Ported Software List 1.8.6 Motif for the *BSD family. (Infomercial to follow) 2.0 Install process 2.0.1 Boot disks (versions and media formats) 2.0.1.1 Where does extract go when I reboot? 2.0.1.2 I put the floppy in and try to boot, and nothing happens. What now? 2.0.1.3a The floppy booted, but now the hard disk won't boot? 2.0.1.3b I am trying to reinstall. I run install and it loops asking me if I want to use the whole disk? 2.0.2 Fix-it boot disk 2.0.1.4 What are the options on the boot prompt? 2.1 Binary distribution 2.2 Source distribution 2.3 Additional software distribution 2.4 Patch-kit 2.5 Configuration 2.5.1 Partitions 2.5.1.1 What is a 'disklabel' and why do I need one? 2.5.2 Common Disk Label Problems. 2.5.2.1 Swap space. 2.5.2.2 Increasing the 386bsd partition size. 2.5.2.3 I can access the DOS partition on my second disk from Unix but not DOS? Any suggestions? 2.5.3 How do I set up the system so that I can boot from more than one operating system/file-loader without using floppies? 2.5.4 How do I disklabel my second hard drive? 2.5.5 386bsd/NetBSD/FreeBSD cannot handle disk geometry translations, but it turns out that my disk geometry is translated. It has five zones, each with a different sec/track! What kind of things can I do about the disk translation my hard disk controller uses? 2.5.8 I am having trouble installing WRT 'syslogd: bind: Can't assign requested address' errors. What are some of the things I should look at? I also am having trouble with the network: 'starting network ... ifconfig: localhost: badvalue'. 2.6 Common installation problems. 2.6.1 Swap space not identified correctly. 2.6.2 Endless reboot cycles. 2.7 The computer just sits there, or 'that isn't right'. 2.7.1 The boot disk works all right on one computer but not another. 2.7.2 Really strange errors in the various *BSD falvors. 2.7.2.1 I am using the original 386bsd 0.1 with no patches installed and I get flashing multicolored characters and a "ptdi 81061" prompt error? 2.7.2.2 Using the new code in NetBSD, I get a "panic: pdti 206067" in pmap_enter(). What should I do. 2.7.3a I get the error "isr 15 and error: isr 17" on an NE2000 card. 2.7.3b I have some card on IRQ2 and it doesn't work; why? 2.7.3c I am getting lousy performance out of my network card. What are some of the other possibilities? 2.7.4 What is the difference between IRQ2 and IRQ9? Are they really the same, or are they really different? 2.7.5 Some of my SCSI devices (like a tape drive) don't work; why? 2.7.6 I try to run 'ps' or 'w' and get ': cannot get namelist' from the TinyBSD kernel. What did I do wrong? 2.7.7 I get a 'Floating point constant out of range' when I try to compile package 'n'. What is broke? 2.7.8 I want to use the Adaptec 1542C SCSI controller. What are the problems/tricks you need to know to get it working? 2.7.9 Did anyone ever find out on how to use the 3c509 etherlink III card yet for bsd? 2.8 Other common problems that are attributed to the installation process but are caused other places. 2.8.1 Why don't the man pages for "magic" and "file" work? 2.8.2 Why is apropos broke? 2.8.3 I want to use more than 16 Megabytes of memory. Will any of the BSD based systems support it? 2.8.4 I tried to use a device in my computer that should be there. When I did, I got a "Device not configured error." What do I do now? 3.0 System Internals 3.1 Kernel 3.1.1 How do I build a kernel? 3.1.2 I want to do one of the following things: * add a device not in the distributed kernel (third com port, additional disk or tape, line printer driver, etc). * use a patch from the net or the patchkit to fix a kernel bug. * add another swap device. * recompile the kernel to remove extraneous devices so that it takes up less space. * configure more pseudo-terminals to allow for more xterms or network logins. 3.1.3 I don't have the source distribution -- how can I rebuild the kernel? 3.1.4 Now that I have a kernel, how do I install it? 3.1.5 After installing the patchkit and recompiling the kernel with the option "WD8013", I am no longer able to reboot the machine. A cold boot (power on) runs fine, but after a reboot no boot drive is found by the BIOS. Besides having a 16-bit WD/SMC Ethernet card installed the machines try to boot using either a Adaptec 1742 or 1542 SCSI board to boot from. 3.1.6 My system is complaining about stray interrupt 7. Is my machine going to explode or anything? 3.1.7 I found a bug in the kernel. How do I report it? 3.1.8 Can someone please give a reasonably clear set of instructions as to how to get a "current" version of NetBSD running? 3.2 What exactly is this config file, anyway? What are all of these cryptic notations? 3.2.1 Okay, fine. Why shouldn't I just add every device I can find to the kernel, so I'll never have to recompile this again? 3.2.2 What should I remove from the kernel? 3.2.3 I can't get enough remote login sessions or xterm sessions. I also can only get four seesions working at a time. What can I do? 3.2.4 How do I get ddb, the kernel debugger, compiled into the kernel and running? 3.2.5 Can I have more than one config file? Should I rename it to something else? Any other hints? 3.2.6 What is the meaning of the trap codes I get in panic messages? Sometimes this message appears in the form "trap type nn". 3.2.7 I have been getting a lot of "virtual memory exhausted" errors when I am compiling a program with a really big static array. I have 128Meg of memory and 8Gig of swap. How can this be happening? 3.2.8 Where can I learn more about all this? 3.2.9 Does anyone have a system building script that takes things like building a new config and multiple config files into account? 3.3 X11/XFree86/XS3 3.3.1 What options should I define to get the X extensions included? 3.3.2 Where can I get the FAQ for 'X'? 3.3.3 Why does X drop characters when using xdm? When I run xdm from the console, it keeps losing keystrokes and the shift keys don't always work. Why? 3.4 Compiler and Library routines 3.4.1 Which C compiler is shipped with my 386BSD derived system? 3.4.2 Where is libcompat.a? 3.5 You promised to talk about timezones below. Are you going to? 3.5.1 How do you change the timezone on NetBSD (FreeBSD also?)? 3.5.2 The translation between seconds-since-the-epoch and date differs by about 18 seconds between BSD and other Unixes when running ntp; why? 4.0 Introduction 4.1 Common Kernel-related problems 4.1.1 Where are the commands "rpcinfo" and "rpcgen"? 4.1.2 Where can I get a working "netstat"? 4.1.3 How can I fix NFS to work with my NE2000 board? 4.1.4 How can I get "ps" and "w" to work? 4.1.5 Where are re_comp and re_exec? 4.1.6 Where are stty() and gtty()? 4.1.7 The system hangs with the HD light on after intense disk usage. The system hangs when trying to fsck -p both of my IDE hard drives at boot-up. 4.1.8 How do you implement quotas on Net/2 derived BSD systems? 4.2 Available kernel add-ons 4.2.1 The Patch-Kit 4.2.2 Shared Libraries 4.2.3 Sound Blaster Drivers 4.2.4 Bus Mouse Drivers 4.2.5 PPP Support 4.2.6 re_comp and re_exec library functions 4.2.7 Intel i82586 Ethernet Controller driver 4.2.8 PC Speaker driver for Nethack 5.0 Introduction 5.1 Available Kernel Replacements 5.1.1 keycap/codrv 5.1.2 pcvt 5.1.3 syscons 5.1.4 Fast Symbolic Links 5.1.5 npx fixes 5.1.6 CGD's COM drivers 5.1.7 Tom Ivar Helbekkmo's wd.c replacement 5.1.8 Interruptless LPT Driver Kit 5.2 Floppy Disk problems. 5.2.1 How do I get a bootable floppy? 5.2.2 How do I maximize the space on a mountable floppy disk. 5.3 Character Device Driver info 5.3.1 Printers 5.3.2 Terminals/Keyboards 5.3.3 Modems 5.3.4 What is the trick for getting Kermit to work with rz and sz? 5.4 Tape Drives 5.4.1 Does the tape need to be formatted? 5.4.2 If I execute the command 'st -f /dev/st0 status', I get: Archive/Tandberg? tape drive, residual=0, blocksize=512 Density: high = 16 (0x10), medium = 15 (0xf), low = 5 (0x5) ds=0 er=0 5.4.3 When is erst0 used? 5.4.4 How is density (bpi) computed? I am using 3M DC 6250 cassettes which have a 250MB capacity on the Viper 150. But computing the bits/inch based on 250MB/tape-length (1020 ft.), I get a density of 171335 bpi, which is nowhere near the 10000 bpi associated with QIC-150 in the st(1) man page. Why the discrepancy? 5.4.5 How is an appropriate block size determined (and in what units are they specified in the st(1) command)? 5.4.6 From the 4.3BSD mtio(4) man page, it sounds like data is typically (traditionally?) stored on tape in eof-terminated sequences of 1K records. 5.4.6.1 Is st's notion of "file" the record sequence between two eof marks? 5.4.6.2 What about a "record"? 5.4.6.3 Is a "record" one "block", as determined by st's "blocksize" command? If not, what is the connection between them? 5.4.6.4 Can I change the "record" size? 5.4.6.5 When would I want a block size that is different from the default? 1KB is the size of writes used by dd or whatever. QIC specifies 512 byte records (well at least its what people use..) Whatever you write in will be broken into 512 byte sections. They must be multiples of 512 though. 5.4.7.1 How do I write several archives to a single tape? I tried without success: $ st -f /dev/rst4 rewind $ tar cf /dev/nst4 archive1 $ st -f /dev/nrst4 weof $ tar cf /dev/nst4 archive2 $ st -f /dev/nrst4 weof 5.4.7.2 Later, I would expect to be able to access, say, archive3 via the fsf directive to skip over the first two archives. What is the correct sequence? 5.4.8 Since the Viper 150 writes on QIC-150/120, I guess I don't need to worry about writing variable-length records? How about reading a tape written with variable-length records. Is this possible with the Viper? If so, what's involved? 5.4.9 The very scant documentation that came with my drive mentions a "selectable buffer disconnect size," whose default is 16K. This is evidently the "maximum number of bytes that can be sent over the SCSI bus during a single data transfer phase." What's that? How is it connected st's "blocksize" command? Do I want to use 16K blocks, or might I even want to set the disconnect size to a higher value? 5.4.10 What is "streaming"? When I tar a directory of files to tape, I notice that the tape often stops. Streaming means it doesn't stop? How would I get the viper 150 to stream using tar or cpio or dump? 5.4.11 Where are all the answers to the above and related questions written down? Neither on the net nor in the 4.3BSD manuals nor Administration text which I have could I find this stuff covered! 5.4.12 What else should I know? For example, it seems that a new tape must stretched. How is this done? 5.4.13 My tape drive doesn't work. 5.5 Network 5.5.1 How can I get my system to work as a network router? 6.0 Working with DOS and BNR/2 related software. 6.1 Formatting a floppy 6.2 Sharing the Disk with MS-DOS 6.2.1 How can I partition my drive to support both MS-DOS and *bsd? 6.2.2 I can install using the whole disk, but I can't install when I try to share the drive between 386bsd and MS-DOS. Why? 6.2.3 I can use either MS-DOS or 386BSD on my hard drive, but shutdown -todos doesn't seem to work. 6.2.4 Is there any hope of ever running MS-DOS applications under any of the free BSD systems? 6.3 Accessing the MS-DOS filesystem 6.4 NFS/PC-NFS support 6.4.1 Can I use 8K packets for NFS? When I try, I have all kinds of problems. 6.4.2 How do I get around the NFS "Permission denied" error? 6.4.3 What does the message "BAD MNT RPC: RPC Authentication error; why = Invalid client credential" mean when I try to mount something from another machine? 6.4.4 What does the message "Bad MNT RPC: RPC: Authentication error; why = Client credential too weak" mean when I try to mount something from another machine? 6.4.5 I get a lot of 'ring buffer overflow' messages using NFS and the ed0 driver. Is there a problem? 6.4.6 Is there any PC software that will allow me to use my enormous PC with all of the unsupported hardware as a PC-NFS server? 6.5 How can I use mtools with the 'new' floppy naming convention? 7.0 Communications 7.1 SLIP/CSLIP 7.2 PPP 7.3 TCP/IP 7.4 UUCP 7.4.1 TIP/CU 7.4.2 What is the magic incantation that allows the modem to dial? 7.5 Terminals 7.6 Can network attached assets be used by/from NetBSD? 8.0 What hardware is 386BSD known to run on and support! 8.1 System brand names 8.2 Motherboards 8.3 Video cards 8.4 Mice 8.5 Serial Cards 8.5.1 How do I configure multiport cards? Is there a possibility of using multiport serial boards? How do you configure an AST/4 in the kernel? It looks like the AST driver only supports 4-port cards, but it looks like it would be easy to add support for 8 ports ... or am I wrong? 8.5.2 Now that I have FreeBSD 1.0 installed, how do I set up the serial ports for bi-directional use? 8.5.3 How do I get a serial console to work? 8.6 Disk Controller Problems 8.6.1 IDE controller problems 8.6.2 SCSI controller problems 8.7 SCSI Controllers 8.8 Network Cards 8.9 Printers 8.10 TAPE Drives 8.11 QIC-40/80 tape drives 8.12 CD-ROMs 9.0 What GNU software has been tested and is working with Net/2 derived BSD systems for the 386? 9.1 Has anyone ever gotten news to work? 0.1 Introduction The 386BSD 0.1 operating system was originally a derivative of the generally available parts of the Berkeley Net/2 release. The definitive "man without whom we would have nothing" in this effort has been William Jolitz. For more information, download the code. 386BSD is fully redistributable and is intended as a research OS. As such, many contributions to the system are provided through interaction by people who communicate via many means. Many new and innovative features have been added to 386BSD since it's original release in June of '92. There was an 'unofficial' patchkit which was available from many anonymous FTP sources which makes 386BSD more stable and usable. Many problems associated with the use of 386BSD Version 0.1 were solved through the application of patches from the patchkit. In addition, many common Unix packages have been ported with varying degrees of difficulty. 386BSD is available completely free of charge. It is also available on CD-ROM and many other methods, most of which end up charging for 'media and handling costs'. It is available by Anonymous FTP and through FTP-Mail. Recently, a new CD-ROM version of 386BSD has been announced in Dr. Dobb's Journal. It may be the long awaited 386BSD 1.0, or simply a revenue enhancement version of 386BSD 0.1 (or 0.2). 386BSD came in three distinct pieces, each of which was exclusive of the other two. These distributions were called the 'bindist', 'srcdist', and 'etcdist'. The bindist could be unloaded from its native form (on about 10 diskettes) and loaded onto a 42Meg hard drive partition. It is a fully functional system, including gcc 1.39, all executables for normal Unix style operation, and many other things. The etc distribution included MANY additional programs (all with source) which extended the functionality of 386BSD. The srcdist was the source code for 386bsd, along with all of the header files not included in the bindist. All of the distributions and compilation files would fit onto 180Meg of hard drive (barely). In addition to the original 386BSD, two newer versions of the system are available, under new names. NetBSD is the older (or newer depending on whom you choose to believe) and FreeBSD is the other. Both systems have evolved into programs that are superior to the progenitor and both have sizable (if a little rabid) followings. Most of the statements made in this FAQ will apply to all three, although I will try to differentiate one from another whenever the difference matters. Any place that says 386bsd either means the original 386bsd 0.1 (you should be able to tell by context) of any of the three members of the PC BSD family. There have been many attempts to polarize the FreeBSD and NetBSD development groups in the past. One of the reasons that I am still maintaining the FAQ is that it simply is a good source for historical information, as well as a reasonable source for information that is specific to the implementations of NetBSD and FreeBSD. It should be noted that when the *BSD family started out, they used a source called the "Berkeley Net Release/2" tape as their genesis. While this has provided a stable starting point, it also built a possible bomb into the system. Due to an ongoing legal battle (which has now been resolved) the following files are identified as 'encumbered' in the BNR/2 source tree. These kernel files are identified as the 'binary only' files in the BSDI distribution, and either have been or must be replaced before we can have a truly free OS family. This is the pertinent excerpt from a letter from someone (whose name I have lost) indicating what is and is not releasable. Q: What's all this about `binary-only files'? Will BSDI continue to ship source code? A: For Version 1.1 only, BSDI will ship the following kernel files in binary format: kern/init_main.c kern/subr_rmap.c ufs/ufs_bmap.c kern/kern_clock.c kern/sys_generic.c ufs/ufs_disksubr.c kern/kern_exit.c kern/sys_process.c ufs/ufs_inode.c kern/kern_physio.c kern/tty.c ufs/ufs_vnops.c kern/kern_sig.c kern/tty_subr.c kern/kern_synch.c kern/vfs_syscalls.c Our (Berkeley's) 4.4Lite-based release will again include the entire source tree (with the exception of a tiny number of device drivers whose interfaces are kept confidential at the request of their authors. I have it from a reasonably reliable source that these files either have been completely rewritten in a 'clean room' development effort or were replaced with code from other sources (such as CMU, or GNU). The encumbered sources for the user land portion of the system have long since been replaced. 0.2 About this FAQ. This FAQ consists of 10 parts: Section 0. Basic FAQ information Section 1. General Network Information Section 2. Common installation questions Section 3. Kernel Building and Maintenance Section 4. Kernel Additions Section 5. Kernel Replacement Parts Section 6. Interaction with MS-DOS Section 7. System Communication Section 8. "Supported" Hardware List Section 9. "Supported" Software List It has been suggested that I remove some of the older, less relevant information from this FAQ. I have given it some thought, and I might. Of course, if someone were to do it for me, it sure wouldn't break my heart. 0.2a What are the differences between *BSD and (your favorite operating system name here)? 0.2b Which is better, (your favorite operating system name here) or *BSD? 0.2c Is 386bsd better than (your favorite operating system name here)? I decided to put this in section 0, primarily because it by far the most asked and least useful question in comp.os.386bsd.*. You will often see this question veiled as a request for a brief description of the differences between 386bsd and (YFOS). This type of request, while seeming to be a reasonable one, is usually looked upon as either an attempt by some folks for the net to do their homework, or as an attempt to start yet another flame-war. What is the answer to this question, then? No. It is not. Nor is it any worse. It is DIFFERENT. There are alternative Operating Systems available, both free and commercial. 386bsd, NetBSD, FreeBSD, and Linux are examples of "free" Unix style Operating Systems. If you ask any of these questions, you are wasting a LOT of bandwidth and making a real name for yourself. Don't bother. It nearly always ends up in name calling and 'mine is bigger (or littler) than yours...' arguments. I have included an excerpt below: >>>>>>>>>>>>>>>>>>>>>>>>>> Is not! >>>>>>>>>>>>>>>>>>>>>>>>> Is so! >>>>>>>>>>>>>>>>>>>>>>>> Is not! >>>>>>>>>>>>>>>>>>>>>>> Is so! >>>>>>>>>>>>>>>>>>>>>> Is not! >>>>>>>>>>>>>>>>>>>>> Is so! >>>>>>>>>>>>>>>>>>>> Is not! >>>>>>>>>>>>>>>>>>> Is so! >>>>>>>>>>>>>>>>>> Is not! >>>>>>>>>>>>>>>>> Is so! >>>>>>>>>>>>>>>> Is not! >>>>>>>>>>>>>>> Is so! >>>>>>>>>>>>>> Is not! >>>>>>>>>>>>> Is so! >>>>>>>>>>>> Is not! >>>>>>>>>>> Is so! >>>>>>>>>> Is not! >>>>>>>>> Is so! >>>>>>>> Is not! >>>>>>> Is so! [the rest of this scintillating debate is deleted...] Here are a brief list of differences between 386bsd and other systems: 1. *bsd will not run DOS applications (yet). There is currently no DOS emulator. People are working on it. Either help or shut up. There is work on a Windows program loader execution version. The project is called 'WINE' and is the free version of the 'WABI' project. More on that to follow. 2. 386bsd is not binary compatible with anything but the other free BSD systems (NetBSD, FreeBSD, and their kith). There are rumors and rumblings from time to time that one or more of the *Nix variants may be binary compatible with NetBSD or FreeBSD. The more the merrier. Be warned; if the package you are trying to run is not specifically compiled and linked for your version of {Free,Net}BSD, then you may well be completely on your own. 3. FreeBSD, which originally started life as 386bsd 0.1 with the patchkit applied, has since evolved into an entirely seperate BSD lineage in its own right and incorporates many important innovations. In addition to extensive, high quality work that has been done on the FreeBSD kernel, a great deal of effort and time has been invested in improving the overall level of quality in such areas as the installation and maintenance scripts, third-party applications packaging, and many of the various utilities and development tools in BSD. The emphasis seems to be on better packaging and improved operation, and with special emphasis being placed on positioning FreeBSD as an 'Intel-specific' BSD variant. Much care taken specifically to support the various and sundry peripherals and hardware one finds on the Intel PC world. Current plans are to move towards the fully unencumbered BSD 4.4 Lite in the upcoming FreeBSD 2.0 release while still maintaining the Intel platform as the primary focus. 4. NetBSD, on the other hand, is intended as a multiplatform 'replacement' for Net2. It has built-in support for so many different platforms that I simply can't begin to list them. With the exception of the multiplatform support that is built into NetBSD, the two system are very similar and seem to parallel one another very closely. Since the NetBSD folks seem to be the self proclaimed 'bearers of the standard' for multi- platform BSD support, they are also proceeding with switching over to the 4.4 Lite tape. 5. Where BSD and POSIX differ, 386BSD conforms by default to BSD; Linux to POSIX. Furthermore, while both run mostly GNU utilities, Linux tends toward the SysV flavor (e.g. init) where 386BSD sticks with the BSD style. However, sources for different flavors of utilities are available for both, and both support compiler options which allow more BSD or more POSIX semantics. Clifford Stoll talks about the 'West Coast/East Coast' feeling of BSD/SysV in his book "The Cuckoo's Egg". In keeping with that, BSD feels like BSD/West Coast, Linux feels like SysV/East Coast (actually, Finland is what it says on the passport, but stay with me for a minute). If you don't believe me, just look at the primary U.S. archive sites. Linux is available from MIT, BSD is available from Berkeley. Can't get much more 'Coast' than that. :-) Actually, NetBSD and FreeBSD are feeling more and more POSIX all the time. Recent releases of both products have implemented many more POSIX compliant utilities, features, and low-level hooks into the operating system. A great deal of effort has gone into supporting and improving the POSIX standards compliance throughout all of the systems. 5. Linux, NetBSD, FreeBSD, and 386bsd share two vitally important facets. All are free and all include source. They are all excellent, and all fill a niche that the others would gladly leave available. Also, don't forget one of the most important things; get what your friends have. Then they can help you. 6. Finally, remember that this FAQ and the comp.os.386bsd.* groups are intended as places for 386bsd users and developers to meet and discuss topics which are germain to the further development of 386bsd. For more information about Linux, you can read the comp.os.linux.* newsgroups. If you are a rabid Linux asshole, stay on the Linix groups. Most of us don't care how much better Linux is than *BSD. 0.2.1 So what ARE the differences between the *BSD family and Linux? Here it is, in its 'right for today' glory. As of 1 July, 1994, these statements were more or less accurate. Against my better judgement, I am going to inlude this, primarily beause it is a very even handed approach to describing two very different systems. For those of you that find it, I hope that it answers some of your questions. It was written by: Thomas Heiling Pharmacist & Doctorate at Pharmazeutisches Institut Uni Wuerzburg - Germany Email phar006@rzbox.uni-wuerzburg.de (HP-UX) tom@wpzd07.pzlc.uni-wuerzburg.de (Linux) or phar006@vax.rz.uni-wuerzburg.de ( VAX ) I have read this group now for some time and saw this thread Linux-BSD coming often. Some answers to this question were good, but the FAQ was not updated. It is IMHO *not* very helpful to flame a newbie, that he/she should read the FAQ, where there is no information, nor it is helpful to shout to him "Hey man read the previos posts - I *hate* this thread!" What is missing here is an overview and a comparison of the free available Unixsystems. And this info should be in the FAQ ! I will start here such a comparison. Q: For whom should this be ? A: For a (hopefully) new Unix-user, who wants to install one of the free Unixes. He should be able to read this document, look at his hardware, define his needs for a Unix-systems and then he should be able to choose a system which meets his needs. Q: Who am I and why should I be able to write such a doc ? A: Good Question ! My name is Thomas Heiling, I am working at the University of Wuerzburg in Germany as a doctorate. My job is to program an Ultraviolett/Vis-spectrum comparison program. Furthermore I am the person, who maintains the Internet connections and computers of our Department. I have running Linux and NetBSD 0.9, the main Server is a 486/33 + 16 MB which runs Linux. A 486/66 is for numerical work. Then there are some clients mostly 386 with either 4 MB or 8 MB. One 386 with NetBSD, but this is just for testing. So I would say I can speak for Linux, a little bit for NetBSD and I have no idea for FreeBSD beside the Installation Guide. (I have no access to the BSD386 1.0 CD, which was announced some time ago). * PLEASE PLEASE PLEASE * It would be very helpful, if someone of the Core-Team of NetBSD and/or FreeBSD have a look at this and fill the white spaces, which I left. And if the FAQ-maintainer reads this, it would be nice, if he thinks this info should be in the FAQ. Hardware requirements : Linux: CPU: Anything that runs 386 protected mode programs (all models of 386s and 486s should work; 286s don't work, and never will). Architecture: ISA or EISA bus. MCA (mostly true blue PS/2's) does not work. Local busses (VLB and PCI) work. RAM: Theoretically up to 1 GB. This has not been tested. Some people (including Linus) have noted that adding ram has slowed down their machine extremely without adding more cache at the same time, so if you add memory and find your machine slower, try adding more cache. Data storage: Generic AT drives (IDE, 16 bit HD controllers with MFM or RLL) are supported, as are SCSI hard disks and CD-ROMs, with a supported SCSI adaptor. Generic XT controllers (8 bit controllers with MFM or RLL) are now also supported. Supported SCSI adaptors: Adaptec 1542, 1522, and 1740 in extended (not 1542 compatible) mode, Seagate ST-01 and ST-02, Future Domain TMC-88x series (or any board based on the TMC950 chip) and TMC1660/1680, Ultrastor 14F, 24F and 34F, and Western Digital wd7000. SCSI and QIC-02 tapes are also supported. Support for QIC-80 tapes is now in ALPHA testing. Several CD-ROM devices are also supported, including Matsushita/Panasonic, Mitsumi, Sony, Soundblaster, Toshiba, and others. For exact models, check the hardware compatability HOWTO. Video: VGA, EGA, CGA, or Hercules (and compatibles) work in text mode. For graphics and X, there is support for (at least) normal VGA, some super-VGA cards (most of the cards based on ET3000, ET4000, Paradise, and some Trident chipsets), S3 (except for Diamond Stealth cards, because the manufacturer won't tell how to program it), 8514/A, ATI MACH8, ATI MACH32, and hercules. (Linux uses the Xfree86 X server, so that determines what cards are supported.) Networking: Western Digital 80x3, ne1000, ne2000, 3com503, 3com509, Allied Telliesis AT1500 (said to be some of the fastest, as well as quite cheap), d-link pocket adaptors, SLIP, CSLIP, PLIP (Parallel Link IP), and more I have forgotten at the moment. Other hardware: SoundBlaster, ProAudio Spectrum 16, Gravis Ultrasound, AST Fourport cards (with 4 serial ports), several models of Boca serial boards, the Usenet Serial Card II, several flavours of bus mice (Microsoft, Logitech, PS/2). *BSD: Architecture: ISA or EISA bus. MCA (mostly true blue PS/2's) does not work. Local busses (VLB and PCI) are also supported. Standard hard disk controllers: MFM ESDI IDE RLL SCSI hard disk controllers: Adaptec 154x *, Adaptec 174x, Buslogic 545S, Bustek 742(EISA) DTC 3290 in 1542 emulation mode *, Ultrastor 14f and 34f, and the 24f experimentally. Display Adaptors : MDA,CGA,VGA,HGC for textmode. For X the same as Linux. Serial Communications: 8250,16450,16550A, 4-port multi-serial cards require a kernel rebuild Ethernet controllers: SMC/WD 8003, 8013 and equivalents ( including SMC Elite ) Novell NE1000,NE2000,NE2100 3com 3c503 ISOLAN ISOlink Tape Drives: QIC-02 format tape drives QIC-36 format tape drives QIC-80 format tape drives (in FreeBSD) most SCSI tape/DAT drives on a supported SCSI controller CD-ROM drives: Mitsumi CDROM with Mitsumi Controller Most SCSI CD-ROM drives on a supported SCSI controller Other hardware: SoundBlaster, ProAudio Spectrum 16, Gravis Ultrasound, AST Fourport cards (with 4 serial ports), several models of Boca serial boards, the Usenet Serial Card II, several flavours of bus mice (Microsoft, Logitech, PS/2). Same as Linux, although some options may require a kernel rebuild. Harddisk Storage requirements : FreeBSD: Base System 16 MB Full binary distribution 46 MB Full source " 72 MB Kernel Source 7 MB Swap 8 MB They say, that the minimum is Base + Binary + Swap, and that this minimum is 80 MB. For a complete system with binary and source you need at least 210 MB. This does NOT include X or LaTeX. Linux: This is difficult, because there are different distributions to choose from. Every distribution has a special goal. I will show two popular distributions : - Slackware and the MCC-Interim Distribution. Slackware is intended for a full fledge system, which has everything you want. You need about 150 MB for this. - MCC-Interim is intended for small systems. The main idea is to give a ASCII-environment for programming courses. For a full MCC install you need about 47 MB + 8 MB Swap, you can strip this down to 23 MB + 8 MB Swap, if you don't want emacs, no kernel source and no extras. Some other features: virtual terminals/consoles: All of the -current versions of *BSD have virtualy consoles available. Linux has virtual consoles as well. shared libraries: NetBSD, FreeBSD, and Linux have it. I recall a thread some time ago, which was something like "Linux shared Libs are no good - A pain for the developer." For the user this should be meaningless. NetBSD and FreeBSD shared library implementations are both very easy to use both from the developer and user point of view. Networking: *BSD networking is more mature, but with Linux 1.0 it's getting closer. One Feature of Linux is the ability to make a filesystem on top of a DOS-FAT, so you don't need to repartition your Disk. This Filesystem is of course not so fast as a native Filesystem, but for trial it should be O.K. Conclusion: It depends on you hardware and what you want to do with your system. If your hardware is supported and if you have the resources and if you are on the net, I would vote for *BSD. If you just want some *iX experience and have low ressources, choose Linux. Here are some pro's and con's for both : *BSD: + Full Source Code of all commands in a source tree, no need to look all over the Internet for the source of a command. + There is only one distribution, which is valid for some time. + Networking is better. + The system is standard BSD. - You need extra packages for XFree and for TeX. They are not hard to find, and install into a standard location in the directory tree, but they are not included in the base distribution. Linux: + Uses fewer resources + Has more support for devices - Every distribution is a little bit different - Development is too fast without net access I include here some info from other posts, which should help the new user to show the differences: burgess@cynjut.infonet.net wrote: : NetBSD is the OS I use. It is a BSD derived Operating System : that has a very stable operating envelope. The networking code : has been stolen by commercial OS and network vendors the world : over. NetBSD has the advantage of being meant for a wide : range of hardware platforms. It is currently available for : something like 10 different CPUs, and has been laid out such : that new architectures can be added relatively painlessly. These arechitetures include several Sun Systems, many Motorolas, including the Amiga and Mac, and several other older mini- and microcomputer systems. : : FreeBSD is pretty much the same (go ahead a quibble over : details, I don't care anymore). The biggest difference is that : NetBSD is a horizontal system (across platforms) and FreeBSD is : a vertical system (intended to stay on the Intel family). Both : are based on code from 386BSD, although neither really resembles : it any more. : : Linux was developed by Linus Torvalds and has the advantage of : being available in source code form first. Other than that, I : have heard that it is a good OS platform for standalone Unix : workstations. It had a lot of things that made its users rabid : before the *BSD folks did, but the purists insist that *BSD is : (choose two: cleaner, safer, taller, wider, better, quieter, : louder, greener). I even heard a rumor that Linus had sold the : source code license to Novell so that they could distribute an : 'X' terminal package for use in their networks. From: hedrick@geneva.rutgers.edu (Charles Hedrick) There are four major differences: 1) the 386BSD family started with BSD, and Linux started with POSIX. NetBSD/FreeBSD/386BSD have been adding POSIX and System V compatibility, and Linux has been adding Berkeley and System V compatibility. So there's a good deal of overlap. But ...BSD is still a better choice if you want to program in a Berkeley environment and Linux if you want a POSIX environment. That's for the kernel and libc -- the utilities and other stuff users see tends to be fairly similar. In both cases the programs are what I call "typical University Unix". The main difference is that the base Unix utilities tend to be Berkeley for ...BSD and Gnu for Linux. Gnu is fairly Berkeley-compatible, but its priority is POSIX, so it tends to look slightly closer to System V, with massive Berkeley extension. There are several sets of administrative utilities, but it's more likely that init, getty, etc., are going to be System V style for Linux and BSD for ...BSD. Again, these things aren't as significant as they might be because ...BSD is also concerned about POSIX compatibility and Gnu is concerned about BSD compatibility. So both sets of software are approaching a similar sort of goal from opposite directions. You could probably use the systems for quite a while without noticing much difference. (I'd like to emphasize that there's no similarity in overall feel between Linux and typical brain-dead PC System V ports.) The ...BSD FAQ characterizes the difference as one of East Coast vs. West Coast. There's a lot to be said for that summary. There's more difference in Unix culture between New Jersey and California than between New Jersey and Finland. 2) The nature of the development communities and distribution mechanisms are different. ...BSD has two or three different developer communities that take code from each other, but appear to hate each other's guts. (Actually, even ...BSD and Linux take code from each other.) Thus there are several different ...BSD's, each of which has an official distribution. There's just one Linux kernel, and from a practical point of view just one set of major utilities, but there's no official distribution. So several different groups put together distributions, with their own choice of kernel and utility versions. This means that it's easier to define what the One True Linux is than what the One True BSD is, but harder to get it. Once you've decided which BSD is the right one, it's easier to find an authoritative distribution of it. Development of Linux tends to be more distributed. Lots of people are working on lots of projects: new drivers for this and that, new versions of this utility and that. If you want to keep up with NetBSD, you can sup netBSD-current from one or two places. If you want to keep up with Linux, you end up taking pieces from lots of people (though they generally end up on one of two archive machines -- tsx-11.mit.edu or sunsite.unc.edu). If you don't want to do this, of course the packaged distributions do it for you. 3) The BSD networking is more mature than the Linux networking. This is one area in which I don't think Linux has any countervailing advantages, though in my opinion by release 1.0 Linux networking will be acceptable. 4) There are specific things in each system that are likely to be deciding factors for some people. I don't know what unique things BSD has, because I'm not part of that community, but for some people the COFF and ELF compatiblity projects may be big selling points. Both ...BSD and Linux are working towards having these executable formats available. In addition, Windows executable emulation may also be important to some people. This is probably more useful, and it's being done jointly by developers from both BSD and Linux cooperatively. (Neither of these things is finished, by the way.) It's not clear to me whether the existing Linux DOS compatibility is a critical advantage. BSD doesn't have it, but my experience is that the Linux DOS emulator is slow enough and creaky enough that it's not generally usable. However it certainly does work for many programs, and if one of those programs is critical to you, it may be a big deal. Differences in support of devices are not likely to persist for long. There's a history of taking device drivers in both directions, so if there's enough interest in a device, and one side implements it, you can bet it will show up on the other side. Linux uses DOS partitions (including extended partitions). BSD creates its own partitions inside a single DOS partition. This is a difference, but it's unclear whether it's a critical one. Linux and ...BSD can all mount DOS filesystems and Linux can mount OS/2 file systems (OS/2 is read-only). For a lot of people, the best suggestion is to find out what your friends are doing. If there's a significant user community near you of either kind, you're probably best off to go with it. If not, flip a coin (or look at a map and see whether you're nearer Berkeley or Finland -- note that in this comparison portions of the distance that are over an ocean don't count). 0.2.2 Are all of the Berkeley derived systems binary compatible? If not, what are the differences? (Ed Note. This section is probably wrong, even if it was right when I looked at it last. There is a LOT of work going on, including SysV ELF support and other cool stuff.) NetBSD/386 runs 386BSD, FreeBSD, NetBSD/386 0.8, and most BSDI executables. However, due to upgrading to the latest version of the UCB DB library, programs which use said library cannot be mixed old and new; e.g. an old `ls' cannot read the pwd.db file created with a new `pwd_mkdb', and vice versa. FreeBSD runs 386BSD, NetBSD/386 0.8, and most BSDi executables. You can replace the remainder of the paragraph above here too. The FreeBSD and NetBSD shared libraries are different, so programs that are intended to be shared in binary form across the two platforms need to be compiled as 'static' implementations. This is not actually a guarantee that they will work across platforms, but this is the first hurdle that needs to be jumped in order to have the programs run. Also, due to better (read: properly) enforced address space protections, some incorrectly written programs which seemed to work under 386BSD or NetBSD/386 0.8 will core dump under NetBSD/386 0.9, even when recompiled. The default executable format produced by the NetBSD 0.9 `ld' i is not downward compatible with FreeBSD or 386BSD. It is essentially the same as BSDI's QMAGIC format and Sun's normal format--with no padding between the exec header and the first page of text, and with the first page of the address space always unmapped when loaded--except that the magic numbers are in the conventional `magic + machine id' format, and are in network (big-endian) order. 0.3 How to add your pet answer to the FAQ. This is the trickiest part of this section of the FAQ. There are only two criteria for getting an entry made into the FAQ: 1. Your answer should answer a question that seems to come up with some regularity, or at least perplexes a group of people from time to time. 2. Your answer should be technically correct. In other words, answers like 'RTFM' and 'everybody knows that' are not really good candidates for the FAQ. These answers should spell out, in a reasonable level of detail, precisely how to fix the the question asked, or explain the basis for the answer and leave the implementation of the answer to the questioner. All answers MUST include a question. This is not as obvious as it would seem at first glance. An answer could solve many problems, especially in the realms of system halts or other catastrophes. Since I (Dave) am no Unix guru, I rely HEAVILY on the input of other people to make the FAQ a success. Many questions in the FAQ have been made largely irrelevant through the patchkits, but that doesn't means they may not reappear. That is why the old FAQ questions are still here. New FAQ questions should be added. I will try to attribute the question/answer to the author, but I personally think this is a waste of good disk space. As long as the answers get out, that should be reward enough :-) 0.4 Administrivia. Send all question/answer pairs to burgess@cynjut.infonet.net. If you are going to post the Q/A to the net, then do that, but be sure to mark it as a FAQ entry. I will get it from the net as easily as I do my E-Mail. Your Q/A will be formatted to look more or less like the others and be added. Corrections, deletions, flames, snivels, and whines should be addressed directly to me here. Either way, I will be sure to send out a reply letting you know what I have done with your submission. One last thing. I will assume that I am infalible. :-) I will not notice any mistakes that you may find. If you find a mistake and don't tell me, it will very likely stay a mistake. After all, if I didn't notice it before, why should I notice it now? -- TSgt Dave Burgess | Dave Burgess NCOIC, USSTRATCOM/J6844 | *BSD FAQ Maintainer Offutt AFB, NE | Burgess@cynjut.infonet.net or ...@s069.infonet...