Minix — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Сборка ОС Minix)
(Сборка ОС Minix)
Строка 27: Строка 27:
 
== Сборка ОС Minix ==
 
== Сборка ОС Minix ==
  
Не смотря на то, что наиболее простой (а по тому рекомендуемый) путь установки Minix это скачивание заранее подготовленного образа с официального сайта (а далее обновить мир и ядро для получения наиболее свежих обновлений), разработчики предоставляют возможность собрать систему самостоятельно, используя для этого различные компиляторы различных систем (Linux, BSD, ...). Для этого разработчиками предоставлен makefile верхнего уровня (т.е. нет необходимости перемещаться по разным папкам и собирать по отдельности различные части - всё делается из корня папки проекта), генерация всех зависимостей на лету (т.е. нет необходимости для указания отдельных целей depends) и даже кросс-инсталляция (пока что в экспериментальном режиме).
+
Не смотря на то, что наиболее простой (а по тому рекомендуемый) путь установки Minix это скачивание заранее подготовленного образа с официального сайта (а далее обновить мир и ядро для получения наиболее свежих обновлений), разработчики предоставляют возможность собрать систему самостоятельно, используя для этого различные компиляторы различных систем (Linux, BSD, ...). Для этого разработчиками предоставлен makefile верхнего уровня (т.е. нет необходимости перемещаться по разным папкам и собирать по отдельности различные части - всё делается из корня папки проекта), генерация всех зависимостей на лету (т.е. нет необходимости для указания отдельных целей depends) и даже кросс-инсталяция (пока что в экспериментальном режиме).
  
 
Далее подробнейшим образом будет рассмотрен процесс сборки Minix по шагам.
 
Далее подробнейшим образом будет рассмотрен процесс сборки Minix по шагам.
  
 
[[Файл:001.png|Консоль Debian Linux]]
 
[[Файл:001.png|Консоль Debian Linux]]
 +
 
Работа производится на Debian (ядро 2.6.32).
 
Работа производится на Debian (ядро 2.6.32).
 +
 
[[Файл:002.png|Установка Subversion]]
 
[[Файл:002.png|Установка Subversion]]
 +
 
Для начала, необходимо наличие [[Subversion]] клиента.
 
Для начала, необходимо наличие [[Subversion]] клиента.
 
Subversion является системой хранения исходного кода, и управления различным версиями этого кода.
 
Subversion является системой хранения исходного кода, и управления различным версиями этого кода.
 +
 
[[Файл:003.png|Изменение текущей директории]]
 
[[Файл:003.png|Изменение текущей директории]]
 +
 
Теперь переходим в папку проекта.
 
Теперь переходим в папку проекта.
 +
 
[[Файл:004.png|svn checkout]]
 
[[Файл:004.png|svn checkout]]
 +
 
И получаем ревизию, которую можно собирать с использованием gcc:
 
И получаем ревизию, которую можно собирать с использованием gcc:
 
svn checkout https://gforge.cs.vu.nl/svn/minix/branches/src.r4508.buildsystem --username anonymous
 
svn checkout https://gforge.cs.vu.nl/svn/minix/branches/src.r4508.buildsystem --username anonymous
 +
 
[[Файл:005.png|Анонимная авторизация на SVN сервере]]
 
[[Файл:005.png|Анонимная авторизация на SVN сервере]]
Для начала система спросит принимать или не принимать сертификат безопасности. Для однократного принятия нужно нажать t.
+
 
 +
Для начала система спросит принимать или не принимать сертификат безопастности. Для однократного приянтия нужно нажать t.
 
Поле пароля можно оставить пустым. И на вопрос о сохранении пароля можно ответить no.
 
Поле пароля можно оставить пустым. И на вопрос о сохранении пароля можно ответить no.
 +
 
[[Файл:006.png|Check out последней ревизии]]
 
[[Файл:006.png|Check out последней ревизии]]
 +
 
На момент написания, последняя ревизия 9636
 
На момент написания, последняя ревизия 9636
 +
 
[[Файл:007.png|Установка bison и flex]]
 
[[Файл:007.png|Установка bison и flex]]
 +
 
