- Национальная библиотека им. Н. Э. Баумана Bauman National Library
- Персональные инструменты
- Darwin
- Содержание
- История
- Устройство
- Поддержка аппаратного и программного обеспечения
- Производные проекты
- Талисман
- Хронология версий
- Инструкции по установке
- В яблочко! Краткий обзор ОС Darwin 7.0 на платформе X86 (MAC OS X 10.3 Jaguar)
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Darwin
Разработчик | Apple Inc. |
---|---|
Написана на | C, C++, Objective-C |
Линейка ОС | Unix (BSD) |
Состояние разработки | Актуальное |
Исходный код | Open source |
Дата первого релиза | 15 November 2000 года ; 20 years ago ( 2000-11-15 ) |
Платформы | PowerPC, x86, ARM |
Ядро (тип) | Гибридное |
По умолчанию пользовательский интерфейс | Командная строка |
Лицензия | Mostly Apple Public Source License, with proprietary drivers |
Официальный веб-сайт | opensource .apple .com |
Darwin — это открытая POSIX-совместимая операционная система, выпущенная Apple Inc. в 2000 году. Она совмещает код, написанный самой Apple, с полученным от NeXTSTEP (система выпущена в 1989), FreeBSD (выпущена в 1993) и прочих свободных проектов. Система Darwin представляет собой набор основных компонентов, используемых в OS X и iOS. Она совместима с третьей версией спецификации единой UNIX (SUSv3) и POSIX-приложениями и утилитами. Является основой Mac OS X.
Содержание
История
Darwin — наследник разработанной в NeXT операционной системы NeXTSTEP, первая версия которой вышла в 1989 году. После того, как Apple поглотила NeXT в 1997 году, она объявила, что сделает свою следующую операционную систему на основе OpenSTEP API системы NeXTSTEP. Эта система разрабатывалась в рамках проекта Rhapsody с 1997 года и в 1999 году вышел основанный на этих разработках Mac OS X Server 1.0. В 2000 году Rhapsody был выделен в Darwin, выпущенный как свободное программное обеспечение в рамках публичной лицензии на исходники Apple (APSL) и компоненты Darwin присутствуют в Mac OS X по сей день.
До Darwin 8.0 Apple выпускала исполняемую версию (в виде образа компакт-диска) после каждого крупного выпуска Mac OS X, позволяя устанавливать Darwin на компьютеры с архитектурой PowerPC и Intel x86 как отдельную операционную систему. Мелкие обновления выпускались в виде пакетов, которые можно было установить отдельно. На данный момент Darwin доступен только в исходных кодах, за исключением версии для ARM, которая вообще никак не была выпущена отдельно от iOS.
Устройство
Darwin построен на основе XNU — гибридного ядра, включающего микроядро Mach 3, некоторые части ОС семейства BSD (такие как модель процессов, сетевой стек, виртуальная файловая система) и I/O Kit — объектно-ориентированный API для написания драйверов.
Некоторые преимущества от выбора такого ядра составляет использование формата Mach-O, позволяющего в одном исполняемом файле (включая само ядро) поддерживать несколько архитектур процессоров и возможности SMP в ядре. Гибридный дизайн ядра — это компромисс между гибкостью микроядер и производительностью монолитных решений.
Поддержка аппаратного и программного обеспечения
На данный момент Darwin поддерживает 32- и 64-битные процессоры PowerPC и Intel x86, используемые в Macintosh, а также 32- и 64-битные процессоры ARM, используемые в iPhone, iPod touch, iPad и Apple TV.
Darwin унаследовал от BSD поддержку POSIX API и поэтому множество программ, написанных под различные UNIX-подобные системы, могут быть собраны под Darwin без изменения их исходного кода.
Darwin и Mac OS X используют I/O Kit в своих драйверах, поддерживая одно и то же оборудование, файловые системы и прочее. Apple распространяет Darwin с проприетарными драйверами для своих сетевых карт AirPort.
Darwin не включает в себя многие элементы Mac OS X, такие как Carbon и Cocoa API или композитор Quartz и пользовательский интерфейс Aqua, поэтому он не может запускать приложения для Mac.
Производные проекты
- OpenDarwin
- PureDarwin был запущен в 2007 году как продолжение OpenDarwin.
- Другие
- MacPorts (ранее DarwinPorts)
- GNU-Darwin представляет собой слияние Darwin и семейства операционных систем GNU, а также большой коллекции свободных программ, совместимых с Darwin и Mac OS X. Разработчики позиционируют GNU-Darwin, как свободную ОС, совместимую с Mac OS X и, в тоже время, позволяющую пользователям получить все преимущества СПО. GNU-Darwin всегда был очень резким в отношении защиты свободного программного обеспечения и добился как определенного прогресса в этом направлении, так и в защите цифровых свобод в целом.
- Darwine — порт Wine, который позволяет запускать программное обеспечение Microsoft Windows на Darwin.
- SEDarwin — порт TrustedBSD.Был подключен в Mac ОС x 10.5.
Талисман
Гексли, или Хаксли (англ. Hexley ) — мультяшный утконос, талисман и логотип операционной системы Darwin от компании Apple Inc. Персонаж создан в 2000 году Джоном Хупером.
Имя Hexley отсылает к биологу XIX века Томасу Гексли (англ. Thomas Henry Huxley ) одного из учёных что принял теорию Чарльза Дарвина и всячески её популяризовывал.
Имя Hexley — неправильное написание фамилии Huxley. К тому времени, когда была обнаружена ошибка, было уже слишком поздно что-то менять, и ошибочное название сохранилось. Имя Гексли было выбрано потому, что он был последователем Дарвина, а не за заслуги; и от того, что он талисман системы Darwin.
Одет в костюм чертёнка изображающую Демона BSD (BSD Daemon), талисмана операционных систем BSD.
Хронология версий
- 1.3.1 — Mac OS X 10.0, 10.0.1, 10.0.2, 10.0.3, 10.0.4
- 1.4.1 — Mac OS X X 10.1
- 5.1 — Mac OS X 10.1.1
- 5.2 — Mac OS X 10.1.2
- 5.3 — Mac OS X 10.1.3
- 5.4 — Mac OS X 10.1.4
- 5.5 — Mac OS X 10.1.5
- 6.0 — Mac OS X 10.2 (Jaguar)
- 6.1 — Mac OS X 10.2.1 (Jaguar)
- 6.2 — Mac OS X 10.2.2 (Jaguar)
- 6.3 — Mac OS X 10.2.3 (Jaguar)
- 6.4 — Mac OS X 10.2.4 (Jaguar)
- 6.5 — Mac OS X 10.2.5 (Jaguar)
- 6.6 — Mac OS X 10.2.6 (Jaguar)
- 6.7 — Mac OS X 10.2.7 (Jaguar)
- 6.8 — Mac OS X 10.2.8 (Jaguar)
- 7.0 — Mac OS X 10.3 (Panther)
- 7.1 — Mac OS X 10.3.1 (Panther)
- 7.2 — Mac OS X 10.3.2 (Panther)
- 7.3 — Mac OS X 10.3.3 (Panther)
- 7.4 — Mac OS X 10.3.4 (Panther)
- 7.5 — Mac OS X 10.3.5 (Panther)
- 7.6 — Mac OS X 10.3.6 (Panther)
- 7.7 — Mac OS X 10.3.7 (Panther)
- 7.8 — Mac OS X 10.3.8 (Panther)
- 7.9 — Mac OS X 10.3.9 (Panther)
- 8.0 — Mac OS X 10.4 (Tiger)
- 9.2.0 — Mac OS X 10.5.2 (Leopard)
- 9.3.0 — Mac OS X 10.5.3 (Leopard)
- 9.5.0 — Mac OS X 10.5.5 (Leopard)
- 9.6.0 — Mac OS X 10.5.6 (Leopard)
- 9.7.0 — Mac OS X 10.5.7 (Leopard)
- 9.8.0 — Mac OS X 10.5.8 (Leopard)
- 10.0.0 — Mac OS X 10.6 (Snow Leopard)
- 10.1.0 — Mac OS X 10.6.1 (Snow Leopard)
- 10.2.0 — Mac OS X 10.6.2 (Snow Leopard)
- 10.3.0 — Mac OS X 10.6.3 (Snow Leopard)
- 10.4.0 — Mac OS X 10.6.4 (Snow Leopard)
- 10.5.0 — Mac OS X 10.6.5 (Snow Leopard)
- 10.6.0 — Mac OS X 10.6.6 (Snow Leopard)
- 10.7.0 — Mac OS X 10.6.7 (Snow Leopard)
- 10.8.0 — Mac OS X 10.6.8 (Snow Leopard)
- 11.0.0 — Mac OS X 10.7 (Lion)
- 12.0.0 — OS X 10.8 (Mountain Lion)
- 13.0.0 — OS X 10.9 (Mavericks)
- 14.0.0 — OS X 10.10 (Yosemite)
- 15.0.0 — OS X 10.11 (El Capitan)
- 16.0.0 — OS X 10.12 (Sierra)
Инструкции по установке
Чтобы установить OpenDarwin/x86, Вам необходимо загрузить образ установочного диска.После получения образа Вам необходимо перенести этот образ на CD.
При подготовке системы позаботьтесь о том, чтобы в системе был свободный жёсткий диск. Это убережёт Ваши данные. После изготовления загрузочного диска и подготовки жёсткого диска можно приступать к установке OpenDarwin/x86. Вставьте CD в IDE CDROM привод и перезагрузите систему (не забудьте установить в bios загрузку с CD-Rom).
Загружая с CD-ROM первый экран, который Вы увидете, — bootloader. В момент появления этого экрана можно нажать любую клавишу, после чего загрузчику можно будет передать специальные параметры. Для большинства случаев этого не требуется, поэтому следует подождать пока продолжится загрузка.
После продолжения загрузки будет найдено оборудование, установленное на Вашем компьютере. Система определит винчестеры, после чего предложит:
Здесь необходимо выбрать винчестер, на который предполагается установка. После того, как вы определились с диском, скрипт предложит Вам два возможных продолжения:
- Авторазбиение диска (Уничтожает все содержание диска)
- Ручное разбиение диска, используя fdisk
Если ваш диск уже разделен, Вы получите третий вариант:
3. Использование, существующего раздела
Первый вариант (авторазделение) уничтожит всё содержимое диска и создаст 2 раздела. Маленький раздел для booter и второй раздел под файловую систему Apple UFS. Это — наиболее простой выбор.
Второй вариант (ручное разбиение) — использует OpenDarwin/x86 fdisk. Используйте этот вариант, если точно представляете, как должно выглядеть разбиение Вашего винчестера. При ручном разбиении диска обязательно сделайте резервную копию информации, хранящейся на данном винчестере. Вам следует создать по крайней мере 2 раздела:
- раздел Apple booter размером по крайней мере 1МБ типа 0xAB.
- раздел Apple UFS по крайней мере 800МБ тип 0xA8.
Третий вариант позволит Вам установить OpenDarwin/x86 в уже существующий раздел. Удостоверьтесь, что Вы имеете необходимое разделение на вашем жёстком диске. Установочная программа спросит Вас о выборе разделов под booter и корневую систему. Все данные в этих разделах будут уничтожены. После этого система установит необходимые пакеты в корневую файловую систему.
Теперь необходимо извлечь диск из привода CD-ROM и перезагрузить систему. Как только система будет перезагружена Вы сможете авторизоваться в системе: пользователь — root и пустой пароль. Первое, что необходимо сделать — задать пароль пользователя root.
Источник
В яблочко! Краткий обзор ОС Darwin 7.0 на платформе X86 (MAC OS X 10.3 Jaguar)
Архив номеров / 2004 / Выпуск №8 (21) / В яблочко! Краткий обзор ОС Darwin 7.0 на платформе X86 (MAC OS X 10.3 Jaguar)
Пункт 1 предназначен для установки на пустой диск. В случае, когда не надо иметь на диске несколько систем, выбирайте его. Пункт 3 предназначен для случая, когда место заранее выделено и размечено под операционную систему Darwin (ее идентификатор 0xA8, см. далее по тексту). Если вам не подошли пункты 1 или 3, тогда вспоминаем, что настоящие герои всегда идут в обход и выбирают самый легкий путь. В целом разметка вручную не так и страшна, как кажется на первый взгляд. Выбираем пункт 2. Для начала следует ознакомиться с командами fdisk данной системы. Правильно, нажимаем слово «help» и читаем, что есть в меню. Команд немного, поэтому можно набирать не полную версию, а, например, сокращать до 2 начальных букв. То есть вместо «help» писать «he». Команды прочитаны, пора выделить место под наше сегодняшнее яблочко. Распечатаем содержимое MBR диска, на который будем ставить ОС. Для этого подаем команду «print». Видим теперь, где находятся разделы и свободное место. Для редактирования свободного места подадим команду «edit ID», где ID – это номер раздела, предположим под номером 2 (то есть на текущем диске первичный раздел номер 2). Процедура выбора необходимого размера для нового раздела не составит, я надеюсь, особого труда. Отмечу, что размер считается в секторах, а не в килобайтах. Идентификатор файловой системы для Darwin имеет код 0xA8 (Darwin UFS). Затем следует обновить информацию в MBR (Master Boot Record). Если вы ставите на чистый диск, то в MBR никакого загрузчика нет. Поэтому следует записать в него штатный, идущий в комплекте с OpenDarwin. В случае когда вы устанавливаете на отдельный раздел, все равно придется перезаписать MBR. В этом нет ничего страшного, т.к. дальше в статье разъясняется на примере LILO, как сделать загрузку нескольких операционных систем. Для этих целей предусмотрена команда «update». После этого запишем в MBR непосредственно сведения о разделе, в котором будет жить наша «яблочная» операционная система. Сделаем это с помощью команды «write». Следует помнить, что в MBR записывается новый загрузчик, поэтому если у вас стоял LILO, GRUB или что-то аналогичное, то он будет просто-напросто переписан загрузчиком от Darwin. У меня используется LILO, поэтому я просто добавил в /etc/lilo.conf следующую строчку: И запустив /sbin/lilo, перезаписываю MBR. Теперь при старте можно будет выбрать загрузку с раздела hdd2, где обитает OpenDarwin. Всё. Выставим флаг активности раздела (команда «active ID», где ID – опять-таки нужный нам номер раздела). И завершим разметку подав команду «exit». После этого осталось дождаться, чтобы установились пакеты, входящие в состав компакт-диска. Как говорится, возьмите чай, кофе – сахар по вкусу. В ходе установки внимание обращает тот факт, что все пакеты находятся в упакованном виде. Сжаты они с помощью bzip2. После установки истинно «яблочных» пакетов, таких как AppleUSBAudio, следом идут пакеты с до боли знакомыми названиями. Согласитесь, что такие строчки, как apache-670tar.bz2, bind9-7tar.bz2, gcc-1495tar.bz2, вам о чем-то говорят. В этом нет ничего удивительного, т.к. система, как вы, наверное, слышали, базируется на BSD. Большинство утилит, присутствующих в системе, хорошо знакомы людям, постоянно работающим в Open/Net/FreeBSD, да и тем, кто когда-либо занимался сборкой программ под UNIX. Вернемся к нашему яблоку. Перегружаемся, не забываем вытащить из привода компакт-диск. Далее загрузка будет происходить с нашего жесткого диска. Вот несколько интересных, на мой взгляд, строк, которые можно наблюдать при старте системы. Ваше аппаратное обеспечение отличается от моего, но по аналогии можете сами проследить отличия.
Итак, строка externalClock = 0x85 означает, что шина работает на частоте 133 МГц (переведите цифры в десятичное представление). Строка currentClock = 0x5ba разъясняет, что текущая тактовая частота равна 1466 МГц, а максимальная частота для этого типа процессора равна 2250 МГц (maximumClock = 0x8ca). Стоит разъяснить, откуда появляется надпись «hfs_ mount: invalid HFS+ sig 0x0000». Вы помните, когда мы ставили идентификатор раздела, то поставили 0xA8 (Darwin UFS). В связи с чем делаем вывод, что корневой раздел у нас отформатировался в UFS-формате. Ничего страшного, кроме досадного факта, что файловая система у нас получилась нежурналируемая. Для того чтобы корневая файловая система была в HFS+ формате, при начальной разметке диска следует ставить идентификатор 0xAF (вместо 0xA8). Перевести систему из UFS в HFS+ пока не представляется возможным. Процесс загрузки ОС кардинально не отличается от процесса загрузки системы на FreeBSD. Знакомые конфигурационные файлы в /etc (rc, rc.boot, rc.common, fstab, syslog.conf и т. д.). Итак, перед нами приглашение на вход в систему. Заходим под пользователем root (пароль изначально не установлен). Что необходимо сделать на этом этапе? Попробуем поднять сеть? Давайте сделаем!
Ага, вот и наша сетевая карта (интерфейс en0). Есть два пути – правильный и не очень правильный. Чтобы прописать в Darwin IP-адрес для интерфейса, в /etc/ надо создать файл iftab. Структура его следующая: en0 inet 10.0.0.10 netmask 255.255.255.0 up где 10.0.0.10 – IP-адрес, 255.255.255.0 – маска сети, «up» – интерфейс при загрузке поднять. Стоит отметить, что файла /etc/rc.conf в Darwin просто нет. Поэтому вписать информацию о сетевых адресах по аналогии с FreeBSD не получится. Так вот, правильный путь не работает. Поэтому либо пропишем в /etc/rc.common наш сетевой адрес (для этого найдите функцию CheckForNetwork() – в ее теле и надо прописать), либо идем в системный каталог автозагрузки. Его полный путь – /System/Library/StartupItems. Каталог, отвечающий за сеть, именуется Network. Файл, который необходимо отредактировать, совпадает с названием каталога (его имя тоже Network). Обратите внимание, что на нем установлены биты на исполнение. # Configure network interfaces and host name ConsoleMessage «Initializing network» ipconfig waitall > /dev/null 2>&1 sysctl -w net.inet6.ip6.auto_on=0 > /dev/null sysctl -w net.inet.ip.forwarding=1 > /dev/null sysctl -w net.inet.ip.forwarding=0 > /dev/null ifconfig en0 10.0.0.10 netmask 255.255.255.0 Вот так выглядит файл Network на моей машине. Добавленная строка выделена красным цветом. Небольшое уточнение, выясненное в ходе настройки. При переходе на новую систему не надо забывать, что структурно Darwin не отличается от FreeBSD или, скажем, Linux в плане загрузки модулей. Что я хочу этим сказать. Если у вас сетевая карта опознана, то Darwin подгрузит для нее модуль. Как только модуль подгружен, то можно выставлять IP-адрес и маску. В общем, если выставляете IP-адрес в один из rc-файлов, будьте внимательны. Вставляйте строку после загрузки модулей ядра (они загружаются демоном kextd). На этом этапе сеть у нас готова. Правда, развертка монитора может раздражать. Мы ведь работаем в VESA-режиме. Вертикальная развертка 60 Hz. Давайте зададим текстовый режим консоли. Для этого редактируем файл /Library/Preferences/SystemConfiguration/com.apple.Boot.plist. В оригинале он выглядит так. Да, забыл сказать. Почти все конфигурационные файлы в Darwin хранятся в xml-формате. Что мы сейчас и видим. Для текстового режима необходимо поменять параметр Boot Graphics с Yes на No. Со следующей загрузки будет использоваться текстовый режим. Добавим теперь сервисы ftp, telnet. Редактируем файл /etc/inetd.conf, удаляем ненужные символы, ставим комментарии перед нужными нам службами. Посылаем сигнал, чтобы демон inetd перечитал свои настройки. killall -1 inetd Отлично. Службы появились. Теперь задумаемся, а может, нам еще нужен и веб-сервер? А DNS-сервер? Что ж, пробовать, так все и сразу. Чтобы запускать указанные и некоторые другие службы, при старте Darwin существует файл /etc/hostconfig: # This file is maintained by the system control panels Если параметр установлен в -YES-, тогда при старте указанные службы будут запущены. Запуском apache (строка WEBSERVER=-YES-) занимается файл /System/Library/StartupItems/Apache/Apache. Для DNS-сервера выделен файл /System/Library/Startup Items/BIND/BIND. В целом прослеживается аналогия со структурой системных файлов, например, как в Linux Slackware. В последней скрипты, запускающие определенный сервис, называются /etc/rc.d/rc.ServiceName. Строка MAILSERVER предназначена для почтовой службы postfix, TIMESYNC – для синхронизации времени, CUPS – для сервиса, отвечающего за печать, SMBSERVER – samba-сервис, добавим самостоятельно чуть позднее. Картина вырисовывается следующая. Сначала отрабатываются файлы /etc/rc*, а затем – соответствующие файлы в /System/Library/StartupItems. Чтобы запустить свой сервис, необходимо создать в /System/Library/StartupItems директорию с названием сервиса. В ней должны находиться: исполняемый файл, совпадающий с названием только что созданной директории и информационный файл StartupParameters.plist. Давайте посмотрим, как создать скрипт сервиса, отвечающего за старт samba-сервера. # Include system wide configuration options # Start SMB services ConsoleMessage «Starting SMB services» Description = «smb file server»; start = «Starting Samba»; stop = «Stopping Samba»; Вставляем в файл /etc/hostconfig строчку SMBSER-VER=-YES- и в дальнейшем надо будет выделить samba-ресурсы (файл /etc/smb.conf). Так, со службами все понятно. Установим локальное время в системе. ln -s /usr/share/zoneinfo/Europe/Moscow localtime Для необходимого нам hostname следует подправить файл /etc/rc.boot. Вместо строки по умолчанию «hostname localhost» вставим «hostname DarwinOS». Теперь мы рассмотрим концепцию NetInfo, реализованную в Darwin. Система может искать информацию как в файлах службы NetInfo, так и в «плоских» («plain text») файлах (/etc/fstab, /etc/passwd и др.). Для добавления пользователя, существует утилита niutil (NetInfo Util). С помощью этой же утилиты настраивается большая часть системы. niutil -create / /users/Bob niutil -createprop / /users/Bob shell /bin/tcsh niutil -createprop / /users/Bob realname UncleBob niutil -createprop / /users/Bob home /Users/Bob niutil -createprop / /users/Bob _shadow_passwd Комментарии, надеюсь, излишни? Сначала мы создали объект Bob в иерархии /users, а затем добавили этому объекту свойства. Добавить добавили, но надо и создать ему домашний каталог. chown -R Bob:wheel Bob Теперь у Bob домашняя директория, да и сам он получился по умолчанию в группе wheel. Можно переделать, добавив через niutil пользователю uid и gid. Для получения списка объектов в иерархии NetInfo выполним команду: Получим список корневых иерархий. Для просмотра объекта resolver (аналог /etc/resolver): niutil -read . /locations/resolver Создадим запись в объекте resolver: niutil -createprop . /locations/resolver nameserver 10.0.0.100 Всю базу NetInfo можно просмотреть: nidump -r / / > nidump.txt Приступаем к заключительной части нашей статьи. Готовимся к прыжку в окна X-сервера. В Darwin он называется XDarwin (это портированный в Mac OS проект XFree86). В системе обнаруживается только один оконный менеджер. Это twm. Для запуска twm создадим в домашней директории файл .xinitrc:
Не забываем, что он должен иметь установленным исполняемый бит. # chmod +x .xinitrc А теперь в окна! То есть в X-сервер. Как-то непривычно, не правда ли? Давайте поменяем twm на другой менеджер. Например, blackbox. Сказано – сделано. wget -ct0 http://prdownloads.sf.net/blackboxwm/blackbox-0.65.0.tar.gz mv blackbox-0.65.0.tar.gz sources tar xzvf blackbox-0.65.0.tar.gz make && make install
Теперь, как мне кажется, намного симпатичнее. Большую часть приложений придется собирать из исходников. Кому нравится GNOME, нет проблем. Дело вкуса. Для любителей клубнички даже существует проект darwine, запуск windows-приложений под Darwin (небезызвестный родоначальник – проект wine). Пару слов о модулях, упомянутых в начале статьи. Просмотр информации о загруженных модулях:
В списке я оставил упоминания модулей, названия которых отчасти говорят о платформе и используемом оборудовании.
Apache-сервер, которым комплектуется система, идентифицируется следующим образом: sh-2.05b# telnet darwin 80
Настройка ничем оригинальным не отличается. Интересно, как же идентифицируется система со стороны. Сейчас поглядим. Заходим на удаленную машину. И оттуда запускаем наш сканер портов nmap. # /usr/local/nmap/bin/nmap -v -sS -O darwin
Со стороны не отличишь, действительно ли это MacOSX на платформе PPC или x86. Жаль, что ни Aqua, ни Quartz не предусмотрены. Посмотрим на samba-ресурсы удаленной машины. root# smbclient -L fuji -I fuji 2> /dev/null
Посмотрим на геометрию диска из-под ОС Darwin. root# fdisk /dev/rdisk1
Наглядно и просто. Файловых систем не так уж и много.
Файловая система NTFS доступна только на чтение. Для монтирования файловой системы из-под Linux: # mount /dev/hdd2 /mnt/hd -t ufs -o, ufstype=44bsd На момент написания статьи поддержка из-под Linux только на чтение. Напоследок пара строк о средстве фильтрации трафика. Конечно, это ipfw. Полностью похож на своего *BSD-собрата. Впрочем, это не собрат, а скомпилированный под Darwin оригинальный ipfw. Правила задаются и убираются абсолютно так же, как и в FreeBSD. Более подробно см. в статьях: «Ipfw и управление трафиком в FreeBSD» (№6 журнала «Системный администратор» за 2003 год), «Сам себе антихакер. Защита от хакерских атак с помощью ipfw» (№1 журнала «Системный администратор» за 2004 год). В целом из машины на основе OpenDarwin вполне возможно сделать почтовый релей, систему доступа из Интернета по ppp-соединению, веб-сервер. Основные компоненты по созданию сетевой инфраструктуры уже присутствуют в системе: postfix, mysql, php, apache, bind, perl. Относительно сетевой безопасности – код стека TCP/IP, как говорилось в начале статьи, основан на оригинальном BSD-коде. Если каких-либо программ не хватает, то следует обратиться на сайт [7]. Вполне возможно, что эти программы уже портированы и доступны, как ports. Несколько слов о компиляции программ под Darwin. В системе используется GNU Compiler Collection. Поэтому особых проблем при сборке возникнуть не должно. В Darwin я встретил такое понятие, как «толстые» файлы («fat»-files). То есть при сборке файлы компилируются под несколько архитектур, например, под PPC и под x86. И собираются в один бинарный файл. При выполнении файла происходит определение архитектуры и передается управление на необходимый участок кода. В частности, ядро, идущее с системой, собрано с поддержкой как PowerPC (PPC) архитектуры, так и x86. Конечно же, статья не претендует на полное освещение всех нюансов «фруктовой» ОС. Она предназначена в первую очередь для тех, кто собирается расширить свой кругозор, и тех, кто неравнодушен к самой компании Apple Computer. Мечты придуманы для того, чтобы из них делать реальность. И фруктовая компания не забывает об этом. Источник |