XNU — ядро операційної системи, розроблене компанією Apple Inc. задля використання у macOS і анонсоване як вільне та відкрите програмне забезпечення, як частина операційної системи Darwin. XNU є акронімом для X is Not Unix
Тип | ядро операційної системи: гібрид |
---|---|
Розробник | Apple Inc. |
Версії | 1228 (30 жовтня 2007)[1] і 8796.101.5 (14 червня 2023)[2] |
Операційна система | Darwin & Mac OS X |
Мова програмування | і C |
Стан розробки | In production / development |
Ліцензія | Apple Public Source License 2.0 |
Репозиторій | github.com/apple-oss-distributions/xnu |
Вебсайт | kernel.macosforge.org |
На початку розроблене компанією NeXT для операційної системи NEXTSTEP, XNU було гібридним ядром, сумістивши версію 2.5 Mach-ядра, розробленого у Carnegie Mellon University, із компонентами (4.3 BSD) і об'єктно-орієнтованого API для запису драйверів, назване .
Опісля придбання компанією Apple компанії NeXT, Mach-компонент був оновлений до версії 3.0, BSD-компоненти були оновлені кодом із проекту FreeBSD, а Driver Kit був замінений API для запису драйверів .
Дизайн ядра
Як і деякі інші сучасні ядра, XNU є гібридом, суміщаючи в собі переваги як монолітних ядер так і мікроядер, намагаючись використати якнайкраще обидві технології, такі як можливості передачі повідомлень мікроядер, властивість більшої модульности і вигідне винесення значніших порцій ОС з захищеної пам*яти, разом з тим зберігаючи швидкість монолітних ядер для важливих критичних задач.
Станом на 2023 рік основною процесорною архітектурою для XNU є [en] (64-розрядна версія ARM). До повного переходу фірми Apple на мікропроцесори власного дизайну також розвивався варіант для x86-64. Ранні версії підтримували також PowerPC.[]
Mach
Центр ядра XNU, Mach початково задумувалося як просте мікроядро. Так, воно могло запускати центр ОС як окремі процеси, що надавало велику гнучкість системі (можна було запустити декілька ОС паралельно, над серцевиною у вигляді Mach), але часто це зменшувало швидкодію через споживання часу на перемикання контексту між рівнем ядра і користувача, та надлишковий стеммінг від картування та копіювання повідомлень між адресним простором мікроядра і того, що належав службовим демонам. В Mac OS X, розробники намагалися пришвидчити виконання важливих задач, тому вбудували функціональність BSD разом з Mach в нове ядро системи. Результат — комбінація Mach і класичного BSD ядра, зі своїми перевагами і недоліками від обох з них.
Mach забезпечив нове ядро потоками, процесами, витискальною багатозадачністю, передачею повідомлень (використовуючи IPC — міжпроцесну взаємодію), захищену пам'ять, керування віртуальною пам'яттю, добру підтримку реального часу, підтримку зневадження ядра, і консольний (ввід/вивід)). Mach компонент також дозволив операційній системі розміщати двійкову інформацію для декількох різних архітектур процесорів в одному файлі (таких як x86 та PowerPC) належно до їхнього використання Mach-O двійкового формату.
BSD
Частина ядра Berkeley Software Distribution (BSD), забезпечила POSIX API (системні виклики BSD), Unix модель процесів над Mach задачами, основні політики безпеки, id користувачів та груп, дозволи, мережевий стек, код віртуальної файлової системи (включно з файловосистемнонезалежним журналюючим шаром), мережеву файлову систему (NFS), криптографічне середовище, систему міжпроцесної взаємодії з на базі UNIX System V IPC, підсистему аудиту (Audit Subsystem), Mandatory Access Control, та деякі блокуючі примітиви. BSD код представлений в XNU прийшов з FreeBSD ядра. Хоча більшість його була значно змінена, підтримка коду і досі трапляється між проєктами Apple та FreeBSD.
I/O Kit
є структурою драйверів периферії, написана мовою . Використовуючи його об'єктно-орієнтований дизайн, звичайні здібності до будь-якого класу драйверів уведена самою структурою, допомагаючи драйверам периферії бути швидше написаними, та використавши менше коду. I/O Kit є багатопоточним (multi-threaded), пристосованим для симетричного мультипроцесування (SMP), дозволяє «гаряче» під'єднання і від'єднання пристроїв та автоматичну і динамічну конфігурацію периферії.
Багато драйверів можуть бути написані для виконання їх з простору користувача (), що ще збільшує стабільність системи: якщо драйвер простору користувача аварійно завершується, це не спричиняє паніку ядра.
Захист роздільних ресурсів
Задля безпечного запуску мультипроцесорних машин, доступ до роздільних ресурсів (файли, структура даних тощо) повинен бути серіалізованим, тобто щоб різні процеси не мали змоги модифікувати один і той же ресурс одночасно. , , critical sections, («mutexes») та серіалізація — можливі методи, що можуть бути використані для запобігання одночасного доступу. Подібно до Linux та FreeBSD 5, XNU, як і більшість Mac OS X 10.4 та Darwin 8.0, використовує mutex-модель задля досягнення високої роботи мультипроцесорної системи.
Примітки
- Release 1228 — 2007.
- xnu-8796.101.5 — 2023.
- . Apple Computer. 2005. Архів оригіналу за 13 жовтня 2008. Процитовано 13 грудня 2005.
{{}}
: Недійсний|deadurl=404
()
Посилання
- XNU: The Kernel — огляд компонентів XNU на kernelthread.com
- Inside the Mac OS X Kernel [ 28 січня 2008 у Wayback Machine.]
Ця стаття містить текст, що не відповідає . (травень 2010) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
XNU yadro operacijnoyi sistemi rozroblene kompaniyeyu Apple Inc zadlya vikoristannya u macOS i anonsovane yak vilne ta vidkrite programne zabezpechennya yak chastina operacijnoyi sistemi Darwin XNU ye akronimom dlya X is Not UnixXNU kernelTip yadro operacijnoyi sistemi gibridRozrobnik Apple Inc Versiyi 1228 30 zhovtnya 2007 1 i 8796 101 5 14 chervnya 2023 2 Operacijna sistema Darwin amp Mac OS XMova programuvannya C i CStan rozrobki In production developmentLicenziya Apple Public Source License 2 0Repozitorij github com apple oss distributions xnuVebsajt kernel macosforge org Na pochatku rozroblene kompaniyeyu NeXT dlya operacijnoyi sistemi NEXTSTEP XNU bulo gibridnim yadrom sumistivshi versiyu 2 5 Mach yadra rozroblenogo u Carnegie Mellon University iz komponentami 4 3 BSD i ob yektno oriyentovanogo API dlya zapisu drajveriv nazvane Opislya pridbannya kompaniyeyu Apple kompaniyi NeXT Mach komponent buv onovlenij do versiyi 3 0 BSD komponenti buli onovleni kodom iz proektu FreeBSD a Driver Kit buv zaminenij C API dlya zapisu drajveriv Dizajn yadraYak i deyaki inshi suchasni yadra XNU ye gibridom sumishayuchi v sobi perevagi yak monolitnih yader tak i mikroyader namagayuchis vikoristati yaknajkrashe obidvi tehnologiyi taki yak mozhlivosti peredachi povidomlen mikroyader vlastivist bilshoyi modulnosti i vigidne vinesennya znachnishih porcij OS z zahishenoyi pam yati razom z tim zberigayuchi shvidkist monolitnih yader dlya vazhlivih kritichnih zadach Stanom na 2023 rik osnovnoyu procesornoyu arhitekturoyu dlya XNU ye en 64 rozryadna versiya ARM Do povnogo perehodu firmi Apple na mikroprocesori vlasnogo dizajnu takozh rozvivavsya variant dlya x86 64 Ranni versiyi pidtrimuvali takozh PowerPC dzherelo Mach Centr yadra XNU Mach pochatkovo zadumuvalosya yak proste mikroyadro Tak vono moglo zapuskati centr OS yak okremi procesi sho nadavalo veliku gnuchkist sistemi mozhna bulo zapustiti dekilka OS paralelno nad sercevinoyu u viglyadi Mach ale chasto ce zmenshuvalo shvidkodiyu cherez spozhivannya chasu na peremikannya kontekstu mizh rivnem yadra i koristuvacha ta nadlishkovij stemming vid kartuvannya ta kopiyuvannya povidomlen mizh adresnim prostorom mikroyadra i togo sho nalezhav sluzhbovim demonam V Mac OS X rozrobniki namagalisya prishvidchiti vikonannya vazhlivih zadach tomu vbuduvali funkcionalnist BSD razom z Mach v nove yadro sistemi Rezultat kombinaciya Mach i klasichnogo BSD yadra zi svoyimi perevagami i nedolikami vid oboh z nih Mach zabezpechiv nove yadro potokami procesami vitiskalnoyu bagatozadachnistyu peredacheyu povidomlen vikoristovuyuchi IPC mizhprocesnu vzayemodiyu zahishenu pam yat keruvannya virtualnoyu pam yattyu dobru pidtrimku realnogo chasu pidtrimku znevadzhennya yadra i konsolnij vvid vivid Mach komponent takozh dozvoliv operacijnij sistemi rozmishati dvijkovu informaciyu dlya dekilkoh riznih arhitektur procesoriv v odnomu fajli takih yak x86 ta PowerPC nalezhno do yihnogo vikoristannya Mach O dvijkovogo formatu BSD Chastina yadra Berkeley Software Distribution BSD zabezpechila POSIX API sistemni vikliki BSD Unix model procesiv nad Mach zadachami osnovni politiki bezpeki id koristuvachiv ta grup dozvoli merezhevij stek kod virtualnoyi fajlovoyi sistemi vklyuchno z fajlovosistemnonezalezhnim zhurnalyuyuchim sharom merezhevu fajlovu sistemu NFS kriptografichne seredovishe sistemu mizhprocesnoyi vzayemodiyi z na bazi UNIX System V IPC pidsistemu auditu Audit Subsystem Mandatory Access Control ta deyaki blokuyuchi primitivi BSD kod predstavlenij v XNU prijshov z FreeBSD yadra Hocha bilshist jogo bula znachno zminena pidtrimka kodu i dosi traplyayetsya mizh proyektami Apple ta FreeBSD I O Kit ye strukturoyu drajveriv periferiyi napisana movoyu C Vikoristovuyuchi jogo ob yektno oriyentovanij dizajn zvichajni zdibnosti do bud yakogo klasu drajveriv uvedena samoyu strukturoyu dopomagayuchi drajveram periferiyi buti shvidshe napisanimi ta vikoristavshi menshe kodu I O Kit ye bagatopotochnim multi threaded pristosovanim dlya simetrichnogo multiprocesuvannya SMP dozvolyaye garyache pid yednannya i vid yednannya pristroyiv ta avtomatichnu i dinamichnu konfiguraciyu periferiyi Bagato drajveriv mozhut buti napisani dlya vikonannya yih z prostoru koristuvacha sho she zbilshuye stabilnist sistemi yaksho drajver prostoru koristuvacha avarijno zavershuyetsya ce ne sprichinyaye paniku yadra Zahist rozdilnih resursivZadlya bezpechnogo zapusku multiprocesornih mashin dostup do rozdilnih resursiv fajli struktura danih tosho povinen buti serializovanim tobto shob rizni procesi ne mali zmogi modifikuvati odin i toj zhe resurs odnochasno critical sections mutexes ta serializaciya mozhlivi metodi sho mozhut buti vikoristani dlya zapobigannya odnochasnogo dostupu Podibno do Linux ta FreeBSD 5 XNU yak i bilshist Mac OS X 10 4 ta Darwin 8 0 vikoristovuye mutex model zadlya dosyagnennya visokoyi roboti multiprocesornoyi sistemi PrimitkiRelease 1228 2007 xnu 8796 101 5 2023 Apple Computer 2005 Arhiv originalu za 13 zhovtnya 2008 Procitovano 13 grudnya 2005 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Nedijsnij deadurl 404 dovidka PosilannyaXNU The Kernel oglyad komponentiv XNU na kernelthread com Inside the Mac OS X Kernel 28 sichnya 2008 u Wayback Machine Cya stattya mistit tekst sho ne vidpovidaye enciklopedichnomu stilyu Bud laska dopomozhit udoskonaliti cyu stattyu pogodivshi stil vikladu zi stilistichnimi pravilami Vikipediyi Mozhlivo storinka obgovorennya mistit zauvazhennya shodo potribnih zmin traven 2010