Возможно ли создать операционную систему с использованием Python?
Можно ли создать минималистическую операционную систему с использованием Python?
Я действительно не хочу попасть в код низкого уровня, например, сборку, поэтому я хочу использовать простой
Язык как Perl или Python. Но как?
Ответы
Ответ 1
К сожалению, Python классифицируется как язык программирования очень высокого уровня. Его нельзя использовать, например, для прямого доступа к аппаратным средствам и выполнения низкоуровневой обработки данных. Он полностью зависит от чего-то, чтобы отвлечь аппаратное обеспечение от него, и это ядро. Тем не менее, технически возможно создать операционную систему, ориентированную на Python; имеют только очень низкий уровень, написанный на C и сборке, и имеют большую часть остальной операционной системы, написанной на Python.
В этой статье более подробно обсуждается, какие языки подходят для написания ядер операционной системы.
Ответ 2
Конечно, вы можете запустить Python без ОС, как показано Проект Intel Test Test Suite (BITS). руководство по сценариям объясняет:
"... включает API-интерфейсы Python для доступа к различным низкоуровневым функциям аппаратной платформы, включая регистры ACPI, CPU и чипсета, PCI и PCI Express. Вы можете писать сценарии для изучения и тестирования функциональности платформы, используя полный мощь Python в 32-битном кольце 0, без ОС на пути."
Теперь BITS - это платформа тестирования BIOS, специфичная для аппаратного обеспечения Intel, и не предназначена для запуска пользовательской операционной системы на базе Python, но это не значит, что вы не можете попробовать...
Ответ 3
Я портировал интерпретатор Python для запуска в моей операционной системе в качестве пользовательской программы, это была первая программа - и пока единственная - я портировал; из этого опыта я бы сказал, что, безусловно, можно было бы написать много функциональных возможностей операционной системы в Python; вы можете даже встроить Python в ядро с минимальной поддержкой функций.
Однако вам нужно написать сборку и C для прерываний, управление памятью низкого уровня и так далее. В моем случае я построил специально модифицированный Python 2.5.2 для Newlib библиотеки C; в минимальном случае вам просто нужно обеспечить управление памятью кучи для библиотеки Newlib, и вы можете запустить Python поверх нее.
Таким образом, интерпретатор Python не содержит собственную реализацию кучи, и он зависит от библиотеки C, поэтому вы не можете сразу запустить его на голом металле, но гораздо больше ядра операционной системы, как это обычно написано, может также может быть написана на Python.
Частным случаем, конечно же, являются микроядра, где большая часть функциональности находится в пользовательском пространстве в качестве служб; они могут быть более естественным образом реализованы на любом предпочтительном языке программирования, включая Python.
Ответ 4
Я предлагаю вам найти хороший учебник по разработке операционной системы и изучить это. Я уверен, что вы не найдете такую книгу с исходным кодом Python; С является более вероятным. (Возможно, вы найдете более старый учебник, который использует Pascal вместо C, но это действительно не так.)
Как только вы изучили разработку операционных систем, чтобы фактически написать операционную систему, вы будете знать достаточно, чтобы иметь свои собственные мнения о том, какие языки будут подходящими.