LINUX.ORG.RU

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


0

0

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

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

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

Купить на Amazon.com: http://www.amazon.com/Linux-Kernel-Nu...

>>> Подробности

★★

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

s/достепна/доступна

anonymous
()

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

Жесть.

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

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

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

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

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

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

anonymous
()

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

zort
()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// wbr

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

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

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

У реальных пацанов всегда стоит дефолтное (>30мб модулей), скомпиленное под i386 и работающее на Core4Quattro. А самосборное, оптимизированное под проц(~2Мб) - это для лохов, у которых нет денег на "нормальное" железо и которых не устраивает "как дядя сверху прописал", так? :)

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

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

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

> >30мб модулей

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

> А самосборное, оптимизированное под проц(~2Мб) - это для лохов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Или "Пастернака не читал но осуждаю" ? ;)

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

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

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

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

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

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

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

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

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

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

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

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

> А самосборное, оптимизированное под проц(~2Мб) - это для лохов

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

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

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

> и которых не устраивает "как дядя сверху прописал", так? :)

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

sysenter
()

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

andron01
()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Re:

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

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

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

Teak ★★★★★
()
Ответ на: Re: от acheron

Re:

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

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

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

> В оперативную память загружаются только необходимые модули, поэтому ядол будет занимать в памяти существенно меньше, чем >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МБ под модули, то вам действительно придется заниматься постоянной пересборкой ядер.

r00t@root:~$ 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? :-) Если вам приятно, это еще совсем не значит, что остальные люди тоже мазохисты.

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

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

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

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

раз в 1-5 лет?

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

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

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

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

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

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

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

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

frame ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.