- Предисловие от автора
- Введение
- Кому адресована эта книга
- Модули linux ядра цилюрик
- Бег по пересеченной местности (СИ)
- Алле-гоп! (СИ)
- Сочинение на несвободную тему (СИ)
- Соавтор неизвестен (СИ)
- Модули Linux ядра
- Аннотация
- Модули linux ядра цилюрик
- Бег по пересеченной местности (СИ)
- Алле-гоп! (СИ)
- Сочинение на несвободную тему (СИ)
- Соавтор неизвестен (СИ)
- Программирование модулей ядра Linux
- Аннотация
- Модули ядра Linux
- Практикум: модули ядра Linux
- Похожие записи
- Оцените статью
- Об авторе
Предисловие от автора
« Omne tulit punctum qui miscuit utile dulci, lectorem delectando pariterque monenendo» :
«Всеобщего одобрения заслуживает тот, кто соединил приятное с полезным».
Введение
Эта книга появилась как итог подготовки и проведения курса тренингов, которые мне предложила организовать компания Global Logic ( http://www.globallogic.com/ ) для сотрудников украинских подразделений компании. Первоначальный курс, начитанный в тренинговом цикле весны-лета 2011 года в Харькове и составил базовую часть текста. К завершению подготовки курса стало ясно, что большую проведенную работу, главным образом по написанию и отладке примеров, жаль терять бессмысленно, только как иллюстративный материал к тренингам. Более того, несколько моих коллег прошедших лет на протяжении работы обращались с просьбой переслать им материал в том «сыром» виде как он есть, и уверяли, что он им заметно помог. Всё это подвигло на намерение довести лекционный материал до печатного издания. Исходные тексты были значительно дополнены и переработаны, итогом чего и получилась книга, которую вы держите в руках.
Литература по программированию модулей ядра Linux хоть и малочисленна, но она есть. В конце книги приведено достаточно много обстоятельных источников информации по этому предмету: они достаточно хороши, а отдельные из них — так просто замечательные. Но актуальность (по моему мнению) дополнительной систематизации информации, попытка которой сделана в этой книге, на момент её написания подталкивается ещё и двумя дополнительными обстоятельствами:
- Всплеск интереса к операционным системам, базирующихся на ядре Linux, для самых различных классов мобильных устройств. Примерами того есть в высшей степени динамично развивающаяся система Android, или анонсированная к ближайшему завершению система Chrome OS. И в этих тенденциях прослеживается такая особенность, что инструментарий развития прикладных приложений (Java слой) предоставляется и афишируется в максимальной мере, в то время как средства «натягивания» ядра операционной системы на специфическое оборудование заметно (и сознательно?) вуалируются (лицензия GPL обязывает, но разработчики не особенно торопятся. ).
- Тенденция роста числа процессоров в единице оборудования: на сегодня уже не являются экзотикой компьютеры SMP с 2-4 ядра, или в комбинации: 4 процессора по 4 ядра (пусть это пока и в производительных серверах). Плюс каждое ядро может быть дополнено гипертрейдингом. Но и это только начало: большую активность приобрёл поиск технологий параллельного использования десятков, сотен, а то и тысяч параллельно работающих процессоров — в эту сторону обратим внимание на модель программирования CUDA от компании NVIDIA. Все эти архитектуры используются эффективно только в том случае, если SMP адекватно поддерживается со стороны ядра.
И та, и другая тенденции, если и не подвигают к написанию собственных компонент ядра (что совершенно не обязательно), то, по крайней мере, подталкивают интерес к более точному пониманию и анализу тех процессов, которые происходят в ядре.
Материалы данной книги (сам текст, сопутствующие его примеры, файлы содержащие эти примеры), как и предмет её рассмотрения — задумывались и являются свободно распространяемыми, и могут передаваться и/или изменяться в соответствии с условиями GNU (General Public License), опубликованными Free Software Foundation, версии 2 или более поздней.
Кому адресована эта книга
Книга рассчитана на опытных разработчиков системного программного обеспечения. Предполагается, возможно, отсутствие у читателя богатого опыта в программировании именно для ядра Linux, или даже вообще в программировании для этой системы — но предполагается какой-то опыт в системном программировании для других операционных систем, который будет базой для построения аналогий. В высшей степени плодотворно любое знакомство с одной или несколькими POSIX системами: Open Solaris, QNX, FreeBSD, NetBSD, MINIX3. — с любой из них в равной степени.
Совершенно естественно, что от читателя требуется совершенное знание языка C — единственного необходимого и достаточного языка системного программирования (из числа компилирующих) в Linux. Это необходимо для самостоятельного анализа и понимания приводимых примеров. Очень продуктивно в дополнение к этому (для работы с многочисленными приводимыми примерами, а ещё больше — их модификации и сравнений) хотя бы минимальные познания в языках скриптового программирования UNIX (и лучше нескольких), что-то из числа: bash, perl, awk, python . В высшей степени безусловным подспорьем будет знание и опыт прикладного программирования в стандартах POSIX: обладающий таким опытом найдёт в нём прямые аналогии API и механизмам в ядре Linux.
Естественно, я предполагаю, что вы «на дружеской ноге» с UNIX/POSIX консольными утилитами, такими, как: ls, rm, grep, tar и другие. В Linux используются, наибольшим образом, GNU (FSF) реализации таких утилит, которые набором опций часто отличаются (чаще в сторону расширения) от предписаний стандарта POSIX, и отличаются, порой, от своих собратьев в других операционных системах (Solaris, QNX, . ). Но эти отличия не столь значительны, я думаю, чтобы вызвать какие-либо затруднения.
Модули linux ядра цилюрик
В книге есть третий основной и самый любимый герой автора — креман . И вот с ним в книге явный перебор . И как следствие — головная боль в конце от всех героев книги ))) Думала , автор никогда не
Бег по пересеченной местности (СИ)
Классная книга, сюжет шикарный
Алле-гоп! (СИ)
Сочинение на несвободную тему (СИ)
Отличная книга, да слегка в ней не много, но классная же.
Соавтор неизвестен (СИ)
Шикарная, очень понравилась
Модули Linux ядра
Рейтинг: 0/5 (Всего голосов: 0)
Аннотация
Эта книга появилась как итог подготовки и проведения курса тренингов, которые мне предложила организовать компания Global Logic для сотрудников украинских подразделений компании. Первоначальный курс, начитанный в тренинговом цикле весны-лета 2011 года в Харькове и составил базовую часть текста.
Модули linux ядра цилюрик
В книге есть третий основной и самый любимый герой автора — креман . И вот с ним в книге явный перебор . И как следствие — головная боль в конце от всех героев книги ))) Думала , автор никогда не
Бег по пересеченной местности (СИ)
Классная книга, сюжет шикарный
Алле-гоп! (СИ)
Сочинение на несвободную тему (СИ)
Отличная книга, да слегка в ней не много, но классная же.
Соавтор неизвестен (СИ)
Шикарная, очень понравилась
Программирование модулей ядра Linux
Рейтинг: 0/5 (Всего голосов: 0)
Аннотация
Это рукопись той же книги, которую кто-то из доброжелателей ранее выложил в редакции от 2011 года. Но это гораздо более поздняя и сильно расширенная версии того же материала (сравните, 218 стр. в редакции 2011 года против 426 стр. в этой последней редакции).
Первоначально эта книга была записана как конспект продолжительного лекционного курса, прочитанного для программистов софтверной компании Global Logic (первоначально именно в 2011 году). Позже этот лекционный курс был повторен на протяжении 3-4 лет с 5-ю другими группами, в разных городах (филиалы компании заказчика). И с каждым циклом повторения курс серьёзно расширялся, отслеживая вопросы и интересы слушателей. В итоге он вырос в объёме более чем в 2 раза.
Это книга рассчитана на программистов, имеющих опыт написания кода на языке C, но не сталкивающихся предварительно с написанием модулей ядра (драйверов) в Linux. Поэтому в тексте достаточно много места уделено начальным понятиям и определениям: что есть модуль ядра, как их собирают . как это вообще всё устроено. Если для кого-то это будет избыточная, известная уже информация, то эти места можно безболезненно пропустить.
P.S. Для обстоятельной работы над темой, с экспериментами и вариантами, необходим архив программных кодов — все коды приведены и обсуждаются в тексте, но не копировать же файлы из текста (архив примеров содержит 438 файлов в 76 подкаталогах)? Все, кто заинтересуется предметом с таким уровнем углубления, могут свободно скачать файл архива по ссылкам, приведённым в блоге автора.
Модули ядра Linux
20.12.2011 О.И.Цилюрик подготовил обновленный вариант своей книги, теперь под названием «Программирование модулей ядра Linux»:
— сделано достаточно много исправлений по замечаниям читателей (в одном случае это потребовало переписывания 3-х страниц текста);
— добавлена совершенно новая глава о работа с файлами из ядра;
— добавлена очень важная глава о деталях экспорта символов ядра для связывания модулей, и, в частности, о том, как в модуле использовать имена, не экспортируемые ядром;
— расширена библиография;
— существенно обновлены примеры к книге.
Версию книги от 15 декабря 2011 г. (редакция 3.111) вы можете скачать по следующим ссылкам:
в формате ODT (размер файла 393 150 байт).
в формате PDF (размер файла 1 315 600 байт).
обновленный файл примеров к книге Kexamples.BOOK.111.tgz (размер файла 3 537 785 байт). 28.02.2012 О.И.Цилюрик подготовил обновленный вариант приложения к своей книге «Программирование модулей ядра Linux». В примерах, кроме улучшения рекурсивной сборки, сделано много подчисток + всё проверено, теперь можете из корня дерева разархивированного сделать:
чтоб собрались все примеры за раз. make clean — не должен вас смущать: он потрёт только промежуточные и временные файлы.
Для полной очистки дерева в исходное состояние (только исходные коды):
В архиве заметно больше примеров, чем в последних выложенных редакциях текста, это примеры, отработанные за прошедшее время.
Обновленный файл примеров к книге Kexamples.144.tgz (размер файла 809 769 байт).
Практикум: модули ядра Linux
Год публикации: 2015
Автор: Олег Цилюрик
Язык: русский
Страниц: 400
Лицензия: Creative Commons Attribution ShareAlike
Эта книга — конспект курса практических занятий, по написанию модулей ядра, которые проводила компания Global Logic для своих украинских подразделений. Курс основан на материалах тренингов «Программирование модулей ядра Linux». Книга Практикум модули ядра Linux рассчитана на людей, которые уже имеют начальные навыки программирования модулей ядра Linux, и они хотят улучшить свои знания в этом предмете. От читателей требуется основательные знания языка программирования Си. Основная цель книги не показать примеры разработки, а дать программисту задачу, материал для размышлений и самостоятельной работы.
Книга и ее материалы распространяется под лицензией Creative Commons Attribution ShareAlike, а это значит что разрешено не только бесплатное ее распространение и скачивание, но и коммерческое использование книг, созданных на ее основе.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Похожие записи
Оцените статью
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.