точно при точно

Home  /   точно при точно
точно при точно

Полезные книги по программированию в Linux с примерами

[1] Цилюрик Инструменты в Linux для программистов из Windows 2011

Представлен проект книги, которая в конспективной манере обозначает те места в практике программиста-разработчика, которые, при общности концептуальных понятий, разительно отличаются в Linux от того, что привычно программисту из Windows. Цель книги: указать на такие места, чтобы не приходилось разыскивать наугад ответ на вопрос: “а как это делается в Linux?”

[2] Цилюрик Программирование модулей ядра Linux 2012
Читать в онлайн:

Эта книга появилась как итог подготовки и проведения курса тренингов, которые мне предложила организовать компания Global Logic () для сотрудников украинских подразделений компании. Первоначальный курс, начитанный в тренинговом цикле весны-лета 2011 года в Харькове и составил базовую часть текста. К завершению подготовки курса стало ясно, что большую проведенную работу, главным образом по написанию и отладке примеров, жаль терять бессмысленно, только как иллюстративный материал к тренингам. Более того, несколько моих коллег прошедших лет на протяжении работы обращались с просьбой переслать им материал в том сыром виде как он есть, и уверяли, что он им заметно помог. Всё это подвигло на намерение довести лекционный материал до печатного издания. Исходные тексты были значительно дополнены и переработаны, итогом чего и получилась книга, которую вы держите в руках.

Литература по программированию модулей ядра Linux хоть и малочисленна, но она есть. В конце книги приведено достаточно много обстоятельных источников информации по этому предмету: они достаточно хороши, а отдельные из них так просто замечательные… Но актуальность (по моему мнению) дополнительной систематизации информации, попытка которой сделана в этой книге, на момент её написания подталкивается ещё и двумя дополнительными обстоятельствами:

Всплеск интереса к операционным системам, базирующихся на ядре Linux, для самых различных классов мобильных устройств. Примерами того есть в высшей степени динамично развивающаяся система Android, или анонсированная к ближайшему завершению система Chrome OS. И в этих тенденциях прослеживается такая особенность, что инструментарий развития прикладных приложений (Java слой) предоставляется и афишируется в максимальной мере, в то время как средства натягивания ядра операционной системы на специфическое оборудование заметно (и сознательно?) вуалируются (лицензия GPL обязывает, но разработчики не особенно торопятся…).
Тенденция роста числа процессоров в единице оборудования: на сегодня уже не являются экзотикой компьютеры SMP с 2-4 ядра, или в комбинации: 4 процессора по 4 ядра (пусть это пока и в производительных серверах). Плюс каждое ядро может быть дополнено гипертрейдингом. Но и это только начало: большую активность приобрёл поиск технологий параллельного использования десятков, сотен, а то и тысяч параллельно работающих процессоров в эту сторону обратим внимание на модель программирования CUDA от компании NVIDIA. Все эти архитектуры используются эффективно только в том случае, если SMP адекватно поддерживается со стороны ядра.
И та, и другая тенденции, если и не подвигают к написанию собственных компонент ядра (что совершенно не обязательно), то, по крайней мере, подталкивают интерес к более точному пониманию и анализу тех процессов, которые происходят в ядре.

Материалы данной книги (сам текст, сопутствующие его примеры, файлы содержащие эти примеры), как и предмет её рассмотрения задумывались и являются свободно распространяемыми, и могут передаваться и

Кому адресована эта книга

Книга рассчитана на опытных разработчиков системного программного обеспечения. Предполагается, возможно, отсутствие у читателя богатого опыта в программировании именно для ядра Linux, или даже вообще в программировании для этой системы – но предполагается какой-то опыт в системном программировании для других операционных систем, который будет базой для построения аналогий. В высшей степени плодотворно любое знакомство с одной или несколькими POSIX системами: Open Solaris, QNX, FreeBSD, NetBSD, MINIX3… – с любой из них в равной степени.

Совершенно естественно, что от читателя требуется совершенное знание языка C единственного необходимого и достаточного языка системного программирования (из числа компилирующих) в Linux. Это необходимо для самостоятельного анализа и понимания приводимых примеров. Очень продуктивно в дополнение к этому (для работы с многочисленными приводимыми примерами, а ещё больше – их модификации и сравнений) хотя бы минимальные познания в языках скриптового программирования UNIX (и лучше нескольких), что-то из числа: bash, perl, awk, python… В высшей степени безусловным подспорьем будет знание и опыт прикладного программирования в стандартах POSIX: обладающий таким опытом найдёт в нём прямые аналогии API и механизмам в ядре Linux.

Естественно, я предполагаю, что вы на дружеской ноге с UNIX В Linux используются, наибольшим образом, GNU (FSF) реализации таких утилит, которые набором опций часто отличаются (чаще в сторону расширения) от предписаний стандарта POSIX, и отличаются, порой, от своих собратьев в других операционных системах (Solaris, QNX, …). Но эти отличия не столь значительны, я думаю, чтобы вызвать какие-либо затруднения.

Post Comments ( 2 )

Interview With An Expert graph icon
    • Олег Силиванов

    • February 23, 2019 at 12:56 am

    Как установить линукс на смарт-тв?

Leave a comment