Я видел список системы Linux называет здесь:
http://syscalls.kernelgrok.com/
Если я пишу новое ядро, которое реализует все эти системные вызовы, которые перечислены в приведенной выше ссылке, может ядро запустить все программы компилируется для Linux?
Будет ли это совместимо с Linux?Дать совместимое ядро Linux
ответ
ядро может запускать все программы
Сам по себеядро может ... ничего полезного.
Операционная система (ОС) для запуска программ и других обычных вещей. Помимо ядра, ОС состоит из динамических загрузчиков, (стандартных) библиотек (стандартных) утилит и многих других.
Однако вы можете использовать ядро с операционной системой Linux. (Это то, что «перестраивает ядро» означает: замените ядро, но оставайтесь другими компонентами ОС одинаково).
Неплохое то, что помимо системных вызовов ядро должно содержать драйверы, как для аппаратного обеспечения (видеокарты, жесткий диск, так и для других) и для программного обеспечения (например, файловых систем, которые реализованы Linux в ядре). Драйверы необходимы для загрузки на любой компьютер, выхода на монитор, чтения программ с диска и т. Д.
Кроме того, системные вызовы не являются единственным интерфейсом между ядром Linux и пользовательским пространством. Для обеспечения работы ядра с ОС Linux вам необходимо предоставить специальные файловые системы , например sysfs
: многие утилиты и программы Linux ожидают найти подходящие файлы здесь.
yep, посмотрите все вещи под/proc и/sys, только для начала; вы получаете возможность переопределить большинство или все это. –
Спасибо за всю помощь ... Я решил не делать Linux совместимым ... Я согласен с @glauxosdever – RainingComputers
Он сможет запускать программы Linux, но типичные Linux-программы ожидают больше, чем просто кучу системных вызовов. Получение полной совместимости с Linux намного больше. – fuz
@fuz Что еще ожидает программа Linux? Можно ли их реализовать? – RainingComputers
Динамический загрузчик, куча разделяемых библиотек, куча конфигурационных файлов, данные локализации и т. Д. Вы не можете реально реализовать эти вещи, поскольку они незначительно стандартизированы и очень сложны, но вы можете их взять и поместить в свою систему для (Linux) программ. – fuz