модули ядра (римэйк)

Вопросы программного кода и архитектуры Linux

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: модули ядра (римэйк)

Непрочитанное сообщение Olej » 24 авг 2022, 02:08

Olej писал(а):
16 авг 2022, 14:11
Компьютерное издательство BHV будет издавать огромную книгу с рабочим названием "Расширения ядра Linux: драйверы и модули" и будет это делать скоро, возможно даже до Нового Года.
Всё! :-D
На сегодня я практически закончил рукопись книги + архив примеров кодов (что самое сложное в жтой затее).
Расширения ядра Linux: драйверы и модули
Редакция 7.281
страниц 501
(это значит, что я над этой рукописью работал, как минимум, 281 день, практически полный день, часов 6-7-8 ... а вообще - это результат накопленных материвлов за 11 лет)
К началу октября, предполагаю, (1 месяц на вычистку и окончательную подчистку) передаю издательству BHV ... и примерно месяца через 3 (зная их технологический цикл) книга пойдёт на полки магазинов.

В принципе ... кто знает и следит за темой - это в каком-то смысле эквивалент знаменитой LDD3 (Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman: «Linux Device Drivers», (3rd Edition), 2005). После которой с нетерпением ждали ... лет 10-12 :lol: следующей LDD4. Потому что практически все коды из LDD3 - неработоспособны, из-за изменчивости API ядра.

Но ожидаемой народом LDD4 - не будет! И я очень хорошо теперь понимаю почему: потому что переписать следующую редакцию под новую версию ядра - это ровно всё-равно что сесть и написать свою книгу заново. Это и тоскливо, и почти невозможно по трудоёмкости!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: модули ядра (римэйк)

Непрочитанное сообщение Olej » 16 ноя 2022, 19:19

Olej писал(а):
10 авг 2022, 23:58
редакция 270 (7 - это групповой номер, не важно) означает, что я над этим текстом с примерами работал 270 более-менее полных рабочих дней.
А вообще то, над этим текстом работа (с переменной интенсивностью) выполняется на протяжении 11 лет.
P.S. 11 - это если не считать предшествующие 3-4 года участия в огромном практическом проекте из области IP-телефонии, где моими ежедневными должнностными обязанностями являлась разработка в части модулей ядра ... и окололежащие вопросы. Это в то время, когда я даже в мыслях не имел такую глупость (из-за её сложности, объёмности и неподъёмности) что либо писать на этот счёт. :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: модули ядра (римэйк)

Непрочитанное сообщение Olej » 16 ноя 2022, 19:24

Olej писал(а):
16 ноя 2022, 19:19
А вообще то, над этим текстом работа (с переменной интенсивностью) выполняется на протяжении 11 лет.
Характерно: как всё меняется во времени :-o ;-)
Я из предыдущих редакций текста выбросил большой объём всего, что связкано с конфигурированием и сборкой собственно ядра ... За малой надобностью. :lol:
И вот читаю
01 авг 2019, 00:25
Начиная с третьего ядра, большинство линуксоидов как-то сошлись на мнении, что конфигурация и компиляция ядра, в большинстве случаев, не нужна: в любом домашнем компьютере ресурсов (места на хдд, оперативы и процессорного времени) для любого ядра Линукс в избытке. Так что сборка ядер осталась уделом гиков, узких профессионалов и учеников на курсах, где преподаватели иногда показывают, как это делается.
:lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: модули ядра (римэйк)

Непрочитанное сообщение Olej » 05 дек 2022, 13:53

Olej писал(а):
24 авг 2022, 02:08
К началу октября, предполагаю, (1 месяц на вычистку и окончательную подчистку) передаю издательству BHV ... и примерно месяца через 3 (зная их технологический цикл) книга пойдёт на полки магазинов.
Ожидания оказались сильно преувеличены ... по срокам, но вот сейчас уже, сегодня, рукопись сдаётся в издательство BHV.
Редакция 7.297
05.12.2022 г.
Здесь 11 лет работы над материалом ... если не считать ещё и 3-4 предыдущих лет чисто разработческой работы в огромном проекте, где моей функциональной обязанностью было написание модулей ядра...
Вот эта редакция 7.297 означает, что это 7-й "подход", заказчик, предназначение текста ("для кого делался"), а 297 - это сквозной (независимый от 1-й цифры) последовательный номер редактуры - это столько рабочих дней (практически полных)я работал над этим текстом. :-o

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: модули ядра (римэйк)

Непрочитанное сообщение Olej » 05 дек 2022, 21:00

Olej писал(а):
05 дек 2022, 13:53
сегодня, рукопись сдаётся в издательство BHV
Но главное, из-за чего я дописываю это здесь - это разместить в конечном виде архивы кодов к тексту.
Тем более, что...
В конечной фазе подготовки текста стало понятно, что архив кодов нужно представить параллельно в 2-х эквивалентных формах: иерархия по главам книги (kernel.modules_by_chapters) и иерархия по темам обсуждения (kernel.modules_by_topics).

Это обусловлено как накопившимся объёмом архивов, так и возможным способом работы с ним — при работе с текстом или при изучении конкретного применения.
Вложения
kernel.modules_by_chapters.7297.tgz
(1.85 МБ) 125 скачиваний
kernel.modules_by_topics.7297.tgz
(1.78 МБ) 112 скачиваний

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

модули ядра (римэйк)

Непрочитанное сообщение Olej » 18 фев 2023, 11:13

Olej писал(а):
05 дек 2022, 13:53
Здесь 11 лет работы над материалом ...
И закончилось это книгой:
Изображение

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

модули ядра (римэйк)

Непрочитанное сообщение Olej » 20 мар 2023, 19:43

Olej писал(а):
18 фев 2023, 11:13
И закончилось это книгой:
Книга (весь тираж) уже на складе издательства BHV ... уже около недели (сообщили).
Но они никак не могут сложить по какой цене её выставить в продажу (688 стр.) чтобы не продешевить. ;-)
По последним данным книга пойдёт в продажу на российский рынок с 27 марта, и по предполагаемой ( :?: ) цене 1200 руб.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

модули ядра (римэйк)

Непрочитанное сообщение Olej » 27 мар 2023, 15:04

Olej писал(а):
20 мар 2023, 19:43
Книга (весь тираж) уже на складе издательства BHV ... уже около недели (сообщили).
Книга уже в продаже, с сегодня, 27.03 - Расширения ядра Linux: драйверы и модули:
Расширения ядра Linux: драйверы и модули
Цилюрик Олег Иванович
Артикул 2969
ISBN 978-5-9775-1719-5
Количество страниц 688
Формат издания 170 x 240 мм
Печать Черно-белая
Серия Внесерийные книги
1275₽

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

модули ядра (римэйк)

Непрочитанное сообщение Olej » 12 май 2023, 15:17

Хорошая статья о внутренней структуре модулей ядра + их загрузке: Anatomy of the Linux loadable kernel module
2018-06-02
File Format

.ko is an ELF file, which stands for “Executable and Linking Format”, the standand execute file format in Linux.
...
Ну, и так далее...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

модули ядра (римэйк)

Непрочитанное сообщение Olej » 18 сен 2023, 12:20

Olej писал(а):
18 фев 2023, 11:13
И закончилось это книгой:
Интересное замечание прислал мне мэйлом один из читателей книги:
Ещё одно замечание по поводу получения значения переменной $(PWD) в Makefile,
кодгда полный путь к текущему подкаталогу содержит в одном из своих каталогов
пробел.
Так при распаковки у меня долго не получалось собрать простой проект,
пока я не понял что там есть имя "Для FTP" (из Вашего zip архива с сайта
издательства BHV).
Вынес оттуда подкаталог сборки и заработало.
А потом понял, что правильно для такого случая писать присвоение переменной так:

PWD = "$(shell pwd)"

тогда запомнится в $(PWD) и экранирующие кавычки.
И make будет запускать себя в оболочке рекурсивно (для моего случая) так:

make -C /lib/modules/5.15.0-83-generic/build
M="/home/dron/devel/kernel.modules_by_topics/first_hello" modules

то есть и путь не будет разбиваться на куски, т.к. пробелы в оболочке bash имеют
специальное значение.
Ну в общем, никто не запрещает, но вроде как раньше не принято было имена
файлов/каталогов делать с пробелами.
Хотя macOS и другие системы этому чаще не следуют...
Интересно...
Это относится к "классической" строке сборки модулей ядра:

Код: Выделить всё

...
PWD = $(shell pwd)
...
        $(MAKE) -C $(KDIR) M=$(PWD) modules
...
Которая, именно в таком виде, за последние лет 10-15 во всём мире, в книгах, публикациях, статьях, обсуждениях - выписана, наверное, десятки тысяч раз (или сотни тысяч :?: ) :-o
И никто никогда не обратил на это внимания :oops:
И лечится то исключительно просто - этот "классический" Makefile записывается в виде:

Код: Выделить всё

...
PWD = "$(shell pwd)"
...
        $(MAKE) -C $(KDIR) M=$(PWD) modules
...

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя