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.'"

19 of 399 comments (clear)

  1. GPL isn't 'free'? by mssymrvn · · Score: 2, Informative
    The same is true of BSD. Consider its licensing policies versus Linux, for example. When code is licensed under the GNU General Public License or GPL (as is Linux), the license effectively eliminates any financial rewards anyone -- whether an individual or a corporation -- might hope to gain from improving upon it. It does this by compelling an author who uses any part of the code to give up the right to charge a license fee for the finished product.

    Now, it's been a while since I've read the GPL, but last time I checked, it's possible to charge whatever you want for GPL'ed software. But you have to give the source away for free. The use of the word 'effective' in this passage sort of skirts the issue, but the author then goes on to state that the BSDL is 'truly free' b/c it allows corporations to charge money for code developed with BSD-based source.

    Is the author an ex-MS employee or just confused?

  2. Re:OpenBSD... by Raskolnk · · Score: 2, Informative

    It's an important distinction to make.

    Not really. An OS can't stake it's reputation on software out of it's control. No one is going to claim that their OS has been secure for every user who runs it, including users who've incorrectly installed/configured software on the OS. The best you can say is that the way it was distributed was clean, and you've done the best possible job of providing security support for user apps.

    --
    Don't blame me, I get all my opinions from my Ouija board.
  3. The article forgot to mention SunOS by brokeninside · · Score: 4, Informative
    The article attempts to list the five most famous BSDs, but doesn't mention SunOS (aka Solaris). I'm not too impressed by an article on the history of BSD that doesn't mention SunOS, the Mach kernel (except a brief mention of Darwin), OSF/1, or Digital Unix.

    1. 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.



  4. Only one worm? by brokeninside · · Score: 2, Informative
    From the article:
    The long BSD tradition of cautious development, extensive peer review, and thorough testing makes them some of the most reliable software ever developed. In fact, as far as anyone knows, only one worm has ever been developed that attacked any of the BSDs.


    The Morris Internet worm that virtually shutdown the Internet attacked SunOS, which is a BSD, and DEC VAX running 4 BSD.
  5. Misinformation and Absurdity by dh003i · · Score: 3, Informative

    Don't let the title fool you. This article was great. There was, however, one clearly uninformed statement. The GNU GPL does not prevent you from charging other people software based off of GPL'ed code; it mandates that the source code for any modified or improved versions be distributed either free or at no greater than the net cost of distribution.

    Also, nice to know that the judges in our courts are complete morons, as they don't realize that among people in the computer world, UNIX is a generic term.

    We think and speak of BSD, IRIX, AIX, Solaris, Linux etc, as being UNIX OPERATING SYSTEMS. Even some OS' which shouldn't be called UNIX are called UNIX (i.e., Plan9).

    Someone on /. said earlier "trademarks exist to protect the consumer". Yea, my ass they do. Its time we stopped letting corporations divide the language between them.

  6. Darwin 6.0.1 by h0tblack · · Score: 4, Informative

    ..has recently been released, this is the massively updated layer beneath OS X 10.2 (aka jaguar aka jagwire). At the moment only the PPC binary installer is available, the x86 version is apparently on it's way, until then there's always the older 1.4.1 x86 version. IMHO it's good that Apple are keeping both the source and binary Darwin distribs up to date. A Whole bunch of the engineers at apple are heavily committed to open-sourcing (and not just those you'd expect like Jordan Hubbard). Using the Darwin Core and something like Fink or DarwinPorts you can end up with a nice and 'free' OS with Xfree86, KDE et al.

  7. 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
  8. The Myth of BSD in Windows by Inoshiro · · Score: 4, Informative

    A long, long time ago, in the State of Washington, a certain company that produces a lot of software needed a TCP/IP stack. Seeing many smaller companies producing TCP/IP stacks, they decided to buy one.

    But when they bought the company out and started examining the code, they found that it was a Regents of Berkeley code. Since they did not want to advertise the BSD operating system, they instead went ahead and wrote a new stack using the knowledge of the old, BSD-based stack as a starting point. They also ported some BSD-derived utilities, which do include the copyright string, to the new Winsock TCP/IP stack.

    But Microsoft never, ever shipped with a non-MS TCP/IP stack. They wrote their own code for Win95 and WinNT because they needed it, and they did not want to advertise the competition.

    Check out this page for more information on this subject.

    --
    --
    Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
    1. Re:The Myth of BSD in Windows by pumpkin2146 · · Score: 4, Informative

      $ uname
      CYGWIN_NT-5.0

      $ pwd /cygdrive/d/winnt/system32

      $ strings ftp.exe | grep University
      @(#) Copyright (c) 1983 The Regents of the University of California.

      (and the same for finger.exe, nslookup.exe, rsh.exe and rcp.exe).

      Maybe not in the IP stack ...

      And by the way, I approve of this, it is part of the point of the BSD license. It also means I get a nslookup that works in a somewhat sane manner on Win2k, instead of MS not shipping a tool to do that at all (which is what would have happened if it had taken developer time).

      How long would MacOS X have taken if it wasn't for a preexisting BSD userland ?

    2. Re:The Myth of BSD in Windows by sparkz · · Score: 3, Informative
      --
      Author, Shell Scripting : Expert Re
  9. Re:an OK article, but a bit biased in favor of fbs by Fweeky · · Score: 3, Informative
    [NetBSD 1.6] now has a new init system that FreeBSD is going to copy for 5.0

    It's already been copied; rc_ng is now the default for -CURRENT.
  10. Re:The Myth of BSD in Windows (huh?) by art123 · · Score: 2, Informative

    Microsoft's very own SDK contains the Berkeley copyright notice in the following files: WINSOCK.H, WINSOCK2.H, and WS2API.H. Probably done for ease of porting. So why would MS care about the binary only stack if the header files that developers use mention Berkeley?

  11. Re:BSD by Fweeky · · Score: 3, Informative

    Most BSD's come with binary packages on the install CD(s). No need to download anything if you don't want to.

    Personally I prefer FreeBSD ports to dpkg/apt. And I *loved* apt when I was using Debian :)

    I'd prolly still use a Linux for a desktop though, but for servers, Linux can go jump in a lake.

  12. Re:Yes by videodriverguy · · Score: 2, Informative

    Yet again, more crap about the TCP/IP stack in Windows.
    The Windows NT TCP/IP STREAM code was written by Spider Software in Edinburgh, Scotland. MS bought it and spent a lot of time making it thread and SMP safe. The stream code itself was a clean room implementation of the AT&T system V code - AFAIK BSD has never had streams and never will have. At the time the NT was being written the BSD code was unclean and fraught with legal problems.
    I've seen the code, and I also personally know the original developer of the Spider code.

  13. Re:Not an accurate comparison to Linux by edhall · · Score: 4, Informative

    Current versions of BSD use GCC. However, BSD was originally developed using another compiler (derived from Steve Johnson's PCC) and if someone wanted to spend the time, one of the BSDs could be moved to another compiler today. However, zealotry aside, there is no reason to do so at this point; The BSDs use GCC because it is the best free compiler available for the job. But the fact that BSD was already fairly mature before it started using any GNU software distinguished it from Linux, which was developed almost from the beginning with GCC and other GNU tools.

    -Ed
  14. Re:One noticable flaw... by mabinogi · · Score: 3, Informative

    "MINIX is a microkernel-based system. The file system and memory management are separate processes, running outside the kernel. The I/O drivers are also separate processes (in the kernel, but only because the brain-dead nature of the Intel CPUs makes that difficult to do otherwise)."

    The exact words of Andrew Tanenbaum.....

    --
    Advanced users are users too!
  15. Re:OT: What if I want BSD for my desktop by tigga · · Score: 4, Informative
    Nice feature of BSDs is a ports/packages system.
    Ports are environment and set of patches for clean compiling and installation on a system. Packages are already compiled ports. Today's FreeBSD ports' count is 7523. You just "make install" it. It automatically download source, patch it, compile and install. Packages could be installed from the Internet. Fire up "pkg_add -r XXXX" and XXXX package will be downloaded and installed.
    The ports list (FreeBSD) is here http://www.freebsd.org/ports

    Almost everything written for Unix or Linux which comes with source runs recompiled on BSDs. Allmost everything compiled on Linux could be run in emulator (Oracle for example, or commercial games ). And there is Wine for it as well.

    As for NVidia cards there's support up to 2D and NVidia going to release native 3D drivers for FreeBSD.

    USB stack is same on BSD's and support is good. Take a look at supported hardware on recent releases - I suppose you interested in Intel platform ;)
    http://www.freebsd.org/releases/4.6.2R/hardware-i3 86.html
    http://www.openbsd.org/i386.html
    http://www.netbsd.org/Ports/i386/hardware.html

    I'd suggest you to try FreeBSD, as more polished and more i386-oriented. OpenBSD and NetBSD have other things in focus.