Можно ли изменить ядро ​​в системе UNIX / Linux?

Я хотел знать, можно ли изменить ядра, например, заменить ядро ​​Linux Fedora на то, что у FreeBSD.

Теперь уже существовал Debian GNU / kFreeBSD . Можно ли настроить дистрибутив Linux для хранения ядра BSD?

3 Solutions collect form web for “Можно ли изменить ядро ​​в системе UNIX / Linux?”

Нет, каждое ядро ​​реализует свои собственные функции по-своему. Существует большая совместимость с POSIX, но как только вы выйдете из этого, исполняемые файлы должны быть скомпилированы с уже установленными механизмами ядра. Многие проекты содержат исходный код, который компилируется только в том случае, если вы явно заявляете, что компилируете FreeBSD или Linux. По сути, это kFreeBSD. Инструменты поддерживают ядро ​​FreeBSD, но они должны быть скомпилированы для него.

Например, если вы попытаетесь использовать epoll_create в FreeBSD, все будет работать не так, как ожидалось.

Конечно, вы можете перекрестно скомпилировать инструменты из системы LFS системы BSD, но это, вероятно, займет навсегда. Не так просто, как просто скомпилировать новое ядро.

FreeBSD не использует ядро ​​Linux – как следует из названия, оно использует ядро ​​BSD.

Можно заменить ядро ​​Linux другим ядром Linux (либо вы сами создали, либо вы извлекли из дистрибутива). Имейте в виду, что программы пользовательского пространства в вашем дистрибутиве могут зависеть от конкретных функций ядра, которые должны быть скомпилированы, и могут не работать должным образом, если вы запускаете их на ядре, построенном без этих функций. Например, для распределения на основе systemd потребуются группы в ядре.

Для примера, который вы упомянули, да, дистрибутив GNU может быть создан для ядра Linux или для ядра BSD. Во многих случаях существуют различия во времени компиляции (например, #ifdef ) между программами, скомпилированными для этих двух, даже если ядра рекламируют один и тот же ABI. Как минимум, библиотеки низкого уровня, такие как библиотека времени выполнения C, должны учитывать различные ABI ядра.

Ядро является независимой частью и регулярно заменяется во время обновлений операционной системы. Некоторые проприетарные драйверы (NVIDIA и т. Д.) Имеют сценарии установки, которые исправляют драйвер в исходный код ядра, создают это ядро ​​и заменяют его текущим ядром. Следовательно, если вы разрабатываете собственную версию ядра, которая может выполнять все необходимые функции, не должно быть большой проблемой, чтобы установить ее и оставить остальную часть операционной системы. Однако чаще всего такое «новое ядро» происходит из недавней официальной версии.

Ядро Solaris было перенесено таким образом в некоторой степени, в результате чего OpenSolaris запускает среду Gnome.

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

  • Для чего предназначен ENOANO (No Anode)?
  • Что означает эта строка ядра Linux?
  • Как уменьшить размер initrd при компиляции вашего ядра?
  • Как я могу узнать цель различных процессов ядра?
  • Что означает ACPI NMI LINT? и почему он меняет версию ядра?
  • Мне нужно перекомпилировать все ядро ​​Linux
  • Перекомпилируйте ядро ​​без модулей, которые в настоящее время не используются
  • Почему мой процесс слишком долго умирает?
  • Знайте, какой каталог «mount -o bind», задав ядро ​​(Linux)
  • ошибка сжатия, никакая файловая система не может монтировать root, панику ядра не синхронизировать
  • SELinux и Trusted OS - может ли SELinux быть ограничен корневым уровнем аппаратного уровня?
  • Linux и Unix - лучшая ОС в мире.