[Ukfreebsd] opentech - 11th Sept - London
Robert Watson
rwatson at FreeBSD.org
Sat Jul 31 12:24:47 BST 2010
On Sat, 31 Jul 2010, Sam Smith wrote:
> Is everyone still running FreeBSD 4.0 since there's nothing significantly
> different since then? :)
:-).
I think you could reasonably track a number of themes in FreeBSD development
over the last decade or two, some of which align with industry trends as well:
- Adoption of threading as the concurrency model of choice throughout the OS,
userspace and kernel. This means high-performance pthreads in userspace,
and a pthreads-like model in kernel, priority propagation on locks to
address priority inversion, and a data-centric locking model. In the
mid-1990's, it was unclear what concurrent programming model will win, and
for its limitations, threading has proven incredibly powerful. With our
pthreads project in the mid-1990's, followed by KSE, an M:N threading model,
and most recently, libthr, maturing thread models have been a theme in
FreeBSD development over the last decade. The initial goal was to support
high levels of concurrency effectivley (KSE), but as application models
evolved, it became clear that a simpler and less concurrent 1:1
implementation offered greater benefit by simplifying scheduler data
structures, allowing them to use more complex heuristics as hardware became
more parallel.
Most recently, the FreeBSD Project has engaged with Apple to adapt Grand
Central Dispatch (GCD), a new concurrent programming framework, to run on
FreeBSD. This builds on threads and the FreeBSD kqueue model, now found in
many other operating systems including Mac OS X, but offers a more
programmer-accessible, and ultimately, scalable, programming model.
- Tracking processor architecture changes, including a transition from
instruction-centric performance to cache-centric performance and support for
newer and widespread RISC architectures (ARM, MIPS, ...). These
architectures have transformed the "embedded" hardware space from a world of
8-bit microprocessors with 64K of memory to one with hundreds of megabytes
of memory and multi-GB disks, and perhaps most importantly, introduced
virtual memory support required to run UNIX-like operating systems. This
has opened the door to mature, FreeBSD-derived operating systems all over
the embedded market, from Apple's FreeBSD-derived iOS on the iPhone and iPad
to FreeBSD-derived JunOS running on low-power switches. These systems
resemble our server UNIX systems from the late 1990's in terms of CPU
capacity, memory, etc, and so FreeBSD has "grown down" quite effectively.
Power use has been an increasing focus in OS design as a result.
- Another critical hardware trend has been the move to increasingly parallel
server and appliance hardware. Ten years ago, we ran on two-core systems,
now we run on 32-core systems, with 64- and 128-core configurations in our
immediate future. This has meant not just a transition from a Giant locked
kernel to granular, data-oriented locking (the highly successful 10-year
SMPng project), but more recently work on algorithms and approaches that
scale to high core counts through complex work distribution,
hardware-assisted work distribution on high-performance network cards, etc.
FreeBSD's performance in multiprocessing is cutting edge, as benchmarks over
the last few years have shown, and we continue to aggressively exploit new
parallelism. Most recently, we've been collaborating with network vendors
such as BlueCoat and Juniper, as well as hardware vendors such as Chelsio
and Intel, to develop a highly scalable network stack able to run on dozens
(perhaps someday hundreds) of kernel threads. Likewise, NUMA is becoming a
reality, and our kernel memory allocator has recently been updated to
introduce NUMA-awareness.
- Virtualization has been another industry trend that FreeBSD has both led,
and responded to. FreeBSD's Jail model, introduced around ten years ago,
led a revolution in OS-centric virtualization, with imitators such as
Solaris Zones and Linux Virtual Servers. With Jails, virtual hosts could
delegate "root" access to hundreds or even thousands of virtual machines per
physical hosts, at a time when Internet growth was occuring dramatically,
providing a stable and powerful hosting platform that remains in use
throughout the ISP industry (from providers such as Yahoo!, Verio, New York
Internet, and countless others). More recently, FreeBSD has slightly less
agressively jumped on the Xen bandwagon, runs on VirtualBox, VMWare, and
many other virtual systems. While true "virtualization" provides strong
isolation, another influential virtualization trend has been
para-virtualization, in which hardware virtualization boundaries are blurred
in order to improve performance through specially adapted device drivers
that bypass slow hardware emulation and talk directly to the hypevisor and
host OS.
- Security has been a critical area in which the FreeBSD Project has been
effective. We recognized early that the UNIX model was powerful, but
limiting for many evolving applications such as firewall appliances, smart
phones, and more. The TrustedBSD Project, announced roughly ten years ago,
developed access control list support (ACLs), first to the POSIX spec, and
more recently, the NT-compatible NFSv4 ACL model, as NFSv4 becomes more
influential. We jointly developed security audit support with Apple,
allowing FreeBSD and Mac OS X to meet the requirements of the CAPP common
criteria standard (Mac OS X has been formally evaluated to that standard,
although FreeBSD, as a general-purpose OS, has not been). Our MAC Framework
allows flexible and extensible access control, supporting advanced security
features in the base OS, but also allowing product vendors to extent the OS
model without modifying the OS. Companies like Apple, Juniper, and McAfee
use this feature extensively to provide alternative access control models,
such as sandboxing, for third-party code, and to build system assurance.
Most recently, we've announced the Capsicum project, developed in
collaboration with Google, to support capability-oriented OS security.
This work will be presented at USENIX Security 2010 in August.
- Storage has been another area of significant work in the FreeBSD Project,
both in continuing to advance the UFS file system (64-bit support,
snapshots, background file system checking, extended attributes, advanced
security features such as ACLS and MAC, and most recently, journaling). Our
GEOM framework, developed under sponsorship from DARPA in the early 2000's,
allows easily pluggable and extensible storage transforms, bringing storage
multipathing, new RAID integration, and features like full file-system
journaling and replication for fault tolerance. We've also ported Sun's ZFS
file system to FreeBSD, where its self-healing and management features power
countless servers and storage appliances in a tightly-integrated way.
- Improvements in development tools, and more generally, introspection, have
played an important role as well. From moving to adopt the new clang/LLVM
compiler suite, adopting Coverity's Prevent static analysis tool (unlike
many open source projects, we have our own Prevent server system and
actively re-analyze our source code nightly). We've also ported Sun's
DTrace, offering introspection tools for performance and behavioural
analysis -- the FreeBSD Foundation recently announced a contract to Rui
Paulo to complete userspace DTrace support, which will allow similar
analysis of userspace applications. Other tools, such as our hardware PMC
(performance monitoring counters) support, system tracing tools, kernel
debugging tools such as integrated debugging, dynamic lock order analysis,
and much more make FreeBSD one of the best OS platforms for kernel feature
development. We've talked to many developers who actually write their Linux
kernel code on FreeBSD so that they can use our debugging tools, before
porting to Linux!
- Another really interesting growth area for FreeBSD has been the develoment
of open source spin-off systems that take FreeBSD as a baseline and then
extend our system in various ways. Commercial vendors have always done this
(NetApp, Juniper, Apple, Isilon, Panasas, ...), but the open source side has
greatly expanded our user reach as an open source system. These include
PC-BSD, a desktop-oriented system, pfSense, a firewall system, and FreeNAS,
a network attached storage system. These, and many other, systems take
FreeBSD's powerful OS core, and then customize it for specific purposes.
We're proud of their work, and eager to integrate back core OS features that
the've developed.
- There are some other interesting points to be made about open source project
structure. Dealing with project growth has been a critical challenge, both
socially and technically. Roughly ten years ago, we moved for the first
time to an elected core team model, a social experiment that has proven
extremely successful, allowing us to renew project leadership over time.
We've undertaken some huge OS development projects, one of the most
interesting our SMPng project, which involved dozens of developers (and
companies) collaborating to improve multiprocessor scalability. We've
increasingly had a delegated project leadership structure, in which
chartered teams take responsibility for portions of the project's work:
release engineering, application porting, security advisories, system
adminstration, bug-busting, documentation, etc, moving away from the idea
that a small "core team" of developers does it all. We've also had to
evolve our tools, migrating from CVS with many extensions, to Subversion
with fewer extensions. Along the way we've adopted Perforce as a way to
improve our branched development methodology for side-projects with long
life cycles, as well as to support dozens of summer students each year
sponsored by Google.
Surely there are many more areas, as well, that I've missed in the above list.
I think it's safe to say that the world is exactly the same as ten years ago,
only also entirely different!
Robert
>
>
> Cheers
> Sam
>
> On 29 Jul 2010, at 14:06, Mark Blackman wrote:
>
>> On 29 Jul 2010, at 12:08, Sam Smith wrote:
>>
>>>
>>> hey all,
>>>
>>> Details of this year's OpenTech are below - many of you will
>>> be interested in coming along.
>>>
>>> There's a session on "Modern X" for finding out about things
>>> that you heard about a decade ago, but which have radically
>>> changed since you last looked at them... If someone wants to
>>> offer about 12 minutes on FreeBSD, it would fit in well.
>>
>> Is FreeBSD radically changed from 10 years ago? :)
>>
>> - Mark
>>
>> _______________________________________________
>> Ukfreebsd mailing list
>> Ukfreebsd at uk.freebsd.org
>> http://mailman.uk.freebsd.org/mailman/listinfo/ukfreebsd
>> UK BSD Groups http://www.bsdgroups.org.uk
>> Hosted by EXOnetric http://www.exonetric.net
>
> _______________________________________________
> Ukfreebsd mailing list
> Ukfreebsd at uk.freebsd.org
> http://mailman.uk.freebsd.org/mailman/listinfo/ukfreebsd
> UK BSD Groups http://www.bsdgroups.org.uk
> Hosted by EXOnetric http://www.exonetric.net
>
More information about the Ukfreebsd
mailing list