LINUX.ORG.RU

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

 , , ,


10

5

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

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

Об авторе

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

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

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

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

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

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

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

>>> Том 1 на Amazon

>>> Том 2 на Amazon



Проверено: hobbit ()

Закупаем посоны рукопись. Аффтар из поколения еще не этих, с зелеными коктейлями, стриженными бородками в коротеньких штанишках. Оставим, как труды классика для истории. Ведь скоро доберутся xyz поколения с ржавым наперевес и до тепленького… Кстати, посоны, может кто подскажет?! Крайний год моя убунточка с кавайненькими кедиками почему-то стала ребутаться после каждого апдейтика. Даже совершенно незначительного. Это тренд на виндоизацию? Чтоб все как в корпорате взрослом?

anonymous ()
Ответ на: комментарий от slovazap

между тем все кто освоил в 80-х или начале 90-х программирование освоили его без интернетов с гуглами

Сейчас программирование другое. Работаешь ты каким-нибудь веб-кодерком и ловишь раз в неделю извещения о новых уязвимостях, breaking changes раз в несколько месяцев и мажорное обновление фреймворка раз в пол года, после которого половина используемых тобой сторонних пакетов адекватно работают только на новом, а вторая половина – только на старом. В то же время в документации разрабы пишут, как у них во фреймворке всё чудесно и как он упрощает жизнь. И отказаться его использовать ты не можешь, потому что заказчик хочет быть в хайповой теме. И единственные твои друзья-помошники – такие же, как ты, васяны со stackoverflow, которые огребли аналогичные твоим проблемы и у кого-то удалось их костылями решить.

Devastator ()
Ответ на: комментарий от anonymous

Не читал, но осуждаю?

Мнение инженерно-технического работника, проработавшим 15 лет в этой области и пролиставшем по диагонали оглавление и несколько страниц. И читать не буду.

mv ★★★★★ ()
Ответ на: комментарий от anonymous

И правильно! Вообще всегда нужно обсуждать книги не читая! Об этом еще Остер говорил. И вообще, зачем тебе читать, ты и так умный…

Я такую «книгу» и сам напишу.

Остер не об этом говорил.

mv ★★★★★ ()

Не вижу смысла тратить на это время. Конец Линукс-ведра может и не завтра, но это вопрос решённый - говномонолиту не жить. Без «отца»-Линуса оно нахер никому не нужно - сплошной головняк, дыры и БЕЗУМНОЕ количество кода, которое и к «ядру»-то никогда не относилось!

Вкладывайте время в базовые вещи, пусть даже в такую странную вещь, как x64. Это поможет отсеивать всякие наколенные поделия с заявой на микроядерность. Мы обязательно должны перейти на микроядро, без этого мы рискуем погрязнуть либо в линуксовом легаси, либо в вендузятном болоте.

matumba ★★★★★ ()
Ответ на: комментарий от anonymous

Юниксоподобных систем полно - один хер ничего толкового вы в Линуксе не делаете! :)) Любую бери и играйся, хоть QNX, хоть Minix.

Про переход - пока не ясно куда. Я пока не встречал _перспективной_ архитектуры поверх Интеловского кирпича. Микроядерных систем - полно, а вот чтобы с разумной структурой - мне не попадались.

matumba ★★★★★ ()
Ответ на: комментарий от matumba

Не вижу смысла тратить на это время. Конец Линукс-ведра может и не завтра, но это вопрос решённый - говномонолиту не жить. Без «отца»-Линуса оно нахер никому не нужно - сплошной головняк, дыры и БЕЗУМНОЕ количество кода, которое и к «ядру»-то никогда не относилось

Да что-то диванные аналитики десятилестиями все твердят о грядущем «конце», мертворожденности линя и проч. и проч. Но взлетел ведь сей «монолит», живет и продолжает жить. И с тем количеством софта, запиленного и портированного под него, груз ядерного легаси никто в ближайшие пару десятилетий не забросит, неважно, решето это или нет. А остальные юникс-подобные (QNX? Minix??) застряли в 70-ых и перспективы имхо не представляют.

x86- ()
Ответ на: комментарий от x86-

Нет. Учите мат часть. Лор оналитеги десятилетиями предрекали венде капец. И он истинно случился.

Теперь же, с болью в сердце предрекаем линупсокапец. Все доводы обсосаны не раз. Думаю повторяться бессмысленно.

anonymous ()
Ответ на: комментарий от matumba

Без «отца»-Линуса оно нахер никому не нужно

C 2007 по 2019 год в разработке ядра приняли участие 1730 компаний, которые подготовили 780048 коммитов. 20 наиболее активных компаний внесли 68% из всех коммитов. Наибольший вклад в разработку вносят компании Intel и Red Hat, которыми подготовлено 10.01% и 8.9% от всех коммитов. https://www.opennet.ru/opennews/art.shtml?num=53614

anonymous ()
Ответ на: комментарий от x86-

Да что-то диванные аналитики десятилестиями все твердят о грядущем «конце», мертворожденности линя и проч. и проч. Но взлетел ведь сей «монолит», живет и продолжает жить. И с тем количеством софта, запиленного и портированного под него, груз ядерного легаси никто в ближайшие пару десятилетий не забросит, неважно, решето это или нет. А остальные юникс-подобные (QNX? Minix??) застряли в 70-ых и перспективы имхо не представляют.

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

Кому мало, тот, в конце-концов, акселератор на FPGA накропать задёшево может.

mv ★★★★★ ()
Ответ на: комментарий от anonymous

Не переживай, не сгоришь, сопьешься раньше.

Спиваются от безделия и нереализованности. А если работы «выше крыши», то и пить-то некогда. А сто-стописят коньячка в редкие моменты простого человеческого общения заменяют 4 - 6 часов буддистской медитации в полном одиночестве и тишине.

Attila ★★ ()
Ответ на: комментарий от trex6

Я бы сказал, что дело не а монолитности ядра. А в монстроподобном системд, который впиливается все глубже, охватывает все больше процессов. Напрочь разрушив пресловутый кисс. Все помнят две недавние баги. Чего только стоит, что в определенной версии системд оно не работало, из-за бага в системд. Ну, Вы поняли…

anonymous ()
Ответ на: комментарий от anonymous

Я бы сказал, что дело <...> в монстроподобном системд

Это тема для отдельного многостраничного срачика, конечно.

Но если по пунктам, отбросив «пресловутый кисс», в чем притензии к systemd, помимо того, что там, как и в любом софте, могут быть баги?

trex6 ★★★★★ ()
Ответ на: комментарий от x86-

Ну да ну да. То-то виртуализация облачная от мелкомягких на пингвинах крутится. Да еще каких…ими же и запиленных. То-то все эти извращения wsl создаются. То-то мобильная вынь почила в бозе, что, кстати не есть гуд, ибо конкуренция - двигатель прогресса. То-то корпораты так усиленно продвигают через красношляпочных заранее убийственные решения в пингвина. Ведь будь мелкософт победителем, всего этого бы не было. Ну есть там поделие для нердов и пусть будет… Отчего сыр-бор? На хипстеров как не посмотришь, все сплошь яблоки да бубунты. Почему сейчас вынь 10 в топе дыр ниже линупса, даже просто ядра, не дистра? Код стал чище? Не думаю. Просто пингвин «популяризировался», потому баги стали активнее искать, ибо это для кого-то профит. Не?

anonymous ()
Ответ на: комментарий от trex6

В том что, когда эта абстракция абстракций полезла в ядро, тогда и затикал таймер обратного отчета. Я сейчас не говорю о политической подоплеке этого процесса. Просто, как данность. На июльские цвешки пруф приводить?

Повторюсь, я сам пингвинятник с 99 года. Но без вкусного троллинга, констатирую, отсчет ребята пошел. К сожалению.

anonymous ()
Ответ на: комментарий от dsdqmhsx

Вы меня простите конечно, но я еще из тех, кто всю эту корову рогатую не доил, а кормил. Так чему мне радоваться? Я констатирую факты и анализирую недалекое будущее. И негодую от современного положения дел.

