Изучение курса "Операционные системы" профессора ХЭУ Ли Чжиюня
Видео-курс на Bilibili: https://www.bilibili.com/video/BV1d4411v7u7
Требования к курсу: после завершения курса вы сможете написать простую операционную систему и понимать, что происходит внутри операционной системы.
Используйте ветку -b start, чтобы получить проект без последующих экспериментальных директорий.
git clone https://gitee.com/zpxuzhen/hit-oslab-linux.git -b start
cd hit-oslab-linux
./start/setup.sh -s
# При первом запуске нужно добавить параметр -s для установки окружения, в последующих запусках этот параметр можно опустить.
После установки в проекте появится директория oslab, где будут находиться среда выполнения и исходный код linux-0.11. Если установка прошла успешно, будет запущено и скомпилировано linux-0.11.
Сначала перейдите в директорию oslab, затем выполните следующие команды:
Команда для компиляции linux-0.11: cd linux-0.11 && make
Команда для запуска linux-0.11: ./run
Команда для восстановления директории linux-0.11: ./run init
```Шаги для отладки:
[1] Откройте одно окно и выполните
./dbg-c
[2] Откройте другое окно и выполните [не рекомендуется, лучше перейти к шагу 3]
./rungdb
[3] Также можно использовать Visual Studio Code, тогда команда ./rungdb не понадобится.
Откройте директорию oslab в Visual Studio Code, установите плагин C/C++.
Я уже добавил файл конфигурации отладки .vscode/launch.json в директорию oslab.
Для начала отладки нажмите F5.
Лабораторная работа 1: Загрузка операционной системы Лабораторная работа 2: Системные вызовы Лабораторная работа 3: Отслеживание и статистика процессов Лабораторная работа 4: Переключение процессов с использованием стека ядра Лабораторная работа 5: Реализация и применение семафоров Лабораторная работа 6: Адресное отображение и совместное использование Лабораторная работа 7: Управление терминальными устройствами Лабораторная работа 8: Реализация файловой системы proc Краткое описание лабораторных работ Лабораторные работы 1-2 охватывают границы операционной системы (загрузка + вызовы интерфейсов). С третьей лабораторной работы начинается изучение внутренней структуры операционной системы, которая включает в себя "многопоточность" и "файловую систему".И множественный процессный вид является самым базовым ядром операционной системы, а файловый вид предназначен для управления всеми внешними устройствами, кроме процессора и памяти. 【1】Множественный процессный вид (управление процессором, управление памятью) 【2】Файловый вид (управление вводом-выводом, управление дисками) В более продвинутых операционных системах также включаются: управление сетью, управление питанием, управление многоядерными процессорами. Дополнительные эксперименты: В проекте "Основы операционных систем, их реализация и практика" представлены крупные практические проекты: Крупный практический проект 1 — дизайн и реализация ядерных потоков Крупный практический проект 2 — дизайн и реализация виртуальной памяти и обменных разделов Крупный практический проект 3 — реализация драйвера мыши и простого графического интерфейса Крупный практический проект 4 — дизайн и реализация драйвера сетевой карты и сетевых протоколов #### Ссылки: https://www.lanqiao.cn/courses/115 https://hoverwinter.gitbooks.io/hit-oslab-manual/content/index.html "Полное объяснение Linux-ядра" версия ядра 0.11 автор: Zhao Jiong OldLinux: http://www.oldlinux.org/ Официальная версия Linux: https://mirrors.edge.kernel.org/pub/linux/kernel/
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )