The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Фреймворк для написания защищённых драйверов для ядра Linux ..., opennews (?), 01-Сен-19, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


149. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +13 +/
Сообщение от Аноним (149), 02-Сен-19, 01:52 
Объясните, кто-нибудь, на пальцах, почему драйвера, и вообще ядро, нельзя писать на современных плюсах С++?
Из-за "тяжелого" рантайма? Или там есть какие-то фундаменталные ограничения? Чесслово не могу понять.
Ответить | Правка | Наверх | Cообщить модератору

151. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +3 +/
Сообщение от НяшМяш (ok), 02-Сен-19, 02:40 
В MacOS X, например, IOKit - это C++ фреймворк для системных драйверов. Но для того чтобы рантайм не был тяжёлым, из него выпилили исключения, множественное наследование, шаблоны и RTTI.
Ответить | Правка | Наверх | Cообщить модератору

177. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +2 +/
Сообщение от Аноним (240), 02-Сен-19, 10:43 
А вот шаблоны зря. Они же compile time и потому в runtime ничего не весят.
Ответить | Правка | Наверх | Cообщить модератору

185. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Аноним (99), 02-Сен-19, 11:28 
> А вот шаблоны зря. Они же compile time и потому в runtime
> ничего не весят.

Для NT реализована стандартная библиотека C++ https://github.com/icestudent/ontl
где всё вышеперечисленное сохранено (с учётом естественных ограничений на использование исключений на высоких IRQL).

Ответить | Правка | Наверх | Cообщить модератору

236. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Аноним (240), 03-Сен-19, 12:34 
Судя по нику разработчика, дальше курсовика не продвинется.
Ответить | Правка | Наверх | Cообщить модератору

239. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Аноним (99), 03-Сен-19, 13:01 
> Судя по нику разработчика, дальше курсовика не продвинется.

Судя по истории в 10 лет коммитов и порядка 50 человеко-лет по некоторым метрикам, тема курсовика того Студента "ненавязчивый троллинг ламеров".

Ответить | Правка | Наверх | Cообщить модератору

220. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +1 +/
Сообщение от 123 (??), 02-Сен-19, 21:05 
Ну т.е. выпилили всё что делает его С++-ом )))
Ответить | Правка | К родителю #151 | Наверх | Cообщить модератору

187. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Аноним (99), 02-Сен-19, 11:41 
> Объясните, кто-нибудь, на пальцах, почему драйвера, и вообще ядро, нельзя писать на
> современных плюсах С++?

На С++ возможно написать работающую программу, не владея на должном уровне языком и/или не понимая принципы работы базовых вещей (таких как аппаратный стек). Для ядра такое неприемлемо. Язык С отсеивает опасных и потому нежелательных дилетантов.

> Из-за "тяжелого" рантайма? Или там есть какие-то фундаменталные ограничения?

Рантайм может быть существенно сокращён в объёме и не является обязательным.

Ответить | Правка | К родителю #149 | Наверх | Cообщить модератору

191. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +5 +/
Сообщение от Аноним (149), 02-Сен-19, 11:49 
> На С++ возможно написать работающую программу, не владея на должном уровне языком и/или не понимая принципы работы базовых вещей (таких как аппаратный стек). Для ядра такое неприемлемо.

Хотите сказать на чистом С _невозможно_ написать работающую программу, невладея на должном уровне языком и/или не понимая принципы работы базовых вещей?
Ну ерунда-же.

Ответить | Правка | Наверх | Cообщить модератору

196. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Аноним (99), 02-Сен-19, 12:39 
Возможно, но уровни эти существенно разные. Насмотрелся на PHP-разработчиков, лабающих на плюсах, но впадающих в ступор при виде С.
Ответить | Правка | Наверх | Cообщить модератору

218. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  –1 +/
Сообщение от Anonymoustus (ok), 02-Сен-19, 18:17 
> Возможно, но уровни эти существенно разные. Насмотрелся на PHP-разработчиков, лабающих
> на плюсах, но впадающих в ступор при виде С.

Как же они на плюсах работают? А пример какой-то их работы есть где посмотреть?

Ответить | Правка | Наверх | Cообщить модератору

232. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Аноним (99), 03-Сен-19, 09:13 
>> Возможно, но уровни эти существенно разные. Насмотрелся на PHP-разработчиков, лабающих
>> на плюсах, но впадающих в ступор при виде С.
> Как же они на плюсах работают?

На плюсах, в отличии от С, можно поставить + между двумя строками, вот и работают, передавая на каждый чих vector<string> по значению. Работает же, а шо тут такого? (с)

> А пример какой-то их работы есть
> где посмотреть?

Специально не искал, видел такое в проприетари, подрабатывая "реаниматором".

Ответить | Правка | Наверх | Cообщить модератору

226. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +2 +/
Сообщение от Аноним (223), 02-Сен-19, 23:28 
> На С++ возможно написать работающую программу, не владея на должном уровне языком и/или не понимая принципы работы базовых вещей (таких как аппаратный стек).

Не так. На С++ невозможно написать работающую программу, владея на должном уровне языком и понимая принципы работы базовых вещей. Потому что овладеть всем этим и понять его для человека физически невозможно.
Да, Rust стремится раздуться в такого же монстра, но пока отстаёт.

Ответить | Правка | К родителю #187 | Наверх | Cообщить модератору

231. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Аноним (99), 03-Сен-19, 08:30 
>> На С++ возможно написать работающую программу, не владея на должном уровне языком и/или не понимая принципы работы базовых вещей (таких как аппаратный стек).
> Не так. На С++ невозможно написать работающую программу, владея на должном уровне
> языком и понимая принципы работы базовых вещей. Потому что овладеть всем
> этим и понять его для человека физически невозможно.

Оба тезиса не противоречат друг другу. Таков эффект Даннинга - Крюгера.

> Да, Rust стремится раздуться в такого же монстра, но пока отстаёт.

Ответить | Правка | Наверх | Cообщить модератору

237. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Аноним (240), 03-Сен-19, 12:41 
>не владея на должном уровне языком и/или не понимая принципы работы базовых вещей (таких как аппаратный стек). Для ядра такое неприемлемо. Язык С отсеивает опасных и потому нежелательных дилетантов.

Да ладно вам. Как это C вам отсеет HelloWorld-прогеров или запретит им на Сях писать? Ну отсейте производителей железок тогда, которые вам хоть какие-то кривые драйвера на Сях, заметьте, предоставили.

Ответить | Правка | К родителю #187 | Наверх | Cообщить модератору

207. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Wilem (?), 02-Сен-19, 15:12 
Писать можно что угодно на чём угодно. Если вопрос в "что лучше", а то лучше то, что лучше а не то, что хуже.  Извините.  Список того, чем раст лучше ц++ есть и не один.  Несколько лет назад была конфа где разработчику фейсбука рассказывал о самых жёстких багах в их коде на ц++, так вот каждый баг из этого списка просто бы не существовал на расте, т.к. компилятор бы не позволил такое сделать. https://www.reddit.com/r/rust/comments/cq9rco/cppcon_2017_cu.../
Ответить | Правка | К родителю #149 | Наверх | Cообщить модератору

210. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Аноним (99), 02-Сен-19, 15:35 
> Писать можно что угодно на чём угодно. Если вопрос в "что лучше",

Вопрос вообще не в лучше/безопаснее и проч.

Группа людей с консервативными взглядами годами совместно работает над ядром. Эта группа решает вопросы на каком языке разрабатывать ядро и в каком месте должна стоять запятая в принимаемых патчах. Про С++ говорят примерно то, что я мягко резюмировал в #187.

Тот факт, что Грег заявил "как здорово, давайте посмотрим, что вы нам предложите" совсем не означает, что предложеное не завалят по формальным поводам на ревью.

Ответить | Правка | Наверх | Cообщить модератору

211. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Аноним (99), 02-Сен-19, 15:39 
> предложеное

То есть если вот такое я хочу отправить как патч, мне укажут на ошибку и не примут. Хотя остальное может иметь гарантии в 146% безопасности, подкреплённые 7-ю печатями.

Ответить | Правка | Наверх | Cообщить модератору

227. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Аноним (223), 02-Сен-19, 23:30 
> Если вопрос в "что лучше", а то лучше то, что лучше а не то, что хуже.

Ну какой там ещё C++ или rust, ты русским-то языком мне парсер сломал.

Ответить | Правка | К родителю #207 | Наверх | Cообщить модератору

234. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Wilem (?), 03-Сен-19, 10:20 
Извините, не могу как аноним править, поторопился.
Ответить | Правка | Наверх | Cообщить модератору

238. "Фреймворк для написания защищённых драйверов для ядра Linux ..."  +/
Сообщение от Аноним (240), 03-Сен-19, 12:48 
>так вот каждый баг из этого списка просто бы не существовал на расте, т.к. компилятор бы не позволил такое сделать

А, собственно, что мешает компилятору C++ тоже стать значительно более строгим, даже особо не меняя стандарты языка? Ввести опцию-режим суперстрогости -fsuperstrict

Ответить | Правка | К родителю #207 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру