Okay, so maybe I’m feeling a masochistic streak right now, but does anyone have some weird and esoteric Unixy oses that I could run in a virtual machine?
Due to the nature of my work, I’m becoming much more aware of how *nix boxes work and I finally get why they are so popular, but I’m curious as to what I could run to see what’s going on.
I run Mac OS X Leopard right now. It’s pretty awesome for my purposes because I get all the benefits of it being a Unix platform. With MacPorts and Fink I can install most of the stuff that I need and the community is big enough to provide solutions to most of the problems I’ve run into. So I don’t really need Linux per se.
But I was wondering what the deal is with other linuxes. Or what about BSD? Anyone have anything cool I might want to try?
I like FreeBSD, and I installed DragonFly BSD a while ago but never did much with it. I’ve intended to install NetBSD on a couple of devices but have never gotten around to it. I manage some Red Hat Linux boxes at work (in addition to some commercial Unix distros) but I’m overall pretty meh on Linux, mostly because of the scads of distributions, each of which does system configuration its own way, and the seemingly inconsistent way of implementing different features; the BSDs are more consistent and have a few things I like better. However, Linux generally has better driver support for a wider range of peripherals, and while documentation is not always the strongest the major distros (Red Hat, Suse, Debian) tend to have pretty thorough docs for the user-level stuff.
Unless you want to get down into the guts of the OS, though, I’d just stick with OS X/Darwin. You can load X11 on OS X (see XonX and Apple’s X11) and run pretty much any Linux/BSD application, and can compile virtually anything from *nix-based source code. It is possible to set a Mac box to just run Darwin without the Apple GUI layers, so you can run it as a CLI if you want, although I find that the Apple GUI is pretty light on system resources even on an older box. I’ve pretty much given up running the BSDs as desktop machines 'cause it’s just not any easier than powering up OS X, although I think that FreeBSD has some advantages for a server or a numbers box. The amount of learning curve to use a “cool” OS isn’t really worth it just for the coolness factor, IMHO; you actually need some kind of reason to run a non-commercial OS in order to justify the effort.
If you really want to be the kind of person who runs a cutting edge, “What was that again?” operating system, download HaikuOS (the conceptual successor to BeOS). That is, if you’re not put off by the idea of an OS that is likely to disappear into the wind at a moment’s notice as it is overtaken by less sophisticated but more functional OSs.
As cool as OS X may be, it’s based on a 25 year old OS with plenty of 25 year old ideas at the core. BeOS showed what was possible if you decided to start from scratch. I had six second boot times on a Pentium system, multiple videos running at the same time and a development environment that excited developers so much that they came up with brilliant software.
Before the return of Jobs to Apple, they had tried and failed to develop a successor to OS 9. They were looking at NeXT and Be, and decided that getting their hands on the patented Jobs “Reality Distortion Field” was worth more than getting the best OS.
Unfortunately, BeOS never really made it to maturity, and Haiku has been stuck in development phase for several years. I ran BeOS briefly and despite being advertised to run Linux-compatible apps seemlessly I had a number of conflicts. In comparison, I’ve never had any problem running Linux and most Unix apps under FreeBSD.
BeOS, and Haiku, have a number of good ideas, and eschew the clunky but ubiquitous and seemingly irreplaceable X Windows, but they’re not ready for prime time. OS X, on the other hand, is stable and gives good performance even on older hardware, and although it is a descendant from the original Berkeley Software Distribution is uses a unique hybrid microkernel (XMU, based off of the Mach microkernel) and pretty recent releases of FreeBSD, in which most of the original Berkeley/AT&T code has been replaced by newer code. It also chucks X11 in favor of its own proprietary Cocoa environment framework, based on the NEXTSTEP/OPENSTEP framework, allowing a scalar vector graphics-type rendering sytem. It is true that the basic structure of the file system and many of the networking protocols are derived from original BSD format, but that is mostly true of BeOS as well; although it doesn’t use BSD or Linux kernels, a lot of the architecture still resembles a traditional Unix OS.
BeOS, Haiku, or another true “next generation” OS would be great if they were functional, but OS X works, and works well with a large range of applications.
I’ve never coded for BeOS, but I’ve had a little taste of Cocoa, and I was really impressed. The interface builder is really top notch. Once you get their design scheme down it is pretty easy. It’s a bit too much like legos, actually.
But I’m not going to take this seriously guys, I am just going to run these in a virtual machine. I’ve got a copy of Ubuntu on my extra partition and I never boot it. But I’m just curious to see what was out there. I am going to try BSD to check that out.
I do really love OS X more and more now that I realize that all of these linux tools i’m learning for my job exist already on my computer. However I do have to use macports or fink to get some stuff. I was really surprised to find out that I had to download wget.
Yeah, but one would expect he would, NEXTSTEP/OPENSTEP being a product of his then floundering company, and of course he profited out of the deal to the tune of 1.5 million shares of Apple, Inc. stock.
I don’t think he was wrong–the OPENSTEP framework and the hybrid Mach kernel, along with the reasonably mature FreeBSD upper system and utilities made a great starting point to quickly develop a robust replacement for the badly aging MacOS–but the decision definitely favored him personally. BeOS was always intended to be a pure desktop OS anyway, whereas Apple has promoted OS X and DarwinOS as being a server- and cluster-capable operating system, a role that a BeOS-based system would probably not be well suited in.
I haven’t done any coding for Cocoa, but I have played around with GNUstep (as much as I can with the limited knowledge of Objective C that I have) and it is pretty slick. I’ve done a little bit with Windows APIs and Qt, too, and I can say that developing graphical apps in those frameworks is anything but slick. Painful, buggy, poorly documented, and trial-and-error is more like it, actually.
GNUstep is basically a GNU-compatible implementation of OPENSTEP, with the same set of Objective-C libraries, a Java interface, and a widget toolkit and an OODE that is based on NeXT’s Project Builder (or at least it looks very similar). The GNUstep Project claims to have updated libraries and interfaces to be compile-consistent with Cocoa (i.e. you can compile an interface developed in GNUstep and have it work on OS X via Cocoa) but I don’t know how robust this is or whether you get some funky interface behavior. I’m not a programmer by trade, but I played around with it a bit and found it a lot more intuitive than developing in Qt (which I did back a ways when I was doing code development). If you like Cocoa and do any cross-platform development (I believe there is a GNUstep implementation that interfaces with Windows NT/XP as well as X11) you should take a peek at it.
I’ve never done any development on BeOS, either, so I can’t speak to it, although I know they worked around a similar paradigm of a consistent GUI interface. My experience with BeOS was playing briefly with a BeBox, and downloading an x86 port of it later, and finding it to be okay, but lacking in support and apps. (I think I tried without success to get gnuplot working on it; I don’t know if this was my problem in not doing the right voodoo to get it to compile or some incompatibility in libraries somewhere, but it soured me on the supposed Linux application compatibility claim.) The BeBox itself was a neat idea, but unfortunately it was an answer to a question nobody asked. The NeXT station, on the other hand, was an inadequate and abortive answer to a question everybody was asking, to wit: “Why do Unix workstations have to cost so bloody much and yet have a clunkier interface than Windows 3.11 or MacOS?” Jobs was right: the NeXT was five (more like ten) years ahead of its time; unfortunately, the hardware it was built with was not.