Darvin kernel что это
Перейти к содержимому

Darvin kernel что это

  • автор:

LXF164:Darwin:Вид про­ис­хо­ж­де­ния

Darwin – это не тот, ко­то­рый вы­ду­мал тео­рию эво­лю­ции, а тот, на ко­то­ром осно­ва­на про­прие­тар­ная Mac OS X. Чи­та­те­ли, воз­мож­но, уди­вят­ся: с че­го это LXF рас­ска­зы­ва­ет о про­прие­тар­ной ОС? За­гвозд­ка тут в том, что Darwin как раз-та­ки сво­бод­ная и от­кры­тая ОС – при­чем в пол­ном со­от­вет­ст­вии со смыс­лом, вкла­ды­вае­мым в эти сло­ва FSF и OSI.

Ιστορία

По­ла­гаю, что ис­то­рию Darwin на­до на­чать с ухо­да Сти­ва Джоб­са из Apple. Мы не мо­жем знать точ­но, из-за че­го он ушел, но ито­гом ста­ло то, что он пе­ре­манил в но­вую фир­му некое­го Ави Те­ва­ня­на [Avie Tevanian], ко­то­рый ра­бо­тал над мик­ро­ядром Mach и был одним из его основ­ных раз­ра­бот­чи­ков (кон­цеп­ция Mach раз­ра­бо­та­на в Универ­си­те­те Карнеги-Мел­ло­на). Пе­ре­манил его Джобс, конеч­но, не про­сто так, а для раз­ра­бот­ки ОС, ко­то­рая в дальней­шем по­лу­чит на­звание NeXTStep.

  • Метамодернизм в позднем творчестве В.Г. Сорокина
  • ЛитРПГ — последняя отрыжка постмодерна
  • «Ричард III и семиотика»
  • 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
  • Архитектура метамодерна — говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек «новой волны», столь притягательных и скандальных.
  • Литература
  • Метамодерн
  • Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР — перепубликация из журнала «Топос».
  • Как избавиться от комаров? Лучшие типы ловушек.
  • Что делать если роблокс вылетает на windows
  • Что делать, если ребенок смотрит порно?
  • Почему собака прыгает на людей при встрече?
  • Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
  • О чем может рассказать хвост вашей кошки?
  • Верветки
  • Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
  • Срок исковой давности как правильно рассчитать
  • Дмитрий Патрушев минсельхоз будет ли преемником Путина
  • Кто такой Владислав Поздняков? Что такое «Мужское Государство» и почему его признали экстремистским в России?
  • Как правильно выбрать машинное масло в Димитровграде?
  • Как стать богатым и знаменитым в России?
  • Почему фильм «Пипец» (Kick-Ass) стал популярен по всему миру?
  • Как стать мудрецом?
  • Как правильно установить FreeBSD
  • Как стать таким как Путин?
  • Где лучше жить — в Димитровграде или в Ульяновске?
  • Почему город Димитровград так называется?
  • Что такое метамодерн?
  • ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
  • Тарифы на электроэнергию для майнеров предложено повысить

Для раз­ра­бот­ки но­вой ОС бы­ло ре­ше­но ис­поль­зо­вать объ­ект­но-ори­ен­ти­ро­ван­ные тех­но­ло­гии. Не­ве­до­мо по­че­му был вы­бран Objective-C, а не C++. Не­ко­то­рые ис­точники по­ка­зы­ва­ют, что C++ к мо­мен­ту на­ча­ла ра­бо­ты над NeXTStep еще не был соз­дан, но они всту­па­ют в про­ти­во­ре­чие с дру­ги­ми ис­точника­ми, по­это­му мож­но пред­по­ло­жить, что но­во­яв­лен­ная ком­пания про­сто вы­бра­ла тот язык, ко­то­рый стар­ше и боль­ше по­хож на C – основ­ной язык раз­ра­бот­ки ОС то­го вре­мени. NeXT Computers ли­цен­зи­ро­ва­ла Obj-C в 1988.

Язык этот на тот мо­мент был до­воль­но «про­дви­ну­тым» – он, на­при­мер, вклю­чал ООП (при­чем ООП реа­ли­зо­ва­но че­рез со­об­щения, как в SmallTalk, несколь­ко непо­хо­же на то, к че­му мы при­вык­ли сей­час), ди­на­ми­че­скую ти­пи­за­цию, а в со­вре­мен­ной вер­сии еще и сбор му­со­ра.

Яд­ро же NeXTStep бы­ло гиб­рид­ным (несмот­ря на то, что неко­то­рые ис­точники на­зы­ва­ют дан­ную ОС мик­ро­ядер­ной, это не так) и на­пи­сан­ным на чис­том C. Раз­ра­бот­чи­ки взя­ли луч­шие чер­ты мик­ро­яд­ра Mach, та­кие как мо­дуль­ную ар­хи­тек­ту­ру и яд­ра BSD (ско­рость и се­те­вой стек).

Чарльз Дар­вин: во­круг све­та

Рас­смат­ри­вать уста­нов­ку бу­дем на при­ме­ре VMWare Server 1.0 – у ав­то­ра от­сут­ст­ву­ет про­цес­сор с вир­туа­ли­за­ци­ей, а без нее мно­гие со­вре­мен­ные вир­ту­аль­ные ма­ши­ны ра­бо­та­ют очень мед­лен­но. Тип вир­ту­аль­ной ма­ши­ны – FreeBSD, же­ст­кий диск IDE; ука­зы­ва­ем ISO-об­раз, за­гру­жа­ем­ся с него. по­еха­ли!

� Шаг 1 Вы­би­ра­ем же­ст­кий диск для уста­нов­ки. С этим, ду­ма­ет­ся, про­блем не возникнет ни у ко­го.

