This is from NewsForge: Understanding NetBSD 2.0's new technology
http://www.newsforge.com/article.pl?sid=04/12/22/1954233

A complete list of the changes and new features in NetBSD 2.0 can be
found in the "changes" guide, but here are the highlights:

    * Native thread support has been added, based on scheduler
activations. Applications which support native threads can now take
full advantage of the high-performance NetBSD POSIX threads
implementation.
    * Kernel events notification framework: kqueue provides a stateful
and efficient event notification framework. Currently supported events
include socket, file, directory, fifo, pipe, tty and device changes,
and monitoring of processes and signals. kqueue is supported by all
writable file systems in the NetBSD tree (with the exception of Coda)
and all device drivers supporting poll().
    * Improvements have been made to NetBSD's Linux emulation to
support the latest Sun JDK/JRE for Linux. Testing has shown that it
now runs as well as it does on Linux natively.
    * NetBSD 2.0 enforces non-executable mappings on many platforms.
This means that the process stack and heap mappings are non-executable
by default, making exploitation of potential buffer overflows harder.
NetBSD 2.0 supports PROT_EXEC permission via mmap() for all platforms
where the hardware differentiates execute access from data access,
though not necessarily with single-page granularity. When the hardware
has a larger granularity, the rule is that if any page in the larger
unit is executable, then the entire larger unit is executable,
otherwise the entire larger unit is not executable.

    * The i386 port now supports SMP and has a new ACPI and power
management framework which takes advantage of Intel's ACPI
implementation.

    * FreeBSD's UFS2 has been ported to NetBSD. UFS2 is an extension
to FFS, adding 64 bit block pointers and support for extended file
storage. Among other enhancements, UFS2 allows for file systems larger
than 1Terabyte.

    * The systrace framework has been added to the system. systrace
monitors and controls an application's access to the system by
enforcing access policies for system calls. The systrace utility might
be used to trace an untrusted application's access to the system. In
addition, it can be used to protect the system from software bugs
(such as buffer overflows) by constraining a daemon's access to the
system. The privilege elevation feature of systrace can be used to
obviate the need to run large, untrusted programs as root when only
one or two system calls require the elevated privilege.

    * Verified Exec support has been added in this release. Verified
Exec verifies a cryptographic hash before allowing execution of
binaries and scripts. This can be used to prevent a system from
running binaries or scripts which have been illegally modified or
installed. In addition, Verified Exec can also be used to limit the
use of script interpreters to authorized scripts only and disallow
interactive use.

________________________________________________________________

>From the NetBSD advocacy list:

Dispelling NetBSD myths. 
------------------------

It is almost geek folklore that the various 4.4BSD derived operating
systems; FreeBSD, NetBSD, OpenBSD and DragonflyBSD are at continious
war at each other, that their development is split and that they each
work solely on a single pillar. FreeBSD adresses performance, NetBSD
portability and OpenBSD security. DragonflyBSD has yet to find a
base pillar to build the hype upon. 

This document is about dispelling the myth of NetBSD. We wish to 
address the portability myth and show that NetBSD first and foremost is
a UNIX operating system capable of fulfilling many tasks, including
desktop systems, servers, embedded devices, firewalls and routers.

Fact is that NetBSD is portable. Currently the port count 
exceeds 50. To most users, running the i386 port, this would seem to be
a mere curiosity, but as we shall see, this guiding principle leads to
a very flexible system. What makes the myth is the fact that NetBSD 
uses portability as a philosophy for creating an UNIX-like operating
system.

First of all, if the same machine independent code gets to run on 
different architectures, more bugs are weeded. This is because 
different ports use the system differently and thus the critical parts
of the kernel gets exercised in different ways. The net result is 
increased stability, something most users would want. Also, the
many ports guides the principle of clean code and simplicity. The
system has to be composed in a modularised way such that the many 
architectures can utilize each part optimally. This gives readability
to the source code. 

Now the ball is rolling. Given a clean, stable and readable base, one
can quickly change the base, tuning it for performance. This is indeed
what happens in NetBSD. In 2003, Felix von Leitner did a scalability
test of various free UNIX systems. NetBSD-current was amongst the
contenders and did perform quite good, but had regressions with some
tests, which exhibited O(n) behaviours. In 14 days of time, the 
NetBSD developers was able to push many of these O(n) 
behaviours to O(1) behaviours. The reason this could be done so fast
is a testament to the principle of clean, readable code.

Security is also helped by clean, readable code. Programmers make 
fewer errors and so, there are less opportunities for a security hole
to sneak in. NetBSD also supports various proactive approaches to
security: non-executeable stack and heap, sandboxing of processes
with fine granularity for which system calls the process is allowed
to make (systrace), cryptographic disks (cgd), RAID functionality 
(RAIDFrame) and protection against file trojaning (veriexec) to name
a few.
_______________________________________________
CWE-LUG mailing list
http://www.cwelug.org/    
CWE-LUG@lists.firepipe.net
http://lists.firepipe.net/listinfo/cwe-lug

Reply via email to