Перенос ядра Linux на архитектуру, которая не имеет режимов выполнения (всегда находится в режиме ядра) и не имеет MMU, выглядит как очень незащищенная система. Можно ли заставить Linux работать в этой среде? И если это возможно, было бы бессмысленно? так как вся безопасность, обеспечиваемая Linux, теряется, будет ли разумнее рассмотреть другие альтернативы?
1 ответ
Нет никакой технологической причины, почему это было бы невозможно. В 1980-х годах IBM выпустила IBM PC и PC XT, которые были основаны на процессоре Intel 8088 (предшественник 8086 и линейки x86), который не имел защищенного режима: он всегда мог делать все. (У него была очень упрощенная схема управления памятью, которая позволяла ему получить доступ к 2 20- байтовому физическому адресному пространству с 16-битным виртуальным адресным пространством.)
И все же была версия Unix для XT. Правда, любой процесс может получить доступ ко всей памяти (или напрямую инициировать ввод / вывод), но это было нелегко сделать из программы на Си. Пользователи знали, что это не совсем безопасно, но, по крайней мере, оно имитировало безопасность. Он конкурировал (в некотором смысле) с DOS (и, возможно, с самыми ранними версиями Windows), который не имел безопасности, поэтому, если что, Unix вышел вперед в этом вопросе.
Может потребоваться внести некоторые изменения в Linux, чтобы он не подавился примитивным оборудованием, но это, вероятно, будет так же просто, как деактивация кода, который пытается перевести пользовательские процессы в пользовательский режим, и т.д. Может даже существовать
#ifdef
для этого.Безопасность, конечно, не единственная особенность Linux: это функциональность. Где еще, кроме Unix (и я включаю в него такие вещи, как Cygwin), вы найдете
awk
,sed
, pipe и бесполезных кошек? Более того, у вас есть два основных варианта такого компьютера:- Используйте его в качестве пресс-папье или дверного проема, или
- использовать его как компьютер.
И если вы решите использовать его как компьютер, почему бы не установить на него Linux?
Конечно, вы никогда не захотите подключать его к Интернету.