The guys and girls behind the NetBSD project have released version 5.0 of their BSD operating system. NetBSD is a highly-portable operating system, the second open-source BSD implementation (after 386BSD). Naturally, version 5.0 comes packed with a whole boatload of improvements.
The biggest area of improvement in NetBSD 5.0 is symmetric multiprocessing (SMP). “NetBSD 5.0 features greatly improved performance and scalability on modern multiprocessor and multi-core systems. Multi-threaded applications can now efficiently make use of more than one CPU or core, and system performance is much better under I/O and network load, benefiting, for example, server, scientific, and software development workloads.”
These improvements were made possible by rewriting or auditing just about every core aspect of the system. Instead of paraphrasing these changes and making mistakes, let’s just look at what the release notes have to say:
This improved performance is the result of a rewritten threading subsystem based on a 1:1 threading model, new kernel synchronization primitives, kernel preemption, a rewritten scheduler implementation, real-time scheduling extensions, processor sets, and dynamic CPU sets for thread affinity. Almost all core kernel subsystems, like virtual memory, memory allocators, file system frameworks for major file systems, and others were audited and overhauled to make use of highly concurrent algorithms.
There were also a huge number of other changes, such as the “jemalloc” memory allocator, Xorg instead of XFree86 in some ports, the Power Management Framework, ACPI suspend/resume on many laptops, and much, much more.