� Шаг 2 Вы­бор ти­па раз­мет­ки же­ст­ко­го дис­ка. Тут мы, как это ни стран­но, вы­би­ра­ем руч­ную, ибо ав­то­ма­ти­че­­ская, сколь­ко ни пы­та­лись, не хо­те­ла ра­бо­тать. Нас вы­бро­сит в fdisk. На­би­ра­ем auto hfs (ав­то­ма­ти­че­­ская раз­мет­ка дис­ка с одним раз­де­лом HFS+) и. ско­рее все­го, по­лу­ча­ем ошиб­ку ви­да “malloc:*** Deallocation of a pointer not malloced. ”. Еще раз на­би­ра­ем auto hfs – те­перь уже это­го со­об­щения не бу­дет. За­пи­сы­ва­ем MBR ко­ман­дой w, за­тем вы­хо­дим из fdisk – quit. Те­перь нас по­про­сят вы­брать корневой раз­дел – че­ст­но го­во­ря, непо­нят­но, за­чем на­до вво­дить его це­ли­ком, когда мож­но бы­ло бы вы­би­рать из имею­щих­ся пу­тем на­жа­тия со­от­вет­ст­вую­щей циф­ры – но это уже во­прос к раз­ра­бот­чи­кам про­грам­мы уста­нов­ки. За­бе­гая впе­ред, ска­жем, что это да­ле­ко не един­ст­вен­ная ошиб­ка в ней. Да­лее у нас по­про­сят под­твер­дить: дей­ст­ви­тель­но ли мы хо­тим со­вер­шить «чис­тую» уста­нов­ку? От­ве­ча­ем – и сно­ва во­прос: имя то­ма; здесь мож­но на­пи­сать что угод­но. По­сле от­ве­та, как во­дит­ся, жмем . Оба-на! Пи­шет “error: nknown filesystem type”. Ухо­дим на пе­ре­за­груз­ку – за­но­во с об­раза. За­ме­ча­ем, что на пер­вом эта­пе поя­вил­ся пункт 3 – “Use existing partition”. Его и вы­би­ра­ем. Опять по­про­сят ука­зать корневой раз­дел. По­сле это­го бу­дет во­прос: ка­кой тип фай­ло­вой сис­те­мы ис­поль­зо­вать? Во­прос этот вы­гля­дит, по мень­шей ме­ре, стран­ным – есть же таб­ли­ца раз­де­лов, от­ту­да и бе­ри­те – но те­перь хо­тя бы по­нят­на при­чи­на пе­ре­за­груз­ки: уста­но­воч­ная про­грам­ма (скрипт?) по­пы­та­лась под­мон­ти­ро­вать раз­дел без ФС, и, ес­те­ст­вен­но, вы­лез­ла вы­ше­ука­зан­ная ошиб­ка. С нас сно­ва спро­сят под­твер­ждение и имя то­ма – ес­ли нам еще не на­дое­ло, от­ве­ча­ем на них, и – ура! – на­ча­лось ко­пи­ро­вание фай­лов. Это мо­жет за­нять несколь­ко мин. ой. Жур­нал-то про *nix, за­чем здесь по­вто­рять со­об­щение Windows? Но, как бы то ни бы­ло, это до­воль­но дли­тель­ный про­цесс, и во вре­мя него мож­но, к при­ме­ру, съесть пи­рож­ное.

  • Метамодернизм в позднем творчестве В.Г. Сорокина
  • ЛитРПГ — последняя отрыжка постмодерна
  • «Ричард III и семиотика»
  • 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
  • Архитектура метамодерна — говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек «новой волны», столь притягательных и скандальных.
  • Литература
  • Метамодерн
  • Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР — перепубликация из журнала «Топос».
  • Как избавиться от комаров? Лучшие типы ловушек.
  • Что делать если роблокс вылетает на windows
  • Что делать, если ребенок смотрит порно?
  • Почему собака прыгает на людей при встрече?
  • Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
  • О чем может рассказать хвост вашей кошки?
  • Верветки
  • Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
  • Срок исковой давности как правильно рассчитать
  • Дмитрий Патрушев минсельхоз будет ли преемником Путина
  • Кто такой Владислав Поздняков? Что такое «Мужское Государство» и почему его признали экстремистским в России?
  • Как правильно выбрать машинное масло в Димитровграде?
  • Как стать богатым и знаменитым в России?
  • Почему фильм «Пипец» (Kick-Ass) стал популярен по всему миру?
  • Как стать мудрецом?
  • Как правильно установить FreeBSD
  • Как стать таким как Путин?
  • Где лучше жить — в Димитровграде или в Ульяновске?
  • Почему город Димитровград так называется?
  • Что такое метамодерн?
  • ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
  • Тарифы на электроэнергию для майнеров предложено повысить

� Шаг 3 Ко­пи­ро­вание за­вер­ше­но. Нас спро­сят па­роль root (два­ж­ды – в этом смыс­ле все нор­маль­но), по­том спро­сят имя до­ме­на, а за­тем вы­бор из 3 пунк­тов: соз­дать но­во­го поль­зо­ва­те­ля, пе­ре­за­гру­зить­ся и обо­лоч­ка. Ну, поль­зо­ва­те­ля мож­но соз­дать и по­том, обо­лоч­ка по­ро­ж­да­ет­ся глюч­ная, по­это­му вы­би­ра­ем пункт 2 – Reboot. Пе­ре­за­гру­жа­ем­ся. и су­до­рож­но вспо­ми­на­ем, был ли во­прос про за­груз­чик. Вы­яс­ня­ет­ся, что не бы­ло. Да-да! Его на­до ста­вить руч­ка­ми.

� Шаг 4 Сно­ва за­гру­жа­ем­ся с об­раза. Толь­ко те­перь необ­хо­ди­мо ра­бо­тать в обо­лоч­ке, по­это­му на­би­ра­ем shell.Во­шли.На­би­ра­ем пер­вую ко­ман­ду –

fdisk -f /usr/standalone/i386/boot0 -u -y /dev/rdisk0

Что эта ко­ман­да де­ла­ет? Де­ла­ет она сле­дую­щее: ста­вит пер­вую часть за­груз­чи­ка в MBR (без таб­ли­цы раз­де­лов – оп­ция -u) без за­про­са под­твер­ждения – оп­ция -y.

