Lord_of_Rings
@Lord_of_Rings
Python developer

Можно ли написать OS на Python?

Можно ли на Python написать операционную систему (хотя бы самую простую)? Заранее, попрошу, не писать всякую гадость.
  • Вопрос задан
  • 2370 просмотров
Решения вопроса 2
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Сейчас включу максимального зануду и скажу, что не всё так уж однозначно.
Вопрос в том, что называть языком. Если языком считать синтаксис, то вполне можно написать транспилер, который будет транслировать питоновский код в сишный код, например, а его уже в машинный.
ОС, написанная на Си - это скомпилированный машинный код - результат работы компилятора над исходником на языке Си. Да, стандартный компилятор Си может откомпилировать машинный код, а потом стандартный сборщик превратит его в набор файлов операционной системы.
Стандартный транслятор питона в его байткод и интерпретатор этого байткода не смогут работать самостоятельно без операционной системы, но разве в условии вопроса было сказано про стандартный интерпретатор?

В общем, писать ОС на питоне - очень странная идея, но и микроскопом теоретически можно попробовать "разминировать" противопехотную мину, особенно если привязать его к длинной штанге и снабдить зарядом взрывчатки, однако это чревато большими и бессмысленными страданиями.

Простой ответ - нет, питон не предназначен для написания ОС, но использовать его для разработки большОго количества элементов ОС можно.
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Вопрос интересный. Из серии дискуссионных.

Сходу я-бы тоже написал - нельзя. Потому что не делают ОС на питонах обычно. Но
давайте раздвинем границы и порассуждаем.

Что такое ОС и вообще из каких частей она состоит? И какие к ней требования?
Когда говорят о написании ОС - то обычно имеют в виду некий эксперимент или чью-то
курсовую или дипломную работу в результате которой появляется нечто. И это нечто
- имеет загрузчик. Загружается с флешки или диска. Содержит базовые средства
ввода команд (шелл). Управляет хотя-бы сетевым интерфейсом и дисками. И умеет
запускать хотя-бы 1 экспериментальную программу написанную для ЭТОЙ-же ОС.
А иначе - какой смысл вообще делать ОС под которую нет программ.
- обладает небольшими размерами. В самом деле. У вас же не Debian чтоб
тащить пачку DVD дисков? Какие размеры кода генерит Python. Ну он вообще не генерит
кода как такового. Хотя возможно с использованием CPython мы сможем собрать
некий бинарник но здесь надо пообсуждать его недостатки. Размеры. И потенциальные
уязвимости самой архитектуры. Если в коде существует точка где можно вызвать eval - то
это уже потенциальное место для хакеров. Тут - требуется обсуждение с людьми которые
чуть больше знают чем я в инфо-безопасности. Передам им слово.
- обладает высокой производительностью. Близко стоит к железу и не имеет никаких
посредников. Тоесть между ОС и железом не должно быть никаких прослоек. Какой длины
стек технологий стоит между Python и железом? ХЗ. Пускай знающие пояснят. С моей точки
зрения Python близок к Lisp или к JavaScript по духу и по идеологии. А надо быть близким
к C++, Rust e.t.c. Мультизадачность опять-же до кучи. Ее эффективно можно реализовать
только если код-быстрый.

Из творческих экспериментов о которых я слышал. ОС - Beos. Была написана много лет
назад на ООП языках как ОС для мультимедиа (?) или для чего-то там подобного. В настоящий
момент считается мертвой.

Еще была Singularity OS. Написана на ДотНете. Больше ничего о ней не знаю. Просто
читал когда-то в журнале. Сильно удивился. Дай бох. Если так можно то хорошо. Кто знающие
в теме - проясните ее статус на данный момент.

Еще слышал о том что дедушка Никлаус Вирт в своё время тоже создавал ОС. На базе Оберон.
Причем у него там были воплощены много его мечт и чаяний. Всякие модули. Динамические
библиотеки. UI был абсолютной свой. Я смотрел на презентации. Не впечатлило. Хотя уважаю
такую последовательность и упорство. Кто пользовался или устанавливал - просвятите.

Любые клоны Линукс. Да они являются осями но их создатели не закладывали никаких
усилий по разработке их ядра. Можно ли их рассматривать в данном топике? ХЗ. Я-бы не стал.
Есть известная ОС BolgenOS которая стала мемом. Ее создатель очень много потратил на само-пиар
и очень мало на разработку. Его усилия заключались во взломе всех текстовых надписей и копирайтов
а также картинок и обоев в типичном дистрибутиве Линукс. Стоит ли это рассматривать в топике?
Как по мне - неспортивно как-то. Нетворчески... Сюда-же до кучи Гентушников. Ничем особ значимым
они не отличились.

Любая встраиваемая в железо система по определению является ОС. Только пишется обычно
на Си или Асме или каком-нибудь Форте. Но она обычно очень ограниченная и в ней нет ничего
что-бы напоминало современные ОС. В них часто даже нет консоли. Поскипаем такие.

Резюмируя. Свою ОС писать - хорошо. Познавательно. Но лучше не на Python а на Си. И подходить
к вопросу нужно с глубокой идеей. Должны быть цели. Для чего. Чего мы хотим получить так чтоб
не тупо копировать Linux. Нужно очень хорошо знать железо. Лучше - нестандартное. Там - больше
будет пространство для маркетинга. Эльбрус там. Байкал. Или процессор GA144
который создал Чарли Мур (дада тот самый) в котором куча микро-ядер и которые понимают
Forth.

Вобщем надо знать железо.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Нет.
Ответ написан
Комментировать
paran0id
@paran0id
Умный, но ленивый
Питон работает в интерпретаторе, а ОС должна работать на голом железе. Так что нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы