Slashdot Mirror


Overview of the BSDs

zeekiorage writes "A good informative article about the various BSD OSs, their legacy, philosophy and importance on the ExtremeTech web site. Excerpt from the article: 'Nowadays, the term 'The BSDs' refers to the family of operating systems which were derived, to a greater or lesser extent, from BSD. The five best known BSDs are FreeBSD, NetBSD, OpenBSD, BSD/OS, and Darwin (which serves as the foundation for Apple's MacOS X). But virtually all modern operating systems -- from Windows to BeOS to Linux -- rely on crucial BSD code to run.'"

3 of 399 comments (clear)

  1. Why BSD over Linux and History Clarifications by Anonymous Coward · · Score: 5, Informative

    First, I've used Unix since 1977 and BSD since about 1979 (whenever V3.0 BSD came out.)

    Why is Linux more popular than BSD?

    I think mostly because a useable, free distribution of linux was available first. Although a lot of the BSD code was freely available there was no real distribution you could load and boot for a few crucial years other than BSDi which cost about $1000 (and was very good, but you had to be willing to part with $1000.)

    So, simply: A loadable, bootable, useable Linux was available for free to the general public before the same was available for BSD.

    Some might nitpick about the availability of Jolitz' 386BSD but it was at best a very limited distribution and supported only some specific cpu/bios/disk/etc setups. From almost the start Linux used the BIOS drivers (ok I'm not a x86 internals weenie so might have this worded slightly wrong) which meant you tended to just get lucky if you tried Linux on your off-beat hardware, it'd usually just work.

    Remember also that in the early/mid 90's x86's were much less standardized and you tended to do your own system integration taking a basic system with a motherboard and often adding a video card, a disk card, a disk, a sound card, etc. and all that had to be supported by OS drivers of some sort. Linux was better at that then BSD back then.

    HISTORY:

    What's seriously missing from the article are the specific reasons why BSD gained such fast popularity:

    In the 70's the most popular system for hacking around on was the DEC (Digital Equipment Corp.) PDP-11. It was relatively cheap for its day (usually under $100K!) and expandable and mostly maintainable by the sysadmins.

    Unix from Bell Labs and very early BSDs ran on the PDP-11. But it was limited to 16-bits, many systems maxed out with 64KB (yes KB) of memory! Fancier systems could extend that to 128KB, and their rolls-royce model, the PDP-11/70, could handle 2MB but anything beyond 64KB was mostly used like a fast swap disk, you'd load programs and the OS would switch which 64KB (or for some 128KB, 64KB for the program, 64KB for its data) it was running right now.

    Then, around 1978, DEC came out with the VAX (Virtual Address eXtension, of the PDP-11, tho that's more of a historical artifact of a name.)

    The VAX had 32-bits of architecture and could support, well, over 1GB of physical and 4GB of virtual memory, at least in theory tho in those days 16MB of physical was huge super-computer stuff.

    But the virtual memory system was very complicated and DEC released it only with their own proprietary VMS O/S which was kind of like CP/M on steroids (MS/DOS was based on CP/M), with a few additions like the VM support.

    There were some early releases of Unix for the Vax (e.g., System/32 from AT&T) but they didn't support the VM hardware and so were very limited. VAXes cost around $500K, you didn't really want to spend half a million and then not be able to use the main point of the hardware!

    Then Bill Joy (BSD, later one of the Sun founders) in probably one of the greatest virtuoso performances in hacking history added VM support to BSD and a VAX version was released.

    Suddenly every University and research lab had to have a Vax running BSD, particularly by their 4.1 release. 4.2bsd added full TCP/IP support and a much more robust file system written by Kirk McKusick (previously a crash would often corrupt the file system and there was no real fsck so sometimes you'd have to use a kind of interactive file system debugger to fix a partition manually,
    or just try to recreate it from backups,
    ugh, you don't know the horror.)

    DEC came out with the somewhat less expensive VAX 11/750 and even a 730 model (which really, really
    sucked, but better than nothing!) and more and more people at universities & research facilities bought them to run BSD/Unix which, particularly with ethernet and maybe even an Arpanet connection, was just grand, heaven on earth.

    DEC fought tooth and nail against BSD/Unix (any Unix) preferring to push their proprietary VMS OS even if it meant shoving down people's throats (e.g., they loved going to the suits and telling them that if their people run Unix on their $500K VAXes DEC might refuse to fix the hardware if it breaks...FUD.)

    Eventually DEC relented and came out with their own version of Unix for the Vax based mostly on BSD and called it Ultrix.

    But it was too little, too late, by then Sun was eating their lunch with much better Unix on machines that mostly cost well under $100K even in their fancy incarnations. And bitmapped workstations (Sun3/50) could be had for around $5K with disk (or you could run them diskless for less.)

    Sun ran a pretty pure BSD/Unix and then in the late 80's merged it with AT&T's System V (as in five, not vee, there was a I, III, and probably some numbers in between not publically released.)

    AT&T completely fell on its face with Unix coming out with the doomed 3B series of AT&T computers (proprietary CPU) running their SYSV Unix as well as the rebadged Convergent PC7300 which was kind of cool because to my knowledge it's the only machine that had a label on it "Unix PC".

    1. Re:Why BSD over Linux and History Clarifications by edhall · · Score: 5, Informative

      Good grief; someone got it (mostly) right! DEC's hardware was absolutely crucial to Unix's emergence, even though DEC did damn near everything to stop it. I do have a few nits to pick, though, and a bit more info on BSD's contribution (specifically the 1.x and 2.x series which ran on PDP-11 only):

      • PDP-11's supported 256KB of memory early on due to the fact that the UNIBUS had 18 address lines. The PDP-11/70 added another wider bus and so supported more memory, as you say.
      • Although the PDP-11/40 and earlier supported only a single 64KB address space, the PDP-11/45 supported separate Data and Text (executable) spaces. Most Unix installations were 11/45's or 11/70's, and so supported this feature (which lead to the introduction of "shared text" -- separate processes sharing a single copy of executable code).
      • Saying that memory outside of 64KB was used as "fast swap" is inaccurate, since it implies that processes were copied to and from it; in fact, PDP-11's (from the '40 on) had segmentation hardware which allowed that memory to be mapped in without copying.
      • One of the things that BSD added to Unix on PDP-11's was the ability to use its segmentation hardware to map in and out parts of executables. Although the granularity of 8KB segments tended to limit this feature to separate phases of a program, it helped soften the 64/64 barrier a bit on the code side.
      • Shared memory was another feature allowed by the memory hardware that BSD took advantage of.
      • BSD also added a primitive (by later standards) networking capability called, I believe, BerkNET.
      • A number of other features were added as well to PDP-11 BSD Unix along with a lot of performance tuning and enhancement. It wasn't unusual to have sixty people comfortably sharing a PDP-11/70 doing software development and word processing (and, of course, email and messaging).

      Very little of what Berkeley added to PDP-11 Unix survives. This isn't surprising given that a fair amount of it was designed specifically to confront the 16-bit address limitation in some way. It's a bit amusing to hear some similar ideas being discussed today (though more in Linux circles than BSD, I think) for overcoming the 32-bit address limit. (It's also a bit weird to think that if Moore's law continues to hold, I'll probably live to see the same thing happen at 64 bits!)

      The VAX version of BSD (which was developed pretty much separately -- the two overlapped by several years) has direct influence on all BSD's today, of course, and your post pretty covers its development from Unix V32 through Ultrix.

      -Ed
  2. Re:The article forgot to mention SunOS by durdur · · Score: 5, Informative

    SunOS version's 4.x and below were derived from BSD.
    SunOS version 5.X and Solaris are based on SVR5.