Ahem, Hi Fans! Hi Paolo :)
On 2/5/07, Paolo Alexis Falcone <[EMAIL PROTECTED]> wrote:
2. Many are attracted to the simplicity of administration of BSD's more-robust networking stack and stateful packet filter with a more natural language syntax, while others like the bare-metal faster Linux networking stack with the modular, connection-oriented approach that Linux's packet filter gives without resorting to userland tools. 3. In this age where multi-core machines are already becoming the norm, SMP and threading in Linux is still superior compared to the BSD's. But the BSD's are not sleeping at the gates as they're catching up (with ULE and KSE). Then again, you've got better chances with Solaris, or the mxn threading capabilities of HPUX.
IMHO, simplicity is beauty. IMHO, NetBSD in the way it handles TCP/IP and the TCP/IP stack is far more mature and better than any of your Linux. NetBSD is the result of twenty five years of open source development. As a consequence, it has a highly mature code base. For example, its networking code ensures better performance and insurance against denial-of-service attacks than Linux's. Linux's TCP/IP suite, while well regarded, is simply less of a known quantity than NetBSD's, which is the reference implementation for Unix. As another example, NetBSD had integrated IPv6 long before Linux. Bugs have had longer to appear, and have been removed for a longer period of time. Although in many applications newer equals better, when dealing with OS code, the more mature a code base is, the more stable and predictable it is likely to be. If we are going to examine the development models of both operating systems, NetBSD and Linux are developed according to very different models. NetBSD is developed in a unified way, with the Core Team of the NetBSD Project overseeing additions and modifications to the NetBSD source tree. Adhering to the principle that FIRST IS NOT ALWAYS BEST, the NetBSD Core Team tightly controls access to the source tree, and frequently rejects early code contributions in order to wait for better ones. This gatekeeping role is particularly important because NetBSD maintains a unified source tree for all architectures – allowing simultaneous builds on each release -- ensuring high code quality and the most consistent possible environment across platforms. Linux is, by design, a more 'anarchic' development community. There is no single Linux distribution, but rather, as is well known, a multiplicity of distributions with different featuresets. While the market has coalesced around a select few distributions (RedHat, SuSE, SCO) and developers around a few additional ones (Slackware, Debian), code still diverges among the different distributions. Moreover, since there is no unified source tree for all architectures, Linux for the i386 may be very different from Linux for the x86-64. Each release is built, tested, and distributed separately However both communities, naturally, defend their development models. The NetBSD community points to several inferior modules being integrated into Linux (or certain distributions of Linux) simply because they were developed faster than superior pieces of code. For example, Linux had at least two completely independent USB stacks before Linus Torvalds rejected them both and wrote a third one from scratch, after he found both existent Linux stacks unsatisfactory. (When pressed for an explanation as to why he selected the API he did, Torvalds stated: "because I wanted to.") The NetBSD community also claims that the multiplicity of Linux distributions is both confusing and dangerous, because improvements to one distribution may or may not be present in other distributions. Linux developers counter that the multiplicity of distributions makes a wider variety of features available to users, and that there is no single standard of 'best' such as that which the guardians of the NetBSD source tree pretend to impose. Leaders of the Linux community have, further, been able to centralize development around a cadre of their own friends and associates, replicating to some degree the function of NetBSD Core. The Linux community is almost certainly correct when it comes to popular and widely-supported architectures. There is sufficient intellectual capital in the Linux community to support multiple Linux distributions for i386 and similar platforms, and the market is large enough to ensure code quality. Where Linux falters, however, is in more specialized platforms without such wide market support. For these platforms – whether produced by SuperH, or MIPS licensees, or other vendors – the lack of a single source tree across all architectures, and of unified development, can be critically fatal, because users may be forced to do much of the debugging and other development themselves (or pay consultants to do it for them). For embedded applications requiring or preferring unusual hardware configurations, NetBSD is likely preferable. Finally, the NetBSD development model can often yield better code quality. For example, NetBSD has full integration of kernel and user space code in the source tree. This ensures code changes are debugged in the context of the entire system. With Linux, kernel and user-space code are not tested together until integrated by the distributor. In addition, in NetBSD, regression test-suites are integrated in source tree, which helps isolate unexpected effects when introducing changes. With Linux, no single testing standard exists, so QA depends on the distributor.
4. Linux has a cornucopia of filesystems supported. Linux, like proprietary Unix variants, have supported journaling filesystems for a very long time.
IMHO Linux have yet to have a stable filesystem.
6. Linux supports more hardware peripherals and more hardware architectures than the BSD's (even more than NetBSD!), although it's not like how architectures are supported in the BSD's, where all comes from the same code tree.
*cough* NetBSD has had maximum portability as its chief design focus for the last seven years of its open source development. NetBSD's most distinctive feature is its wide platform support: as of the date of this writing, it runs on a technology-leading fifty one ++ different hardware architectures. NetBSD's fast portability is due to its unique Modular Portability Layer (MPL). With the MPL, the driver is completely isolated from the hardware platform, I/O instructions or no I/O instructions, interlocking, retry error recovery, bounce buffers, memory type boundaries, scatter/gather maps in host bridges, even peripherals which use pseudo-dma to write a buffer RAM with host CPU copyin and copyout all -- are transparently handled beneath the driver layer. Moreover, several embedded systems using NetBSD have required no additional software development other than toolchain and target rehost. With Linux, however, device driver code must be reworked for every new architecture. As a consequence, in recent porting efforts by NetBSD and Linux developers, NetBSD has taken as little as 10% of the time to port to new hardware. Engineers ported NetBSD to the SuperH processor core in under six weeks; Linux took three months. NetBSD was ported to the AMD x86-64 in about a month; Linux took six months. As a result, NetBSD supports fifty one supported architectures. Aside from that with the wide array of developers pushing in new code in their own style/methodology of writing, regression etc , chances are that there will always be HALF-baked / hacked / reverse engineered device drivers would work for some, and wouldnt work for others. I had experienced this with Linux firsthand, and it sadly broke some of my hardware, and Im not the only one who had these woes. Since then, I wouldnt put this risk on a production system. my two cents :) if you reached this far, it means you might think of "alternatives" ;) *grin* _________________________________________________ Philippine Linux Users' Group (PLUG) Mailing List [email protected] (#PLUG @ irc.free.net.ph) Read the Guidelines: http://linux.org.ph/lists Searchable Archives: http://archives.free.net.ph

