Які особливості має Дарвін у інших Unix, або навпаки?


19

Чи є у Дарвіна якісь особливості, характерні саме для нього? У інших Unixe є функції, яких Дарвін бракує?

Відповіді:


20

OS X - єдина операційна система, що залишилася на основі мікроядра Mach, яка також є комерційно актуальною. Існує декілька поточних дослідницьких проектів і застарілих ОС, які, без сумніву, все ще використовуються у виробничих налаштуваннях на старих машинах, але нічого, що ви можете вийти і купити на новій машині, сьогодні немає.

У OS X є звичайний асортимент несумісностей функцій ядра, який має будь-який * ix. Найбільший з них я зовсім недавно був працювати навколо відсутність черг повідомлень System V . ( msgget(2)і друзі.) Нам довелося замінити наш код черги повідомлень - який був написаний для "реального" варіанту System V і пізніше перенесений в Linux - на TCP / IP, щоб змусити наше програмне забезпечення працювати на ОС X. Для нашого застосування відмінності між цими двома методами IPC мали значення в той час, коли ми зробили вибір з черг повідомлень, але через пізніші архітектурні зміни, це не стало великою справою для переходу на TCP / IP.


11

Якщо справа доходить до цього, чи не Дарвін є лише тонким шаром BSD поверх Mach 2.0?

Раніше я використовував NeXTStep, я не знаю, наскільки поточний MacOSX відходить від NeXTStep, але ...

Mach 2.0 запропонував різний набір абстракцій на рівні ядра:

  1. "Завдання": це адресний простір + набір "портів", можливо, з потоком, що працює в ньому.
  2. Нитки. Це була планова одиниця страти. Завдання (адресний простір) може містити більше 1 в ньому. Я вважаю, що файли Mach-O (виконавчий формат файлу Mach) могли задати більше одного потоку за час виконання процесу: жодна основна () функція, яка запустила б більше Cthreads, ОС запустила б один.
  3. Порти. Вони не схожі на порти TCP або UDP. Їх набирали, упорядковували потоки повідомлень. Швидше RPC-подібний. Ви створили файл специфікації протоколу, а потім провели його через компілятор, щоб отримати серверні та клієнтські заглушки, маршрутизацію та демарширування підпрограм тощо.
  4. Пейджери пам'яті на рівні користувача. Ви можете налаштувати завдання + потік для обробки підкачки адресних просторів інших завдань.

Оригінальні люди CMU Mach використовували ці абстракції для імітації BSD Unix-процесів, MS-DOS-процесів і для казкової придумки дивацтва, завдань VMS. Кожне завдання VMS займало 2 завдання Mach, плюс багато потоків. Хтось продавав емулятор Mac OS (до OSX) для NeXTStep, який використовував користувальницький простір-пейджери для хорошого ефекту.

Стара версія публікацій CMU Mach: http://www.cs.cmu.edu/afs/cs/project/mach/public/www/doc/documents_top.html

Папір VMS-on-Mach: http://www.sture.ch/vms/Usenix_VMS-on-Mach.pdf


2
Mac OS X (і, таким чином, Darwin) використовує Mach 3.0.
bahamat

5

Це не зовсім відповідь, але DTrace - це дивовижний інструмент налагодження системи, який існує для Solaris, Darwin / OS X та * BSD, але не для Linux.


3
Oracle переніс DTrace на Linux у 2011 році.
MattBianco

1
Станом на жовтень 2011 Oracle оголосив про перенесення DTrace з Solaris на Linux, але станом на 13 жовтня 2014 року він залишається офіційно недоступним. ( slideshare.net/brendangregg/from-dtrace-to-linux )
scravy

4

У Дарвіна є відносно невеликий набір підтримуваних типів файлової системи. Крім таких подій, як devfs та таких типів мережі, як webdav, у списку є:

  • HFS / HFS +
  • UFS / FFS
  • ISO-9660 / UDF / CDDA
  • NTFS
  • Жир

З цього списку для Unix був розроблений лише UFS , хоча HFS + було оновлено для підтримки всіх необхідних функцій Unix. Як і у Mac OS X 10.6, UFS не можна використовувати для кореневого розділу, хоча це обмеження, ймовірно, не стосується Дарвіна. За замовчуванням HFS + нечутливий до регістру, хоча чутливість регістру може бути запитана під час створення. Хоча Mac OS X запускається на чутливому до регістру розділі, багато популярних програм для Mac не будуть (наприклад, Adobe CS).

