Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 7 2 6
Системное программирование Аноним 16/10/25 Чтв 16:20:28 3565204 1
177873824-ac727[...].png 139Кб, 728x724
728x724
c.png 68Кб, 2000x2000
2000x2000
Давно занимался этой хуйней. Мечтал написать любительскую 64 битную операционку или модули для Linux. За 3 года в голове очень много теории, но написать я вообще ничего не могу. Знаю синтаксис Си и Nasm. Есть базовые знания об архитектуре x86. С чего начать написание низкоуровневого софта? Есть вообще мысли по этому поводу?
Аноним 16/10/25 Чтв 18:29:10 3565287 2
Начни с того, чтобы система могла сама себя загружать. Условно сначала надо написать штучку, которая при загрузке и передаче ей управления загружала ещё что-то. Этим ещё чем-то может быть, к примеру, менеджер памяти. Тогда уже есть две вещи, которые ты можешь написать - загрузчик и менеджер памяти.
Аноним 17/10/25 Птн 00:36:50 3565512 3
Попробуй написать загрузчик, который бы запускался при включении компьютера, и выдавал бы сообщение "Hello world!".
Или просил ввести с клавиатуры имя, и писал бы "Здравствуй %name%".
Причём напиши всё это на голом ассемблере. Это для начала.
Ещё можешь попробовать на ассемблере накодить вычисление N-го члена последовательности фибоначчи. Где число N вводится с клавиатуры.
Этот вычисленный член надо вывести на экран.

Ещё затем попробуй накодить какую-нибудь такую же простенькую программу на C, но сделай так, чтобы этот сишный код запускался бы при загрузке компьютера.
Т.е. тебе опять по-любому придётся для начала писать и запускать ассемблерный код, а лишь затем этот сишный.

Смог такое сделать? Это значит, что у тебя есть основа, чтобы писать ядро операционки на Си, и запускать его ассемблером при запуске компа.
Аноним 17/10/25 Птн 00:50:09 3565514 4
Про написание ОС ты конечно можешь забыть - это неподъёмная задача. Но поиграться с программированием на низком уровне вполне можно.
Напиши код, который бы занимался
1. Вводом-выводом с HDD. Чтение или запись данных. Можно попробовать сделать работу с флоппиком (если есть такой).
2. Ввод-вывод инфы по серийному порту
3. Поиграйся с прерываниями и APIC. Попиши обработчики.
4. Накатай возможность запускать несколько процессов одновременно. Реализуй для них защиту памяти, подкачку инфы с жесткого диска, простейший scheduler.
5. Поиграйся с видеосистемой. Режимы экрана, там. VESA.
6. Поиграйся с портами ввода-вывода и memory-mapped IO. PCI bus.

Вот примерный план того, чем можно упороться где-нибудь на полгода.
Аноним 17/10/25 Птн 18:15:37 3565953 5
>>3565204 (OP)
>модули для Linux
это суперлегко делается, но юзлесс если нет практического применения и ты максимум что сможешь это ядерный калькулятор написать
Аноним 18/10/25 Суб 14:04:00 3566322 6
>>3565514
>это неподъёмная задача
Это очень подъёмная задача, ОС необязательно должна быть уровня жмупинус, потому что на дворе 2025 год, но только смысла от этого хуй да нихуя.
>>3565953
Двачаю, писать дрова для какого-нибудь юсб принтера в кернер спейсе в виде модуля - нахой не стоит, лучше сразу писать на libusb, к примеру, сеть - dpdk.
Аноним 18/10/25 Суб 16:08:39 3566370 7
>>3565514
Добиваешься что но в всего задумал всегда конце концов ты.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов