Size: a a a

2020 December 09

U

UsernameAK in pro.osdev
Aleksandr
Форк создает поток, а не процесс
а в чем разница
источник

U

UsernameAK in pro.osdev
и да, для создания потоков обычно юзают clone()
источник

BD

Berkus Decker in pro.osdev
UsernameAK
а в чем разница
в  юниксе ни в чем, в винде поток это просто дополнительная сущность в текущем процессе с отдельным апи
источник

BD

Berkus Decker in pro.osdev
вот в плане апи я бы наверное предпочел как в винде, выделенные функции для выделенных задач
источник

BD

Berkus Decker in pro.osdev
а не “давайте всё хуйнем в форк, пущай он еще и пирожки печет"
источник

BD

Berkus Decker in pro.osdev
я вот у себя буду делать ни CreateProcess, ни fork, а что-то другое
источник

d

disba1ancer in pro.osdev
просто думаю над архитектуркой, хоть наверное и не стану реализовывать, и думаю сделать ядро минимальным, и чтобы даже для работы с файлами нужен был внешний драйвер, но тогда нужен механизм сборки процесса из ничего, буквально напрямую заполняя его адресное пространство...
источник

BD

Berkus Decker in pro.osdev
для кода можно делать cow sharing, а для данных будет что-то типа instancing (даже у либ получается будут инстансы, и никакого шаред стейта) - см. nemesis
источник

BD

Berkus Decker in pro.osdev
disba1ancer
просто думаю над архитектуркой, хоть наверное и не стану реализовывать, и думаю сделать ядро минимальным, и чтобы даже для работы с файлами нужен был внешний драйвер, но тогда нужен механизм сборки процесса из ничего, буквально напрямую заполняя его адресное пространство...
это решается либой либсборщикпроцесса как в L4
источник

BD

Berkus Decker in pro.osdev
загрузить ельф - довольно легко
источник

d

disba1ancer in pro.osdev
Berkus Decker
это решается либой либсборщикпроцесса как в L4
апи через которое создаётся процесс с пустым адресным пространством и заполняется вручную?
источник

BV

Boris Vinogradov in pro.osdev
disba1ancer
апи через которое создаётся процесс с пустым адресным пространством и заполняется вручную?
Да
источник

d

disba1ancer in pro.osdev
не знал, что такое применяют, даже
источник

BV

Boris Vinogradov in pro.osdev
disba1ancer
не знал, что такое применяют, даже
Зато теперь ты знаешь что читать книжки тоже полезно
источник

BD

Berkus Decker in pro.osdev
disba1ancer
апи через которое создаётся процесс с пустым адресным пространством и заполняется вручную?
ну поскольку у тебя есть только капабилити на кусок памяти и возможно вызов драйвера фс то это всё что ты можешь сделать )
источник

BD

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

d

disba1ancer in pro.osdev
Berkus Decker
можно потом из сделанного процесса делать форки, но это уже другая либа )
с форками очень проблемно, когда у драйверов могут быть свои объекты, каждому драйверу придётся это как-то обрабатывать, либо в ядре придётся городить что-то монструозное, а может быть и там и там без проблем и это всё моя не информированность
источник

BV

Boris Vinogradov in pro.osdev
disba1ancer
с форками очень проблемно, когда у драйверов могут быть свои объекты, каждому драйверу придётся это как-то обрабатывать, либо в ядре придётся городить что-то монструозное, а может быть и там и там без проблем и это всё моя не информированность
Ты пытаешься натянуть одну абстракцию на другую
источник

BD

Berkus Decker in pro.osdev
disba1ancer
с форками очень проблемно, когда у драйверов могут быть свои объекты, каждому драйверу придётся это как-то обрабатывать, либо в ядре придётся городить что-то монструозное, а может быть и там и там без проблем и это всё моя не информированность
а не надо форкать дата спейс, только код
источник

BD

Berkus Decker in pro.osdev
почитай про немесис
источник