kernel спейсе и я поплыл :/
Вот что я нагуглил (это вообще релевантный источник?):
http://www.haifux.org/lectures/217/netLec5.pdf
На 5 и 6 странице написано, что все что с 5 уровня OSI, это находится в user space.
Но тут же пишут, что чтобы создать сокет (который на 5 уровне), нужен системный вызов...
Разве системный вызов это уже не уровень ядра? Или системный вызовы могут и не использовать kernel space?
Ну вот я создам без ядра этот сокет, а толку с него, если через него нужно передавать данные (tcp и ip, уровень 4 и 3) через ядро?
Что вообще значит "работает в kernel space"? Когда я запустил приложение, судя по этой картинке:
https://thecustomizewindows.cachefly.net/wp-content/uploads/2012/07/Kernel-of-Operating-System.jpg
оно будет в user space, а если я начну в нем использовать файлы и всякие copy(), это будет значит что приложение перешло на уровень ядра или я какую-то глупость говорю? Как вообще понять, на уровне ядра или нет работает какое-то приложение?
Юзерспейс конечно. С чего ему в кернелспейсе быть?
Он же сокеты использует для подключения пользователей, разве для сокетов не нужен уровень ядра?
а это не то, у nginx есть главный процесс, который работает от рута, благодаря которому он может открыть привилегированный порт, и порождает чилдренов под пользаком nginx? lkz j,hf,jnrb pfghjcjd? ghbktnf.ob[ yf gjhn&
Системные вызовы бро
Я предполагаю, что приложение, которое работает в kernel space — это приложение, которое требует установки модулей ядра для работоспособности.
вовсе нет, кернелспейс это модули ядра, расширяющие его функциональность (например драйверы, ну или модули, кто как называет), весь прикладной софт работает в userspace
У него для этого есть способность дёрнуть сисколл как раз. А софту, которое работает в kernel space, нет необходимости дёргать сисколлы — софт, работающий в ядре, скорее именно даёт возможность софту из юзерспейса сисколл дёрнуть. То есть он не является чем-то использующим сисколлы — софт в кёрнел-спейсе это и есть сисколл. В энном приближении, сильно упрощая — примерно так. Говоря практическим языком — софт работающий в кёрнел спейсе нельзя неправильно скорее чаще не надо докеризировать. Если для чего-то есть докер-контейнер на докерхабе — скорее всего, это самое чего-то работает в юзерспейсе
Говоря ещё одним практическим гуманитарным языком — после запуска софта в kernel space можно сделать ps ax и найти в нём новый процесс, завёрнутый в "[]"
А ты не сдаешься прям. Но вообще-то было такой кernel-space веб-сервер Tux . Умер или уничтожен за кулисами публичного шоу в конце девяностых.
Обсуждают сегодня