Какие функции есть у Дарвина, которых нет у других Unix, или наоборот?

19

Есть ли у Дарвина какие-то особенности, специфичные для него? Есть ли в других Unixe возможности, которых нет у Дарвина?

Am1rr3zA
источник

Ответы:

20

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

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

Уоррен Янг
источник
11

Когда дело доходит до дела, разве Дарвин не просто тонкий слой BSD поверх Mach 2.0?

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

Mach 2.0 предлагает другой набор абстракций на уровне ядра:

  1. «Задача»: это адресное пространство + набор «портов», возможно, с запущенным в нем потоком.
  2. Потоки. Это была запланированная единица исполнения. Задача (адресное пространство) может иметь более 1 запущенной задачи. Я считаю, что файлы Mach-O (формат исполняемых файлов Маха) могут указывать более одного потока во время выполнения процесса: нет функции main (), которая запускает больше Cthreads, ОС запускает один.
  3. Порты. Это не порты TCP или UDP. Они были напечатаны, упорядочены потоки сообщений. Скорее RPC-как. Вы создали файл спецификации протокола, а затем пропустили его через компилятор, чтобы получить заглушки на стороне сервера и клиента, процедуры маршалинга и демаршаллинга и т. Д.
  4. Пейджеры памяти уровня пользователя. Вы можете настроить задачу + поток для обработки подкачки адресных пространств других задач.

Первоначальные маховцы из CMU использовали эти абстракции для эмуляции процессов BSD Unix, процессов MS-DOS и невероятного сочетания задач VMS. Каждая задача VMS занимала 2 задачи Маха, а также множество потоков. Кто-то продавал эмулятор Mac OS (pre-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.
Багамат
5

Это не совсем ответ, но DTrace - отличный инструмент для отладки системы, который существует для Solaris, Darwin / OS X и * BSD, но не для Linux.

kbyrd
источник
3
Oracle перенесла DTrace на Linux в 2011 году.
MattBianco
1
По состоянию на октябрь 2011 года Oracle объявила о переносе DTrace с Solaris на Linux, но по состоянию на 13 октября 2014 года она официально недоступна. ( slideshare.net/brendangregg/from-dtrace-to-linux )
Бродяга
4

Дарвин имеет относительно небольшой набор поддерживаемых типов файловых систем. Помимо специальных предложений, таких как devfs и сетевых типов, таких как webdav, список:

  • HFS / HFS +
  • UFS / FFS
  • ISO-9660 / ОДС / CDDA
  • NTFS
  • ЖИР

Из этого списка только UFS была разработана для Unix, хотя HFS + был обновлен для поддержки всей необходимой функциональности Unix. Начиная с Mac OS X 10.6, UFS не может использоваться для корневого раздела, хотя это ограничение, вероятно, не относится к Darwin. По умолчанию HFS + нечувствителен к регистру, хотя чувствительность к регистру может быть запрошена во время создания. Хотя Mac OS X будет работать в чувствительном к регистру разделе, многие высококлассные приложения Mac не будут (например, Adobe CS).

Некоторое время Apple планировала заменить HFS на ZFS и даже поставляла ZFS с некоторыми версиями Mac OS X, но, к сожалению, этот эксперимент в конечном итоге не удался из-за неразрешимых проблем с лицензированием .

Нил Мэйхью
источник
Я полагаю, что поддержка записи NTFS в OS X / macOS, как сообщается, все еще содержит ошибки, поскольку она остается экспериментальной и никогда не стабилизировалась.
RandomDSdevel
3

Я думаю, что лучше всего описать Дарвина как еще один вариант UNIX . Солярис один. HP / UX это другое. Есть много больше , может быть , не как «высокий профиль» , но они там. И с каждым ароматом приходит своя специфика. Вот почему есть вкусы в первую очередь. Некоторая компания придумывает что-то, что поможет продать ее (или просто работает с ней, или даже управляет ею), и создает ее и дает собственное имя.

Райхе
источник
2
UNIX (во всех заглавных буквах) является зарегистрированным товарным знаком The Open Group во многих странах; для чего-то, чтобы быть "UNIX" (во всех заглавных буквах), требуется сертификация . Дарвин не является еще одной «разновидностью UNIX» - но Mac OS X 10.10 на Intel x86-64 сертифицирована как другая UNIX.
user314104
0

Если я правильно понял, что Darwin, выпущенный Apple, больше не функционирует как независимая операционная система, поэтому я хотел бы отметить, что самое большое его отличие - это OS X поверх него. : D

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

Кевин Канту
источник
-1

Дарвин основан на FreeBSD. Одной из интересных функций, которых нет в других операционных системах Unix (по моему опыту), является пакетный фильтр Berkeley , он же /dev/bpf. Это очень универсальное устройство, которое вы можете использовать для захвата пакетов.

Отруби Блаженные
источник
1
Дарвин на самом деле не основан на FreeBSD, хотя он заимствует некоторые пользовательские вещи из него. Другие комментарии здесь объясняют это лучше. bpf (4) - это не только Darwin и FreeBSD / NetBSD / OpenBSD, и у меня есть ощущение, что кто-то, возможно, даже реализовал это для более ранних ядер Linux. У SCO (не очень) было это в предложении Unixware.
jrg
-11

Первый момент, который приходит мне в голову, - это все инструменты, которые OSX имеет в консоли ... Есть множество более полезных команд, которые есть в Unix. Diskutil - это как магия разделов в оболочке, этот инструмент имеет так много опций для операций с дисками, что fdisk на самом деле составляет всего 10% от того, что есть у этого зверя ... Кстати, OSX поддерживает действительно отличную поддержку Software Raid, вы можете иметь программный рейд JBOD, Strip и Mirror типы .. на самом деле Unix есть это? в твоих мечтах!! ; D

SystemProfiler - отличный инструмент, который отображает все аппаратные идентификаторы, имена, модели, sn и тому подобное ОЧЕНЬ удобным способом.

Ядро Дарвина не совсем прозрачно, как в Unix.

У Дарвина есть killall util = P unix, нет, только умение

другая файловая система также .. HFS, HFS +

может позже я запомню больше =)

Holms
источник
2
Вы имеете в виду, что у Дарвина есть killall, а у других вариантов Unix нет? Это не правда.
kbyrd
2
этот ответ подозревается в троллинге. Нет необходимости быть настолько клеветническим в ваших высказываниях о * nix, кроме os X. Кроме того, в прошлый раз, когда Я КОГДА-ЛИБО ИСПОЛЬЗУЛ * NIX killall, абсолютно присутствовал в моем PATH. Также у linux есть системные профилировщики. Делай свою домашнюю работу. Не будь грязным. редактировать: я использую и очень люблю OS X.
Эли Фрей
2
У меня есть killall на Linux, поэтому он не уникален для Дарвина
ксенотеррацид
2
Этот ответ является неопределенным и неточным. Какие полезные функции отсутствуют у fdisk? Linux RAID (mdadm) делает у конкатенации (LINEAR), чередование (RAID0) и зеркалирование (RAID1), среди других. Linux также поддерживает как HFS, так и HFS +.
Мэтью Флэшен
3
Кстати: Linux-killall и Solaris-killall совершенно разные
EricSchaefer