2016-01-30 2 views
0

Я хочу запустить программу python без какой-либо базовой ОС.Автономный интерпретатор Python

Я прочитал статьи о запуске python на небольших микроконтроллерах, но я хочу его на более крупном процессоре (Intel, ARM).

Мои критерии это:

  1. Это может быть непосредственно работать в двоичном виде.
  2. Может быть загружен интерпретатор Python, на который я могу запустить свою программу.
  3. В худшем случае сообщите мне о чрезвычайно маленькой базовой ОС, на которой я могу запустить ее.

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

Примечание 2: Будут ли ограничения в отношении функций python?

+1

См. Https://wiki.python.org/moin/EmbeddedPython. –

ответ

0

Примечание: Этот пост описывает x86 исключительно, так как рядом с ARM запрошен OP.

Он может быть запущен как двоичный.

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

Может быть загружен интерпретатор Python, на который я могу запустить свою программу.

«загружен» является проблемой здесь. Вам нужно программное обеспечение для загрузки интерпретатора, отображающего проблему с куриным яйцом. Intel x86 решает эту проблему, используя так называемую BIOS (Basic I/O System), которая запускается дальше, определяемые пользователем программы. Тогда эта «пользовательская» программа будет вашим интерпретатором Python.
На более современных машинах вместо устаревшего BIOS используется UEFI.

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

Вышеупомянутый BIOS обеспечивает, как акроним говорит, функциональность основной ввода/вывода, как чтение/запись из/дисков, чтение/запись из/на экран и т.д. Либо использовать эти основные процедуры и абстрагироваться от них или обойти их, и переписать их все с нуля. Это включает в себя графические драйверы (достаточно основного VGA-драйвера), драйверов дисков (для загрузки файлов Python с диска) и файловой системы (достаточно простого FAT-16).
В конце концов, вам нужно не только написать интерпретатор Python, но и всю среду разработки с нуля.

Будут ли ограничения с точки зрения функций python?

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

+0

Я знаю, что python интерпретируется не скомпилированным. То, что я подразумевал под «run as binary», было, если для python были доступны компиляторы. Я приплыл, не нашел много. –

+0

@UditDey Я тоже не знаю. Я знаю только о байт-коде Python. – Downvoter

+0

Даже если я скомпилирую свой код для байт-кода Python, я не могу запустить его напрямую, не так ли? Поскольку набор инструкций байт-кода Python отличается от x86. Так что это не поможет –

Смежные вопросы