Куда Mac OS X прибывает из?

Несколько наклонных черт позволяются и эквивалентны единственной наклонной черте. От Единственной спецификации Unix (версия 4) основывайте определения §3.271 путь: “Несколько последовательных наклонных черт считаются тем же как одной наклонной чертой”.

Существует одно исключение: Если путь начинается с двух последовательных символов, первый компонент после начальных символов может быть интерпретирован определенным реализацией способом. (касательно: основные определения §4.13 разрешение пути). Сам Linux не делает этого, хотя некоторые приложения могли бы, и другая система выхода Unix делает (например, Cygwin).

Запаздывание / в конце пути вынуждает путь обратиться к каталогу. В (POSIX 1003.1-2001 (Единственный Unix v4) основывают определения §4.11 разрешение пути, запаздывание / эквивалентно запаздыванию /.. POSIX 1003.1-2008 (Единственный Unix v4) основные определения §4.13 удаляет требование для создания этого эквивалентным /., для преодоления несуществующих каталогов (например. mkdir foo/ требуется, чтобы работать, тогда как mkdir foo/. не был бы — видеть объяснение для изменения).

Для программ, которые действуют на запись каталога, если foo символьная ссылка на каталог, затем передавая foo/ путь состоит в том, чтобы заставить программу действовать на каталог вместо символьной ссылки.

¹ Примечание, что это запрашивает разрешение пути только, т.е. при доступе к файлам. Манипуляции именем файла могут работать по-другому. Например, basename и dirname проигнорируйте запаздывание наклонных черт.

43
05.05.2013, 15:04
3 ответа

История MacOS является замысловатой. Я очень интересовался этим в конце 90-х, поскольку Мах был передан во всем мире как более быстрый способ создать систему Unix.

Источник ядра немного более сложен.

Все это запускается с AT&T, распределяющей их операционную систему некоторым университетам бесплатно. Этот Unix был улучшен экстенсивно в Беркли и стал основой для изменений BSD Unix и включил несколько новых идей как "Быстрая Файловая система" (UFS), представленные символьные ссылки и сокеты API. AT&T продолжила их собственный путь и создала System V одновременно.

Между тем продолженное исследование и некоторые люди приняло работу от BSD как основа. В CMU ядро BSD использовалось в качестве основы для разработки прототипа нескольких новых идей: потоки, API для управления системой виртуальной памяти (через сменные "пейджеры" - уровень пользователя mmap), система вызова удаленной процедуры уровня ядра и самое главное идея переместить некоторые операции уровня ядра в пространство пользователя. Это стало ядром Маха.

Я не на 100% уверен, прибыл ли mmap от Маха и позже был принят BSD, или если Мах просто вел идею, и BSD добавила их собственный mmap на основе идей Маха.

Хотя ядро Маха было описано как микроядро, до версии 2.5 это была просто система, которая обеспечила поток, mmap, функции передачи сообщений, но осталась монолитным ядром, все сервисы работали на привилегированном режиме.

В это время Rick Rashid (теперь в Microsoft) и Avie Tevanian (теперь в Apple) придумал свежую идею, которая могла ускорить Unix. Идея состояла в том, чтобы использовать mmap системный вызов для передачи данных, которые будут скопированы с пространства пользователя на "серверы", реализовывая файловую систему. Эта идея была по существу изменением того, чтобы стараться избегать копий создания тех же данных, но это было передано как преимущество микро ядер, даже если функция могла бы быть изолирована от микро ядра.

Сравнительные тесты этого VM-backed, более быстрая система Unix - то, что управляло людьми в NeXT и в FSF для выбора Маха как основы для их ядер.

NeXT пошел с Махом 2,5 ядра (который был основан или на BSD 4.2 или 4.3), и GNU не будет на самом деле запускаться на работе в течение многих лет. Это - то, что использовали операционные системы NeXTSTEP.

Между тем в CMU, работа продолжила Маха, и они наконец поняли видение наличия нескольких серверов, работающих сверху микро ядра с версией 3.0. Я не знаю ни о ком в дикой способности выполнить Маха 3.0, поскольку все интересные серверы уровня пользователя использовали код AT&T, таким образом, их считали обремененными, таким образом, это осталось продуктом исследования.

В это время команда Jolitz сделала порт 4,3 + BSD к 386 архитектуре и опубликовала их усилия по портированию на DrDobbs. 386BSD активно не сохранялся, и группа появилась, чтобы поддержать и переместиться 386BSD вперед, команда NetBSD. Внутренние поединки в группе NetBSD вызвали первое разделение, и FreeBSD был сформирован из этого. NetBSD, в то время, когда требуется сфокусироваться на наличии межплатформенного BSD и FreeBSD хотел сфокусироваться на наличии Unix, который сделал большой на x86 платформах. Немного позже, разделение NetBSD снова из-за некоторых других споров и этого вывода к созданию OpenBSD.

Ветвление BSD 4.3 для x86 платформ пошло коммерческое с компанией под названием BSDi, и различные члены исходной команды Беркли работали там и сохранили хорошие отношения с командой BSD в Университете.

AT&T не была удивлена и запустила AT&T по сравнению с судебным процессом BSDi, который был позже расширен для предъявления иска Университету также. Судебный процесс был о BSDi использующим собственного кода из AT&T, которая не была переписана Беркли. Это задержало BSD по сравнению с и ближайшая операционная система Linux.

Хотя вещи не выглядели хорошими для ответчиков, в какой-то момент кто-то понял, что SystemV включил большие блоки кода BSD в соответствии с лицензией BSD, и AT&T не выполнила их обязательства в лицензии. Урегулирование было достигнуто, в котором AT&T не должна будет вытягивать их продукт с рынка, и Университет согласился сорвать любой код, который мог все еще быть основан на коде AT&T.

Университет затем выпустил две версии обремененного BSD 4.4 и 4,4 облегченных. Обремененная версия загрузилась бы и работала бы, но содержала код AT&T. Облегченная версия не содержала кода из AT&T, но не работала.

Различные усилия BSD восстановили свою работу сверх новых 4,4 облегченных выпусков и имели загружающуюся систему в течение месяцев.

Между тем Мах 3,0 микро ядра остался не очень полезным без любого из серверов пространства пользователя.

Студент из скандинавского университета (я верю, у меня могла бы быть эта несправедливость), был первый, который создаст полного Маха 3,0 системы с полной ОС на основе 4,4 облегченных выпусков, я полагаю, что это назвали "Lites". Система работала, но была медленной.

В течение 1992-1996 и к настоящему времени BSD уже имел mmap () системный вызов, а также большинство других систем Unix. "Микро ядро способствует", который не был там, никогда действительно осуществился. NeXT все еще имел монолитное ядро. FSF все еще пытался заставить Маха создавать и не желал коснуться кода BSD или способствовать любому из усилий BSD с открытым исходным кодом, они держали зарядку отдельно в плохо указанном видении ядра, и они тонули на протоколах RPC для их собственного ядра. Микро ядро выглядело большим на бумаге, но оказалось по спроектированному и просто сделало все медленнее.

В этой точке у нас также был Linus по сравнению с дебатами Andy по микроядрам по сравнению с монолитными ядрами, и мир начал понимать, что было просто невозможно добавить все те дополнительные циклы к микро ядру и все еще прибыть перед хорошо разработанным монолитным ядром.

Apple еще не приобрела NeXTSTEP, но также начинала изучать Маха как потенциальное ядро для их будущих операционных систем. Они наняли Фонд открытого программного обеспечения к порту Linux к ядру Маха, и это было сделано из их Гренобльских офисов, я полагаю, что это назвали "mklinux".

То, когда Apple купила NeXT, что они имели на их руках, было относительно старой основой Unix, 4.2 или 4.3 базирующимися Unix и к настоящему времени, даже бесплатное программное обеспечение не работало хорошо из поля в тех системах. Они наняли Jordan Hubbard далеко от FreeBSD для обновления их стека Unix. Его команда была ответственна за обновление пространства пользователя, и это не удивление, что пространство пользователя MacOS было обновлено до последних версий, доступных на BSD.

Apple действительно переключила их Маха от 2,5 до 3,0 в какой-то момент, но решенный для не движения с подходом микроядра и вместо этого сохранила все незавершенным. Я никогда не мог подтвердить, использовала ли Apple Lites, нанял скандинавского хакера, или если они приняли 4.4, облегченные как их ОС. Я подозреваю, что они сделали, но я уже шел дальше к Linux и прекратил отслеживать мир BSD/Mach.

Был слух в конце 90-х, что Avie в Apple пытался нанять Linus (кто был уже известен в этой точке) работать над его ребенком, но Linus принял решение продолжить работать над Linux.

История в стороне, эта страница описывает пространство пользователя и ядро Маха/Unix:

http://developer.apple.com/mac/library/documentation/Darwin/Conceptual/KernelProgramming/Architecture/Architecture.html#//apple_ref/doc/uid/TP30000905-CH1g-CACDAEDC

Я нашел эту диаграмму истории OSX: alt text

67
27.01.2020, 19:35
  • 1
    Это было мое понимание, что главной причиной, Киоскер в FSF преследовал Маха, не была производительность, но простота использования отладчика: он мог использовать отладчик для отладки серверов Маха намного более легко, чем отладка кода, работающего в пространстве ядра. Хотя, возможно, это была производительность, которая убедила его, что это было жизнеспособным способом реализовать. –  skiphoppy 18.08.2010, 21:47
  • 2
    Если Вы действительно хотите видеть истинное микроядро в действии, испытайте QNX. В QNX4 ядро составляло только 32 кбайта и только обработало передачу сообщений, планирование ЦП и interrups. Все другие части ОС QNX могли быть выгружены, не закрываясь или перезагружая систему, и это было чрезвычайно устойчиво. Когда-то был эмулятор окна для QNX под названием Ивы, которые запустили приложения Windows быстрее, чем собственные окна. В то время как это не имеет никакого отношения к OS X по сути, QNX доказал, что микроядра действительно жизнеспособны, когда они сделаны правильно. –   31.08.2013, 20:02
  • 3
    , больше не доступное. –  Hermann Ingjaldsson 01.09.2013, 10:10
  • 4
    , все еще не доступное –  Sildoreth 17.04.2015, 20:56
  • 5
    предложил Linus задание в 2000. Linus говорит об этом здесь. wired.com/2012/03/mr-linux/all/1 –  Alistair McMillan 16.09.2015, 16:30

На стороне Unix OS X является потомком NeXTSTEP, который был получен из 4.3BSD с базовыми частями ядра, замененного Махом.

NeXT, программируя API, который в конечном счете стал названным OpenStep, является основанием сегодняшнего Какао API для OS X. Два API отличались значительно, так как Apple купила NeXT в 1997, хотя существует текущие события усилия для обеспечения совместимых с API клонов Какао с открытым исходным кодом.

Добавьте к этому Классическую совместимость MacOS API, названный Углеродом, и у Вас есть интерфейс программирования OS X.

(Еще существует много к OS X, но они - приложения сверху всего этого: Средство поиска, BSD и инструменты пространства пользователя GNU, и т.д.)

Что касается идеи ядра FreeBSD, это - вид корректных, но это - бесхитростный способ посмотреть на него. Исходное ядро прибыло, как я сказал, от Затем, который собрал их первое ядро от 4.3BSD и Мах. Это означает, что и FreeBSD и NeXTSTEP совместно использовали некоторый код через 4.3BSD.

Мем, что OS X основан на FreeBSD, имеет два более свежих источника. Во-первых, Apple продолжила одалживать инновации у мира BSD, обычно у FreeBSD. Во-вторых, Apple наняла соучредителя проекта FreeBSD Jordan Hubbard вскоре после создания первого общедоступного выпуска OS X. Он работал на Apple в течение июня 2013.

24
27.01.2020, 19:35

Когда вам сказали, что OSX имеет это собственная разновидность Unix, они технически правильны.

BSD + Элементы из NeXTSTEP + Apple Tweaks = DARWIN

Другими словами. Заказ только Hot Fudge / ice cream (BSD), добавьте Nuts (NeXTStep), плюс взбитые сливки и вишню (Apple Add-in и настройки) = Hot Fudge Sundae (Darwin)

Но BSD - это основа, на которой были добавлены другие поэтому большая часть BSD будет работать в Дарвине (с настройкой здесь и там)

0
27.01.2020, 19:35

Теги

Похожие вопросы