122 lines
6.6 KiB
Markdown
122 lines
6.6 KiB
Markdown
|
+++
|
||
|
title = "FreeBSD Status Report Juli - September 2010"
|
||
|
date = "2010-10-29T18:00:00+00:00"
|
||
|
author = "Gibheer"
|
||
|
draft = false
|
||
|
+++
|
||
|
|
||
|
Der Statusreport für den Zeitraum Juni bis September 2010 des
|
||
|
FreeBSD Projektes wurde veröffentlicht und ich habe darin einige
|
||
|
interessante Sachen gefunden. So gibt es Entwicklung in der Richtung den
|
||
|
Default-Compiler (GCC) durch Clang zu ersetzen, Umbau der
|
||
|
Eventverwaltung im Kernel, ZFS v28 zu integrieren und einige Sachen
|
||
|
mehr.
|
||
|
|
||
|
[Clang ersetzt GCC im Basissystem](http://www.freebsd.org/news/status/report-2010-07-2010-09.html#Clang-Replacing-GCC-in-the-Base-System)
|
||
|
-----------------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
Clang ist ein Compilerfrontend, welches auf dem Projekt
|
||
|
<a href="http://llvm.org">LLVM</a> aufbaut. Mit Clang ist es
|
||
|
möglich Quellcode schneller zu kompilieren, bei einem geringeren
|
||
|
Speicherverbrauch. Die Performance wird dadurch nicht
|
||
|
beeinträchtigt, allein die entstehenden Kompilate sind etwas
|
||
|
grösser.
|
||
|
|
||
|
In Version 9 von FreeBSD soll der default compiler für den Kernel
|
||
|
und das Basissystem von GCC zu Clang umgezogen werden. Am 25.02.2009
|
||
|
konnte der [FreeBSD Kernel kompiliert ([ANNOUNCE]: clang/llvm can
|
||
|
compile booting FreeBSD kernel on
|
||
|
i386/amd64)](http://lists.freebsd.org/pipermail/freebsd-current/2009-February/003743.html)
|
||
|
werden, war damals in etwa in dem Zustand, wie der [Linux Kernel 1,5
|
||
|
Jahre ([cfe-dev] Clang builds a working Linux Kernel (Boots to RL5 with
|
||
|
SMP, networking and X, self
|
||
|
hosts))](http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-October/011711.html)
|
||
|
später.
|
||
|
|
||
|
Mittlerweile läft der FreeBSD Kernel und das Userland stabil und
|
||
|
braucht nur noch Tests. Es ist geplant auch Ports auf Clang umzustellen.
|
||
|
Es gibt allerdings Ports, die auch in Zukunft nur mit dem GCC gebaut
|
||
|
werden können, da sie meist Erweiterungen des GCC nutzen, welche in
|
||
|
keinem Standard vorkommen.
|
||
|
|
||
|
[Eventverwaltung im Kernel](http://www.freebsd.org/news/status/report-2010-07-2010-09.html#Kernel-Event-Timers-Infrastructure)
|
||
|
------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
Jeder Architektur hat im Kernel ihre eigene Timerarchitektur, was zu
|
||
|
einer grossen Fragmentierung des Codes beigetragen hat. Zudem wurde der
|
||
|
Timer immer mit 1Hz oder 4\*1Hz aktiv, so dass es 10.000 und mehr
|
||
|
Interrupts gab, welche die CPU nicht zur Ruhe kommen liess.
|
||
|
|
||
|
Bei diesem Projekt wird nun ein einheitliches Interface geschaffen,
|
||
|
welches die zur Verfügung stehenden Timer benutzt. Zusätzlich
|
||
|
gibt es Bemühungen Ticks zu sparen und den Scheduler auf Tickless
|
||
|
oder auf viel weniger Ticks zu bringen. Bei ersten Tests konnte damit
|
||
|
die Zahl der Interrupts von \~16.000 auf 90 gesenkt werden. Zudem gibt
|
||
|
es bebühungen den Scheduler dazu zu bringen, schlafende Cores nur
|
||
|
zu wecken, wenn es absolut nötig ist, da bei neueren Prozessoren
|
||
|
einzelne Cores auch übertaktet werden können.
|
||
|
|
||
|
[neues sysinstall](http://www.freebsd.org/news/status/report-2010-07-2010-09.html#pc-sysinstall)
|
||
|
------------------------------------------------------------------------------------------------
|
||
|
|
||
|
Seit mehr als einer Dekade begleitet sysinstall nun das FreeBSD Projekt
|
||
|
und ist damit zu einem der stabilsten und verlässlichsten Installer
|
||
|
geworden. Allerdings unterstützt er viele neuere Features des
|
||
|
FreeBSD Projektes nicht mehr, wie zum Beispiel GPT, ZFS,
|
||
|
Raidinstallationen und so weiter, so dass nun an einem neuen Installer
|
||
|
gearbeitet wird. Dieser kommt nun von PC-BSD, einem FreeBSD-Derivat und
|
||
|
heisst pc-sysinstall. Er soll mit FreeBSD 9 der neue Standardinstaller
|
||
|
werden.
|
||
|
|
||
|
pc-sysinstall arbeitet etwas anders als die meisten Installer, die
|
||
|
bisher entwickelt wurden. So Ist pc-sysinstall im ersten Moment nichts
|
||
|
weiter als eine Bibliothek, an der verschiedene Frontends angeschlossen
|
||
|
werden können. So sind zum Beispiel installer in QT, GTK, ncurses
|
||
|
usw. machbar. Was allerdings dabei herauskommt ist keine fertige
|
||
|
Installation, sondern ein Script, welches dann erst die Installation
|
||
|
ermöglicht. Das hat den Vorteil, dass man sich seine Installation
|
||
|
zusammenbauen kann und diese dann immer wiederholen kann. Ob auf der
|
||
|
selben Maschine oder auf vielen weiteren ist dabei egal.
|
||
|
|
||
|
Der neue Installer ist bereits in HEAD implementiert, Testmedien, mit
|
||
|
denen der Installer ausprobiert werden kann, befinden sich in
|
||
|
Entwicklung.
|
||
|
|
||
|
Eine kleine Liste der Features kann auch im [vorherigen
|
||
|
Report](http://www.freebsd.org/news/status/report-2010-04-2010-06.html#New-System-Installer-%E2%80%94-pc-sysinstall)
|
||
|
nachgelesen werden.
|
||
|
|
||
|
[Featureliste des Kernels](http://www.freebsd.org/news/status/report-2010-07-2010-09.html#Registration-of-Optional-Kernel-Subsystems-via%0A------sysctl)
|
||
|
--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
In FreeBSD 8.0 kam ein neues Set an Ausgaben in Sysctl hinzu, welches
|
||
|
`kern.features` hiess. Darin enthalten war eine kleine Liste an
|
||
|
Optionen, was von dem System unterstützt wurde.
|
||
|
|
||
|
In Version 9 kommen nun viele weitere Optionen hinzu (mehr als 80). Es
|
||
|
ist geplant, dass sich jedes Subsystem bei sysctl registriert und somit
|
||
|
eine Liste der Features zustande kommt, welche auf dem aktuell laufenden
|
||
|
System vorhanden sind. Werden Subsysteme nicht in den Kernel kompiliert,
|
||
|
so erscheinen diese einfach nicht und man hat Gewissheit darüber,
|
||
|
dass das Feature nicht vorhanden ist.
|
||
|
|
||
|
[ZFS](http://www.freebsd.org/news/status/report-2010-07-2010-09.html#ZFSv28-is-Ready-for-Wider-Testing)
|
||
|
-------------------------------------------------------------------------------------------------------
|
||
|
|
||
|
Die aktuelle ZFS-Version in FreeBSD 8.1 ist die Version 15. Die letzte
|
||
|
in OpenSolaris verfügbare Version war 28. In FreeBSD 9 soll nun
|
||
|
Version 28 in FreeBSD verfügbar sein. Die meiste Arbeit daran ist
|
||
|
schon getan und ein Patch existiert. Allerdings muss dieser noch
|
||
|
ausgiebig getestet werden. Was kommt damit alles hinzu?
|
||
|
Deduplication,triple parity RAIDZ, diff, split, snapshot reference
|
||
|
count, die Möglichkeit zu einem früheren Stand eines Pools
|
||
|
zurückzukehren und read-only import. Eine Gute Zusammenfassung zu
|
||
|
dem Patch gibt es im im
|
||
|
[Announcement](http://lists.freebsd.org/pipermail/freebsd-fs/2010-August/009197.html).
|
||
|
|
||
|
Es gibt noch einige weitere tolle Projekte, welche in FreeBSD 9
|
||
|
enthalten sein werden und teilweise auch noch auf 8-CURRENT portiert
|
||
|
werden sollen, wie zum Beispiel Ressourcelimits, Erweiterungen an
|
||
|
VIMAGE/VNET, dem Chromiumport usw. FreeBSD 9 koennte also fast wie
|
||
|
Weihnachten und Geburtstag auf einmal werden ;)
|