� Шаг 6 По­сле этой ко­ман­ды да­ем ко­ман­ду

dd if=/usr/standalone/i386/boot1h of=/dev/rdisk0s1

для ус­та­нов­ки за­гру­зоч­но­го сек­то­ра раз­де­ла HFS+.

� Шаг 7 Мон­ти­ру­ем раз­дел –

mount_hfs /dev/disk0s1 /mnt

и ко­пи­ру­ем файл –

cp /usr/standalone/i386/boot /mnt/

(соб­ст­вен­но, сам за­груз­чик). От­мон­ти­ру­ем – umount /mnt – и пе­ре­за­гру­зим­мся – shutdown -r now. Ус­та­нов­ка за­вер­ше­на.

Пер­вое зна­ком­ст­во

За­груз­ка мо­жет пой­ти нор­маль­но, а мо­жет и за­вис­нуть (“Still waiting for root device”) – мы не смог­ли вы­яснить, с чем это свя­за­но. Во вто­ром слу­чае сле­ду­ет пе­ре­за­гру­зить­ся – иногда несколь­ко раз. По­сле успеш­ной за­груз­ки ви­дим при­гла­шение вхо­да в сис­те­му и ошиб­ки нена­строе­но­го mDNSResponder. Пе­ре­во­дим стро­ку и вхо­дим как root. Для на­ча­ла хо­те­лось бы по­ре­ко­мен­до­вать ском­пи­ли­ро­вать ста­рый до­б­рый MC – конеч­но, мож­но обой­тись и без него, но с ним удобнее.

С ком­пи­ля­ци­ей при­дет­ся по­во­зить­ся: необ­хо­ди­мо ма­ло то­го что ска­чать как соб­ст­вен­но MC, так и все необ­хо­ди­мые за­ви­си­мо­сти, но еще и пе­ре­дать их на вир­ту­аль­ную ма­ши­ну. А ка­ким об­ра­зом? Сеть-то не на­строе­на. Един­ст­вен­ный бо­лее-менее доступ­ный путь – ис­поль­зо­вать ISO-об­раз.

По­сле то­го, как соз­да­дим и под­мон­ти­ру­ем об­раз дис­ка (на вся­кий слу­чай – по­ря­док дей­ст­вий: в ка­та­ло­ге /Volumes соз­дать пап­ку cdrom, по­том смон­ти­ро­вать диск ко­ман­дой mount_cd9660 /dev/disk1s0 /Volumes/cdrom. Ес­те­ст­вен­но, об­раз уже дол­жен быть под­го­тов­лен для ис­поль­зо­вания в вир­ту­аль­ной ма­шине. Спе­ци­фи­ка Darwin. ), необ­хо­ди­мо ско­пи­ро­вать все фай­лы в до­машний ка­та­лог. Ко­ман­да ко­пи­ро­вания стан­дарт­ная; един­ст­вен­ное, что на­до от­ме­тить – Darwin стран­но ото­бра­жа­ет фай­лы на ISO9660, по­это­му ко­пи­ро­вать луч­ше по мас­ке, а раз­ар­хи­ви­ро­вать с ис­поль­зо­ванием ав­то­до­полнения по кла­ви­ше , бла­го оно име­ет­ся.

Да! Пе­ред на­ча­лом ком­пи­ля­ции вы­полните сле­дую­щие ко­ман­ды:

– ус­та­нав­ли­ва­ет ми­ни­маль­ную вер­сию ОС;

– то­же по­нят­но, но для тех, ко­му не­по­нят­но – ука­зы­ва­ет­ся путь, ку­да при ком­пи­ля­ции бу­дут скла­ды­вать­ся биб­лио­те­ки.

Соб­ст­вен­но ком­пи­ля­ция за­ви­си­мо­стей про­ис­хо­дит дол­го и нуд­но – рас­па­ков­ка (tar xzvf имя_ар­хи­ва), пе­ре­ход в ка­та­лог, configure, make, make install, рас­па­ков­ка, пе­ре­ход в ка­та­лог. важ­но лишь, в ка­ком по­ряд­ке – а он сле­дую­щий: pcre, pkg-config, gettext, slang и, на­конец, glib.

За­ви­си­мо­сти ском­пи­ли­ро­ва­лись – пе­ре­хо­дим к соб­ст­вен­но mc. Тут дей­ст­ву­ем поч­ти так же – но configure необ­хо­ди­мо вы­полнить с оп­ци­ей —with-screen=slang. И по­сле вы­полнения make install бу­дет нам сча­стье – ском­пи­ли­ро­ван­ный mc под Darwin

Но сча­стье ред­ко бы­ва­ет пол­ным – по неиз­вест­ным при­чи­нам в тек­сто­вом ре­жи­ме в ОС от Apple не ра­бо­та­ют функ­цио­наль­ные кла­ви­ши. По слу­хам, они ра­бо­та­ют в гра­фи­че­­ском тер­ми­на­ле – но ком­пи­ля­ция X-сер­ве­ра и ка­ко­го-ли­бо окон­но­го менед­же­ра вы­хо­дит за рам­ки этой ста­тьи. А что же де­лать с функ­цио­наль­ны­ми кла­ви­ша­ми? При­дет­ся ис­поль­зо­вать фо­кус – вме­сто функ­цио­наль­ных кла­виш – mc по­зво­ля­ет ис­поль­зо­вать ком­би­на­цию + циф­ра от 1 до 0. Не са­мый удоб­ный спо­соб, да, но с этим ниче­го не по­де­ла­ешь.

Прой­дем­ся немно­го по де­ре­ву ка­та­ло­гов – оно, де­ре­во, силь­но от­ли­ча­ет­ся от при­выч­но­го нам. И не сто­ит за­бы­вать, что Darwin – «де­ск­топ­ная ОС без де­ск­то­па», ес­ли мож­но так вы­ра­зить­ся, по­это­му неко­то­рые эле­мен­ты там при­сут­ст­ву­ют лишь как за­глуш­ки. Итак, зрим в ко­рень. и вот ка­кие ка­та­ло­ги мы там ви­дим.

