Системное программирование, с чего начать?

Давным давно я имел мечту, заниматься системным программированием. Написанием ЭМУЛЯТОРОВ, интерпретаторов, ос и прочего. Вот я уже большой мальчик, а с чего начать не знаю. Поиск по теме эмуляция не особо что дает. Помогите новичку. Знаю c#, немного с++. Подкиньте, пожалуйста, литературы, статей и прочей информации. Поделитесь своим опытом.
P.S. по началу буду использовать Windows, но в будущем(далеком) думаю пересесть на Archlinux.
P.P.S. Думаю, что перед освоением ассемблера нужно больше узнать обо всем.
P.P.P.S "P.S. Кстати, позвольте полюбопытствовать, какой именно ассемблер вы собрались осваивать: ARM? MIPS? AMD64?"
Собирался Арм.
  • Вопрос задан
  • 7182 просмотра
Решения вопроса 1
dordzhiev
@dordzhiev
Сначала C, затем читаешь книжку Таненбаума. А как дальше, уже решишь сам, знаний будет достаточно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
@vilgeforce
Раздолбай и программист
Учите чистый C.
Ответ написан
Комментировать
Olej
@Olej
инженер, программист, преподаватель
Знаю c#, немного с++.

Забудьте это.
В том, что вы называете "системное программирование" ни с тем, ни с другим - делать нечего.

P.S. по началу буду использовать Windows, но в будущем(далеком) думаю пересесть на Archlinux.

И это забудьте.
Только Linux (ну, если очень хочется - FreeBSD, OpenSolaris, QNX, ...)
Возня с Windows вам ничего не даст ни в смысле опыта, ни в смысле знаний.

P.P.S. Думаю, что перед освоением ассемблера нужно больше узнать обо всем.

А вот ассемблер вам понадобится в последнюю очередь, если вообще понадобится...
P.S. Кстати, позвольте полюбопытствовать, какой именно ассемблер вы собрались осваивать: ARM? MIPS? AMD64? ...
Ответ написан
@MiiNiPaa
Начните с попытки написать эмулятор NES. Документации полно, тема эта обсосана со всех сторон.

P.P.S. Думаю, что перед освоением ассемблера нужно больше узнать обо всем.
Изучение ассемблера само по себе принесёт много информации об устройстве процессоров, а отсутствие синтаксического сахара — знания о том, как этот сахар реализован в языках.
Ответ написан
Комментировать
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Начните с малого, купите платку с stm32 типа stm32f4-discovery, загрузите в нее freertos и поморгайте диодами.
Ну или в линуксе сделайте простой драйвер по книжке Ори Померанца, она везде есть в открытом доступе, оригинал тут www.tldp.org/LDP/lkmpg/2.6/html/index.html
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
что бы что-то эмулировать вам надо знать как это работает в реальности. Если вы знаете как то что вы пытаетесь эмулировать работает - вы можете придумать как это осуществить програмно.

Вывод - читаем книги, например Таненбаума, разбираемся как работает то что вы хотите эмулировать ну и т.д. Словом... гуглить не "как сделать то что я хочу" а дробить задачу на подзадачи и т.д.
Ответ написан
Комментировать
heksen
@heksen
Напишите системную службу под windows
Ответ написан
Комментировать
@beduin01
Учите Rust и D.
На первом сможете совсем низкий уровень писать, на втором, по идее тоже, но там будет небольшой оверхэд, который системщики не любят.

Если знаете китайский можете почитать что тут на тему загрузчиков пишут) forum.dlang.org/thread/bzkvixweaqdvhuwnmklg@forum....
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы