Вопросы по теме 'osdev'
Размер стека, используемый при разработке ядра
Я разрабатываю операционную систему, и вместо того, чтобы программировать ядро, я проектирую ядро. Эта операционная система ориентирована на архитектуру x86, а моя цель — на современные компьютеры. Расчетное количество требуемой оперативной памяти...
7199 просмотров
schedule
09.03.2022
Доступ с клавиатуры в защищенном режиме на сборке x86
Я работаю над вводом с клавиатуры для очень простого ядра, которое разрабатываю, и я полностью застрял. Кажется, я не могу найти в Интернете никакой информации, которая могла бы показать мне ту информацию, которую мне нужно знать.
Мое ядро...
7318 просмотров
schedule
15.01.2022
Путаница в таблице пользовательских дескрипторов прерываний
Я пишу небольшую ОС, которая работает в защищенном режиме. Я приближаюсь к моменту, когда хочу загрузить пользовательскую таблицу дескрипторов прерываний, и я не знаю, с чего начать. Я прочитал кое-что на вики OS Dev , но есть несколько вопросов,...
499 просмотров
schedule
02.02.2022
Статические конструкторы на C++ в ядре собственной ОС
Я пытаюсь написать ядро на С++, и я новичок в разработке ОС. Сейчас я реализую cout для отображения на мониторе, но столкнулся с некоторыми проблемами. Я знаю, что вопрос, который я задаю, глупый, но я тоже новичок в С++.
Я написал класс...
821 просмотров
schedule
05.04.2023
Сбой загрузчика
В настоящее время я разрабатываю свой загрузчик, но у меня есть проблема.
Я использую Bochs для тестирования загрузчика, я компилирую загрузчик и создаю образ диска с помощью:
rm disk.bin
rm boot.bin
rm post.bin
nasm bootloader.asm -o boot.bin...
1109 просмотров
schedule
12.02.2024
Завершение работы ОС с помощью NASM
Я писал 16-bit Operating System и хотел бы, чтобы пользователь мог выключить компьютер, фактически не нажимая кнопку питания. Есть ли способ Assembly выключить компьютер?
364 просмотров
schedule
15.12.2023
Загрузка ядра, написанного на сборке, с помощью grub
Я знаю, что с таким маленьким простым ядром мне на самом деле не нужно загружать его с помощью GRUB, но я пытаюсь научиться делать это до того, как мое ядро станет большим, и мне нужно будет его загрузить. Я написал простое ядро со сборкой,...
1051 просмотров
schedule
23.09.2023
Перемещение курсора в текстовом режиме не работает
Я работаю над перемещением курсора текстового режима в операционной системе, которую я сейчас разрабатываю. У меня проблемы с его отображением вообще. Вот код, который я использую для обновления курсора:
void update_cursor()
{...
1317 просмотров
schedule
11.06.2023
Как сделать двухэтапный загрузчик USB FAT32?
Я делаю свою собственную ОС и прочитал все, что можно прочитать о самодельной OSdev. Однако я не понимаю, как сделать двухэтапный загрузчик. В частности, я не могу понять, как заставить мой первый этап найти второй этап в файловой системе FAT32....
1386 просмотров
schedule
08.02.2024
Измените GDT и обновите CS в длительном режиме
Пишу простенькую самодельную 64-битную ОС, загружаю ее через UEFI. Это означает, что когда мой код начинает выполняться, он уже находится в длинном режиме с включенным пейджингом.
Теперь, после выхода из загрузочных служб UEFI, я хочу заменить все...
1753 просмотров
schedule
25.12.2023
Переключение на более высокое разрешение
Недавно я начал разрабатывать операционную систему на NASM и C. Я уже сделал загрузчик, ядро, файловую систему и т. д. Пока что я использовал текстовый режим VGA напрямую, чтобы писать по адресу 0x000B8000 . Итак, я решил переключиться в режим видео...
628 просмотров
schedule
23.06.2023
Линейная адресация и GDT
Я изо всех сил пытаюсь настроить GDT и переключиться в защищенный режим. В основном потому, что я недостаточно хорошо понимал линейную адресацию. Вот мой код ядра (kernel.asm):
jmp main
%include "gdt.inc"
main:
call InstallGDT
cli
mov...
189 просмотров
schedule
24.07.2023
Напишите простой загрузчик, который читает имя пользователя
Я пытаюсь узнать, как работают операционные системы. Это простая задача, которую я с трудом решаю: написать простой загрузчик, который запрашивает у пользователя его имя и печатает приветственное сообщение, например «hello, >>name‹‹» — после этого он...
285 просмотров
schedule
03.02.2024
смонтировать файловую систему образа в подсистеме Windows для Linux
Поскольку циклический модуль WSL (подсистема Windows для Linux) не может быть включен, то как я могу смонтировать (или записать и прочитать другим способом) файловую систему в образе диска.
899 просмотров
schedule
04.05.2024
Проблемы с моим прототипом ядра (x86_64)
Я пытаюсь узнать, как работает ядро, пока я изучаю ассемблер, и в процессе изучения того, как успешно создать загрузочное ядро x86_64, у меня возникла проблема: я попытался успешно вывести некоторый текст с функциями в «main .c" (все файлы...
697 просмотров
schedule
08.03.2023
Переход в (не)реальный режим, чтение диска и возврат в защищенный режим
Мой вопрос довольно теоретический, но я хочу внедрить дисковый r/w в свою операционную систему, хотя я знаю, как это сделать в защищенном режиме, это займет слишком много времени Драйверы ATAPI+ATA+FDC (чтобы моя ОС загружалась на любом...
444 просмотров
schedule
17.05.2023
Необычное поведение ядра при выводе напрямую в текстовую видеопамять
Я работаю над базовым ядром. Я прошел несколько онлайн-курсов и начал писать это с нуля. Я наблюдаю необычное поведение при написании этого ядра. Я пишу ядро на C и загрузчик на ассемблере. Исходный код доступен здесь .
Проблема:
При...
93 просмотров
schedule
10.07.2022
Программирование видеокарты без прерываний BIOS
В настоящее время мне нужно создать собственную ОС, чтобы проверить некоторые идеи. Мой вопрос: как установить разрешение видеокарты без прерываний? Моя система поддерживает стандарт мультизагрузки, и ядро запускается в защищенном режиме,...
237 просмотров
schedule
06.05.2024
Ошибка компиляции gcc со встроенной сборкой: несоответствие типа операнда для ljmp
По какой-то причине следующая встроенная сборка (стиль AT&T/gcc) не работает на только что установленной 64-битной машине Debian GNU/Linux; он компилируется и корректно работает на других машинах:
static void INIT_CODE kernel_entry (void)...
993 просмотров
schedule
22.04.2023
Загрузчик, который я делаю, не получает IRQ12.
Компьютер, на котором я тестирую свою операционную систему, представляет собой ноутбук с сенсорной панелью. Когда я включаю компьютер, он читает клавиатуру, но после того, как я касаюсь тачпада, он не читает ни тачпад, ни клавиатуру. И я также...
112 просмотров
schedule
29.05.2022