» Ка­та­лог /.Trashes как раз и яв­ля­ет­ся за­глуш­кой – в Mac OS X он вы­пол­ня­ет функ­цию кор­зи­ны для су­пер­поль­зо­ва­те­ля.

» Ка­та­лог /.vol – за­га­доч­ный ка­та­лог, где на­хо­дит­ся еще один (или бо­лее) ка­та­лог с циф­ро­вым именем. Но ес­ли по­смот­реть вы­вод ко­ман­ды mount, ста­но­вит­ся по­нят­ным, что к оно­му ка­та­ло­гу под­мон­ти­ро­ва­на псев­до­фай­ло­вая сис­те­ма volfs, на­зна­чение ко­то­рой из на­звания, впро­чем, не ста­но­вит­ся менее за­га­доч­ным. Дан­ная фай­ло­вая сис­те­ма пред­на­зна­че­на для досту­па к фай­лам не по имени, а по inode. Это бы­ло необ­хо­ди­мо для сты­ков­ки POSIX и Carbon API, ко­то­рый ныне (2012 год) счи­та­ет­ся уже уста­рев­шим, но в вер­сии Mac OS X, осно­ван­ной на опи­сы­вае­мом в дан­ном раз­де­ле Darwin 8.0.1, был вполне се­бе жи­вым.

» /AppleInternal – со­дер­жит неко­то­рые за­го­ло­воч­ные фай­лы.

» /Applications – опять же, пред­на­зна­чен для OS X. Ту­да обыч­но уста­нав­ли­ва­ют­ся несис­тем­ные при­ло­жения c GUI, раз­ра­бо­тан­ные спе­ци­аль­но для ОС от Apple. Ин­те­рес­но, что в Darwin при­сут­ст­ву­ет од­но та­кое при­ло­жение, хо­тя GUI там и в по­мине нет – со­от­вет­ст­вен­но, да­же и пы­тать­ся его за­пустить не сто­ит.

» /Developer со­дер­жит до­ку­мен­та­цию, при­ме­ры ис­ход­ных ко­дов и шаб­ло­ны про­ек­тов мо­ду­лей яд­ра и рас­ши­рений яд­ра – разница ме­ж­ду ними бу­дет по­яснена чуть поз­же.

» /Library со­дер­жит неко­то­рые важ­ные кон­фи­гу­ра­ци­он­ные фай­лы – в ча­ст­но­сти, файл /Library/Preferences/SystemConfiguration/com.apple.Boot.plist, необ­хо­ди­мый для за­груз­чи­ка, и неко­то­рые ло­ги.

» /Network – по всей ви­ди­мо­сти, слу­жит для мон­ти­ро­вания се­те­вых фай­ло­вых сис­тем.

» /System со­дер­жит под­ка­та­лог Library, бли­жай­шим ана­ло­гом ко­то­ро­го в Linux яв­ля­ет­ся /lib. В нем при­сут­ст­ву­ют фрейм­вор­ки при­ло­жений, мо­ду­ли и рас­ши­рения яд­ра, мо­ду­ли Perl.

» /Users со­дер­жит до­машние ка­та­ло­ги поль­зо­ва­те­лей и в этом смыс­ле со­вер­шен­но иден­ти­чен /home.

» /Volumes ана­ло­ги­чен /mnt и /media. Ка­та­ло­ги, соз­дан­ные в нем поль­зо­ва­те­лем, су­ще­ст­ву­ют до сле­дую­щей пе­ре­за­груз­ки – уч­ти­те это, когда бу­де­те в сле­дую­щий раз мон­ти­ро­вать ком­пакт-диск.

» /bin, /dev, /sbin, /usr, /opt – объ­яс­нять не бу­дем, и так все по­нят­но. А вот ка­та­ло­ги /etc, /tmp и /var на са­мом де­ле яв­ля­ют­ся сим­во­ли­че­­ски­­ми ссыл­ка­ми на со­от­вет­ст­вую­щие ка­та­ло­ги в /private.

Ес­ли уж за­гля­ну­ли в ка­та­лог /etc, да­вай­те в фай­ле profile ис­пра­вим пе­ре­мен­ную PATH, до­ба­вив в чис­ло пу­тей /usr/local/bin, и до­ба­вим пе­ре­мен­ные LIBDIR и MACOSX_DEPLOYMENT_TARGET (зна­чения см. ранее) – на слу­чай, ес­ли чи­та­те­лю за­хо­чет­ся по­уп­раж­нять­ся в ком­пи­ля­ции че­го-ли­бо POSIX-со­вмес­ти­мо­го. В прин­ци­пе, мож­но да­же по­пы­тать­ся ском­пи­ли­ро­вать све­жие вер­сии яд­ра и ба­зо­вых ути­лит, бу­де чи­та­тель ока­жет­ся же­ст­ким из­вра­щен­цем – ав­тор этих строк не ри­ск­нул по­ста­вить по­доб­ный экс­пе­ри­мент.

Ар­хи­тек­тур­ные осо­бен­но­сти

Как и древние рим­ляне, начнем с яй­ца – то есть с яд­ра. Яд­ро у ОС от Apple, как уже сказано, осно­ва­но на мик­ро­яд­ре Mach. Но «осно­ва­но на мик­ро­яд­ре» во­все не оз­на­ча­ет, что ар­хи­тек­ту­ра мик­ро­ядер­ная: ар­хи­тек­ту­ра гиб­рид­ная, и услов­но со­сто­ит из трех сло­ев.

» В са­мом низу яд­ра ле­жит слой Mach, ко­то­рый от­ве­ча­ет за HAL (не сто­ит ис­кать дан­но­го тер­ми­на в до­ку­мен­та­ции, мы его ис­поль­зу­ем для уп­ро­щения), управ­ление про­цес­со­ра­ми, вы­тес­няю­щую мно­го­за­дач­ность, управ­ление па­мя­тью, внут­ри­ядер­ный IPC, под­держ­ку «мяг­ко­го» ре­аль­но­го вре­мени и, на­конец, за от­лад­ку яд­ра – в ка­че­­ст­ве от­лад­чи­ка на от­ла­жи­ваю­щей ма­шине ис­поль­зу­ет­ся GDB.

» Слой BSD ле­жит вы­ше и вклю­ча­ет реа­ли­за­цию про­цес­сов и сиг­на­лов, ба­зо­вую мо­дель безо­пас­но­сти, API POSIX, сис­тем­ные вы­зо­вы, под­держ­ку се­ти и мно­гое дру­гое.

» Слой I/O Kit – это фрейм­ворк, по­зво­ляю­щий раз­ра­бот­чи­кам ис­поль­зо­вать ог­раничен­ный на­бор воз­мож­но­стей C++ для объ­ект­но-ори­ен­ти­ро­ван­но­го про­грам­ми­ро­вания драй­ве­ров.

В прин­ци­пе, эти слои не на­столь­ко чет­ко раз­де­ле­ны, по­это­му неко­то­рые мо­гут еще что-то вы­де­лить, а неко­то­рые, на­обо­рот, пред­поч­тут что-то уб­рать; но об­щая кар­ти­на та­ко­ва.

Xnu (так на­зы­ва­ет­ся это яд­ро; рас­шиф­ро­вы­ва­ет­ся же эта аб­бре­виа­ту­ра как. да-да, Xnu is not Unix – Стол­лме­ну впо­ру об­ви­нять Apple в пла­гиа­те) по­зво­ля­ет под­клю­чать к се­бе рас­ши­рения – так на­зы­вае­мые kernel extensions, в един­ст­вен­ном чис­ле kext. Рас­ши­рения мо­гут со­сто­ять из од­но­го или бо­лее мо­ду­лей яд­ра. Мо­дуль яд­ра (Kmod) яв­ля­ет­ся минималь­ной единицей ко­да, ко­то­рую мож­но за­гру­зить в яд­ро.

В Darwin ис­поль­зу­ет­ся фор­мат ис­пол­няе­мых фай­лов Mach-O и под­дер­жи­ва­ет­ся тех­но­ло­гия, осно­ван­ная на нем – муль­ти­ар­хи­тек­тур­ные ис­пол­няе­мые фай­лы. От­ме­тим, что Apple при­ме­ня­ла ее для пе­ре­но­са OS X с ар­хи­тек­ту­ры PowerPC на Intel.

Те­перь рас­смот­рим та­кие спе­ци­фи­че­­ские осо­бен­но­сти Darwin, как «па­ке­ты [bundles]» и фрейм­вор­ки (при­ме­чание: здесь и да­лее речь мо­жет пой­ти о ве­щах, ко­то­рые не под­дер­жи­ва­ют­ся в вер­сии Darwin 8.0.1 – сия вер­сия 2005 го­да, а сей­час уже, по­чи­тай, 2012 за­кан­чи­ва­ет­ся ско­ро). «Па­ке­том» в дан­ном кон­тек­сте на­зы­ва­ет­ся на­бор свя­зан­ных ре­сур­сов, в чис­ло ко­то­рых мо­гут вхо­дить испол­няе­мые фай­лы, изо­бра­жения, ау­дио, за­го­ло­воч­ные фай­лы и да­же дру­гие па­ке­ты. Яс­ное де­ло, что та­кой «па­кет» – по­ня­тие аб­ст­ракт­ное, а по­се­му при­ве­дем кон­крет­ный при­мер – фрейм­ворк. Фрейм­ворк – на­бор, со­стоя­щий из од­ной или бо­лее ди­на­ми­че­­ских биб­лио­тек с за­го­ло­воч­ны­ми фай­ла­ми, до­ку­мен­та­ци­ей, ло­ка­ли­за­ци­ей и со­пут­ст­вую­щи­ми про­грам­ма­ми для об­лег­чения ра­бо­ты. Да­вай­те рас­смот­рим неко­то­рые фрейм­вор­ки, вхо­дя­щие в со­став ОС от Apple.

Уже упо­ми­нав­ший­ся ранее I/O Kit – фрейм­ворк, со­стоя­ший из двух час­тей: ре­жи­ма поль­зо­ва­те­ля и ре­жи­ма яд­ра. Часть поль­зо­ва­тель­ско­го ре­жи­ма от­ве­ча­ет за про­стой доступ к обо­ру­до­ванию из при­ло­жений, а часть ре­жи­ма яд­ра – за ба­зо­вую ие­рар­хию клас­сов и под­держ­ку C++. Мы уже от­ме­ча­ли, что C++ в I/O Kit несколь­ко ог­раничен. За­клю­ча­ет­ся это в от­сут­ст­вии та­ких ве­щей, как шаб­ло­ны, ис­клю­чения, RTTI и мно­же­ст­венн­ное на­сле­до­вание. Тем не менее, это нис­коль­ко не ме­ша­ет раз­ра­бот­чи­кам пи­сать драй­ве­ры.

CoreFoundation – фрейм­ворк, обес­пе­чи­ваю­щий ба­зо­вые воз­мож­но­сти для про­грамм, на­пи­сан­ных на Objective-C, та­кие как раз­бор XML-фай­лов, доступ к ре­сур­сам че­рез URL, управ­ление спи­ска­ми свойств и мно­гие дру­гие.

Для об­лег­чения ра­бо­ты с се­тью пред­на­зна­чен фрейм­ворк CFNetwork. Он де­ла­ет удоб­ной ра­бо­ту с со­ке­та­ми, соз­дание SSL/TLS-со­единений, раз­ре­шение имен. Раз­ра­бот­чик же­ла­ет ра­бо­тать с HTTP или FTP? Ни­ка­ких про­блем – за это так­же от­ве­ча­ет дан­ный фрейм­ворк.

