Diskussion:XNU
Kernel "Hybrid" oder Monolith?
[Quelltext bearbeiten]Nach einer Präsentation vom 24th Chaos Communication Congress 24C3, Berlin 2007 ist XNU ein Monolith, zumindest wird er in dem PDF so genannt und es steht dort auch, dass die meisten Treiber und nicht nur ein paar im Kernelspace laufen. Dass auch ein paar außerhalb laufen sollte jetzt dem Monolith-Status nicht im Wege stehen, dennn vereinzelt gibts sowas auf anderen modularen monolithen, bspw. FUSE auf Linux, ja auch.
> NEXT had removed the core kernel parts from the 4.3BSD kernel and layered it on top of Mach, in kernel mode.
Vielleicht sollte man auch die Definition von Hybridkernel ändern, weg von "ein bisschen ist drin, aber nicht viel" hin zu strukturbeschreibenden Eigenschaften. (nicht signierter Beitrag von 88.73.29.23 (Diskussion) 04:52, 10. Jan. 2008)
Abstammung: OPENSTEP?
[Quelltext bearbeiten]@Messerjokke79: XNU ist der Kernel von Rhapsody, intern Version 5.2. Dieser Kernel wurde von Apple gemeinsam mit Darwin als XNU veröffentlicht.
Davor gibt es keinen Kernel namens XNU.
Von daher kann ich die Abstammung von Mach 2.5 und 4.3BSD nicht verstehen. Das war zwar der Vorfahre von XNU, aber es ist nicht XNU. XNU ist es erst mit dem Mach-3.0+FreeBSD-Kernel mit dem Userland von 4.4BSD-Lite aus Rhapsody 5.2+ und Darwin.
‣Andreas•⚖ 22:55, 28. Jun. 2018 (CEST)
- Stimmt. Hab’s geändert. LG, ℳ웃79 00:33, 29. Jun. 2018 (CEST)
Versionsgeschichte
[Quelltext bearbeiten]@Messerjokke79: Die Versionsgeschichte ist meiner Meinung nach jetzt nicht unbedingt besser oder übersichtlicher als vorher. Zum Beispiel lässt sich nun nicht mehr sagen, welche Version von Darwin in Mac OS X Developer Preview 3 enthalten war. Außerdem kann man nicht mehr erkennen, welche die erste Version für ARM war.
Nicht falsch verstehen, die gesamte Versionsgeschichte ist mehr Luxus als sonst was. Aber der Aufwand hält sich in Grenzen, und die historische Relevanz ist ja mit einem Betriebssystem wie macOS definitiv gegeben.
‣Andreas•⚖ 14:29, 31. Dez. 2020 (CET)
- stimmt. LG, ℳ웃79 14:49, 31. Dez. 2020 (CET)
- @Messerjokke79: Ich komme mit deiner Tabelle nicht zurecht...
- Welche Version hat denn laut dieser Tabelle z.B. iOS 3.1.3 (es wäre NUR 1357.x), und welche iOS 3.2 (es wäre 1504.x, so wie auch iOS 4.x)?
- Was ist mit Mac OS X 10.5.1 (nicht angeführt)?
- Woher hast du die Information, dass Mac OS X 10.5.0 (eigentlich wäre es 10.5) XNU 933.x verwendet? Laut Apple ist es 1228.x für alle 10.5.x-Versionen...
- Welche Version von XNU wird in iOS 6.x verwendet (es sollte nur 2107.x sein)?
- Welche Version von Darwin ist in OS X 10.8 enthalten (es sollte nur Darwin 12.x sein)?
- ‣Andreas•⚖ 10:51, 16. Jan. 2021 (CET)
- Nachtrag: Spezialfall Tiger-x86... Die erste Intel-Version war 10.4.1 im DTK (Developer Transition Kit). 10.4.4 war die erste offizielle Intel-Version. Alle Versionen von Tiger nutzen, soweit mit bekannt, XNU 792.x. Wenn du andere Informationen hast, bitte teile sie mit mir, es würde mich auch sehr interessieren... ‣Andreas•⚖ 11:08, 16. Jan. 2021 (CET)
- @Messerjokke79: Ich komme mit deiner Tabelle nicht zurecht...
- @Messerjokke79: Wenn du das nicht korrigierst, muss ich die Tabelle wieder zurücksetzen... Wieso machst du nicht eine Tabelle in deinem Namensraum und wenn sie passt, kommt sie dann hierher? ‣Andreas•⚖ 12:52, 17. Jan. 2021 (CET)
- Wenn Du meinst, dass die Angaben in der neuen Tabelle falsch sind, dann sind sie auch in der alten Tabelle falsch – denn da kommen die Angaben ja her. Lediglich an zwei Stellen habe ich inhaltliche Änderungen vorgenommen. Und zwar wegen Widersprüchen. U.a. die Tabelle unter en:Darwin_(operating_system) zeigt diese Widersprüche.
- Wenn Du Quellen hast, benutze sie und korrigiere die Tabelle anstatt die alte (scheinbar auch falsche) Tabelle wiederherzustellen.
- Weitere Spalten für die übrigen Apple-OSes wie tvOS wären angebracht und möglich mit der neuen Tabelle.
- Am Ende stünde eine übersichtlichere, korrekte Tabelle hier auf der Seite.
- Wenn die alte Tabelle Falschangaben enthält, sollte sie ganz verschwinden, wenn Du sie nicht korrigieren willst.
- LG, ℳ웃79 17:14, 17. Jan. 2021 (CET)
- Die Schreibung »10.5« steht für die Hauptversion und umfasst alle Versionen von 10.5.0–10.5.8. Die erste Version von 10.5 ist selbstverständlich 10.5.0 und nicht 10.5. (nicht signierter Beitrag von Messerjokke79 (Diskussion | Beiträge) 17:20, 17. Jan. 2021 (CET))
- Während ich grundsätzlich nichts gegen eine andere Darstellung der Informationen aus "meiner" ursprünglichen Tabelle habe, sehe ich den Mehrwert einer veränderten Tabelle, die Daten anders darstellt, nur dann, wenn dadurch ein Vorteil entsteht. Ich sehe hier nicht wirklich einen Vorteil...
- Eine direkte Gegenüberstellung:
XNU | Darwin | macOS | iOS |
---|---|---|---|
24.6 | (0.1) | 10.0 Developer Preview | |
44 | 0.2 | 10.0 Developer Preview 2 | |
59.10 | 1.0 | 10.0 Developer Preview 3 | |
74.7 | 1.1 | 10.0 Developer Preview 4 | |
103.x | 1.2 | 10.0 Public Beta | |
123.5 | 1.3.1 | 10.0 (Release) | |
124.x | 10.0.1–10.0.4 | ||
201.x | 1.4.x / 5.x | 10.1.x | |
344.x | 6.x | 10.2.x | |
517.x | 7.x | 10.3.x | |
792.x | 8.x | 10.4.0–10.4.3 | |
? | 10.4.4 (erste Intel-Version) | ||
933.x | 9.x | 10.5.0 | 1.x |
1228.x | 10.5.8 (letzte PowerPC-Version) | 2.x | |
1357.x | 10.x | 10.6.0 | 3.0–3.1.3 |
1456.1.26 | 10.6.1 | ||
1486.2.11 | 10.6.2 | ||
1504.x | 10.6.3–10.6.8 | 4.0–4.2.1 | |
1699.x | 11.x | 10.7.x | |
1735.x | 4.3–4.3.5 | ||
1878.x | 5.x | ||
2050.x | 12.x | 10.8.x | |
2107.x | 13.x | 6.x | |
2422.x | 10.9.x | ||
2423.x | 14.x | 7.x | |
2782.x | 10.10.x | ||
2783.x | 8.0–8.2 | ||
2784.x | 8.3–8.4.1 | ||
3247.x | 15.x | 10.11–10.11.1 | |
3248.x | 10.11.2–10.11.6 | 9.x | |
3789.x | 16.x | 10.12.x | 10.x |
4570.x | 17.x | 10.13.x | 11.x |
4903.x | 18.x | 10.14.x | 12.x |
6153.x | 19.x | 10.15.x | 13.x |
7195.x | 20.x | 11.x |
Version von | ||
---|---|---|
XNU | Darwin | macOS, OS X, Mac OS X bzw. iOS (soweit verfügbar) |
24.6 | 0.1 | Mac OS X Developer Preview (retronym auch kurz DP1); das Betriebssystem weist sich als „Mac OS X 10.0“ aus, nicht als „Darwin 0.1“. |
44 | 0.2 | Mac OS X Developer Preview 2 (kurz: DP2) |
59.10 | 1.0 | Mac OS X Developer Preview 3 (kurz: DP3) |
74.7 | 1.1 | Mac OS X Developer Preview 4 (kurz: DP4) |
103.x | 1.2 | Mac OS X Public Beta „Kodiak“; Build 1H38: XNU 103; Build 2E14: XNU 103.1 |
123.5 | 1.3.1 | Mac OS X 10.0.0 „Cheetah“ |
124.x | Mac OS X 10.0.1–10.0.4 „Cheetah“ | |
201.x | 1.4.x / 5.x | Mac OS X 10.1.x „Puma“ |
344.x | 6.x | Mac OS X 10.2.x „Jaguar“ |
517.x | 7.x | Mac OS X 10.3.x „Panther“ |
792.x | 8.x | Mac OS X 10.4.x „Tiger“ |
933.x | 9.x | iPhone OS / iPad OS 1.x; erste ARM-Version |
1228.x | Mac OS X 10.5.x „Leopard“; letzte PowerPC-Version; iPhone OS / iPad OS 2.x | |
1357.x | 10.x | iPhone OS / iPad OS 3.0–3.1.3 |
1456.1.26 | Mac OS X 10.6–10.6.1 „Snow Leopard“ | |
1486.2.11 | Mac OS X 10.6.2 „Snow Leopard“ | |
1504.x | Mac OS X 10.6.3–10.6.8 „Snow Leopard“; iPad OS 3.2, iOS 4.0–4.2.1 | |
1699.x | 11.x | Mac OS X 10.7.x „Lion“ |
1735.x | iOS 4.3–4.3.5 | |
1878.x | iOS 5.x | |
2050.x | 12.x | OS X 10.8.x „Mountain Lion“ |
2107.x | 13.x | iOS 6.x |
2422.x | OS X 10.9.x „Mavericks“ | |
2423.x | 14.x | iOS 7.x |
2782.x | OS X 10.10.x „Yosemite“ | |
2783.x | iOS 8.0–8.2 | |
2784.x | iOS 8.3–8.4.1 | |
3247.x | 15.x | OS X 10.11–10.11.1 „El Capitan“ |
3248.x | iOS 9.x, OS X 10.11.2–10.11.6 „El Capitan“ | |
3789.x | 16.x | iOS 10.x, macOS 10.12.x „Sierra“ |
4570.x | 17.x | macOS 10.13.x „High Sierra“, iOS 11.x |
4903.x | 18.x | macOS 10.14.x „Mojave“, iOS 12.x |
6153.x | 19.x | macOS 10.15.x „Catalina“, iOS 13.x |
7195.x | 20.x | macOS 11.x „Big Sur“ |
- Also, nun konkret, was nicht stimmt: So gut wie alles nach XNU 1357.x macht Probleme!
- Sieh in der ursprünglichen Tabelle nach, welche Version von XNU in Mac OS X 10.6(.0) enthalten ist. Und dann sieh in deiner neuen Tabelle nach.
- XNU 1456.1.26 ist in Mac OS X 10.6-10.6.1, so wie es in meiner Tabelle steht. In deiner Tabelle ist das für 10.6.0 plötzlich XNU 1357.x...
- Du sagst, ich solle die neue Tabelle korrigieren... Tja, wenn ich das tun wollte, ich würde sie wieder so schreiben, wie ich es ursprünglich gemacht habe, denn ich wüsste nicht, wie ich eine eigene Spalte für iOS rechtfertigen sollte.
- In der neuen Tabelle müssten dann ab XNU 1357.x für Mac OS X/macOS Löcher sein, denn diese Version ist nur für iPhoneOS/iPadOS 3.0-3.1.2 verwendet worden. Die macOS-Spalte müsste also für diese XNU-Version so leer sein wie die Vorversionen dies für iOS sind. Ab dieser Version wären die Löcher überall zu finden.
- Die einfache Lösung, um nicht eine Tabelle voller Löcher zu fabrizieren, ist natürlich, die Version von XNU mit den jeweiligen Versionen der Betriebssysteme zu füllen, wie es auch in der ursprünglichen Tabelle zu finden war.
- Hier wäre also der Nachweis, dass du meine Tabelle verändert hast. Die Daten der ursprünglichen Tabelle habe ich von den offiziellen Apple-OpenSource-Seiten, die stimmen also. Soll ich dir die auch noch für jede einzelne Version anlegen? Also gut, hier für 10.6(.0): https://opensource.apple.com/release/mac-os-x-106.html – dort steht eindeutig xnu-1456.1.26... Diese Informationen findest du für (fast) alle Versionen von Mac OS X. Eine Überflutung mit Einzelnachweisen halte ich nicht für sinnvoll. Bei iOS ist es zugegebenermaßen etwas schwerer (geschlossenes System), aber dazu habe ich auch schon eine Quelle angegeben (in der Zusammenfassungszeile der Änderung).
- Da ich die Tabelle nicht verändert habe – sondern du, bitte ich dich, jede Änderung entweder gut zu belegen – ja, es kann durchaus sein, dass ich einen Fehler eingebaut hatte – oder dafür zu sorgen, die Daten korrekt in eine neue – hoffentlich bessere(!) – Tabelle zu überführen.
- Ich sehe jedoch immer noch nicht den Mehrwert, da du eine Tabelle voller Löcher fabrizierst...
- ‣Andreas•⚖ 18:38, 17. Jan. 2021 (CET)
- P.S. Nur, damit das klar ist: Das Beispiel mit Mac OS X 10.6 war genau das – nur ein Beispiel. Da hast viele Fehler bei der neuen Tabelle eingebaut, so auch z.B. bei Mac OS X 10.5(.0), das laut Appleref XNU 1228 nutzt, wie es in meiner Tabelle auch steht und in deiner nicht (dort ist es falsch). Wenn du genau schaust, findest du unzähliche solcher Fehler... ‣Andreas•⚖ 18:44, 17. Jan. 2021 (CET)
- Danke. Ist so jetzt viel besser. Ich habe allerdings ein paar Fragen:
- Gibt es einen Grund dafür, warum du die Namen der Betriebssysteme entfernt hast? Die meisten Leser werden z.B. mit "El Capitan" mehr anfangen können als mit "10.11.x."...
- Wieso ist iPadOS 1.x-3.2 nun in der iOS-Spalte?
- Was war an den Verlinkungen auszusetzen?
- Intel-Version von Tiger: zumindest ab 10.4.8 ist die XNU-Version identisch mit jener der PowerPC-Version: 792.x. Bei PowerPC war es z.B. 792.12.6,ref bei Intel 792.13.8ref; bei der letzten Version verhält es sich ähnlich: 792.24.17ref bei PowerPC, 792.25.20ref bei Intel. Für frühere Versionen gibt es leider keine geeigneten Quellen. Vielleicht findest du ja etwas. Es gibt jedoch keinen Grund, anzunehmen, dass die XNU-Version vor 10.4.8 auf Intel eine andere gewesen wäre...
- Sonst okay. Ist Geschmackssache.
- ‣Andreas•⚖ 02:07, 18. Jan. 2021 (CET)