Написание драйверов устройств Linux (довольно актуально, но не так подробно, как раньше)
Система разделения времени UNIX , по сути, это исходный документ UNIX , это может помочь понять, откуда все это взялось, не обязательно разбираться во всех деталях этой старой статьи, но я думаю, что это дает хороший фон
Я настоятельно рекомендую "UNIX для чайников" в качестве отправной точки для Unix / Linux.
Несколько ресурсов, которые помогли мне в изучении языка C:
Удачи!
Быстрый способ узнать немного обо всем вышеперечисленном - купить плату разработки на базе MSP430 от Texas Instruments, установить mspgcc (компилятор с открытым исходным кодом для MSP430) на Linux-машину и написать базовую программу на языке C, которая мигает светодиодом на плате разработки.
Помимо ресурсов, предложенных выше, вам необходимо понять, зачем вам нужны эти языки. Только язык программирования или операционная система уведут вас так далеко - например, если вы программируете на встроенных платформах, обычно памяти не хватает. Значит, вам нужно кодировать для оптимизации памяти.Если вы работаете в реальном времени, вам нужно хорошо разбираться в обработке прерываний и т. Д. Я бы посоветовал определенно уделить время архитектуре (ARM Cortex-M1 и т. Д.), Для которой вы планируете кодировать. Всегда помогает.
Чтобы узнать больше о причудах, загляните в http://en.wikibooks.org/wiki/Embedded_Systems/C_Programming
«Встраиваемые системы программирования Ориелли на C и C ++» - хорошее место для начала, когда вы освоите C / C ++ ясно.
В Интернете есть множество замечательных ресурсов. Мой любимый - из Массачусетского технологического института.
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/
Бесплатные курсы. Они могут быть довольно глубокими и охватывать гораздо больше предметов, чем просто информатика и математика.