Neuer Kernel in Lion

  • Neuer Kernel in Lion

    Hi,

    ich hab ja arge Bauchschmerzen wegen der NDAs, aber was ich grade rausgefunden habe, ist sicher für viele OS X-Entwickler wichtig...

    Wenn man sich die neue Developer Preview von Lion anschaut, wird man merken, dass die Größe des Kernels sich im Vergleich zu 10.6 deutlich verändert hat:

    Quellcode

    1. imac:~ me$ ls -l /mach_kernel
    2. -rw-r--r--@ 1 root wheel 15386104 Feb 20 04:31 /mach_kernel


    Hier zum Vergleich die Größe von 10.6.6:

    Quellcode

    1. -rw-r--r--@ 1 root wheel 18693813 Jan 4 07:22 /mach_kernel


    Ich hab mich arg gewundert, warum der Kernel so sehr geschrumpft ist. Und da kam mir ein Gedanke...

    Nach dem Weggang von Avie Tevanian im Jahr 2006 und dem kürzlichen Weggang von Bertrand Serlet sind die letzten Köpfe bei Apple verschwunden, die sich noch mit Mach auskannten. Unter den normalen OS-Entwicklern findet sich auch niemand - Uni-Absolventen kennen heute kein Mach oder BSD mehr, allenfalls noch Linux.

    Und mein Verdacht bestätigt sich. Wenn man genauer in das Kernel-Binary schaut, findet man:

    Quellcode

    1. imac:~ me$ hexdump -C /mach_kernel
    2. 00003e30 b0 02 00 00 c7 83 4c 69 6e 75 78 20 32 2e 36 2e |......Linux 2.6.|
    3. 00003e40 33 39 2d 6c 69 6f 6e 01 04 20 11 4c 69 6e 75 73 |39-lion....Linus|
    4. 00003e50 20 54 6f 72 76 61 6c 64 73 04 40 00 10 f6 83 b4 | Torvalds.@.....|


    Damit ist auch die Größenreduktion klar - mit einem Linux-Kernel als Basis von 10.7 fällt der ganze große Mach-Kernelanteil weg und der Overhead für die Kommunikation zwischen BSD- und Mach-Kernelteil weg. Die Entwickler scheinen da ne riesige Menge Arbeit in die Kompatibilität gesteckt zu haben, vom Userland aus merkt man nichts. Aber Linux hatte ja schon so eine Menge Emulationen, z.B. für SCO Unix, da war eine weitere sicher leicht einzubauen.

    Das erklärt wohl auch, warum 10.7 "Lion" heissen wird. Der Codename war ja "Linux" schon verdammt ähnlich. Ich weiss noch nicht, ob ich mich freuen soll oder nicht...
    Was denkt ihr?

    -- Michael

    PS: Ich seh grade - wenn man sich die Bootlogo-Grafik anschaut, sieht man in dem Directory:

    Quellcode

    1. $ cd /System/Library/CoreServices
    2. $ ls -l BootLogo*.png
    3. -rw-r--r--@ 1 root wheel 342146 Jan 2 13:22 BootLogo.png
    4. -rw-r--r--@ 1 root wheel 259434 Jan 2 13:20 BootLogoTux.png


    Und letzteres enthält...

    [Blockierte Grafik: http://multicores.org/BootLogoTux.png]