Я работаю с ARM Cortex M3, на который мне нужно перенести Python (без операционной системы). Какой был бы мой лучший подход? Мне просто нужен базовый Python и базовый ввод-вывод.
Боже, это довольно сложный приказ. В ядре так много сервисов, от которых зависит Python, и которые вы должны предоставить сами. Я думаю, вам будет гораздо лучше искать легковесную ОС - может быть, Minix 3 ? - надеть встроенный процессор.
Если это не удастся, у меня будет ужасный соблазн подумать о ручном переводе на С и построении на этом основ.
Один из возможных подходов состоит в том, чтобы создать свой собственный стековый компьютер в программном обеспечении для прямой интерпретации и исполнения Python байт-кода . Конечно, это не задача переноса и довольно трудоемкая реализация, но автономный процессор стека байт-кода Python, созданный для вашей встроенной системы, поможет вам найти операционную систему.
Другой подход заключается в написании собственного низкоуровневого администратора (на один шаг ниже ОС общего назначения), который содержит минимальный уровень в службах, необходимых для основного порта интерпретатора Python. Я не уверен, что это более или менее трудоемкий процесс, чем создание стекового процессора.
Я не рекомендую ни один из этих подходов - лично мне больше всего нравится подход Чарли Мартина Minix 3, поскольку это сбалансированный компромисс требований. С другой стороны, то, что я предлагаю, может быть интересно, если вашему проекту абсолютно необходим Python без операционной системы и , если у проекта отличный бюджет времени и денег.
Обновление 5 марта 2012 г. : Учитывая строгое соблюдение требований Python / отсутствие ОС, другая возможность пути к решению может заключаться в использовании виртуальной машины Java без ОС (например, jnode , в настоящее время находится в бета-версии) и использовать Jython для создания байт-кода Java из Python. Разумеется, это не идеальное стандартное решение, и, похоже, оно отвечает требованиям Python без ОС.