Нель­зя не упо­мя­нуть и о фай­ло­вой сис­те­ме HFS+. Осо­бен­но­стя­ми она по со­вре­мен­ным мер­кам не от­ли­ча­ет­ся (раз­ве что под­держ­ка лю­бых сим­во­лов Юнико­да в имени фай­ла, за ис­клю­чением сим­во­ла NUL), но все же пе­ре­чис­лим ее воз­мож­но­сти. Это жур­на­ли­ро­вание, B-де­ре­вья для эф­фек­тив­но­го по­ис­ка фай­лов, про­зрач­ное сжа­тие.

А как об­сто­ят де­ла с безо­пас­но­стью? О, с безо­пас­но­стью все хо­ро­шо, не со­мневай­тесь! Вот неко­то­рые воз­мож­но­сти и тех­но­ло­гии, так или ина­че от­но­ся­щие­ся к ней:

» ASLR Тех­но­ло­гия, раз­ме­щаю­щая в ОЗУ неко­то­рые кри­тич­но важ­ные сис­тем­ные дан­ные слу­чай­ным об­ра­зом. Это серьезно ослож­ня­ет экс­плуа­та­цию ря­да атак, тре­бую­щих знания их рас­по­ло­жения.

» NX-бит За­пре­ща­ет вы­полнение ко­да в сте­ке и в ку­че.

» Пра­ва досту­па Стан­дарт­ная мо­дель Unix.

» ACL Рас­ши­рен­ная сис­те­ма прав досту­па; по­зво­ля­ет ин­ди­ви­ду­аль­но для ка­ж­до­го поль­зо­ва­те­ля на­зна­чать пра­ва досту­па к фай­лам.

» Kauth Ман­дат­ная сис­те­ма кон­тро­ля досту­па; ана­ло­гич­на SELinux.

» Шиф­ро­вание раз­де­ла под­кач­ки.

» IPSec Его реа­ли­за­цию, как, впро­чем, и в Linux,ста­щи­ли из FreeBSD.

» Под­пи­сы­вание ис­пол­няе­мых фай­лов Воз­мож­но тео­ре­ти­че­­ски.

Не­объ­ят­ное объ­ять нель­зя – nemo omnia potest scire – но ав­тор и не ста­вил та­кой це­ли, он ста­вил цель за­ин­те­ре­со­вать чи­та­те­ля. Хо­те­лось бы на­де­ять­ся, что у него это по­лу­чи­лось.

Ито­ги

Впе­чат­ление о дан­ной ОС сло­жи­лись неод­но­знач­ные: с од­ной сто­ро­ны, ин­те­рес­но по­смот­реть на внут­рен­но­сти ком­мер­че­­ской ОС от Apple, а с дру­гой. Darwin яв­но не яв­ля­ет­ся сис­те­мой для на­столь­но­го ис­поль­зо­вания. Пред­принима­лись по­пыт­ки соз­дать ди­ст­ри­бу­тив на осно­ве этой ОС, но осо­бо­го успе­ха они не по­лу­чи­ли. Мо­жет быть, вый­дет у ко­го-нибудь из на­ших чи­та­те­лей. |

Па­ке­ты, не­об­хо­ди­мые для ком­пи­ля­ции MC вер­сии 4.6.1:

Update Подробнее о новом iPhone и Картах в iOS 6 [Update]

Favorite

В закладки

9to5Mac «скормили» своим читателям новую порцию проверенных ими, но никем больше не проверенных данных о новом iPhone. iOS 6? Появился ещё один размытый снимок, только и всего.

Самое главное — это версия ядра операционной системы смартфона:

Darwin Kernel Version 13.0.0: XXX May XX XX:XX:XX PDT 2012; root:xnu-21XX.X.XXX/DEVELOPMENT_ARM_S5L8950X

В конце строки содержится идентификатор процессора: ARM S5L8950X. Внимание на последние три символа: 50X. Apple A5 в iPhone 4S и iPad 2 обозначается как 40X, а A5X из нового iPad — как 45X. Другими словами, iPhone 2012 года, скорее всего, будет оснащён ещё более производительным чипом. Как его назовут — непонятно. Судя по внутренним документам, Apple намеревается оставить префикс «A5».

Улучшится и графика: видеоподсистема (по-прежнему монтированная на одном кристалле с процессором) обозначена как SGX543RCx, где x — это дополнительный идентификационный символ. Про характеристики ничего не известно, поскольку «технически» чип ещё не существует.

Если вернуться к версии ядра, то можно сравнить её с аналогом в последней сборке OS X Mountain Lion:

Darwin Kernel Version 12.0.0: Tue May 8 17:30:17 PDT 2012; root:xnu-2050.5.8~1/RELEASE_X86_64 x86_64

Там число 13, тогда как здесь — 12. В некотором смысле iOS 6 новее, чем Mountain Lion.

С оперативной памятью всё просто: ждём 1 гигабайт. Его хватает в новом iPad — хватит и в новом iPhone.

9to5Mac отмечают, что тестовый образец, к которому имеет доступ их связной, содержит LTE-чип Qualcomm из того же iPad. Это странно, поскольку для iPhone Qualcomm готовит специальную версию аппаратного модема с низким энергопотреблением. Впрочем, указанный образец явно не финальный, т.к. его даже от сети отключать нельзя.

С учётом вышесказанного давайте ещё раз распишем предполагаемые технические характеристики iPhone (номер модели — N41AP, iPhone5,1):

  • Дисплей: 4 дюйма, 1136 x 640
  • Процессор: ARM S5L8950X
  • Графика: PowerVR SGX543RCx
  • RAM: 1 Гб

По поводу даты выхода есть свежая информация, дескать, работа над смартфоном идёт стахановскими темпами и Apple может успеть закончить (читай — выпустить) его до октября. Не быть iPhone 4S флагманом ровно год, ох, не быть.

На сегодняшний день это все данные о новом iPhone. Обратимся к Картам, и, в частности, к кнопке активации трёхмерного режима:

Это новый снимок, а вот старый, от BGR:

