Linux kernel in nutshell

Linux kernel in nutshell

Written by a leading developer and maintainer of the Linux kernel, Linux Kernel in a Nutshell is a comprehensive overview of kernel configuration and building, a critical task for Linux users and administrators.
No distribution can provide a Linux kernel that meets all users’ needs. Computers big and small have special requirements that require reconfiguring and rebuilding the kernel. Whether you are trying to get sound, wireless support, and power management working on a laptop or incorporating enterprise features such as logical volume management on a large server, you can benefit from the insights in this book.
Linux Kernel in a Nutshell covers the entire range of kernel tasks, starting with downloading the source and making sure that the kernel is in sync with the versions of the tools you need. In addition to configuration and installation steps, the book offers reference material and discussions of related topics such as control of kernel options at runtime.
A key benefit of the book is a chapter on determining exactly what drivers are needed for your hardware. Also included are recipes that list what you need to do to accomplish a wide range of popular tasks.

If you want to know how to build, configure, and install a custom Linux kernel on your machine, buy this book. It is written by someone who spends every day building, configuring, and installing custom kernels as part of the development process of this fun, collaborative project called Linux.
I’m especially proud of the chapter on how to figure out how to configure a custom kernel based on the hardware running on your machine. This is an essential task for anyone wanting to wring out the best possible speed and control of your hardware.

Источник

Linux Kernel in a Nutshell

Explore a preview version of Linux Kernel in a Nutshell right now.

O’Reilly members get unlimited access to live online training experiences, plus books, videos, and digital content from 200+ publishers.

Book description

Written by a leading developer and maintainer of the Linux kernel, Linux Kernel in a Nutshell is a comprehensive overview of kernel configuration and building, a critical task for Linux users and administrators.

No distribution can provide a Linux kernel that meets all users’ needs. Computers big and small have special requirements that require reconfiguring and rebuilding the kernel. Whether you are trying to get sound, wireless support, and power management working on a laptop or incorporating enterprise features such as logical volume management on a large server, you can benefit from the insights in this book.

Linux Kernel in a Nutshell covers the entire range of kernel tasks, starting with downloading the source and making sure that the kernel is in sync with the versions of the tools you need. In addition to configuration and installation steps, the book offers reference material and discussions of related topics such as control of kernel options at runtime.

A key benefit of the book is a chapter on determining exactly what drivers are needed for your hardware. Also included are recipes that list what you need to do to accomplish a wide range of popular tasks.

Источник

Linux kernel in nutshell

Written by a leading developer and maintainer of the Linux kernel, Linux Kernel in a Nutshell is a comprehensive overview of kernel configuration and building, a critical task for Linux users and administrators.

No distribution can provide a Linux kernel that meets all users’ needs. Computers big and small have special requirements that require reconfiguring and rebuilding the kernel. Whether you are trying to get sound, wireless support, and power management working on a laptop or incorporating enterprise features such as logical volume management on a large server, you can benefit from the insights in this book.

Linux Kernel in a Nutshell covers the entire range of kernel tasks, starting with downloading the source and making sure that the kernel is in sync with the versions of the tools you need. In addition to configuration and installation steps, the book offers reference material and discussions of related topics such as control of kernel options at runtime.

A key benefit of the book is a chapter on determining exactly what drivers are needed for your hardware. Also included are recipes that list what you need to do to accomplish a wide range of popular tasks.

About the Authors

  • Greg Kroah-Hartman has been building the Linux kernel since 1996 and started writing Linux kernel drivers in 1999. He is currently the maintainer of the USB, PCI, driver core and sysfs subsystems in the kernel source tree and is also one half of the -stable kernel release team. He created the udev program and maintains the Linux hotplug userspace project. He is a Gentoo Linux developer as well as the co-author of the third edition of the «Linux Device Drivers» book and a contributing editor to Linux Journal. He also created and maintains the Linux Device Driver Kit. He currently works for SuSE Labs/Novell, doing various Linux kernel related tasks.
Читайте также:  Linux или windows для ssd