Для дальнейшей работы необходимо установить yacc (для Debian и Ubuntuон входит в пакет bison) и flex.
 
Для дальнейшей работы необходимо установить yacc (для Debian и Ubuntuон входит в пакет bison) и flex.
 
yacc (Yet Another Compiler Compiler) генерирует парсер на основе аналитической грамматики. Поскольку парсер, генерируемый с помощью yacc, требует использования лексического анализатора, то часто он используется совместно с генератором лексических анализаторов, в данном случае это flex.
 
yacc (Yet Another Compiler Compiler) генерирует парсер на основе аналитической грамматики. Поскольку парсер, генерируемый с помощью yacc, требует использования лексического анализатора, то часто он используется совместно с генератором лексических анализаторов, в данном случае это flex.
 
apt-get install bison flex – установка bison и flex
 
apt-get install bison flex – установка bison и flex
 +
 
[[Файл:008.png|Начало сборки Minix]]
 
[[Файл:008.png|Начало сборки Minix]]
 +
 
Переходим в папку со свежжевыкаченной ревизией, и командой make all запускаем сборку.
 
Переходим в папку со свежжевыкаченной ревизией, и командой make all запускаем сборку.
На этом шаге можно было бы использовать возможности кросс- инсталляции командой
+
На этом шаге можно было бы использовать возможности крос-инсталяции командрй
 
CI_HOST=my.minix.machine make cross-install
 
CI_HOST=my.minix.machine make cross-install
 
В этом случае все драйвера, сервисы и загрузочный образ копируется на хост my.minix.machine
 
В этом случае все драйвера, сервисы и загрузочный образ копируется на хост my.minix.machine
 +
 
[[Файл:009.png|Завершение сборки Minix]]
 
[[Файл:009.png|Завершение сборки Minix]]
 +
 
На выходе получаем файл image.aout
 
На выходе получаем файл image.aout
 
В документации сказано «Copy the resulting image.aout to the /boot/image directory of your Minix installation» и система заработает. Можно на основании этого файла создать iso образ, с которого можно устанавливать систему.
 
В документации сказано «Copy the resulting image.aout to the /boot/image directory of your Minix installation» и система заработает. Можно на основании этого файла создать iso образ, с которого можно устанавливать систему.

Версия 01:28, 2 октября 2011

Операционная система Minix

Логотип Minix3

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 Linux

Работа производится на Debian (ядро 2.6.32).

Установка Subversion

Для начала, необходимо наличие Subversion клиента. Subversion является системой хранения исходного кода, и управления различным версиями этого кода.

Изменение текущей директории

Теперь переходим в папку проекта.

svn checkout

И получаем ревизию, которую можно собирать с использованием gcc: svn checkout https://gforge.cs.vu.nl/svn/minix/branches/src.r4508.buildsystem --username anonymous

Анонимная авторизация на SVN сервере

Для начала система спросит принимать или не принимать сертификат безопастности. Для однократного приянтия нужно нажать t. Поле пароля можно оставить пустым. И на вопрос о сохранении пароля можно ответить no.

Check out последней ревизии

На момент написания, последняя ревизия 9636

Установка bison и flex

Для дальнейшей работы необходимо установить yacc (для Debian и Ubuntuон входит в пакет bison) и flex. yacc (Yet Another Compiler Compiler) генерирует парсер на основе аналитической грамматики. Поскольку парсер, генерируемый с помощью yacc, требует использования лексического анализатора, то часто он используется совместно с генератором лексических анализаторов, в данном случае это flex. apt-get install bison flex – установка bison и flex

Начало сборки Minix

Переходим в папку со свежжевыкаченной ревизией, и командой make all запускаем сборку. На этом шаге можно было бы использовать возможности крос-инсталяции командрй CI_HOST=my.minix.machine make cross-install В этом случае все драйвера, сервисы и загрузочный образ копируется на хост my.minix.machine

Завершение сборки Minix

На выходе получаем файл image.aout В документации сказано «Copy the resulting image.aout to the /boot/image directory of your Minix installation» и система заработает. Можно на основании этого файла создать iso образ, с которого можно устанавливать систему.

Установка ОС Minix

Ссылки