Бовет чезати ядро linux

Новая книга «Linux Kernel Programming»

Много воды утекло с момента выхода LDD3 (LDD4 мы, видимо, уже не дождёмся), безнадёжно устарел фундаментальный труд Бовета и Чезати, Роберт Лав давно не радовал нас своими прекрасными творениями. Казалось бы, в мире литературы о программировании ядра Linux наметилась устойчивая стагнация…

Но нет! Ситуацию спасает замечательный индийский программист со звучным именем Кайван Биллимория. Он написал книгу о программировании ядра, аж в двух томах.

Об авторе

Кайван программирует с 1983 года. В то время он самостоятельно научился программировать на бейсике, затем освоил Си и ассемблер под MS-DOS, а потом открыл для себя мир UNIX и Linux. Занимался программированием ядра и драйверов, участвовал в коммерческих и свободных проектах, занимался преподавательской деятельностью.

Повествование в книге ведётся на основе Ubuntu 18.04 LTS и ядра версии 5.4.

Содержание книги

Том 1 – «Исчерпывающее руководство по внутреннему устройству ядра, написанию модулей и синхронизации»:

  • настройка окружения для разработки ядра;
  • сборка ядра из исходников;
  • создание модуля ядра;
  • процессы и потоки;
  • управление памятью;
  • планировщик;
  • синхронизация.

Том 2 – «Драйверы символьных устройств и синхронизация: создание интерфейсов между ядром и пространством пользователя, периферийный ввод-вывод, обработка аппаратных прерываний»:

  • создание простого драйвера символьного устройства;
  • способы обмена информацией между ядром и пользовательским пространством;
  • использование адресного пространства ввода-вывода;
  • обработка аппаратных прерываний;
  • использование таймеров, потоков и рабочих очередей ядра;
  • подробнее о синхронизации.

кто уже прочитал, дайте отзыв плз.

А публикации-то уже есть? Было бы интересно ознакомиться. Или ещё издателя нету?

Тег надо не «язык си», а «c».

Кавайный Билли. Обязательно над почитать.

Индийский программист != индусской код, полистал книгу — чел реально грамотный.

На первый взгляд выглядит весьма годно!

кто уже прочитал, дайте отзыв плз

На Амазоне отзывы есть, хорошие. Сам ещё подробно не читал, но буду брать.

Что за публикации? Книга в продаже.

Что за публикации? Книга в продаже.

И на файлообменниках тоже

Из превью и оглавления на Амазоне — жуткое месиво из «Линукса для чайников», «Архитектуры ПК» и бешенных неструктурированных скачек по ядру.

Не нужно быть поваром, чтоб сказать, что суп невкусный.

бешенных неструктурированных скачек по ядру

А это как раз то, чем придётся заниматься будущему разработчику)

Всё давно написано. А манускрипты на вроде «Как написать драйвер для ядра Линукс версии 5.15» не нужны.

Половина этой книги не нужна и вызывает брезгливые смешки, если читал «What every programmer should know about memory» или получил подобные знания из чтения архитектурных мануалов на процессор.

Ну, то есть, для школьников, может, и намана: им и как линупс в виртуалочке запилить рассказывают на первых ста с лишним страницах, но нам-то, бородатым мужам, зачем это?

Пните жирным контрактом лучше Лава: пусть ревизию своей книжки сделает.

Надо быть дипломированным поваром, чтобы сказать, что у клиента дурной вкус.

А это как раз то, чем придётся заниматься будущему разработчику)

Будущий разработчик должен прочитать мануал на архитектуру своего целевого процессора, чтобы знать, что он программирует, книжку Роберта Лава, если это первый драйвер для Линукса, и всё. Остальное — это живой опыт. Тем более, API и подходы меняются быстрее, чем индусы книжки пишут. Хотя, эти «книжки» и быстрее родить могут.

Вообще, если понимаешь, как работает процессор, на уровне page table, TLB, контекстов, регистров, стеков и т.п., то ты умеешь программировать под любую операционную систему, которая работает на этом процессоре. Различаются только операционные модели, и то, чаще, всего лишь, только API.

читал с торрентов. макулатура, писали и редактировали ученики начальной школы

Я это и имел ввиду. Хорошо, что уже в продаже. Из текста новости я этого не понял.

Ну как бы понятно, что эта книга не для «кулхакеров» с большим опытом, способных прочитав доку на железо запрограммировать любую ОС. А для привлечения новых людей «с гендер-прононсами и цветными волосами» — самое то. Бородатые дядьки не вечны, кому-то же придётся потом ядро развивать) Книга Лава устарела, к сожалению, и там есть не всё. Также книга будет полезна тем, кто хочет освежить свои знания и узнать о нововведениях в современном ядре.

Читайте также:  File sharing from windows to mac

Прочитай Лава и linux/Documentation или статью на LWN на то, чего в книжке нет. Делов-то. Зато в башке цельная картина будет.

