LINUX.ORG.RU

Возможно ли сделать микроядро которое будет работать параллельно с Linux?

 , , , ,


1

3

Нашел такую штуку как HARMONY OS. На вики пишут что внутри нее есть ядро linux и какое-то свое микроядро которое работает как модуль ядра (я не знаю, видимо грузится через DKMS или типа того) и предоставляет некий API для разработчиков. А еще как я понял через это «микроядро» можно добавлять модули написанные для этого микроядра.

Так вот это действительно так работает или в бухгалтерии опять что-то напутали?

К примеру я захочу реализовать экую некую произвольную подсистему и запаковать ее как kernel object. Не модифицированное ядро linux вообще расчитанно на такие приколы? Или есть какие-то ограничения? Я нуб в kernel дизайне, мне просто интересно.

Вроде был подобный прикол как mkLinux, но там с точностью до наоборот все было построено. mach загружал как модуль модифицированный linux. А вот что если наоборот? Вот к примеру запустить как модуль модифицированную версию того же mach или NT (от react os)? Че будет? Появится ли возможность дергать системные вызовы обращаясь к микроядру как к драйверу или я многого прошу?

Меня не интересует нужно это в продакшене или не нужно, чисто академический интерес. Сама теоретическая возможность так сказать…



Последнее исправление: Unixson (всего исправлений: 3)

Ответ на: комментарий от hateWin

это я знаю, на L4 работает, а я хочу совсем наоборот. Условно говоря запускать некое ядро как процесс. Или это в принципе не реально?

Условно говоря будет процесс скажем с NT. Процесс подгружает драйвер так как бы это делало NT но вместо взаимодействия с железом транслировала вызовы уже в linux. В linux создается dummie устройство которое через dummie драйвер обращается к NT процессу с загруженным в него блобом. А если процесс упадет то ядру ничего не будет и его можно будет переподнять. В теории конечно.

Я чего спрашиваю потому что таким макаром можно вполне себе безболезненно завести EasyAntiCheet. Он будет думать что загружен вполне себе виндовым ядром, но при этом не будет иметь никаких полномочий!

Плюс в теории можно будет подгружать драйвера которых нет в linux или качество сих оставляет желать лучшего. И при этом все будет работать на ванильном ядре, а в случае чего можно будет убить процесс и сделать modprobe.

Тобиш вместо дуалбута режим совместимости на уровне драйверов. А если написать патч для wineserver, то и софта. С возможностью быстро кильнуть процесс и вернуть все в исходное состояние.

Тащемта что-то подобное я видел в архитектуре MorphOS. Только там запускался процесс с ядром freebsd (кажется) и многие программы просто работали.

Unixson
() автор топика
Последнее исправление: Unixson (всего исправлений: 3)
Ответ на: комментарий от Unixson

ndiswrapper на стероидах? В теории, возможно.

UPD: еще такая штука есть, я не знал https://en.wikipedia.org/wiki/Longene

timdorohin ★★★★
()
Последнее исправление: timdorohin (всего исправлений: 1)

я захочу реализовать экую некую произвольную подсистему и запаковать ее как kernel object. Не модифицированное ядро linux вообще расчитанно на такие приколы?

Любой модуль в ядре Linux может творить что ему угодно. Можно портить память, выделенную другими модулями, можно портить память пространства пользователя. Можно даже портить свой собственный код. Кстати, есть фичи ядра, которые как раз реализованы через изменение кода прямо во время работы.

i-rinat ★★★★★
()

Там же судя по картинке RTOS ядро используется только для IOT и прочих маломощных железках, а на мобилках и всем остальном Linux(с ведро прослойкой для поддержки приложений).

Т.е как я понял ядра не работают одновременно.

ritsufag ★★★★★
()
Последнее исправление: ritsufag (всего исправлений: 1)
Ответ на: комментарий от timdorohin

Longene это прям то что нужно. Правда там последнее ядро 2.6. но в целом если взять напильник то патч можно подпилить под современное ядро. В целом ничего сложно в репе я не увидел кроме вайна. Надо как-то перенести нужные изменения из 1.0 в 7.0.

Unixson
() автор топика
Ответ на: комментарий от timdorohin

For device drivers, Longene imports NDISwrapper into the kernel. Modifications are made to NDISwrapper for missing functionality of the Windows Driver Model using ReactOS code as a reference. The Windows Driver Kit implementation is based on ReactOS code. It uses a combination of redirecting drivers to Linux kernel resources and additional libraries that implement functions that cannot be implemented in Linux.

Однако…

Unixson
() автор топика

Имел дело с камерой Yi Action, в которой на одном ядре микроядерная ОСРВ ThreadX, на другом - Linux. Общаются через shmem. ЕМНИП, к флешке Linux обращается как раз через ThreadX.

token_polyak ★★★★
()
Последнее исправление: token_polyak (всего исправлений: 1)

Собственно что… Пробовал ковырять Longene, патч на новом ядре не взлетел, так что сейчас пробую переписать его под новое ядро. Сам же код на гитхабе оказался на половину недопиленый… Написал в эту Insigma посмотрим отдадут ли они исходники для ядра 4.1. Если нет то возьму NDISwrapper и допишу часть WDM опираясь на код reactOS. Весь WDM реализовывать не буду, пока реализую ту часть которая нужна сраному античиту.

Unixson
() автор топика