Skip to content

Latest commit

 

History

History
50 lines (33 loc) · 3.92 KB

README.md

File metadata and controls

50 lines (33 loc) · 3.92 KB

Корневой каталог (linux-0.11/)

Здесь находятся важные файлы ядра:

  • Makefile – главный файл сборки ядра.
  • boot/ – код загрузчика (bootloader).
  • fs/ – код файловой системы.
  • include/ – заголовочные файлы (.h).
  • init/ – код инициализации ядра.
  • kernel/ – основная логика ядра.
  • lib/ – вспомогательные функции (строковые операции, память).
  • mm/ – управление памятью.
  • tools/ – вспомогательные утилиты.

Интересные моменты в Linux 0.11

  • Нет виртуальной памяти – все процессы работают в общей памяти.
  • Файловая система Minix – первая файловая система Linux.
  • Простой планировщик процессов – использует counter и priority для переключения задач.
  • 16-битный загрузчик – ядро загружается в реальном режиме (до перехода в 32-битный защищённый режим).

Дисклеймер

Отвечаю на главный вопрос: почему 0.11?

Я предвижу вопросы из зала: адекватен ли я? Справки у меня нет, но есть желание разобраться, не падая с небес, а медленно карабкаясь вверх.

Да, я сейчас перечитываю Just for Fun, и хочется воочию увидеть, о чём пишет Линус и хотя бы немного погрузиться в то, что он делал.

Что ещё из плюсов? Linux 0.11 — всего 10-12 тысяч строк кода (современные ядра >30 миллионов строк). Его реально разобрать за разумное время.

Да, скорее всего, я опущу большую часть ассемблера, который здесь широко применялся (всё-таки Линус тоже учился, хотел разобраться, как работает CPU, и выжать из него максимум).

Начну отсюда, но не буду сильно зацикливаться. Разберу самые интересные вещи:

В целом, хочется понять, как ядро управляет процессами и памятью. Может, ради шутки попробую собрать и запустить в QEMU.

Далее можно прыгать к более новым ядрам (например, 2.6 или 5.x). Если, конечно, не умру по дороге, потому что делаю это только в личное свободное время, которого практически и фактически нет 🥹 . Занятие для души, так сказать.

Это всё чисто человеческий интерес, возможно, ещё одно бесполезное, но интересное хобби.

Who knows? 😏

Ах и да, я не то чтобы искушён в C, но в целом ещё в университетские годы немного писал на нём. Правда, это были совсем базовые программы, плюс немного ассемблера, так что есть шанс хоть немного вспомнить.

Я очень сентиментален 😂 .