Литература для освоения принципов работы низкоуровневых аппаратно-программных средств?
Всем привет! Посоветуйте, пожалуйста, литературу, которая подробно и относительно доступно объясняет принципы программного устройства компа на низком уровне.
Понятно, что скорее всего нет единого источника. Но может кто накидает хотя бы несколько вариантов.
Чему хочу научиться: мне хотелось бы углубленно понять некоторые низкоуровневые темы работы компа. Например, я понимаю что подключение по Bluetooth происходит при помощи Bluetooth-адаптера (аппаратный уровень), что ядро того же Unix взаимодействует с этим адаптером, запись и чтение идёт через файловые дескрипторы посредством определённых протоколов — условных договоренностей (программный уровень) и тд. Через терминал можно получить список доступных Bluetooth устройств по-близости. Но вот мне например, интересно, как реализовано получение этой информации. Подобных вопросов у меня много: как реализовано пингование доступных сетей поблизости, мб где-то есть пример написания простейшей базы данных с рассуждениями а почему так, а не иначе.
Если есть подобные источники с примерами кода на python — круто. Если на C/C++ — не проблема, разберусь. Важно, чтобы было четкое описание зачем, почему и как это работает. Даже если не будет примеров кода.
Сергей Горностаев, строго говоря, можно объяснять принципы работы и на примере кода на питоне, например, написав интерпретатор некоторого бинарного кода, выполняющегося на некоей виртуальной машине с регистрами, адресуемой памятью, стеком итд итп. Но да, конечно, это довольно дурацкое пожелание для данной тематики.
shurshur, на python вполне можно написать все то же самое, что написано на сях, только если где-то не используется выход за пределы массивов и тому подобное, что вряд ли. В данном случае его модно рассматривать хотя бы как псевдокод, для понимания принципов работы достаточно
shurshur, могу ошибаться, тк глубоко не изучал этот вопрос, но насколько я знаю под капотом питон может обращаться к сишным библиотекам и использовать их функционал
Для общих принципов можно почитать "Архитектура компьютера" Таненбаума. Для углубления в железо хорошо подойдёт "Цифровая схемотехника и архитектура компьютера" Харрисов. Для деталей работы операционных систем на уровне ядра, надо брать книги по системному программированию под конкретные операционки, такие есть как для Windows, так и для Linux.