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

Размер стека, используемый при разработке ядра
Я разрабатываю операционную систему, и вместо того, чтобы программировать ядро, я проектирую ядро. Эта операционная система ориентирована на архитектуру x86, а моя цель — на современные компьютеры. Расчетное количество требуемой оперативной памяти...
7199 просмотров
schedule 09.03.2022

Доступ с клавиатуры в защищенном режиме на сборке x86
Я работаю над вводом с клавиатуры для очень простого ядра, которое разрабатываю, и я полностью застрял. Кажется, я не могу найти в Интернете никакой информации, которая могла бы показать мне ту информацию, которую мне нужно знать. Мое ядро...
7318 просмотров
schedule 15.01.2022

Путаница в таблице пользовательских дескрипторов прерываний
Я пишу небольшую ОС, которая работает в защищенном режиме. Я приближаюсь к моменту, когда хочу загрузить пользовательскую таблицу дескрипторов прерываний, и я не знаю, с чего начать. Я прочитал кое-что на вики OS Dev , но есть несколько вопросов,...
499 просмотров

Статические конструкторы на 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 просмотров

Проблемы с моим прототипом ядра (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