Минимальная POSIX-совместимая операционная система

8

В образовательных целях я хотел бы начать с POSIX-совместимой базы, включая оболочку, базовые утилиты и компилятор ANSI C, а затем посмотреть, какие среды можно создать, собрав вместе пакеты.

Однако большинство минимальных POSIX-совместимых операционных систем, с которыми я сталкивался, кажутся встроенными и / или проприетарными. Существуют ли такие системы с открытым исходным кодом, которые я могу легко запустить в Virtualbox?

Я немного обыскал создание такой среды с нуля , но мне кажется, что нужно просто получить загрузочную / пригодную для использования среду, а тем более POSIX-совместимую. Я мог бы когда-нибудь попробовать свои силы в создании ОС POSIX, но сначала я бы хотел немного разбираться в компьютерах заранее.

Замечания:

Я думаю, что где-то слышал, что Linux не полностью POSIX-совместимый, но пока я могу скомпилировать и собрать некоторые из наиболее распространенных и необходимых инструментов с открытым исходным кодом (таких как wget и w3m), я был бы очень рад, независимо от того, так ли это использовал ядро ​​Linux. То же самое относится и к другим основным компонентам, которые я мог бы представить, может поставляться с операционной системой (например, glibc)

math4tots
источник
Когда вы видите проблему с «проприетарным», я не вижу, в чем проблема, так как проприетарность не препятствует соответствию POSIX. Вы хотели сказать «коммерческий»?
Hibou57

Ответы:

10

POSIX не определяет полную операционную систему, поэтому любой ОС POSIX-совместимых будет иметь команды, которые не в POSIX (как init, mkfs, passwd, ...). Но разные ОС имеют разные расширения, а инструменты GNU (найденные в не встроенных системах Linux) имеют много.

BusyBox - это набор инструментов командной строки, предназначенный для встраиваемых систем Linux. Он содержит большинство утилит и опций, предусмотренных POSIX (он не завершен, но близок). Вы можете создать работающую систему Linux с загрузчиком, ядром Linux, BusyBox и Dropbear, если хотите войти через SSH. Добавьте Gcc, если вы хотите заниматься разработкой на минимальной системе.

Если вы предпочитаете начать с полного, но небольшого дистрибутива, посмотрите на MINIX 3 . Это небольшая Unix-система, предназначенная для встраиваемых систем и для обучения.

Если вы хотите более легко расширяемую систему, посмотрите на OpenBSD . OpenBSD ориентирован на безопасность и консервативен в отношении функций, но базовая система включает в себя основные компоненты, такие как Perl и Apache.

Жиль "ТАК - перестань быть злым"
источник
Я считаю, что TCC более близок к ANSI C / ISO C99, чем GCC, что делает его лучшим вариантом для компилятора C в строгой среде POSIX, избегая несоответствующих функций.
Hibou57