Обескуражены? Просто клавишу «3D», как мы и говорили ранее, разместят поверх интерфейса только в версии для iPad, а на iPhone нужно будет ещё «отогнуть» угол карты. Защита от случайных нажатий, только и всего. [9to5mac]

Update. Деятели японского блога Macotakara сравнили переднюю панель предполагаемого устройства с iPhone 4S:

(Проголосуйте первым за статью!)
�� Хочешь больше? Подпишись на наш Telegram.

Favorite

В закладки

9to5Mac «скормили» своим читателям новую порцию проверенных ими, но никем больше не проверенных данных о новом iPhone. iOS 6? Появился ещё один размытый снимок, только и всего. Самое главное — это версия ядра операционной системы смартфона: Darwin Kernel Version 13.0.0: XXX May XX XX:XX:XX PDT 2012; root:xnu-21XX.X.XXX/DEVELOPMENT_ARM_S5L8950X В конце строки содержится идентификатор процессора: ARM S5L8950X.

Юный ОС-Ризёчер №0x01

. но создатели GNU/Darwin с этим не согласны. Дарвин — это клон МакОС, точнее ядра Mach. Гнутый Дарвин стремится быть самым свободным дистрибутивом, основанным на ядре Darwin/Mach. Free Software Foundation и RMS объявили о награде в $3.14159 каждому, кто найдет проприетарный код. То ли они испугались, что Apple на них обидится, как SCO, то ли. и вот тут мысль останавливается.

На пятом небе от счастья!

16 сентября 2003 года стал переломным моментом в жизни всех фанатов SkyOS. Состоялось голосование, которое должно было решить: какой у этой операционки будет пользовательский интерфейс. Каждый разработчик сказал свое веское слово, в результате чего после всех подсчетов победителем был признан Wind UI. Это профессиональное, современное дизайнерское решение ознаменовало собой рассвет новой эры SkyGI 5.0. Вместо того, чтобы копировать Windows, MacOS или что-то еще, решено было действовать творчески и создать новую интерфейсную парадигму, предлагающую новые способы взаимодействия с компьютерами. Ровно через месяц стало известно, что все приложения, предназначенные для настройки графики, звука, тем рабочего стола, сети, устройств и всего остального, были переписаны. Теперь это куча DLL, доступных через единое приложение под названием System manager. Действительно, оригинально.

Аллергическая реакция на БГ

На публичное обозрение выставлен релиз ReactOS. Проект был на неделю заморожен в своем развитии с целью вычищения багов. Результат — версия 0.1.4 с улучшенными GUI и PnP, а также с зачатками OpenGL. Кроме того, изменения коснулись драйверов (мышки, скази) и поддержки сети (все еще неработоспособной, однако). ReactOS — это попытка создать NT-совместимую ГНУтую ОС. В режиме командной строки запускаются некоторые текстовые утилиты, Midnight Commander, а также GCC. Можно компилировать ReactOS под ним же самим, а ведь это уже немало :).

История проекта непроста и занимательна. Когда-то очень давно (году так эдак в 1996) несколько человек организовали группу FreeWin95, которая, как нетрудно догадаться из ее названия, должна была представить миру свободный клон самой великой (на тот момент времени) и ужасной (до сих пор содрогаюсь, вспоминая) операционки от мелкомягких. Как и многие другие амбициозные опенсорсные проекты, он безнадежно застрял еще на стадии разработки дизайна системы. Проще говоря — не было никакого результата, кроме бесконечных споров о том, что делать и кто виноват. Свободная Чикака так и осталась несбыточной мечтой (WINE не в счет — это эмулятор, а не ОС, что нисколько не умаляет его достоинств).

В конце 1997 года появился проект ReactOS, но ничего кроме названия у него не было. Координатором стал Джейсон Филби — запомните это имя! Возможно, когда-нибудь он, как и Линус Торвальдс, удостоится великой чести — его портрет будет использоваться в качестве мишени для игры в дартс в охвисе Билли Гатеса :). Первым делом он призвал всех участников сменить приоритеты — NT вместо 95, реальный код вместо пустопорожней болтовни. Полностью оправдывая свое название (react — реагировать), проект уже в феврале 1998 мог похвастаться первыми строчками исходников. На самом деле это имя символизирует реакцию OpenSource-сообщества на захват рынка операционных систем корпорацией М$, которая стала фактическим монополистом.

Пройдя долгий и трудный путь, ReactOS обладает довольно стабильным ядром и многими готовыми API, что должно многократно ускорить процесс разработки. Количество девелоперов постоянно растет, к тому же помогает взаимовыгодное сотрудничество с командой WINE (Windows Emulator). Возможно, когда-нибудь на ядре ReactOS будут построены подсистемы для работы с приложениями Java, OS/2, DOS, и даже какие-нибудь другие (интересно, какие? может быть, Лынукс?) но пока что об этом рано говорить. Как и о совместимости с более поздними версиями NT — 5.0 (Win2000) и 5.1 (WinXP), хотя несколько графических Win2K-приложений запускаются уже сейчас. В любом случае, желаю этой многообещающей ОС процветания и светлого будущего.

Пингвин на троне.

Какие операционные системы наиболее распространены? Нет, это не разномастные Винды (какое облегчение!) и не многочисленная армия Юникс-клонов (лялих, бздя и все-все-все. ), а внедряемые ОСи, под которыми крутяться мобильники, проигрыватели музыки\видео, а также холодильники, стиральные машины, чайники и прочая мелочь пузатая. Здесь уместно вспомнить QNX, VxWorks, Embedded Linux, WinCE, а также DOS, который в силу своей компактности часто используется в этом качестве. Но я расскажу про The Real-time Operating system Nucleus, более известный как TRON. Он должен был стать унифицированной открытой архитектурой, которая позволила бы заменить разнородные компьютерные системы на «общее компьютерное окружение». Началось все это в Японии, в далеком 1984 году.

