The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Уязвимость в ядре Linux, позволяющая получить права root"
Отправлено andrcmdr, 23-Фев-17 18:17 
Микроядро породит неизбежные проблемы IPC взаимодействия между процессами, что более медленно из-за частой смены уровней привелегий в рамках процессов и сохранения контекста вызовов. Интерфейсы механизма IPC между процессами и микроядром только усложнят код и породят ещё больше ошибок. При этом не нужно забывать, что ядро Linux имеет хорошую модульность и продуманную архитектуру, не смотря на монолитность, в угоду простоте и скорости работы.

Проблема не в архитектуре ядра - проблема в устаревшей технологии программирования и разработки, когда используется прямой доступ к памяти с ручным опасным управлением её сегментами (ещё и c оператором goto) в привелегированном режиме процессора и это считается нормой в системной и embedded разработке! Опасная технология системной разработки в среде Linux возводится в ранк фетишизма, как бритьё с опасным лезвием.

Но есть альтернативы - языки Rust и D.
Взять Rust.
Rust более сложный general purpose язык чем Си (позиционируется как безопасная альтернатива C++), безопасность заложена концептуально в основу языка, при этом язык по настоящему системный, с прямым и безопасным! доступом к памяти, благодаря умным runtime указателям и деструкторам, которые подчищают неиспользуемую программно память, используя подсчёт ссылок и представлены как типы данных в языке, т.е. указатели типизированные! и всего их два вида, но есть и возможность небезопасного доступа к памяти через объявление unsafe блока кода.

https://doc.rust-lang.org/std/rc/struct.Rc.html - умный указатель с подсчётом ссылок для однопоточного кода

https://doc.rust-lang.org/std/sync/struct.Arc.html - tread-safe тип умных указателей с подсчётом ссылок для многопоточного кода

В Rust используется весьма эффективная давно забытая конструкторно-деструкторная техника программирования, называемая RAII в C++, изобретённая в конце 80-х.
В разной литературе она также называется CADR (Constructor Acquires, Destructor Releases, CADRe) или SBRM (Scope-based Resource Management).

https://en.wikipedia.org/wiki/Resource_acquisition_is_initia...

https://en.wikipedia.org/wiki/Automatic_variable

На Rust можно безопасно писать любые системные программы - драйверы, работающие с оборудованием, подключенным к компьютерным шинам, модули ядра, как интерфейс между двайверами и системными вызовами, API ОС, с её ядром, можно даже своё ядро написать - проект микроядерной ОС Redox на Rust уже есть.

https://redox-os.org

https://github.com/redox-os/redox/

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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