LANOS - проясните серию знаний о Linux0.12
这个工程的目标是梳理《Linux源码剖析》的知识点并从0.12版本的源码中抠出部分代码构建一个
能用现代linux发行版方便编译的迷你系统,从而验证各个知识点
Билибили видеоурок
Справочные ресурсы
- «Анализ исходного кода Linux». Последняя электронная версия
- Linux 0,1x исходный код
- Официальный сайт Oldlinux
- Orange's: реализация операционной системы
Спасибо, доктор Чжао Джионг, учитель Ю Юань, мистер Хидеши Кавахиро и самое большое уважение!
Особенности этого урока
- Многие ссылки на дизайнерские идеи Linux0.12 на создание демонстраций, которые помогут вам прочитать исходный код Linux позже
- Повторное внедрение как можно больше кода, внедренного в Linux с C для улучшения читаемости и снижения затрат на обучение
- Используйте Docker для компиляции, делая компиляционную среду очень простым в построении
Метод ультрастрабильного компиляции (полагаясь на Docker & Networking)
Выполните следующую команду, чтобы вытащить код и компиляцию (будет более медленнее выполнять make_os.sh в первый раз, потому что вы хотите вытащить скомпилированное изображение Docker)
git clone https://github.com/freelw/LanOS.git
cd LanOS
./make_os.sh
Эффект исполнения
dantadeMacBook-Pro:yard danta$ git clone https://github.com/freelw/LanOS.git
Cloning into 'LanOS'...
remote: Enumerating objects: 517, done.
remote: Counting objects: 100% (517/517), done.
remote: Compressing objects: 100% (322/322), done.
remote: Total 1316 (delta 304), reused 379 (delta 181), pack-reused 799
Receiving objects: 100% (1316/1316), 2.78 MiB | 42.00 KiB/s, done.
Resolving deltas: 100% (788/788), done.
dantadeMacBook-Pro:yard danta$ cd LanOS
dantadeMacBook-Pro:LanOS danta$ ./make_os.sh
builing lan os...
cleaning temp files...
file [a.vfd] is our os image with a simple ramdisk filesystem.
Каталог знаний
- Как компилировать и запустить демо
- Уточнить серию точек знаний Linux 0,12, чтобы сделать сборку в C, больше не далеко
- Уточнить адресную строку A20 Linux0.12
- Уточнить инициализацию и часовое прерывание 8259a в серии точек знаний Linux0.12
- 8259a Принцип подробный описание
- Сортировка информации, связанная с онлайн, сортировка
Кровь и слезы
- Перейти к пользовательскому режиму
- Предварительная отладка вилка
- Вилка+копия на записи
- О глобальных переменных
Другие инструкции
- Как скомпилировать пользовательский двоичный файл
Тодо
Реализация print_str Сделано 20200224 PRINT_NUM реализация Сделано 20200224 Реализация LAN_FS Сделано 20200224 Реализация EXEC Сделано 20200224 Выход реализации Сделано 20200304
Окончательный дисплей эффекта
Есть простые оболочки и файловые системы, которые могут выполнять программы LS
Support Exec System System Calls, может выполнять приложения
Во время запуска одной исполняемой программы выполните другую программу, указывая на то, что многозадачность поддерживается
Внедрение программы цикла
Смотрите здесь для деталей
Окончательная демонстрационная ссылка
Смотрите здесь для деталей
Исторический демонстрационный порядок
- ASM_INT_80
- asm_call_c
- lds_test
- Protect_mode_demo
- Protect_mode_cpp_demo
- a20_not_open
- a20_open
- мм
- user_mode_demo
- fork_demo
- cp_on_write
- print_str_demo
- fs_demo
- exec_demo
- shell_demo
- ls_demo
- exit_demo
- common_header_demo
B Документ веб -сайта
- 01 Цели и приготовления
- 02 Сравнение двух направлений
- 03 управлять двоичными файлами
- 04 Защитите режим быстро
- 05 A20 ADRED LINE
- 06 8259a
- 07 мм