Ну молодец, вложил столько трудов, а оно устареет через год вслед за говённой LDD.

Казалось бы, в мире литературы о программировании ядра Linux наметилась устойчивая стагнация…

Другой безграмотный человек мог бы сказать что в мире литературы о программировании вообще наметилась устойчивая стагнация, но дело всего лишь в том что современный код просто перестаёт требовать отдельной литературы для понимания. Посмотрел имеющейся код, углубился на один уровень в код функций поведение которых неочевидно (и то только если по ним нет манов), и ты уже знаешь достаточно, при этом твои знания актуальны, и ты потратил намного меньше времени чем читал бы какого-то индуса.

Посмотрел имеющейся код, углубился на один уровень в код функций поведение которых неочевидно (и то только если по ним нет манов), и ты уже знаешь достаточно, при этом твои знания актуальны, и ты потратил намного меньше времени чем читал бы какого-то индуса.

Для этого [1] код должен быть достаточно читабельным и [2] ты должен знать общую архитектуру ядра. Первое, как правило желает оставлять лучшего, а во втором, без книг разобраться трудно.

P.S. минутка юмора:

кому-то же придётся потом ядро развивать)

Зачем? Тот, кто в состоянии развивать подобного уровня проект, напишет всё с нуля, чем копошиться в этом легаси из 20-го века.

Ога, то-то я и смотрю от написанных с нуля ядер деваться некуда)

Индус индусу рознь. Человек в 83-м сам программирование освоил, без интернетов с гуглами, это вам не хрен собачий.

на либгене есть

Люди хотят отзывы.

Люди получают отзывы.

Людям не нравятся отзывы.

Люди хейтят того, кто дал отзывы.

Снимаю виртуальную шляпу перед Кайваном. А европейцы, бездельники, совсем обленились. Извините за танцпол, наболело просто.

С позиции зумерков может быть и не хрен, между тем все кто освоил в 80-х или начале 90-х программирование освоили его без интернетов с гуглами. И как-то даже не напряглись. А сейчас не все и с интернетами могут.

но дело всего лишь в том что современный код просто перестаёт требовать отдельной литературы для понимания. Посмотрел имеющейся код, углубился на один уровень в код функций поведение которых неочевидно (и то только если по ним нет манов), и ты уже знаешь достаточно, при этом твои знания актуальны, и ты потратил намного меньше времени чем читал бы какого-то индуса.

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

Источник

Новая книга «Linux Kernel Programming»

Много воды утекло с момента выхода LDD3 (LDD4 мы, видимо, уже не дождёмся), безнадёжно устарел фундаментальный труд Бовета и Чезати, Роберт Лав давно не радовал нас своими прекрасными творениями. Казалось бы, в мире литературы о программировании ядра Linux наметилась устойчивая стагнация…

Читайте также:  Нет файла iptables linux

Но нет! Ситуацию спасает замечательный индийский программист со звучным именем Кайван Биллимория. Он написал книгу о программировании ядра, аж в двух томах.

Об авторе

Кайван программирует с 1983 года. В то время он самостоятельно научился программировать на бейсике, затем освоил Си и ассемблер под MS-DOS, а потом открыл для себя мир UNIX и Linux. Занимался программированием ядра и драйверов, участвовал в коммерческих и свободных проектах, занимался преподавательской деятельностью.

Повествование в книге ведётся на основе Ubuntu 18.04 LTS и ядра версии 5.4.

Содержание книги

Том 1 – «Исчерпывающее руководство по внутреннему устройству ядра, написанию модулей и синхронизации»:

  • настройка окружения для разработки ядра;
  • сборка ядра из исходников;
  • создание модуля ядра;
  • процессы и потоки;
  • управление памятью;
  • планировщик;
  • синхронизация.

Том 2 – «Драйверы символьных устройств и синхронизация: создание интерфейсов между ядром и пространством пользователя, периферийный ввод-вывод, обработка аппаратных прерываний»:

  • создание простого драйвера символьного устройства;
  • способы обмена информацией между ядром и пользовательским пространством;
  • использование адресного пространства ввода-вывода;
  • обработка аппаратных прерываний;
  • использование таймеров, потоков и рабочих очередей ядра;
  • подробнее о синхронизации.

кто уже прочитал, дайте отзыв плз.

А публикации-то уже есть? Было бы интересно ознакомиться. Или ещё издателя нету?

Тег надо не «язык си», а «c».

Кавайный Билли. Обязательно над почитать.

Индийский программист != индусской код, полистал книгу — чел реально грамотный.

На первый взгляд выглядит весьма годно!

кто уже прочитал, дайте отзыв плз

На Амазоне отзывы есть, хорошие. Сам ещё подробно не читал, но буду брать.

Что за публикации? Книга в продаже.

Что за публикации? Книга в продаже.

И на файлообменниках тоже

