Вопрос по python – Можно ли создать операционную систему с использованием Python? [закрыто]

20

Можно ли сделатьminimalistic Операционная система, использующая Python?
Я действительно не хочу вдаваться в низкоуровневый код, такой как сборка, поэтому я хочу использовать простой
Язык как Perl или Python. Но как?

Чего ты надеешься достичь? NPE
ИМО Perl и простые два слова, которые не очень хорошо сочетаются друг с другом :) betabandido
launchpad.net/pycorn pyfunc
Я думаюUnunium был написан полностью на питоне. Не совсем уверен, что проект еще жив, хотя inspectorG4dget
Не без сборки или использования Csomewhere - даже у pycorn есть сборка для кода начальной загрузки. Обработчики прерываний, аналогично. Charles Duffy

Ваш Ответ

4   ответа
8

Проект Intel BIOS Installation Test Suite (BITS),руководство по написанию сценариев объясняет:

"... includes Python APIs to access various low-level functionality of the hardware platform, including ACPI, CPU and chipset registers, PCI, and PCI Express. You can write scripts to explore and test platform functionality, using the full power of Python in 32-bit ring 0, without an OS in the way.. "

Теперь BITS является платформой тестирования BIOS, специфичной для аппаратного обеспечения Intel, и не предназначена для запуска собственной ОС на основе Python, но это не означает, что вы не можете ее попробовать ...

6

в качестве программы пользовательского пространства, это была первая и пока единственная программа, которую я перенес; Исходя из этого опыта, я бы сказал, что, безусловно, можно написать множество функциональных возможностей операционной системы на Python; Вы, конечно, можете даже встроить Python в ядро с минимальной поддержкой функций.

Однако вам нужно написать ассемблер и C для прерываний, низкоуровневого управления памятью и так далее. В моем случае я построил специально модифицированный Python 2.5.2 противNewlib Библиотека C; в минимальном случае вам просто нужно обеспечить управление кучей памяти для библиотеки Newlib, и поверх нее можно запустить Python.

Таким образом, интерпретатор Python не содержит своей собственной реализации кучи, и он зависит от библиотеки C, поэтому вы не можете сразу запустить ее на голом железе, но гораздо больше ядра операционной системы, как это обычно пишется, также может быть написано на Python.

Частным случаем, конечно, являются микроядра, где большая часть функциональности находится в пользовательском пространстве как сервисы; они могут быть более естественным образом реализованы на любом предпочтительном языке программирования, включая Python.

4

Я предлагаю вам найти хороший учебник по дизайну операционной системы и изучить его. Я уверен, что вы не найдете такую книгу с исходным кодом Python; С более вероятно. (Вы можете найти более старый учебник, в котором вместо C используется Паскаль, но на самом деле он ничем не отличается.)

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

31

язык программирования очень высокого уровня, Его нельзя использовать, например, для прямого доступа к оборудованию и выполнения низкоуровневых манипуляций со структурой данных. Это полностью зависит от чего-то, чтобы абстрагировать аппаратное обеспечение от него, и это ядро. Однако технически возможно создать операционную систему с центром на Python, то есть; имеют только очень низкоуровневый материал, написанный на C и ассемблере, и большую часть остальной операционной системы, написанную на Python.

Эта статья обсуждает более подробно, какие языки подходят для написания ядер операционной системы.

Хорошая статья. Лучшая цитата это:In many languages other than C a fair amount of Assembly and C development is required in order to provide the appropriate runtime environment supporting the language's abstractions.

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