3 ms·
All offer a generally monolithic "cathedral" style development approach to the OS as a whole (kernel, libraries, utilities, applications), rather than the more
by _delirium 13y ago
All offer a generally monolithic "cathedral" style development approach to the OS as a whole (kernel, libraries, utilities, applications), rather than the more piecemeal "bazaar" style favored by most GNU/Linux distros.
This has gotten a bit less true, though not entirely. The classic Unix model really did develop the entire system in the unified development model: kernel, userland, servers, major application software, etc. You could then also install third-party packages for specific application software (e.g. Matlab), but it wasn't the norm, and didn't handle core functionality.
But some components have gotten to be big enough that they're entire projects in themselves, usually cross-platform and not integrated with any one OS's development. Some of these are adopted into the BSD core respositories and customized so they form part of the integrated offering, but a number are just left in ports and run mostly unmodified. Webserving is one example: when used as a webserver, the BSDs, just like Linux, depend for a core part of the functionality on Apache or nginx. A few of the commercial unixes do follow the more traditional "everything included" model, e.g. Oracle and IBM have in-house customized versions of Apache as Oracle HTTP Server and IBM HTTP Server respectively. But the free BSDs generally run this kind of software un- or very lightly modified. The compiler is another example; the BSDs all ship basically a stock GCC or LLVM, rather than having an in-house compiler developed with the system, like the old commercial Unixes did.
Windows Server might be the purest descendent of the old Unix cathedral model, shipping integrated, Microsoft-developed software for all core functionality: kernel, userland, windowing system, webserver, compiler, etc. GNU also had such ambitions at one point, which explains some of their integration-oriented policies (some of which are disliked, and some of which have been dropped). For example, a unified style of command-line options (now packaged into getopt), a standard in-house-developed configuration/scripting/extension language that all applications were supposed to use (Guile), a unified compiler suite handling all languages (GCC), etc.
- weland 13y ago> But some components have gotten to be big enough that they're entire projects in themselves, usually cross-platform and not integrated with any one OS's development. Some of these are adopted into the BSD core respositories and customized so they form part of the integrated offering, but a number are just left in ports and run mostly unmodified. I think this is pretty much what OP was trying to say, but his choice of words didn't make it obvious. The major difference between *BSD (OpenBSD is particularly picky about this) and Linux is that the "base" system is supposed to be fully-functional and well-integrated, from kernel to userspace, whereas Linux is "just" the kernel. There are good uses to both models. I found the latter to be very useful in embedded systems, where you often need that kind of flexibility. I found the latter to be, frankly, a lot more useful on the desktop. To this day, I have to consult my notes every time I need to set up wireless on a Linux box without wicd or NetworkManager. The fact that a system with OpenBSD's reputation actually gets to do that easier is a good testimony to the merits of well-integrated userspace tools.
- dredmorbius 13y agoYou could then also install third-party packages Sure. And that's always been the case. There's a question of what constitutes the "core OS", though in the case of the BSDs there's also a pretty strong tradition that this conforms largely to the state of BSD/UNIX in the late 1980s / early 1990s: kernel, libraries, userland, mail, DNS, lpd. While you can add a webserver to a UNIX system, it doesn't require one in the same way that, say, mail and cron are pretty much required to get basic tasks done. I suspect Oracle's PoV is that a crappy 1970s proprietary database server and security-negative Java runtime are integral parts of every operating system and should be included by default, as well as the license compliance system required to manage them. Windows Server is absolutely a Cathedral, though Microsoft has had its own reign over the system tempered by both legal and marketplace / partner considerations -- hands tied in the first case, business reality requiring they toss some scraps to their vassals in the second.