Якийсь час Apple планувала замінити HFS з ZFS і навіть постачала ZFS з деякими версіями Mac OS X, але, на жаль, цей експеримент врешті провалився через нерозв'язні проблеми з ліцензуванням .


Я вважаю, що повідомлення про підтримку запису NTFS OS X / macOS як і раніше залишається помилковою, оскільки вона залишається експериментальною і ніколи не була стабілізована, як я пам'ятаю.
RandomDSdevel

3

Я думаю, що найкраще описати Дарвіна як просто ще один аромат UNIX . Solaris - це один. HP / UX - це ще одна. Є багато більше , може бути , не як «високого профілю» , але вони там. І з кожним ароматом виходить своя специфіка. Ось чому в першу чергу є аромати. Деяка компанія придумує щось, що допомогло б продати її (або просто працювати з нею або навіть керувати нею) і створює її і дає їй своє ім’я.


2
UNIX (з великими шарами) є зареєстрованою торговою маркою The Open Group у багатьох країнах; щоб щось було "UNIX" (у всіх шапках), необхідна сертифікація . Дарвін не є іншим "ароматом UNIX" - але Mac OS X 10.10 для Intel x86-64 сертифікований як інший UNIX.
користувач314104

0

Якщо я чув, що Дарвін, випущений Apple, більше не функціонує як незалежна операційна система, тож я зазначу, що найбільша різниця у ньому - це OS X поверх нього. : D

Хоча інтеграція між старою Mac OS, новою Mac OS X та NeXT інколи іноді сміється, такі маленькі утиліти, як diskutil та hdiutil , чудові. Можливо, деякі старі архітектори Mach ядра, що залишилися від NeXT, використовують ці дрібниці та дбають про них, які також переконалися, що XCode такий хороший інструмент.


-1

Дарвін заснований на FreeBSD. Однією цікавою особливістю, якої немає в інших операційних системах Unix (на мій досвід), є Berkeley Packet Filter , ака /dev/bpf. Це дуже універсальний пристрій, який можна використовувати для захоплення пакетів.


1
Дарвін насправді не ґрунтується на FreeBSD, хоча він запозичує у нього деякі речі користувача. Інші коментарі тут пояснюють це краще. bpf (4) - це не тільки Дарвін та FreeBSD / NetBSD / OpenBSD, і я маю відчуття, що хтось, можливо, навіть реалізував це для попередніх ядер Linux. SCO (не-), як відомо, мав це у своїй програмі Unixware.
jrg

-11

Кулак, який мені спадає на думку, - це всі інструменти, у яких OSX є в консолі. Є багато корисних команд, які мають Unix. Diskutil це як магія розділу в оболонці, у цього інструменту є стільки варіантів дискових операцій, що fdisk насправді складає лише 10% від того, що у цього звіра ... btw osx підтримує дійсно чудову підтримку програмного забезпечення Raid. види .. справді це має Unix? В твоїх мріях!! ; D

SystemProfiler - чудовий інструмент, який ДУЖЕ комфортно відображає всі апаратні ідентифікатори, імена, моделі, sn та інше.

ядро Дарвіна не зовсім прозоре, як в Unix.

darwin мають killall util = P unix не, лише вміння

інша файлова система також .. HFS, HFS +

можливо, останній я згадаю більше =)


2
Ви маєте на увазі, що у Дарвіна є "killall", а інші варіанти Unix - ні? Що це не так.
kbyrd

2
ця відповідь підозрюється у тролінгу. Не варто бути таким ганебним у своїх висловлюваннях про * nix, крім os X. Крім того, останній раз, коли я ВИКОРИСТОВУВАЛИ * NIX killall був абсолютно присутнім у моїй PATH. Також у Linux є системні профілі. Роби своє домашнє завдання. Не будьте двійкою. редагувати: Я використовую і дуже люблю ОС X.
Елі Фрей,

2
У мене є killall на Linux, тому Дарвін не
властивий

2
Ця відповідь розпливчаста і неточна. Яких корисних функцій бракує fdisk? Linux RAID (mdadm) робить у конкатенації (LINEAR), чергування (RAID0) і віддзеркалення (RAID1), серед інших. Linux також підтримує HFS і HFS +.
Метью Флашен

3
BTW: Linux-killall і Solaris-killall зовсім інші
EricSchaefer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.