Size: a a a

pro.osdev - os development

2021 August 05

BD

Berkus Decker in pro.osdev - os development
Это оффтопик уже
источник

BV

Boris Vinogradov in pro.osdev - os development
и нескучные обои по завету попова
источник

X

XÆA-XII in pro.osdev - os development
Хм, если в seL4 очень быстрый IPC, то, получается, там можно устроить что-то в духе сервера на эрланге?
источник

X

XÆA-XII in pro.osdev - os development
Где процесс на процессе сидит, и процессом погоняет
источник

BV

Boris Vinogradov in pro.osdev - os development
а теперь всю логическую цепочку в студию
источник

X

XÆA-XII in pro.osdev - os development
Ок
источник

X

XÆA-XII in pro.osdev - os development
эрланг - язык, который работает под виртуальной машиной, в которой можно запустить до миллиона процессов, и они будут все относительно шустро общаться между собой и одновременно работать. Если такой подход использовать в том же линуксе, то всё упрётся в то, что там слишком медленное межпроцессовое взаимодействие, а в seL4 оно очень быстрое. Значит ли, что можно писать микропрограммы в духе процессов эрланга, которые будут так-же работать, но уже не на виртуальной машине, а на микроядре?
источник

BV

Boris Vinogradov in pro.osdev - os development
теперь более или менее понятно стало, но не факт что всем участникам процесса, краткий ответ да
источник

BV

Boris Vinogradov in pro.osdev - os development
полный ответ — иногда будут возникать ситуации когда нет
источник

BD

Berkus Decker in pro.osdev - os development
>Если такой подход использовать в том же линуксе, то всё упрётся в то, что там слишком медленное межпроцессовое взаимодействие,

если все это под одной ВМ, то сфига ли там межпроцессное взаимодействие то
источник

DF

Dollar Føølish in pro.osdev - os development
да, там и процессы то ненастоящие)
источник

DF

Dollar Føølish in pro.osdev - os development
так, друзья, я опять со своими глупыми вопросами по линкеру.

допустим у нас ядро грузится через kaslr, но мы бы не хотели делать весь образ pic/pie

допустим мы сделаем небольшой pie распаковщик/загрузчик, а остальное ядро обычный position-depenent эльф с load-time релокацией.

какой алгоритм написания такого загрузчика?

- пункт ноль : сохраняем все символы и релоаации в отдельных секциях образа ядра

- пункт один: грузим pie загрузчик куда хотим

- он уже берет образ ядра, читает релокации, патчит и грузит по kaslr

- прыгаем на адрес загрузки ядра

ничего не упустил?
источник

DF

Dollar Føølish in pro.osdev - os development
в офтопике ведь так примерно и сделано было?
источник

BD

Berkus Decker in pro.osdev - os development
ну у меня так было тоже когда-то - pie загрузчик, который потом релоцировал едро
источник

DF

Dollar Føølish in pro.osdev - os development
спасибо Беркус
источник

DF

Dollar Føølish in pro.osdev - os development
в целом я не ошибся по алгоритму?
источник

BD

Berkus Decker in pro.osdev - os development
ну да
источник

BD

Berkus Decker in pro.osdev - os development
грузишь ядро вмеесте с релокациями, потом с помощью релокаций патчишь все символы для соответствия реальному адресу загрузки
источник

DF

Dollar Føølish in pro.osdev - os development
да, понел)
источник

BD

Berkus Decker in pro.osdev - os development
можно потом даже никуда не прыгать, а добить инициализацию прям из этого загрузчика
источник