> Так приложение в юзерспейсе не в ядре живёт или в ядре?1) Приложение != драйвер видяхи и как правило гигазы данных в секунду не неворачивает, кроме оооооочень редких исключений.
2) А те которые все же наворачивают - там в тренде как раз странные штуки типа io_uring. Это весьма забавный интерфейс, но вот настаивать что это безопасно... это весьма деликатная игра с zerocopy и это оооооочень тонкая граница. Но когда вопрос чтобы смолотить в N раз больше данных на том же железе - юзеры, девы и корпы готовы на многое.
> Небезопасно или безопасно?
Это на самом деле сложный вопрос.
> Если не в ядре то как так получается что ФПС нормальный и всё прекрасно работает?
Таки в случае графики ключевые компоненты - обычно в ядре. А винды для перфоманса в ядро аж весь GDI загнали, вот тупо все апи в win32k.sys вперли. До этого в юзермоде было - и все юзали Win95 вертев на ... весь расово верный WinNT и академконцептуалов вместе с ним.
>> Это читерства безопасность не безопасность
> Ну и зачем тогда вообще разделения делают если всеравно небезопасно?
По факту - получилась такая весьма деликатная игра на грани фола и кайф в том чтобы эту грань не пересекать, сделав и шустро и безопасно. А жить в глубоком подземном бункере - и так постоянно - ну и насколько так большинства людей хватит? Секурити - это хорошо и правильно. Но не должно зарубать применения систем и портить все в разы. И сложно все становится как раз потому что это почти взаимоисключающие параграфы. И приходится инженерам придумывать как стыковать взаимо-противоречивые хотелки. Ясен фиг с переменным успехом.
> Запускать игру сразу в ядре чтобы всё было производительно.
Во времена DOS примерно так и делали. И это было проще всего если что. Но там свои анноянсы были. В частности если гамеза локапнется - вы таки пойдете на ресет жать, вообще без вариантов. А вот это уже не совсем удобно. Да и монопольная узурпация всех расурсов - определенные нюансы создает. Тем не менее сейчас так могут фирмвары МК делать и они так то могут быть сильно безопаснее ОС общего применения - в силу небольшого объема тривиального кода. Да, это заход к проблеме с совсем другой стороны. А кто сказал что есть только 1 способ?
>> шеринг памяти zerocopy
> Ну хорошо что вы хоть такие вещи знаете.
Ага, а ваши сообщения и ко - по сути антипод всему этому. И очень сильно перфоманс убивают. Вы кажется не понимаете какие вещи ща народ хочет в data path при скоростных вычислениях, суперскоростном IO, или даже вот гамезах обычных.
>> Нужновсевядре иначе гигабайты в секунду
> Вы понимаете, что ядро никакие гигабайты в секунду в видеокарту не отсылает
> и не принимает, это делает драйвер видеокарты и приложения в юзерспейсе?
Как раз таки это в основном епархия. Как вы себе вообще представляете зарядить какую-нибудь DMA транзакцию из юзерспейса? Да и пускать юзерспейс в DMA-capable железку от и до - ни разу не безопасно.
> Ядру может быть нужно только текст в консольку выводить, и делает оно
> это через двайвер консоли.
Это какие-то очень примитивные - и отсталые знания о системах. К линуху это совершенно точно не относится, там DRM/KMS/GBM это как раз о том чтобы ядро занялось тем чем должно было, т.е. менеджментом памяти (в т.ч. и GPUшной), переключением видеорежимов и проч. А лазание в железку у иксов давно забрали, сделав их "одним из клиентов вон тех подсистем". В винде так вообще все GDI в ядро выносили, не размениваясь на вон те мелочи. Ессно для перфоманса. А так в юзермоде в основном высокоуровневый код типа компилеров шейдеров и тому подобного добра.