7. Heap


В прошлый раз, я споткнулся именно на этой статье. Уже подготовив перевод, я обнаружил некоторые ошибки в описании алгоритма и, пытаясь их исправить, полностью его переписал. Мой алгоритм в большей степени основан на алгоритме аллокатора Doug Lea, который используется (или когда-то использовался) в GNU libc. Поэтому, данная статья не является переводом оригинального цикла и алгоритм, представленный здесь отличается от алгоритма JamesM. Итак...

В ядре нам так или иначе потребуется механизм для динамического выделения памяти. На данный момент нами релизован механизм, использующий так называемый placement new, который нас вроде бы устраивает, но он обладает одним существенным недостатком: мы не можем эту память освободить.

How-To: Как создать образ диска для ВМ

1. Интро

В данной статье я хочу обобщить найденный мной материал, в котором описывается процесс создания образа жесткого диска, записи на него загрузчика GRUB, преобразования формата образа для различных систем виртуализации и настройка систем виртуализации для работы с этим образом. Все примеры приведены для ОС Linux со стандартным набором системных программ.

XPost. CPIO под микроскопом.

Это кросспост моей статьи CPIO под микроскопом. Описание этого формата будет нам необходимо при рассмотрении вопроса создания RamFS. В статье приводятся примеры из HEX-редактора, так что удобнее, на мой взгляд, читать ее через браузер.

CPIO - это достаточно старый (1992 год), но в то же время очень удобный вариант архива. Он достаточно прост, и, возможно поэтому, получил широкое распространение. Например данный формат используют RPM, initramfs ядра Linux, а также установщик архивов "pax" от Apple.

Данный архив позволяет собирать любое число файлов, директори и других объектов файловой системы (символических ссылок и т.д.) в единый поток байт.

Урок 6. Страничная адресация

В данном уроке мы собираемся настроить страничную адресацию. Она служит для двух целей: для защиты памяти и организации виртуальной памяти.

Урок 5. Аппаратные прерывания

В этот раз мы с вами создадим обработчики аппаратных прерываний, один из которых будет вызывать прерыванием от аппаратного таймера.

Урок 4. GDT и IDT

GDT и IDT - это таблицы дескрипторов. Они представляют собой массивы флагов и битов, описывающих работу системы сегментации и таблицы векторов прерываний соответственно.

Перевод Multiboot Specification

Для своих нужд потребовалось копаться в этом документе, результатом чего стал этот перевод. Я не переводчик, да и с языком у меня проблемы, так что если будут замечания и улучшения по тексту - прошу в комментарии.