Так уж исторически сложилось, что каждая японская заибацу писала свой собственный внедряемый код, что приводило к ненужному распылению средств, потерям времени (а значит, и денег), но главное — к появлению множества аналогичных, но несовместимых систем. Первой открытой спецификацией для архитектуры TRON стал Industrial TRON — стандартное ядро реального времени с открытыми исходниками, способное работать в любом внеядряемом окружении. Неудивительно, что практически все японские производители электроники приняли его в качестве фактического стандарта. Сейчас ITRON работает на трех миллиардах процессоров самых разных архитектур. Затем было создано еще несколько спецификаций, наиболее известные из которых — Business TRON (BTRON), обладающий многоязычным программируемым графическим интерфейсом, и Central TRON (CTRON) — дальний родственник Юникса.

В 1989 году одна из самых знаменитых японских заибацу — Мацусита-Котобуки Электроникс Индастриз Лимитед (более известная нам по торговой марке «Панасоник») представила BTRON PC, который имел просто ошеломляющие возможности. Он базировался на процессоре Intel 80286 c частотой 8МГц, комплектовался двумя метрами рамы, но при всем при этом был способен проигрывать (!) цветное (!!) видео (. ) в отдельном окне. Когда японское правительство пообещало поставить эти машинки в каждой школе, это понравилось всем, кроме американцев, которым всегда и везде чудится попрание их интересов. Может быть, они решили, что этот шаг станет вторым Пирл-Харбором, только экономическим, а не военным? Ведь уже тогда Аммер-Ка снимала почти все сливки с ИТ-рынка, что заметно хотя бы по количеству инсталляций MS-DOS на тот момент времени. Майкрософт была монополистом едва ли не с рождения. Кстати, BTRON PC изначально предполагал двойную загрузку: можно было делать выбор между прогрессивным БиТроном и убогой МС-ДОСей. Несмотря на это, американское правительство объявило инициативу японцев «фактическим и потенциальным захватом рынка» и пообещало устроить им Хиросиму с Нагасакой (в переносном смысле). Позже они отказались от своих слов, но было поздно: большинство компаний свернули все работы, имевшие отношение к проекту TRON.

Тем не менее, TRON выжил, и, судя по всему, будет жить долго и счастливо, доказательством чего могут служить миллионы устройств (гаджеты, бытовые приборы, автомобильная электроника, роботы и даже спутники), работающих на нем. В Китае его используют для автоматизации производства. Японский телекоммуникационный гигант NTT выбрал именно CTRON и сделал его стандартом де-факто для японской индустрии связи. Бонзы хай-тека оценивают ITRON как «номер один на рынках США и Японии». Создан T-Engine Forum, целью которого является создание стандартизированной среды разработки внедряемых приложений, основанных на ITRON. Поставщики проприетарных решений в дикой панике. во всяком случае, должны быть �� Все-таки участниками этого форума являются две с половиной сотни компаний, а это огромные ресурсы, причем не только финансовые.

Существуют ли другие открытые RTOS? Лично я могу назвать только RTLinux (Real-Time Linux) и Jaluna, работающую поверх того же линукса (создана бывшими разработчиками ChorusOS). Но линукс — это все же в первую очередь макроядро, предназначенное для обычных десктопов и серверов. Кто бы мог предположить еще несколько лет назад, что Линукс будут запихивать в часы или заставлять работать в реальном времени? Поэтому RTLinux переключается между задачами тысячи раз в секунду (ITRON — миллионы) и требует мегабайты памяти (ITRON — килобайты). Линуксоиды, которые стремятся заполнить абсолютно все рыночные ниши, напоминая мне Майкрософт (в хорошем смысле этого слова :), ведь этому у МС действительно можно и нужно учится), не могли пройти мимо ТРОНа.

В этом году разработчик внедряемых линукс-решений MontaVista Software начал совместно с T-Engine Forum работу над проектом T-Linux. Это будет расширение ядра TRON (точнее, его разновидности под названием T-Kernel), позволяющее выполнять программы для обоих ОС — ITRON и Linux. Доктор Кен Сакамура, профессор Токийского университета, председатель форума T-Engine, отец-основатель проекта TRON, а также его главный идеолог и вдохновитель, заявил: «мы довольны сотрудничеством с MontaVista Software с целью упрощения разработки внедряемых приложений, использующих возможности реального времени T-Kernel, позаимствовав такие достоинства Линукса, как богатая поддержка сети, открытость и соответствие стандартам».

Вы будете очень смеятся, но Майкрософт тоже присоединилась к T-Engine Forum с целью выработки спецификаций, позволяющих использовать единую аппаратную платформу для работы Windows CE и T-Kernel. Это, конечно, вовсе не означает сотрудничества с T-Linux. К сожалению. или к счастью? Я обязательно расскажу об этом, а также о многом другом в следующей своей статье про TRON. Вот, например, интересный вопрос: а на PC будет работать T-Linux? ��

unixforum.org

вот вопрос есть вроде как я понял самостоятельная ОС Darwin включающая NEXTSTEP и mach kernel если я правильно все понял.

возник вопрос можно ли поставить OC Darwin на x86 и будет ли ето легально и встанет маковсий софт на ето платформу ?

M$ Windows для пользователей и геймеров
MacosX для дизайнеров и музыкантов
Linux для программистов и хакеров
*BSD для серверов

Спасибо сказали:
diesel Бывший модератор Сообщения: 5989 ОС: OS X, openSuSE, ROSA, Debian Контактная информация:

Re: Darwin OS

Сообщение diesel » 03.05.2010 14:08

03.05.2010 13:34

вот вопрос есть вроде как я понял самостоятельная ОС Darwin включающая NEXTSTEP и mach kernel если я правильно все понял.

Darwin — это открытая POSIX-совместимая операционная система, выпущенная Apple Inc. в 2000 году. Она совмещает код, написанный самой Apple, с полученным от NeXTSTEP, FreeBSD и прочих свободных проектов. Darwin представляет собой набор основных компонентов, используемых в Mac OS X и iPhone OS.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *