Size: a a a

pro.osdev - os development

2021 August 11

BD

Berkus Decker in pro.osdev - os development
Разделяет она процессную память, поддерживает ли какой то ipc, как настраивает mmu/mmio?
источник
2021 August 12

BD

Berkus Decker in pro.osdev - os development
Жалко сорцы никак не посмотреть. Выложите кто нибудь в гитхаб гист что ли?
источник

BD

Berkus Decker in pro.osdev - os development
И что же можно ответить на пачку вызовов безо всякой оси?
источник

BD

Berkus Decker in pro.osdev - os development
Я могу ответить только «надстройка над биосом» если что.
источник

C

COTULARS in pro.osdev - os development
здравствуйте, я решил писать свою ос но застрял на управлении памятью, а если конкретней на реализации пейджинга. перечитал кучу статей посмотрел на реализации в других осях, но когда пытаюсь сделать в своей ничего не выходит. Буду очень благодарен если кто подскажет точное направление раскопок в этой теме
источник

DF

Dollar Føølish in pro.osdev - os development
попробуй для начала создать direct mapped область
источник

C

COTULARS in pro.osdev - os development
это каталог страниц которая?
источник

BD

Berkus Decker in pro.osdev - os development
Мало подробностей, что пытался сделать, что именно «не работает»
источник

BD

Berkus Decker in pro.osdev - os development
Направление раскопок примерно в сторону wiki osdev org Paging
источник

BD

Berkus Decker in pro.osdev - os development
Там всё есть, дальше на осдев форуме есть куча статей от брендана и комбастера с подробностями
источник

C

COTULARS in pro.osdev - os development
разметка каталога и таблиц страниц и включение (cr0 последний бит в 1 cr3 адрес каталога)
источник

C

COTULARS in pro.osdev - os development
оттуда как раз таки и беру
источник

BD

Berkus Decker in pro.osdev - os development
Это пытался или это не получилось? Какой эксепшен прилетает?
источник

C

COTULARS in pro.osdev - os development
сейчас секунду
источник

BD

Berkus Decker in pro.osdev - os development
По эксепшену должно быть очевидно что не так
источник

C

COTULARS in pro.osdev - os development
use32
start:
 @@:
 ; Очистим таблицы страниц
 xor ax, ax
 mov cx, 3 * 4096 / 2
 mov di, 0x1000
 rep stosw
 ; Заполним каталог страниц
 mov word[0x1000], 0x2000 + 111b
 mov word[0x1FFC], 0x3000 + 111b
 ; Заполним первую таблицу страниц
 mov eax, 11b
 mov cx, 0x100000 / 4096
 mov di, 0x2000
       @@:
 stosd
 add eax, 0x1000
 loop @b
 ; Заполним последнюю таблицу страниц
 mov di, 0x3000
 mov eax, dword[0x6000]
 or eax, 11b
 mov ecx, dword[0x6008]
 shr ecx, 12
       @@:
 stosd
 add eax, 0x1000
 loop @b
 mov word[0x3FF4], 0x4000 + 11b ; Kernel stack
 mov word[0x3FF8], 0x3000 + 11b ; Kernel page table
 ; Загрузим значение в CR3
 mov eax, 0x1000
 mov cr3, eax
 ; Запретим прерывания
 cli
 ; Перейдём в защищённый режим
 mov eax, cr0
 or eax, 0x80000001
 mov cr0, eax
 
 mov byte[0xB8000 + (25 * 80 - 1) * 2], "K"
 hlt
источник

BD

Berkus Decker in pro.osdev - os development
Кэши пайплайна сбрасываешь?
источник

BD

Berkus Decker in pro.osdev - os development
Попробуй это на нормальном языке снячала описать, без асма
источник

C

COTULARS in pro.osdev - os development
код, а вот что получается
источник

C

COTULARS in pro.osdev - os development
а что в асме не так?
источник