Search
Write a publication
Pull to refresh

Comments 5

Рад видеть продолжение статьи! Пока не прочитал до конца, но хотелось спросить: какие книжки/статьи по теме вы читали?

Добрый день.

Спасибо большое, рад, что вам нравится серия статей.

Для создания материала я использовал следующие ресурсы:

Поскольку я не очень силён в ассемблере, для изучения и понимания низкоуровневых деталей использовал вот эти статьи:

В целом, статей по этой теме, к сожалению, не так много, как хотелось бы. Конечно, есть классические и фундаментальные книги, например,
"Operating Systems: Three Easy Pieces" Ремзи Арпаци-Дуссеау и Андреа Арпаци-Дуссеау,
а также множество других источников.
Однако я в основном опирался на материалы, более ориентированные на современную работу с Rust и более высокоуровневый подход, так как классические книги зачастую глубже погружаются в низкоуровневые детали, которые больше подходят для C-разработчиков.

Для уточнения мелких деталей и объяснения сложных моментов, которых не хватало в открытых источниках, я также обращался к ChatGPT — он помог разобраться и структурировать трудный материал.

А зачем вы тянете с операционную систему на мега крутом и защищенном языке ABI от пропахшего нафталином С? Может если этого не делать, то и ассемблерные вставки не понадобятся, и unsafe блоков будет поменьше?

По итогу получается, что по сути то же самое, но с самого начала и на новом языке. Все заявленные плюсы сразу куда-то теряются и цели смены языка становятся ну совсем не очевидны.

Вопрос, в целом, риторический. Ответа особенно не требует.

Почему используется старый способ входа в kernelspace, есть же syscall/sysret

Добрый день.

Я использую int 0x80, потому что этот способ проще и понятнее для реализации системных вызовов на раннем этапе написания ядра. Он более старый и поэтому по нему больше документации, примеров и исходников в интернете. Особенно когда в ядре ещё нет разграничения между пользовательским и привилегированным режимами или поддержки сегментов.

Sign up to leave a comment.

Articles