Reviews, Ratings, and Recommendations:

  • Amazon

Related Book Categories:

  • Core Lunx
  • Unix/Linux System Administration
  • Unix/Linux Programming — System and Applications
  • Books by O’Reilly®

Read and Download Links:

  • O’Reilly® Linux Kernel in a Nutshell (Greg Kroah-Hartman)

Similar Books:

  • O’Reilly® Linux Device Drivers, 3rd Edition (Jonathan Corbet)
  • Linux Kernel Crash Book (Igor Ljubuncic)
  • The Linux Kernel Module Programming Guide (Peter Jay Salzman)

Источник

«Linux kernel in a nutshell» или коротко о ядре Линукс.

Greg Kroah-Hartman выпустил книгу «Linux kernel in a nutshell», в которой он описывает процесс конфигурации, сборки и установки ядра Линукс. Книга описывает большинство опций конфигурации ядра (изначально планировалось описать их все, но тогда размер книги превысил бы 1000 страниц), автор особенно гордится главой, описывающей процесс выбора опций ядра для нетипичной конфигурации аппаратного обеспечения.

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

Книга доступна как в печатном виде, так и в форматах pdf и DocBook. Впервые в истории так же доступна полная история написания книги в репозитории git (http://www.kernel.org/git/?p=linux/ke. ).

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

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

И поэтому книга «Linux in a nutshell» всегда со мной.

Убейся апстену, ананимус. на роутер, у которого система на флешке стоит, ты тоже будешь ставить дефолтное дистровое ялро размером в несколько мегобайт?

Прально, не позорь анонимусов.

злодей разбил книгу на мелкие файлы, чтоб мы все на амазон ломанулись (известный приём)

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

Если я вынужден иногда компилировать ядро, это вовсе не значит что я люблю это делать. Люблю я несколько другие вещи.

off: Ананимус! Перекомпилируй его с поддержкой проводной сети и задушись проводом!

Интересно было бы на эту книжку поглядеть в печатном виде.

>злодей разбил книгу на мелкие файлы, чтоб мы все на амазон ломанулись (известный приём)

злодей поместил также все эти мелкие файлы единым архивом если ты не заметил.

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

s/чтобы написать про неё книгу/чтобы написать про неё НОВОСТЬ

> злодей разбил книгу на мелкие файлы, чтоб мы все на амазон ломанулись (известный приём)

злодей писал однако в DocBook и там AFAIR была какая-то проблема с объединением глав в единый pdf..

Абсолютно согласен. Но очень уж повеселило выражение «для тех кто любит компилировать ядро». Это получается не для меня что-ли? Обидно, понимаешь 😉

У реальных пацанов всегда стоит дефолтное (>30мб модулей), скомпиленное под i386 и работающее на Core4Quattro. А самосборное, оптимизированное под проц(

2Мб) — это для лохов, у которых нет денег на «нормальное» железо и которых не устраивает «как дядя сверху прописал», так? 🙂

Не, это для тех у кого очень много свободного времени.

да, аж целых 15 минут — лучше, наверное, пойти покурить

>> злодей разбил книгу на мелкие файлы, чтоб мы все на амазон ломанулись (известный приём)

по ссылкам не ходим?

Это для тех у кого не каша вместо мозга

Тебе 30 Мб на диске жалко?

> А самосборное, оптимизированное под проц(

2Мб) — это для лохов

Оптимизация — она, похоже, в головах (этих самых лохов).

> которых не устраивает «как дядя сверху прописал»

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

Да, в транслите только 😉

>Оптимизация — она, похоже, в головах (этих самых лохов)

Когда перед тобой задача — обеспечить нормальное функционирование роутера с практически 100% «нагрузкой» (траффиком) на все сетевые интерфейсы и где правил в IPTABLES больше полутора тысяч, ты быстро увидишь разницу между -march=athlon-xp и -march=i386, я тебя уверяю

> Тебе 30 Мб на диске жалко?

А сколько по времени depmod при ребуте делается?
А сколько это все оперативки жрет?
Мне лично жаль иметь в ядре поддержку NFS, RAID0145, всякого барахла типа IPv6 и по десятку драйверов IDE, SATA, SCSI, ETHERNET, всяких экзотических FS xfs, ntfs. и прочей радости типа синезуба.
Не нужное оно.
Система у меня использует ATA (SATA+PATA), ReiserFS, NVidia, встроенную рилтековскую сеть, USB клаву, крысу и флешки. ВСЁ!
Скажешь, «а убери из загрузки»? Это более правильно. Но не проще ли prestlerтогда вообще пересобрать ядро под конфигурацию машины? Один раз посидеть, поконфигурить, а потом просто подсовывать имеющийся конфиг новому ядру. Собственно, пересборка у меня в зависимости от машины 7..15 минут, ну и пару минут на ребут. 🙂 Можно даже на работу придти чуть раньше (или уйти попозже) ради этого, раз уж так ты тут ратуешь на трудовую дисциплину и любишь работать. 🙂

> Оптимизация — она, похоже, в головах (этих самых лохов).

Читайте также:  Изменить папку для сохранения скриншотов mac os

Ой, правда что ли? man gcc, уважаемый! И вообще, учите матчасть. Курить до посинения хотя бы чем отличается «-O2» от «-O3», «-march=i686» от «-march=nocona» и нужна ли опция «-g».

> специально обученный, умный дядя

Улыбнуло. Еще больше улыбает, когда эти самые дяди используют комбинации типа «-O2 -fforce-math». А потом удивляются, чего это софт глючит и вообще сегфолтится.

> Это ядро этого дяди является продуктом обкатанным и постоянно тестируемым кучей народа на предмет всякого рода глюков

Не очень понял. Тестируется таки ЯДРО или конкретная сборка? 🙂 Вы определитесь уже, что ли.
Если все же конкретная сборка ядра, то эт-та. Вы хотите сказать, что этот «дядя» поумнее Линуса&Co. будет, да? А как конкретно «дядю» зовут? Надо же знать, на кого молиться.

Вопрос в другом: «А нафига такая книжка человеку, который занимается сборкой роутеров?».

Ну не нужна эта книжка, не нужна.

Ну не читай её, не читай.

и что ? от того что он их запаковал, pdfки внутри архива склеились в одну ?

А не задумывался ли уважаемый, как стать таким человеком?

>Ну не нужна эта книжка, не нужна.

Самое интересное в том, что от вашего мнения она не исчезнет 🙂

>Вопрос в другом: «А нафига такая книжка человеку, который занимается сборкой роутеров?». > Ну не нужна эта книжка, не нужна.

Успел уже всё прочитать ? 😉

Или «Пастернака не читал но осуждаю» ? 😉

Склей их сам, что тебе мешает? Docbook есть, xml-парсер есть, так в чём-же дело?

Успел её просмотреть. Там много места занимает тривиальное цитирование, как водится. Много воды.

Людьми «собирающими роутеры» становятся не по книжкам. Это работа творческая. 🙂

+1 Верно говоришь! Нефиг из ядра помойку делать.

> У реальных пацанов всегда стоит дефолтное (>30мб модулей)

В оперативную память загружаются только необходимые модули, поэтому ядол будет занимать в памяти существенно меньше, чем >30МБ.

> скомпиленное под i386 и работающее на Core4Quattro

Вернее под i686. А по-вашему что — лучше собрать ядро под свое железо и при смене звуковухи, сетевой и уж тем более платформы пересобирать каждый раз все ядро? Какой прирост производительности от оптимизации ядра под свое железо или вы наивно считаете, что ядро во всю активно использует расширения команд SIMD SSE/SSE2/SSE2/MMX/MMX2 современных x86 процессоров?

> А самосборное, оптимизированное под проц(

2Мб) — это для лохов

Для тем, у кого очень много свободного времени, чтобы тратить его на столь бессмысленные развлечения, а также для особых случаев — встраиваемая техника. Для всех остальных случаев модульное ядро обладает наивысшей гибкостью и позволяет не тратить свое время на постоянные пересборки ядра по каждому пустяку.

> для лохов, у которых нет денег на «нормальное» железо

Если для вас огромная проблема когда на ВИНТЕ расходуется попусту 30МБ-2МБ под модули, то вам действительно придется заниматься постоянной пересборкой ядер.

> и которых не устраивает «как дядя сверху прописал», так? 🙂

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

Название книги в теме не правильное — «Linux in a nutshell».
Должно быть «Linux kernel in a nutshell».
«Linux in a nutshell» это совсем другая книга.

Сорри за очепятки s/ядол/ядро/ s/Для тем/Для тех/ и тд

Мда, а git-репозиторий уже лежит. Вот тебе и хваленые новомодные системы, чуть что — сгибаются под нагрузкой.

кому надо — уже давно нашел эту книгу в виде одного chm — файла, с оглавлением, поиском и т.д.

Смени аватар. Сейчас. Через час забаню.

> Когда перед тобой задача — обеспечить нормальное функционирование роутера с практически 100% «нагрузкой» (траффиком) на все сетевые интерфейсы и где правил в IPTABLES больше полутора тысяч, ты быстро увидишь разницу между -march=athlon-xp и -march=i386, я тебя уверяю

Религия мешает установить kernel-image-2.6.8-2-k7?

Да да помнится как-то РУТ тут писал про оптимизацию ядра под sse,sse2 и тому подобного. Ему тут обьясняли что толку от этого ни хера нет. А он все туда же.

> Мне лично жаль иметь в ядре поддержку NFS, RAID0145, всякого барахла типа IPv6 и по десятку драйверов IDE, SATA, SCSI, ETHERNET, всяких экзотических FS xfs, ntfs. и прочей радости типа синезуба. Не нужное оно.

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

> Ой, правда что ли? man gcc, уважаемый! И вообще, учите матчасть. Курить до посинения хотя бы чем отличается «-O2» от «-O3», «-march=i686» от «-march=nocona» и нужна ли опция «-g».

Цифры можете предоставиь насколько процентов (или долей процента?) ядро собранное под nocona производительнее собранного под i686?

> Тестируется таки ЯДРО или конкретная сборка? 🙂

Обкатка производится на штатной сборке, поэтому когда глюки вылезут на конкретно вашей сборке с конкретно вашими флагами это будет конкретно вашей проблемой. Или вы еще не в курсе как проявляется увлечение оптимизацией? Тогда поставьте Gentoo и поиграйтесь с CFLAGS.

Читайте также:  Как вывести содержимое каталога windows начав вывод с имен каталогов

Тогда подскажи, пожалуйста, дистрибутив, в котором дистростроители не пихают в ядра и initd всякой дребедени.

Я что-то непонятное сказал, да? Сложно доходит?

Анонизма ровно стока, чтоб подсунуть новому ядру конфиг, собраться и ребутнуться.

Ага, а заодно вырубают всякие DEBUG-и да VERBOSE-ы.

Видать тока гента.

> В оперативную память загружаются только необходимые модули, поэтому ядол будет занимать в памяти существенно меньше, чем >30МБ.

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

> собрать ядро под свое железо и при смене звуковухи, сетевой и уж тем более платформы пересобирать каждый раз все ядро

А часто вам приходится менять встроенные сетевухи и звуковухи? По поводу звуковух могу сказать, что за 13 лет пользования компами у меня было в общей сложности 5 звуковух в 6 компах, это с учетом встроенных. Негусто, правда? А что касается платформы, то (скорее всего) некие телодвижения придется делать в ЛЮБОМ случае. Например, если у вас в дефолте грузятся только модули VIA-SATA, а вы сменили платформу на VIA, то ядро вам при загрузке нарисует что-то типа «root fs not found, kernel panic».

> дро во всю активно использует расширения команд SIMD SSE/SSE2/SSE2/MMX/MMX2 современных x86 процессоров?

Нет, не использует. НО! Оно сохраняет регистры SIMD блоков при переключении контекстов. Что дает возможность делать «-O3 -march=nocona -msse -mfpmath=sse3». «-msse -mfpmath=sse3» позволит компилятору использовать SSE, а «-O3» дает внутри «-finline-functions», что в итоге позволяет передавать параметры функций через регистры SSE — а они большие и даты в них лезет много. Вот и подумайте, насколько можно ускорить работу софта только за счет этого маленького финта. А чтобы вы не мучались, скажу сразу: mysql-test показывает повышение производительности только на insert и create от 30 до 50 процентов по сравнению с обычной компиляцией ядра и мускля.

> Для всех остальных случаев модульное ядро обладает наивысшей гибкостью и позволяет не тратить свое время на постоянные пересборки ядра по каждому пустяку.

Вас послушать, так вы в день по 100 раз меняете конфигурацию своего компа? Матери, процы, винты, звук, сеть? Скажите сначала: сколько раз в действительности вам приходится менять конфигурацию компа, скажем, за месяц, а потом уже можете продолжить рассказы про модули.

> Если для вас огромная проблема когда на ВИНТЕ расходуется попусту 30МБ-2МБ под модули, то вам действительно придется заниматься постоянной пересборкой ядер.

$ du -hs /usr/src/linux-2.6.19.1
397M /usr/src/linux-2.6.19.1
r00t@root:

$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 53751824 30953588 22798236 58% /

Нет, не проблема. Совсем по другой причине, которую вы, по недалекости своего ума, с ходу отвергаете.

> средней экономией оперативной памяти занимаемой ядром при использовании самосборного ядра в сравнении со штатным модульным

Уже огласил. 30-50% производительности только для мускля 4.1. А по расходу памяти будет сравнимо, разумеется.

> сборщики штатного дистрибутивного ядра ничего не понимают в сборке ядер

Они-то понимают. Это вы не понимаете. Задача сборщиков дистрибутивных ядер в том (и ТОЛЬКО в том), чтобы свежеустановленный дистр запустился на максимальном количестве компов. Поэтому они и пихают в ядро, собственно, все что влезет. 🙂 Потому и используется i686 как платформа сборки ядра и софта — оно наиболее универсально: сможет работать на процах от PentiumPro до Core 2 Quattro (ну и на соответствующих поделках AMD, VIA и прочих трансмет). Вот только цена этой универсальности — снижение эффективности новейших камней. Приятно вам сознавать, что ваш какой-нибудь PentiumD работает на самом деле просто как разогнанный до 3-х ГГц Pentium2? 🙂 Если вам приятно, это еще совсем не значит, что остальные люди тоже мазохисты.

>В оперативную память загружаются только необходимые модули

низкая скорость запуска системы + не всегда корректное определение оборудования

>А по-вашему что — лучше собрать ядро под свое железо и при смене звуковухи, сетевой и уж тем более платформы пересобирать каждый раз все ядро

>Для всех остальных случаев модульное ядро обладает наивысшей гибкостью и позволяет не тратить свое время на постоянные пересборки ядра по каждому пустяку

При появлении очередной уязвимости кому-то, конечно, проще мегабайты перекачать, а кому-то — несколько кбайт патч и 10 минут на make bzImage

>Для тех, у кого очень много свободного времени, чтобы тратить его на столь бессмысленные развлечения

да, раньше это было именно развлечением, теперь мне за подобные вещи платят

>Вас мучают какие-то комплексы, которые выражаются в стремлении выделиться и делать все наперекор здравому смыслу по-своему, считая что сборщики штатного дистрибутивного ядра ничего не понимают в сборке ядер?

Да, _штатное_ дистрибутивное ядро меня не устраивает — оно громоздкое и медленное, я хочу и _могу_ настроить, пересобрать его «под себя» и считаю это правильным

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

Если для кого-то это «убитое» время (6-9 минутная компиляция не в счёт) — для меня это _штатные_ люди, просто защищающие чью-то позицию.

Источник

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