Ответы:
OS X - единственная оставшаяся операционная система, основанная на микроядре Маха, которая также все еще имеет коммерческое значение. Существует несколько текущих исследовательских проектов и устаревших операционных систем, которые, без сомнения, все еще используются в производственных настройках на старых машинах, но сегодня вы ничего не можете купить и купить на новой машине.
OS X имеет обычный набор несовместимостей функций ядра, который есть у любого * ix. Самый большой из них я совсем недавно был работать вокруг отсутствие очередей сообщений System V . ( msgget(2)
и друзья.) Нам пришлось заменить наш код очереди сообщений - который был написан для «настоящего» варианта System V и позже перенесен на Linux - на TCP / IP, чтобы заставить наше программное обеспечение работать на OS X. Для нашего приложения Различия между этими двумя методами IPC имели значение в то время, когда мы выбирали очереди сообщений, но из-за более поздних архитектурных изменений переход к TCP / IP не стал большой проблемой.
Когда дело доходит до дела, разве Дарвин не просто тонкий слой BSD поверх Mach 2.0?
Раньше я использовал NeXTStep, я не знаю, насколько сильно MacOSX отходит от NeXTStep, но ...
Mach 2.0 предлагает другой набор абстракций на уровне ядра:
Первоначальные маховцы из 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
Это не совсем ответ, но DTrace - отличный инструмент для отладки системы, который существует для Solaris, Darwin / OS X и * BSD, но не для Linux.
Дарвин имеет относительно небольшой набор поддерживаемых типов файловых систем. Помимо специальных предложений, таких как devfs и сетевых типов, таких как webdav, список:
Из этого списка только 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, но, к сожалению, этот эксперимент в конечном итоге не удался из-за неразрешимых проблем с лицензированием .
Я думаю, что лучше всего описать Дарвина как еще один вариант UNIX . Солярис один. HP / UX это другое. Есть много больше , может быть , не как «высокий профиль» , но они там. И с каждым ароматом приходит своя специфика. Вот почему есть вкусы в первую очередь. Некоторая компания придумывает что-то, что поможет продать ее (или просто работает с ней, или даже управляет ею), и создает ее и дает собственное имя.
Если я правильно понял, что Darwin, выпущенный Apple, больше не функционирует как независимая операционная система, поэтому я хотел бы отметить, что самое большое его отличие - это OS X поверх него. : D
Хотя интеграция между старой Mac OS, новой Mac OS X и NeXT иногда смешна, маленькие утилиты, такие как diskutil и hdiutil, хороши . Возможно, некоторые старые архитекторы ядра Mach, оставшиеся от NeXT, используют эти мелочи и заботятся о них, которые также сделали XCode таким хорошим инструментом.
Дарвин основан на FreeBSD. Одной из интересных функций, которых нет в других операционных системах Unix (по моему опыту), является пакетный фильтр Berkeley , он же /dev/bpf
. Это очень универсальное устройство, которое вы можете использовать для захвата пакетов.
Первый момент, который приходит мне в голову, - это все инструменты, которые OSX имеет в консоли ... Есть множество более полезных команд, которые есть в Unix. Diskutil - это как магия разделов в оболочке, этот инструмент имеет так много опций для операций с дисками, что fdisk на самом деле составляет всего 10% от того, что есть у этого зверя ... Кстати, OSX поддерживает действительно отличную поддержку Software Raid, вы можете иметь программный рейд JBOD, Strip и Mirror типы .. на самом деле Unix есть это? в твоих мечтах!! ; D
SystemProfiler - отличный инструмент, который отображает все аппаратные идентификаторы, имена, модели, sn и тому подобное ОЧЕНЬ удобным способом.
Ядро Дарвина не совсем прозрачно, как в Unix.
У Дарвина есть killall util = P unix, нет, только умение
другая файловая система также .. HFS, HFS +
может позже я запомню больше =)