From owner-freebsd-hackers Mon Sep 2 15:17:30 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id PAA15950 for hackers-outgoing; Mon, 2 Sep 1996 15:17:30 -0700 (PDT) Received: from time.cdrom.com (time.cdrom.com [204.216.27.226]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id PAA15945 for ; Mon, 2 Sep 1996 15:17:26 -0700 (PDT) Received: from time.cdrom.com (localhost [127.0.0.1]) by time.cdrom.com (8.7.5/8.6.9) with ESMTP id PAA05926 for ; Mon, 2 Sep 1996 15:17:25 -0700 (PDT) Prev-Resent: Mon, 02 Sep 1996 15:17:25 -0700 Prev-Resent: "hackers@freebsd.org " Prev-Resent: Mon, 02 Sep 1996 15:17:04 -0700 Prev-Resent: "core@freebsd.org " Received: from covina.lightside.com (covina.lightside.com [207.67.176.1]) by time.cdrom.com (8.7.5/8.6.9) with SMTP id NAA05631 for ; Mon, 2 Sep 1996 13:14:04 -0700 (PDT) Received: from localhost by covina.lightside.com with smtp (Smail3.1.28.1 #6) id m0uxfNm-0006kIC; Mon, 2 Sep 96 13:14 PDT Date: Mon, 2 Sep 1996 13:14:05 -0700 (PDT) From: Jake Hamby Reply-To: Jake Hamby To: "Jordan K. Hubbard" Subject: FreeBSD vs. Linux 96 (my impressions) In-Reply-To: <2893.841647826@time.cdrom.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Resent-To: hackers@freebsd.org Resent-Date: Mon, 02 Sep 1996 15:17:25 -0700 Resent-Message-ID: <5924.841702645@time.cdrom.com> Resent-From: "Jordan K. Hubbard" Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk The other day I received my subscription copies of FreeBSD 2.1.5 and Slackware Linux 96. After looking at the CD-ROM backs, and upgrading a friend's Linux install (using him as a guinea pig :-) I decided to migrate my primary development OS to Linux. I'm going to reinstall FreeBSD on the other hard drive, probably after the next 2.2-SNAP (once GCC 2.7.2.1 gets integrated into it). Since I've talked to you before on occasion, esp. regarding Solaris x86 (which I still have installed), I thought I'd type up a quick summary of the differences (as I see them) between the latest Linux and FreeBSD, and why Linux seems to be better for my uses. First, my uses for this box: 1) Software development for work and school: Requires X11R6, Motif, and C++, which both OS's do fine (still waiting for "official" GCC 2.7.2.1 on FreeBSD though). However, for school, I also need GNAT (for Ada) and Common LISP (for my AI class), which Linux seems to support a bit better, esp. GNAT (which is itself written in Ada, and the new version requires threads, so I have not had time to attempt a port to FreeBSD). And of course the JDK isn't available for FreeBSD, though Kaffe should make this less significant. 2) Internet access: PPP, Netscape, pine, telnet, and so on. Both OS's do this well (FreeBSD a bit better), but for some reason I haven't been able to get Java to work on either BSDI or Linux Netscape 3.0 under FreeBSD-current, but it works out of the box on Linux, even though it's "unsupported". I've installed it exactly the same as under Linux and Solaris (copied java_30 to /usr/local/lib/netscape) but Java programs just don't start! Does Java work for you with Netscape 3.0? Another side effect is that my BeBox has some nasty interactions with 4.4BSD telnetd (BeBox's fault) and user-mode ppp, so I'm curious to see how Linux will work as a BeBox PPP server (will set it up later today). Anyway, I guess it was the better software support (esp. GNAT, Netscape, JDK, and so forth) which pushed me towards Linux. After using both, I must conclude they are both great OS's, definitely the competition has made them both better. For your interest, however, I've typed up my quick impressions of advantages/disadvantages of Linux vs. FreeBSD. Should give you a hopefully objective view of where FreeBSD needs to improve: Linux advantages: ----------------- 1) Better software support (both GNU and commercial). Not much we can do, other than get the latest versions of the GNU software supported (GCC and so forth), and make sure our Linux emulator stays in top shape. 2) DOSEMU. Recent work on the FreeBSD emulation front is promising, though, however DOSEMU has several years head start and works quite well. Linux also supports VFAT (Win95 names) quite well. 3) _Very_ modular kernel. Unlike FreeBSD, you can install most every driver (for example Ethernet, SCSI and sound support) as modules, and there is a kerneld which automagically loads/unloads modules as programs request them. For example, whenever I play a .au file, the sound module instantly loads, then after a minute of unuse, it unloads, saving me 96k! FreeBSD already has the infrastructure for this, but Linux just pushes it a little more to its logical conclusion. 4) Supports arbitrary PC hardware better. As of FreeBSD 2.1.5, the boot floppy _still_ doesn't recognize my IDE CD-ROM (which I've reinstalled after moving the SCSI CD-ROM to my BeBox), but Linux recognizes that kind of hardware out of the box. Having more users means it supports a wider range of hardware, for example the parallel-port Zip drive. The big problem for FreeBSD is EIDE/ATAPI support, since nearly all PC's are being sold with IDE CD-ROMs these days, and our support is currently buggy, mostly because it's a crappy standard to support properly, and all the core people use SCSI. Unfortunate... 5) Supports more architectures. For example, I'll probably install Linux for BeBox after it's a little better tested. Too bad FreeBSD and NetBSD have diverged so far, because FreeBSD could benefit from NetBSD's hardware support, and NetBSD could use the improved VM system and package system of FreeBSD.. :-( 6) Heavy usage of /proc means getting a new kernel doesn't require recompiling ps, vmstat, and so on. FreeBSD has /proc, we just need to make better use of it, esp. for debugging (its original purpose, even though our GDB totally ignores it!). 7) Easy kernel setup. The old "make config" prompting setup is still there, but now there's also a nice curses-based menu for setting options, and a nifty Tk version. This is something I'd like to work on for FreeBSD, since I have some ideas of my own on this, as well. 8) Easier for new users to install. The Slackware verbose setup menus, while annoying for expert users, actually serve a good purpose by introducing novices (such as myself when I first installed Linux) to the wide variety of programs available. You can also install to a UMSDOS partition (eliminating the need to partition the drive) and mount the live CD-ROM on /usr for a quick taste, which only needs about 10MB disk space! 9) I've always liked Linux FDISK better than what FreeBSD had to offer, esp. when adding partitions later on (after the original install). I know the relative parts of sysinstall have be broken into separate programs, and the full-screen interface of FreeBSD is nice, but if we're going to do a major rewrite after 2.2.0, this could use a big overhaul. 10) Uses less disk space. Right now I have a full development system (C/C++/Objective C/GNU Lisp), TCP/IP (pine, tin, apache, arena, Netscape), TCL/Tk, X11R6 (fvwm95, etc.), and kernel source in a single 166MB root partition with 40MB free. Admittedly, I didn't install Emacs (preferring to use jove or vi for quick edits), but it just seems smaller than FreeBSD for all the goodies I've installed. I can attribute this to three reasons: EVERYTHING is linked with shared libs, ELF binaries are smaller (they aren't padded to a multiple of 8k like BSD), and more components are optional (i.e. not bundled into "bin"). Linux disadvantages: -------------------- 1) Can't boot arbitrary kernels from the root partition. LILO sucks. 2) Many boot/root disks to choose from, vs. a single configurable GENERIC. 3) Can't install over PPP. 4) TCP/IP is still not as good (but it's improved noticably). 5) Doesn't support "slice" scheme, although it does support extended DOS partitions if you need more than the four FDISK partitions. 6) Not as well integrated. While this means you can upgrade pieces and parts at your leisure, there is no master CVS tree, no core team, and no regression testing to make sure all the parts work together. Also, try mailing the author of Slackware with a bug report, vs. posting it to hackers@freebsd.org. _Big_ difference! Summary: -------- Linux has improved significantly since my last Walnut Creek Slackware CD. A lot of rough edges have been fixed, and the 2.0 kernel is definitely a milestone release for them. I decided to switch over because the software support is a bit better, and the upgrade cycle I got stuck in (upgrade libc, upgrade kernel, upgrade ppp, upgrade programs which got screwed by the new libc, upgrade kernel again, agh!) by the last Linux has been fixed by a new CD with the latest versions of everything tested against each other (still it's not as well integrated as "make world", alas!). In summary, Linux does seem the better OS for people just getting into UNIX. It was my first UNIX experience, after all. It does seem to offer compelling advantages as a desktop UNIX, in terms of tuning, and software support. FreeBSD will remain the industrial strength Internet server OS, of course, and I don't think I would trust Linux as a server in terms of performance, scalability, or security just yet. So what does FreeBSD need to work on? The areas I would like to work on: Easier kernel config (hopefully a nice curses interface, plus some automatic tuning based on the results of "dmesg" to see what hardware was actually detected), porting GNAT (now that we have a pthreads lib), and of course the FreeBSD counter I had volunteered so long ago. I'm going to be working on CGI hacking for work next week using WebObjects (unfortunately there's only Solaris, NT, and NextStep versions) and perl, so I should be able to finish something up next week. The areas I'm not competent to help with, but which _desperately_ need improvement: Hardware support (esp. IDE CDROM!), DOS emulation and VFAT support, maybe even a UMSDOS filesystem like Linux, usage of /proc throughout our utilities (no more "proc size mismatch" please?), a more modular kernel (ideally with a "kerneld" rather than simply a module-aware mount command), and of course we can always improve our installation and packaging scheme (which I would be glad to assist with and help beta test anything you come up with). Hope these comments have been helpful to you. Feel free to forward them to whatever FreeBSD mailing lists you think would find it interesting. -- Jake