anonymous ()
Ответ на: комментарий от trex6

В чем лично для меня заключалась прелесть unix систем? В прозрачности, лаконичности и простоте. Раньше у нас за каждую мелкую операцию отвечал отдельный маленький бинарник, запускаемый скриптом. Под управлением монолитного ядра. Эта симпатия вызвана отнюдь не только/не столько эстетикой, сколько юзабилити этой схемы. Ведь было намного проще дебажить и править это хозяйство. А баги, как Вы правильно заметили, есть в любом софте. Вопрос лишь в стоимости их правки. Сейчас мы имеем монолит, который вкрячивается в другой монолит. Я не знаю, возможно я тупой, но код системд для меня сложен, неудобен, расплывчат и неоднозначен. Мне обьективно неудобно с ним работать. Раньше спасались но системд дистрами. Но сейчас, оно идет в ядро. И что прикажите делать труъ дистрам, наподобие дженту? Не знаю, видятся мне очень невеселые перспективы. С другой стороны - все это естественный ход жизни. Все рождается и умирает…

Будет ли в новых реалиях открытый проект по масштабу сопоставимый с линукс кернел - это вопрос. Ведь когда ядро пилилось, мы вносили свой вклад, как сейчас говорят «по-фану». Безвозмездно. А много ли сейчас молодых ребят могут бесплатно что-то сделать?

anonymous ()
Ответ на: комментарий от trex6

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

anonymous ()
Ответ на: комментарий от anonymous

перепилить все ржавым

Ржавый не так плох, как кажется. Тем более если его допилят до хорошего состояния под присмотром Линуса. Пока великовозрастный финский студент еще в силах направлять этот поезд в огне на верные рельсы.

trex6 ★★★★★ ()
Ответ на: комментарий от anonymous

с помощью sjw потихоньку повыдавила из разработки большую часть стариков

Вот тут хотелось бы увидеть длинный (хотя бы 20-50 фамилий) список в качестве пруфца.

Старики сами уходят. Пионерам линуксостроения уже по 50+ лет. За 30 лет даже любимое хобби может надоесть.

trex6 ★★★★★ ()
Ответ на: комментарий от trex6

Дело ведь не только и не столько в ржавом….

Ок. Кто-нибудь мне ответит на вопрос: почему убунточка уходит в ребут при обновлении архиватора, хотя обещали вроде даже обновление ядра на лету, без ребута? А воно как вышло все…. Это про декларации и реалии.

anonymous ()
Ответ на: комментарий от trex6

Памятуя о расколе в команде дебилиана, например, когда уходили не пенсионеры, с сожалением наблюдаю принявший ислам дистрибутив в топ чарте цведитейлс. Да не просто в топе, первое место! Вот такие вот они, пионэры…

anonymous ()
Ответ на: комментарий от trex6

Дураком не прикидывайся. На основании чего такая цифра «20-50» и откуда ты ее вытащил? Достаточно выкинуть двух - трех которые мешают модным и стильным изменениям и все. Сделано. Направление движения изменено, нужные люди в руководстве. Кроме того, несколько лет назад прошла волна крайне странных самоубийств несговорчивых парней с принципами. Не только Мердок и не только в Линуксе. Чтобы угробить серьезный проект часто достоточно убрать из него одного - двух человек. Чтобы изменить направление развития - тоже.

anonymous ()
Ответ на: комментарий от anonymous

Ну тебе не надо, а джунам пригодится. Не у всех 15 лет разработки, надо с чего-то начинать обучение.

Пожалуйста, но Лав - лучше. Шапочным кернель тестерам контора покупает именно эту книгу. Она достаточно маленькая, хорошо структурирована и написана лёгким языком.

mv ★★★★★ ()
Ответ на: комментарий от trex6

А в гугол никак? Там по релевантному запросу куча бложиков разгневанных и разочаровавшихся коллег. Для пиеетету все конечно говорят, что причина в семейных обстоятельствах, но так просто принято говорить у англо-саксов… есть даже на хабре переводы этих душеизлияний.

anonymous ()