Разница между 1.1
и текущей версией
ПроектLAMPOS.
@@ -1,15 +1,13 @@
-- LAMP OS
-
-- О проекте
+= LAMP OS
'''LAMP OS''' - учебный проект по созданию ядра для процессоров архитектуры [[https://en.wikipedia.org/wiki/X86|x86]].
- Зависимости
-Для сборки проекта вам потребуются ''make(1)'', [[https://en.wikipedia.org/wiki/Cross_compiler|кросс-компилятор]] (например ''gcc(1)''), ''genisoimage(1)'' из набора ''[[https://en.wikipedia.org/wiki/Cdrkit|cdrkit]]'' и ''[[https://en.wikipedia.org/wiki/QEMU|qemu(1)]]'' для тестирования работы проекта.
+Для сборки проекта вам потребуются ''make(1)'', компилятор gcc с установленным пакетом gcc-multilib, ''genisoimage(1)'' из набора ''[[https://en.wikipedia.org/wiki/Cdrkit|cdrkit]]'' и ''[[https://en.wikipedia.org/wiki/QEMU|qemu(1)]]'' для тестирования работы проекта.
На дистрибутиве Debian установить зависимости можно следующим образом:
- # apt-get install make git qemu gcc genisoimage
+ # apt-get install make git qemu gcc genisoimage gcc-multilib
- Установка
@@ -25,7 +23,7 @@
Проект можно протестировать с получением отладочной информации с помощью команды:
$ make debug
-- Устройство проекта:
+- Устройство проекта
Все исходные коды заголовков помещаются в ''include/''. исходные коды же находятся в ''src/''.
В ''src/boot.s'' находится ассемблерный код функции ''start()'' отвечающий за первоначальную загрузку и включения страничного механизма, который после отработки передает управление функции ''main()'' в файле ''src/main.c''.
@@ -39,24 +37,33 @@
* инициализацию '''аллокаторов''' в ''mem_init()''
- Реализованный функционал
- * Вывод текста на '''VGA''' монитор с помощью ''iprintf()'' или ''dprintf()''
- * Вывод и вывод данных из '''COM''' порта (''iprintf()'' и ''dprintf()'' дублируют вывод в '''COM1''')
+ * Вывод текста на '''VGA''' монитор с помощью ''iprintf()'' или ''dprintf()'' (вывод отладочной информации)
+ * Ввод и вывод данных из '''COM''' порта (''iprintf()'' и ''dprintf()'' дублируют вывод в '''COM1''')
* Реализована почти полная работа с памятью.
* Реализована работа с '''сегментами'''
* Реализован '''аллокатор''' физических страниц
* Реализован '''аллокатор''' виртуальных страниц
* Реализован '''аллокатор''' для ядра поверх двух вышеназванных '''аллокаторов'''
+ * написана ядерная отладочная командная оболочка
+ 1 написан простой драйвер '''клавиатуры'''
+ 1 реализована поддержка прерываний с помощью '''PIC'''
+ * Поддержка TIP (программируемый таймер).
- ''''''ToDo''''''
- 1 написать минимальный ''sh(1)''
- 1 написать драйвер '''клавиатуры'''
- 1 сделать поддержку прерываний и работы с '''PIC'''
- 1 написать '''файловую систему'''
- 1 написать драйвер '''Floppy''', '''ATA''', '''SATA'''
- 1 написать минимальную '''файловую систему'''
- 1 написать '''виртуальную файловую систему'''
+ 1 Написать минимальный ''sh(1)''
+ 1 реализовать пользовательские процессы
+ 1 написать '''файловую систему'''
+ 1 написать драйвер '''Floppy''', '''ATA''', '''SATA'''
+ 1 написать минимальную '''файловую систему'''
+ 1 написать '''виртуальную файловую систему'''
+ 1 APIC, SMT
-- Ссылки:
+- Ссылки
* [[https://wiki.osdev.org/|OSDev]] - англоязычная вики про создания операционных систем
* Intel® 64 and IA-32 Architectures Software Developer’s Manual
+
+- Страницы посвященные этой теме
+##
+
+# КатегорияПроекты