Из превью и оглавления на Амазоне — жуткое месиво из «Линукса для чайников», «Архитектуры ПК» и бешенных неструктурированных скачек по ядру.

Не нужно быть поваром, чтоб сказать, что суп невкусный.

бешенных неструктурированных скачек по ядру

А это как раз то, чем придётся заниматься будущему разработчику)

Всё давно написано. А манускрипты на вроде «Как написать драйвер для ядра Линукс версии 5.15» не нужны.

Половина этой книги не нужна и вызывает брезгливые смешки, если читал «What every programmer should know about memory» или получил подобные знания из чтения архитектурных мануалов на процессор.

Ну, то есть, для школьников, может, и намана: им и как линупс в виртуалочке запилить рассказывают на первых ста с лишним страницах, но нам-то, бородатым мужам, зачем это?

Пните жирным контрактом лучше Лава: пусть ревизию своей книжки сделает.

Надо быть дипломированным поваром, чтобы сказать, что у клиента дурной вкус.

А это как раз то, чем придётся заниматься будущему разработчику)

Будущий разработчик должен прочитать мануал на архитектуру своего целевого процессора, чтобы знать, что он программирует, книжку Роберта Лава, если это первый драйвер для Линукса, и всё. Остальное — это живой опыт. Тем более, API и подходы меняются быстрее, чем индусы книжки пишут. Хотя, эти «книжки» и быстрее родить могут.

Вообще, если понимаешь, как работает процессор, на уровне page table, TLB, контекстов, регистров, стеков и т.п., то ты умеешь программировать под любую операционную систему, которая работает на этом процессоре. Различаются только операционные модели, и то, чаще, всего лишь, только API.

читал с торрентов. макулатура, писали и редактировали ученики начальной школы

Я это и имел ввиду. Хорошо, что уже в продаже. Из текста новости я этого не понял.

Ну как бы понятно, что эта книга не для «кулхакеров» с большим опытом, способных прочитав доку на железо запрограммировать любую ОС. А для привлечения новых людей «с гендер-прононсами и цветными волосами» — самое то. Бородатые дядьки не вечны, кому-то же придётся потом ядро развивать) Книга Лава устарела, к сожалению, и там есть не всё. Также книга будет полезна тем, кто хочет освежить свои знания и узнать о нововведениях в современном ядре.

Читайте также:  Windows service dns client events

Прочитай Лава и linux/Documentation или статью на LWN на то, чего в книжке нет. Делов-то. Зато в башке цельная картина будет.

Ну молодец, вложил столько трудов, а оно устареет через год вслед за говённой LDD.

Казалось бы, в мире литературы о программировании ядра Linux наметилась устойчивая стагнация…

Другой безграмотный человек мог бы сказать что в мире литературы о программировании вообще наметилась устойчивая стагнация, но дело всего лишь в том что современный код просто перестаёт требовать отдельной литературы для понимания. Посмотрел имеющейся код, углубился на один уровень в код функций поведение которых неочевидно (и то только если по ним нет манов), и ты уже знаешь достаточно, при этом твои знания актуальны, и ты потратил намного меньше времени чем читал бы какого-то индуса.

Посмотрел имеющейся код, углубился на один уровень в код функций поведение которых неочевидно (и то только если по ним нет манов), и ты уже знаешь достаточно, при этом твои знания актуальны, и ты потратил намного меньше времени чем читал бы какого-то индуса.

Для этого [1] код должен быть достаточно читабельным и [2] ты должен знать общую архитектуру ядра. Первое, как правило желает оставлять лучшего, а во втором, без книг разобраться трудно.

P.S. минутка юмора:

кому-то же придётся потом ядро развивать)

Зачем? Тот, кто в состоянии развивать подобного уровня проект, напишет всё с нуля, чем копошиться в этом легаси из 20-го века.

Ога, то-то я и смотрю от написанных с нуля ядер деваться некуда)

Индус индусу рознь. Человек в 83-м сам программирование освоил, без интернетов с гуглами, это вам не хрен собачий.

на либгене есть

Люди хотят отзывы.

Люди получают отзывы.

Людям не нравятся отзывы.

Люди хейтят того, кто дал отзывы.

Снимаю виртуальную шляпу перед Кайваном. А европейцы, бездельники, совсем обленились. Извините за танцпол, наболело просто.

С позиции зумерков может быть и не хрен, между тем все кто освоил в 80-х или начале 90-х программирование освоили его без интернетов с гуглами. И как-то даже не напряглись. А сейчас не все и с интернетами могут.

но дело всего лишь в том что современный код просто перестаёт требовать отдельной литературы для понимания. Посмотрел имеющейся код, углубился на один уровень в код функций поведение которых неочевидно (и то только если по ним нет манов), и ты уже знаешь достаточно, при этом твои знания актуальны, и ты потратил намного меньше времени чем читал бы какого-то индуса.

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

Источник

Оцените статью