Вопросы по теме 'osdev'

Какой дистрибутив barebones linux можно считать хорошим для начинающих разработчиков ядра?
В моем классе операционных систем мы хотим модифицировать ядро ​​Linux с помощью некоторых простых системных вызовов на C. Какой хороший дистрибутив подходит для этой цели? Нам не нужны никакие излишества, графический интерфейс, ванильное ядро ​​и...
11005 просмотров
schedule 20.11.2021

Может ли кто-нибудь объяснить, как я использую эту структуру данных C, полученную из grub? Я не понимаю привет и привет
Grub - это загрузчик, совместимый с несколькими загрузками. Когда он загружает операционную систему, он создает структуру, определяющую доступную память, и оставляет указатель на эту структуру в памяти. Я получил эту информацию здесь:...
520 просмотров
schedule 10.11.2021

Плохо ли, что процесс должен самостоятельно создавать собственный стек?
Плохо ли, что процесс должен самостоятельно создавать собственный стек? Если ядро ​​не хочет этого делать. Как здесь _start: mov $stack_head, %rsp jmp main .data .align 8 stack: .quad 0 .quad 0 .quad 0 .quad 0...
107 просмотров
schedule 10.09.2021

Разработка ОС - выполнение первой инструкции в защищенном режиме
Я имею в виду руководство по разработке ОС Broken Thorn . В настоящее время я нахожусь на стадии запуска загрузчика второго этапа, чтобы загрузить GDT и войти в защищенный режим. Я понял, как работает GDT и как войти в защищенный режим. Однако...
343 просмотров

Связывание 64-битного ядра
Привет всем, я пытался связать свой код сборки с файлом C ++, чтобы я мог убрать свою функцию kMain из сборки, и когда я связываю ее с этим скриптом: ENTRY(_Start) SECTIONS { . = 0x2000; .text : AT(ADDR(.text) - 0x2000) {...
424 просмотров
schedule 09.11.2021

Ошибка сборки кросс-компилятора GCC 5.1.0-4
Я слежу за учебником osdev.org для «голого железа», и в настоящее время я застрял на кросс-компиляторе. ! Я строю из арочного дистрибутива. Похоже, проблема в isl. Я думаю, что учебник основан на более старой версии gcc, cloog, isl и т. Д.,...
811 просмотров
schedule 02.10.2021

BIOS INT13h AH = 42h с BOCHS
У меня проблема с кодом загрузчика. Я пытаюсь использовать функцию BIOS INT 13h AH = 42h: «Расширенное чтение секторов с диска» версии 3.0 (EDD-3.0) с BOCHS для копирования кода моего ядра с образа жесткого диска в область памяти выше 0x100000 в...
537 просмотров
schedule 06.09.2021

Как мне записать bin-файл (512 байт) в первый сектор (сектор 0) дискеты?
Как мне записать .bin файл так, чтобы он находился в первом секторе дискеты / виртуальной дискеты / образа дискеты? Пытаюсь загрузить простой загрузчик на 512 байт. Размер везде говорит "512 байт", так что я уже должен быть в порядке....
8337 просмотров
schedule 15.11.2021

Создание правильной структуры сегмента состояния задачи (TSS) с растровым изображением ввода-вывода и без него?
Чтение документации Intel и AMD и просмотр кода иногда затрудняют понимание того, как создать правильный сегмент состояния задачи (TSS), который не имеет битовой карты портов ввода-вывода (IOPB). Также, похоже, существует путаница при создании TSS с...
1079 просмотров
schedule 24.09.2021

Обработчик прерывания на C не работает после одного прерывания
Я пытаюсь реализовать обработчик прерывания клавиатуры с помощью C и QEMU. Но когда я запускаю программу, мой обработчик выводит только один символ. После этого обработчик вообще не работает. Моя настройка IDT: struct IDT_entry { unsigned...
491 просмотров
schedule 23.11.2021

Как мне поместить загрузчик и ядро ​​на USB
Я написал загрузчик и базовое ядро ​​в качестве забавного побочного проекта, пока я изучаю двухэтапные загрузчики, я хочу загрузить свой загрузчик в сектор 1 (или MBR) USB и ядро ​​в секторе 2. Я скомпилированы как в Bootloader.bin, так и в...
236 просмотров
schedule 05.10.2021

OSDEV: Как использовать режим vesa?
Привет, я пытаюсь использовать режим vesa в своей операционной системе и использую этот учебник: Рисование в защищенном режиме У меня есть разрешение на переключение, но я не умею рисовать пиксель. вот мой код: kernel.asm bits 32...
434 просмотров
schedule 03.10.2021

Есть ли 64-битный загрузчик UEFI ELF?
У меня ядро ​​ELF. Поэтому мне нужен загрузчик, который загрузит мой 64-битный файл ELF. Мне не нужны устаревшие загрузчики Legacy BIOS, мне нужен загрузчик UEFI с графическим интерфейсом или без него.
45 просмотров
schedule 08.10.2021

Прототип ядра и модулей
Недавно я взял один из своих старых проектов и перезапустил его, практически с нуля. Некоторое время я болел, так что у меня было время взяться за дело и реализовать множество функций. Однако я считаю, что было бы неплохо реализовать загрузку...
320 просмотров
schedule 23.02.2022

Как создать ядро ​​UEFI в NASM в Linux
Я следовал этому руководству по разработке ОС. Разработка ОС в Windows Однако мне не нравится среда разработки Windows, поэтому я пытаюсь перенести эти инструкции в свою предпочтительную среду Linux. Я попробовал руководство из Книги Рода ,...
791 просмотров
schedule 11.03.2022

Тройной сбой в стеке в коде C
Я пишу игрушечное ядро ​​в учебных целях, и у меня с ним возникают проблемы. Я сделал простой загрузчик, который загружает сегмент с дискеты (которая написана 32-битным кодом), затем загрузчик включает шлюз A20 и включает защищенный режим. Я могу...
676 просмотров
schedule 27.03.2022

Тройной отказ по прерываниям
Я новичок во всем этом, поэтому заранее прошу прощения, если пропустил что-то действительно очевидное Итак, я пытаюсь сделать простое ядро ​​на сборке x86 и C. Я пытался заставить работать прерывания. Я определяю GDT, IDT в сборке. Я даже не...
150 просмотров
schedule 28.03.2022

Как реальный режим x86 работал на машинах с ‹640 КБ ОЗУ?
Этот вопрос в основном связан с историческим интересом, но мне не удалось найти документацию по этому поводу. Вся документация, которую я могу найти по реальному режиму x86 (включая руководство Intel [1] и онлайн-карты памяти [2]), предполагает 640...
323 просмотров
schedule 02.04.2022

Intel x86 — ответственность за процедуру обслуживания прерываний
У меня нет проблемы в прямом смысле этого слова, а скорее я попытаюсь прояснить вопрос содержания. Предположим, у нас есть микроядро (PC Intel x86; 32-битный защищенный режим) с работающими таблицей дескрипторов прерываний (IDT) и процедурой...
458 просмотров
schedule 10.04.2022

Прерывание клавиатуры в защищенном режиме x86 вызывает ошибку процессора
Я работаю над простым ядром и пытаюсь реализовать обработчик прерывания клавиатуры, чтобы избавиться от опроса портов. Я использовал QEMU в -kernel режиме (чтобы сократить время компиляции, потому что создание iso с использованием grub-mkrescue...
960 просмотров
schedule 21.04.2022