Minix — различия между версиями
(→Ссылки) |
(→Сборка ОС Minix) |
||
Строка 27: | Строка 27: | ||
== Сборка ОС Minix == | == Сборка ОС Minix == | ||
+ | Не смотря на то, что наиболее простой (а по тому рекомендуемый) путь установки Minix это скачивание заранее подготовленного образа с официального сайта (а далее обновить мир и ядро для получения наиболее свежих обновлений), разработчики предоставляют возможность собрать систему самостоятельно, используя для этого различные компиляторы различных систем (Linux, BSD, ...). Для этого разработчиками предоставлен makefile верхнего уровня (т.е. нет необходимости перемещаться по разным папкам и собирать по отдельности различные части - всё делается из корня папки проекта), генерация всех зависимостей на лету (т.е. нет необходимости для указания отдельных целей depends) и даже кросс-инсталляция (пока что в экспериментальном режиме). | ||
+ | |||
+ | Далее подробнейшим образом будет рассмотрен процесс сборки Minix по шагам. | ||
+ | |||
+ | [[Файл:001.png|Консоль Debian Linux]] | ||
+ | Работа производится на Debian (ядро 2.6.32). | ||
+ | [[Файл:002.png|Установка Subversion]] | ||
+ | Для начала, необходимо наличие [[Subversion]] клиента. | ||
+ | Subversion является системой хранения исходного кода, и управления различным версиями этого кода. | ||
+ | [[Файл:003.png|Изменение текущей директории]] | ||
+ | Теперь переходим в папку проекта. | ||
+ | [[Файл:004.png|svn checkout]] | ||
+ | И получаем ревизию, которую можно собирать с использованием gcc: | ||
+ | svn checkout https://gforge.cs.vu.nl/svn/minix/branches/src.r4508.buildsystem --username anonymous | ||
+ | [[Файл:005.png|Анонимная авторизация на SVN сервере]] | ||
+ | Для начала система спросит принимать или не принимать сертификат безопасности. Для однократного принятия нужно нажать t. | ||
+ | Поле пароля можно оставить пустым. И на вопрос о сохранении пароля можно ответить no. | ||
+ | [[Файл:006.png|Check out последней ревизии]] | ||
+ | На момент написания, последняя ревизия 9636 | ||
+ | [[Файл:007.png|Установка bison и flex]] | ||
+ | Для дальнейшей работы необходимо установить yacc (для Debian и Ubuntuон входит в пакет bison) и flex. | ||
+ | yacc (Yet Another Compiler Compiler) генерирует парсер на основе аналитической грамматики. Поскольку парсер, генерируемый с помощью yacc, требует использования лексического анализатора, то часто он используется совместно с генератором лексических анализаторов, в данном случае это flex. | ||
+ | apt-get install bison flex – установка bison и flex | ||
+ | [[Файл:008.png|Начало сборки Minix]] | ||
+ | Переходим в папку со свежжевыкаченной ревизией, и командой make all запускаем сборку. | ||
+ | На этом шаге можно было бы использовать возможности кросс- инсталляции командой | ||
+ | CI_HOST=my.minix.machine make cross-install | ||
+ | В этом случае все драйвера, сервисы и загрузочный образ копируется на хост my.minix.machine | ||
+ | [[Файл:009.png|Завершение сборки Minix]] | ||
+ | На выходе получаем файл image.aout | ||
+ | В документации сказано «Copy the resulting image.aout to the /boot/image directory of your Minix installation» и система заработает. Можно на основании этого файла создать iso образ, с которого можно устанавливать систему. | ||
== Установка ОС Minix == | == Установка ОС Minix == |
Версия 01:26, 2 октября 2011
Содержание
Операционная система Minix
Minix 3 - является операционной системой с открытыми исходным кодом, основными задачами разработки которой является обеспечение надежности, гибкости и безопасности.
В отличии от предыдущих версий (Minix 1 и Minix 2), которые создавались с целью демонстрации основных принципов построения операционных систем, целью Minix 3 является полноценное функционирование приложений в условиях ограниченности технических ресурсов (микроконтроллеры, встраиваемые системы и прочие компьютеры, поддерживающие x86 архитектуру). Добиться поставленной цели удаётся за счёт снижения размеров самой операционной системы и повышения требований к надёжности: части системы, работающие в пользовательском режиме, поделены на модули и полностью изолированы друг от друга.
Для примера, все драйвера устройства выполняется как отдельный процесс пользовательского режима. Таким образом, ошибка драйвера не приведёт к краху системы, как это часто бывает в различных версиях Windows - в Minix потерпевший крах драйвер будет автоматически перезапущен (без вмешательства пользователя, без перезагрузки, и без затрагивания уже запущенных процессов). Всё это, в совокупности с микроядерной архитектурой (которой особенно гордятся разработчики) действительно ощутимо повышают надёжность этой операционной системы.
Если изначально (в 1987 году) эта система была написана профессором Амстердамского свободного университета Эндрюю Таненбаумом для демонстрации принципов построения ОС, то сейчас разрабатывать эту операционную систему может каждый, кто знаком с языком С (лицензия BSD). Сам Таненбаум сейчас отошёл от руководства этим проектом на прямую, оставив себе лишь роль идеолога. Процессом принятия предлагаемых изменений сейчас занимаются его многочисленные студенты и аспиранты.
Тем не менее, Minix продолжает развиваться. Так, на пример, в версии 3.1.4 появилась поддержка виртуальной памяти; в версии 3.1.5 появилась разделяемая память и была портирована СУБД PostgreSQL; в версии 3.1.6 было добавлено множество драйверов (именно отсутствие достаточного количества драйверов является на данный момент основной проблемной Minix) и различных средств измерения производительности, таких как tcpdump...
Основные особенности ОС Minix
- Полная POSIX совместимость
- Поддержка TCP/IP
- Графическая система (Window System, jwm, ede)
- Компиляторы для различных языков программирования (cc, gcc, g++, perl, python, etc.)
- Более 650 UNIX программ
- Полноценная многопользовательская система с многозадачностью
- Драйвера устройств работают в пользовательском пространстве
- Низкие требования к аппаратному обеспечению
- Исходные коды на C
Сборка ОС Minix
Не смотря на то, что наиболее простой (а по тому рекомендуемый) путь установки Minix это скачивание заранее подготовленного образа с официального сайта (а далее обновить мир и ядро для получения наиболее свежих обновлений), разработчики предоставляют возможность собрать систему самостоятельно, используя для этого различные компиляторы различных систем (Linux, BSD, ...). Для этого разработчиками предоставлен makefile верхнего уровня (т.е. нет необходимости перемещаться по разным папкам и собирать по отдельности различные части - всё делается из корня папки проекта), генерация всех зависимостей на лету (т.е. нет необходимости для указания отдельных целей depends) и даже кросс-инсталляция (пока что в экспериментальном режиме).
Далее подробнейшим образом будет рассмотрен процесс сборки Minix по шагам.
Работа производится на Debian (ядро 2.6.32). Для начала, необходимо наличие Subversion клиента. Subversion является системой хранения исходного кода, и управления различным версиями этого кода. Теперь переходим в папку проекта. И получаем ревизию, которую можно собирать с использованием gcc: svn checkout https://gforge.cs.vu.nl/svn/minix/branches/src.r4508.buildsystem --username anonymous Для начала система спросит принимать или не принимать сертификат безопасности. Для однократного принятия нужно нажать t. Поле пароля можно оставить пустым. И на вопрос о сохранении пароля можно ответить no. На момент написания, последняя ревизия 9636 Для дальнейшей работы необходимо установить yacc (для Debian и Ubuntuон входит в пакет bison) и flex. yacc (Yet Another Compiler Compiler) генерирует парсер на основе аналитической грамматики. Поскольку парсер, генерируемый с помощью yacc, требует использования лексического анализатора, то часто он используется совместно с генератором лексических анализаторов, в данном случае это flex. apt-get install bison flex – установка bison и flex Переходим в папку со свежжевыкаченной ревизией, и командой make all запускаем сборку. На этом шаге можно было бы использовать возможности кросс- инсталляции командой CI_HOST=my.minix.machine make cross-install В этом случае все драйвера, сервисы и загрузочный образ копируется на хост my.minix.machine На выходе получаем файл image.aout В документации сказано «Copy the resulting image.aout to the /boot/image directory of your Minix installation» и система заработает. Можно на основании этого файла создать iso образ, с которого можно устанавливать систему.