/ Статьи / Системное / Ручная сборка и конфигурирование ядра Linux /

Ручная сборка и конфигурирование ядра Linux

Дата публикации: Oct. 28, 2010, 7:18 p.m.
Теги: linux,
Автор: Brainsburn

linux-kernel

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

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

Самая частая проблема, настигающая людей, впервые конфигурирующих свое новое ядро - вопрос, какие же именно драйвера нужно включить, чтобы ядро заработало на вашем компьютере? Но в большинстве случаев это все легко решается и хватит лишь названия чипа материнской платы. А если вы не знаете и этого, на помощь придет утилита lspci из набора pciutils. У некоторых людей, правда, возникают трудноустранимые проблемы в связи с недостаточной поддержкой Linux их оборудования, но это бывает лишь у пользователей экзотического железа.

Вторая проблема проявляется уже после сборки ядра и перезагрузки компьютера, и она может погасить стремление к изучению у многих. Как вы уже поняли, она заключается в том, что компьютер не включается. Точнее, компьютер то включается, но вот загрузка системы прерывается на kernel panic. И я с уверенностью могу сказать, что в большинстве случаев это происходит не из-за того, что пользователь не включил нужные модули, а из-за того, что пользователь их отключил, считая, что они ядру не нужны. Именно по этому я и сказал, что "тюнинг" ядра и отключение лишних опций в стремлении к совершенству, могут привести к полной неработоспособности ядра. Для этого есть золотое правило - если не знаете, что это и для чего, не трогайте это, оставьте все, как есть.

Ну и, наконец, некоторые полагают, что вручную собирать ядро - долго и утомительно. Конечно, это не так. Созданный однажды конфиг, может применяться к новым ядрам с помощью команды make oldconfig. А компиляция ядра хоть и длится долго на слабых машинах, но не требует никакого вмешательства человека, по этому вы можете в это время пить чай и читать новости.

Переходим к практике. Ручная сборка ядра Linux

Сначала, я хотел описать процесс конфигурации и сборки ядра Linux на примере Gentoo, но потом решил, что будет лучше, если собирать ядро я буду полностью вручную, скачав архив прямо с http://kernel.org . Итак, приступим.

Идем на http://kernel.org и смотрим - последняя версия ядра - 2.6.36. Качаем его и распаковываем. Некоторые программы будут искать конфиг ядра в /usr/src/linux, по этому распаковать архив нужно в /usr/src и сделать символическую ссылку:

# cd /usr/src/
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2
# tar xavf linux-2.6.36.tar.bz2
# ln -snv linux-2.6.36 linux

Теперь переходим к конфигурации. Это самый трудоемкий процесс в сборке ядра:
# make menuconfig
Вы попадете в утилиту конфигурации ядра Linux. Зайдите в раздел "Processor type and features" и найдите строку "Processor family" (см. скриншот).

processor-family-linux-kernel

Вам нужно выбрать тип своего процессора. Если вы не уверены с выбором или не находите в этом списке свой процессор, вы можете выбрать тип 586 или 486. Но перед этим, воспользуйтесь утилитой lspci из пакета pciutils. Запустите ее от пользователя root и найдите в ее выводе информацию о процессоре. На моем компьютере lspci выводит текст, содержащий такую строку:

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron]
Значит, значение опции "Processor family" в моем случае надо указать в "Opteron/Athlon64/Hammer/K8".

Теперь, не выходя из раздела "Processor type and features" найдите опцию "High Memory Support" (см. скриншот)

high-memory-support-linux-kernel

Ее значение по умолчанию установлено в 4GB. И это наилучший вариант, если у вас не больше 4GB оперативной памяти. Дело в том, что 32-битные машины могут работать не более чем с 4GB (2^32) физической памяти. При включении поддержки памяти больше 4GB, вы активируете работу с виртуальной памятью. И не беспокойтесь, если увидите, что памяти у вас всего будто 3.5GB. Но почему на 32-битных машинах обладатели 4GB планки RAM видят лишь 3.5GB доступной памяти? Ответ прост: ядро Linux разделяет физическую память на две части, одна из них доступна пользовательским приложениям, а небольшая часть зарезервирована ядром. Утилиты, показывающие объем RAM, не имеют доступа к зарезервированной ядром памяти, по этому вы и видите эти пресловутые 3.5GB.

Если RAM у вас больше 4GB, вы можете включить поддержку до 64GB памяти. В этом случае активируется PAE (Physical Address Extension), которая позволяет x86 процессорам работать с больше чем 4GB RAM. Не стоит включать это, если у вас не больше 4GB RAM, т.к. PAE накладывает некоторые ограничения и, попросту, работает немного медленнее.

Теперь переходим к разделу "Device Drivers" - "Serial ATA and Parallel ATA drivers".

serial-ata-and-parallel-ata

В этом разделе вам надо включить драйвера для работы с вашим жестким диском. В новых версиях Linux даже старые IDE диски будут определяться как /dev/sdXX. В определении нужного драйвера снова поможет утилита lspci. На моем компьютере она пишет вот что:

00:0d.0 IDE interface: nVidia Corporation MCP51 IDE (rev a1)
00:0e.0 IDE interface: nVidia Corporation MCP51 Serial ATA Controller (rev a1)

В списке драйверов есть два схожих варианта - "NVIDIA SATA support" и "AMD/NVidia PATA support". Какой из них выбрать? Ничего плохого не произойдет, если вы включите сразу оба. А если хочется точности, то зайдите на эту страничку: http://hardware4linux.info/types/ . Теперь смотрим - lspci говорит "IDE interface:". Ищем на этой странице "IDE interface" и переходим по ссылке. В большом списке ищем "MCP51". В данном случае нам нужен "nVidia / MCP51 IDE". Вариантов будет несколько, смотрим любой и видим, что работает он с модулем "pata_amd" (см. скриншот).

module-ide-website

По этому включаем поддержку "AMD/Nvidia PATA support" и идем дальше. Да, кстати, т.к. я не использую initrd, драйвер для работы с жестким диском должен быть включен в ядро, т.е. (*), а не(M).

Теперь переходим в раздел "Graphics support" (см. скриншот). graphics-support

Тут все зависит от того, какие драйвера вы собираетесь использовать для вашей видеокарты. Владельцы Nvidia и ATI могут выбирать между открытыми и проприетарными драйверами. Бо'льшую производительность обеспечивают проприетарные драйвера, т.е. те, которые вы можете скачать с сайта производителя видеокарты. Если вы будете использовать проприетарные драйвера, то отключите опцию "Direct Rendering Manager (Xfree86 4.1.0 and higher DRI support)", т.к. такие драйвера будут устанавливать свои собственные модули в ядро. В других случаях, скорее всего, ничего менять в этом разделе не понадобится.

Переходим в раздел "Sound card support" - "Advanced Linux Sound Architecture". В моем случае у меня интегрированная звуковая карта, а lspci сообщает:

00:05.0 Audio device: nVidia Corporation MCP61 High Definition Audio (rev a2)

По этому переходим в подраздел "PCI sound devices". В выборе драйвера для звуковой карты в Linux поможет вот этот сайт: http://bugtrack.alsa-project.org/main/index.php/Matrix:Main . Находим в списке nVidia и переходим по ссылке. В следующем списке только два варианта - AC97 и HDA. Не трудно догадаться, что HDA расшифровывается, как High Definition Audio, по этому кликаем по "Details" и видим:

The module options for snd-hda-intel
description:    Intel HDA driver

Возвращаемся к утилите конфигурации ядра, находим в списке драйверов на звуковые карты "Intel HD Audio", переходим туда и обнаруживаем большой список. Скажу честно - я не знаю, как точно определить, какой именно вариант из списка нужен. На моем железе звуковая карта работает только с Realtek HD-audio. С NVIDIA HDMI HD-audio и INTEL HDMI HD-audio - ни в какую. Думаю, что можно оставить поддержку их всех, а система сама подберет нужный.

Переходим к поддержке сетевой карты в разделе "Device Drivers -- Network device support". Наша незаменимая lspci говорит:

00:14.0 Bridge: nVidia Corporation MCP51 Ethernet Controller (rev a1)

Снова идем на http://hardware4linux.info/types/ , кликаем по "Ethernet controller", ищем "MCP51", обнаруживаем, что вариантов много, смотрим несколько из них и видим, что все они работают с модулем "forcedeth" (см. скриншот).

ethernet-controller-website

Итак, имя модуля узнали, осталось узнать, где его искать. Подробную информацию о сетевой карте покажет маленькая, но полезная, утилитка ethtool. Запускать ее можно, указав единственный параметр - имя сетевого интерфейса. Я не буду приводить сюда ее вывод, просто скажу, что там есть такая строка:

Speed: 100Mb/s

Вот и отлично. Выбираем в разделе "Network device support" подраздел "Ethernet (10 or 100Mbit)" и переходим в него. "forcedeth" в списке, конечно, нету, т.к. это имя самого модуля. Но, я знаю, что мой чип - nVidia nForce, поэтому выбираем "nForce Ethernet support" и кликаем "Help". В верху будет строка "CONFIG_FORCEDETH", а значит - это то, что нам нужно. Теперь можно перейти на уровень выше и снять галки с "Ethernet (1000 Mbit)" и "Ethernet (10000 Mbit)"

С разделом "Device drivers" покончено. Осталось всего ничего - включить поддержку нужных файловых систем. Переходим в раздел "File systems".

file-systems

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

Если вам нужно иметь доступ к данным на NTFS разделах, включите опцию "FUSE (Filesystem in Userspace) support". Позже, для возможности монтирования NTFS разделов, вам нужно будет установить пакет ntfs3g. Так же можете включить опцию "CD-ROM/DVD Filesystems" -- "UDF file system support".

Можно считать, что конфигурацию ядра мы почти закончили. Осталось лишь слегка облегчить ядро, перейдя в раздел "Kernel hacking" и отключив "Kernel debugging", "Compile the kernel with frame pointers" и "Remote debugging over FireWire early on boot"

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

# make && make modules_install

Компиляция ядра займет некоторое время. После завершения сборки ядро будет лежать по адресу arch/x86/boot/bzImage. Все, что осталось сделать - скопировать ядро в каталог /boot и внести изменения в конфигурационный файл загрузчика GRUB.

# cp arch/x86/boot/bzImage /boot/kernel-2.6.36
Вот простейший конфиг GRUB:
default 0
timeout 15

title My Linux 2.6.36
kernel /boot/kernel-2.6.36 root=/dev/sda2
/dev/sda2 вы должны заменить на имя вашего корневого раздела. (не "/boot", а "/").

Теперь можно перезагружаться с новым ядром! :)

Возможные проблемы.

Если вы не укажите драйвер на жесткий диск или не правильно укажите "root=", ядро не сможет примонтировать корневой раздел и возле сообщения Kernel panic вы сможете найти нечто подобное:

Please append a correct "root=" boot option: here are the available
partitions:

После этой строки будет перечислен список обнаруженных накопителей. Если вашего жесткого диска среди них нет, то вам надо пересобрать ядро, включив недостающие драйвера на жесткий диск. Если же ваш жесткий диск в этом списке есть, значит вы не правильно указали значение "root=".

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


Уточнения.

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

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


Как жить дальше?

Позже, если вы захотите установить свежую версию ядра, вам не придется конфигурировать ядро Linux заново. Вам нужно будет лишь скопировать файл ".config" из каталога с исходниками старого ядра в новое и выполнить команду make oldconfig. Она "подгонит" старый конфиг под новое ядро и, если в новой версии появились новые опции, она спросит, включать их или нет. В большинстве случаев вы можете оставлять все по-умолчанию. Количество вопросов, на которые придется отвечать, зависит от разницы между версиями ядер. После этого, новое ядро можно будет просто собрать и скопировать в нужное место.

Зачем это вообще надо?

Может возникнуть закономерный вопрос "какого черта это вообще надо?". Конечно, вы можете установить уже собранное ядро с помощью пакетного менеджера вашего дистрибутива Linux и оно будет отлично работать, хотя и будет слегка "жирнее" сконфигурированного вручную. Ответить я могу только за себя. Я делаю это вручную, т.к. на мой взгляд, ядро - основной компонент любой Linux-системы и понимание его, и умение его собирать являются такими же необходимыми основами, как знание ПДД для водителя автомобиля. Но даже если вы считаете по-другому, этот опыт ручной сборки ядра поможет вам лучше понять свою систему, а значит, лучше уметь ею управлять, поддерживать в работоспособном виде и всякое-всякое ;)


Спасибо за внимание!






Возможно, эти материалы Вас заинтересуют:


Рекомендовать эту страницу:

Комментарии:(38)

# Brainey Dec. 21, 2010, 5:45 p.m.
># make menuconfig

Имхо, # make nconfig поудобнее будет. Хотя, возможно это субъективно.

# DiriJor Jan. 18, 2011, 4:13 p.m.
Огромное спасибо очень полезные вещи рассказываете!

# BOT Jan. 27, 2011, 11:42 p.m.
Ждем статью про облегчение ядра!

# Kate May 7, 2011, 7:23 a.m.
В списке Serial ATA and Parallel ATA drivers не вижу нужного мне 00:1f.2 SATA controller: Intel Corporation N10/ICH7 Family SATA AHCI Controller (rev 02), что делать?

# Харон Oct. 28, 2011, 6:59 a.m.
Маловато будет… Например в аналогичной, но старенькой статье Федорчука опций много больше а в файле конфигурации нового ядра (3.1.0.) этих опций больше в разы и смысл довольно многих довольно туманен.

# Brainsburn Oct. 28, 2011, 9:46 p.m.
Харон, маловато для чего? Для того, чтобы ОС загрузилась и пользователь в общих чертах понял принцип сборки ядра - самое то.

# AVG Jan. 4, 2012, 10:02 p.m.
Отличная статья, спасибо!

# Ыукпуш April 16, 2012, 6:30 p.m.
Для новичков да??? Вот я зашел на http://kernel.org, [kernel.org] скачал - 2.6.36. в папку Линух на рабочем столе Виндовс. Теперь “распаковать архив нужно в /usr/src” - это где? На диске С:???

# Гость April 16, 2012, 7:30 p.m.
Ыукпуш лопух

# Ыукпуш April 16, 2012, 8:34 p.m.
Как ты вычислил, что я лопух? Мозг не перенапрягся? Мой вопрос был явно в контексте - “подскажите что мне изучить предварительно, чтобы втупить хотя бы в эту статью?”

# Ыукпуш April 17, 2012, 12:45 a.m.
Везде пишут про /usr/src/. Но никто не пишет ГДЕ или КУДА это прописывать??? Гуру-сдуру… Умные же все!

# Гость April 17, 2012, 3:49 p.m.
Ыукпуш но всё таки ты…
ну ладно. а какой у тебя дистрибутив linux?
если, не секрет ;)

# nevard April 18, 2012, 4:35 a.m.
Ыукпуш
про диск Ц, читай тут! http://linux-easy.ru/blog/articles/put-ot-windows-k-linux-pochemu-zdes-net-diska-c.html [linux-easy.ru]

# Ыукпуш April 22, 2012, 3:48 a.m.
Гость
Дистрибутив? Вот такой: “linux-3.3.2.tar.bz2”! Скачал “прямо с kernel.org” как написано в этой статье. Теперь “ищу” /usr/src %)

nevard
Спасибу! С удовольствием изучаю!

# linwinlin June 16, 2012, 11:07 a.m.
как-то странно нигде не смог найти об включении EVP для AMD в ядре Linux и вообще включется ли этот прог при установке ядра

# Гость July 19, 2012, 3:45 p.m.
где есть отягчённый грехами диск це,
там не живёт /usr/src/

# Gellmann Sept. 17, 2012, 2:52 p.m.
Кстати абсолютно согласен с Ыукпуш:
если уж инструкция для новичков, то не мешало бы разжевать с самого начала. Например: берём голый комп, скачиваем дистрибутив linux на DVD-болванку, … ?
А так из инструкции типа:
# cd /usr/src/
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2 [kernel.org]
# tar xavf linux-2.6.36.tar.bz2
# ln -snv linux-2.6.36 linux

следует, что для установки linux на компе уже должен быть установлен linux :)))
Автор, реально задумайтесь.

# Brainsburn Sept. 17, 2012, 10:06 p.m.
Хватит меня троллить :) Если все же это не троллинг, то имейте в виду, что в статье говорится о сборке ядра, а не об установке дистрибутива. Гугл в помощь.

# prince Sept. 28, 2012, 8:18 a.m.
Очень полезная и щзамечательная статья!

# weec Nov. 14, 2012, 10:46 a.m.
используйте “make install” для установки нового ядра и
стартового RAM-диска (initial RAM disk) в каталог /boot и обновления конфигурации
загрузчика

– выдержка из материалов для подготовки к экзаменам LPIC

# Brainsburn Nov. 15, 2012, 6:24 p.m.
weec, да, можно и make install использовать, она старое ядро и System.map переименует в *.old, а на их место скопирует новые. А вот насчет конфигурации загрузчика не знаю, вроде бы она Grub не трогает.

# Mogwai Jan. 30, 2013, 2:42 a.m.
linux-3.7.4:
networking support >> CAIF support = all
RF switch subsystem support =all
CAN bus subsystem support=all

Network device support >> PPP = all
CAIF TTY=on
USB network adapters=all

USB support >> USB modem (CDC ACM) support=on
Что нужно ещё вкл. для usb gprs/edge модема?
$ pon
/usr/sbin/pppd: In file /etc/ppp/peers/provider: unrecognized option '/dev/ttyUSB0'
??? ._. ???

Реклаааммаааа: Mogwai - Portugal

# Mogwai Jan. 31, 2013, 5:03 a.m.
Как всегда, всё оказалось намного проще: USB Serial Converter support - ну не знал этого..))спасибо gentoo-wiki

и рекламкаа: Ulrich Schnauss - Broken Homes

# cowboy Feb. 5, 2013, 11:25 p.m.
я вот прочитал статью.
Скачал ядро 3.7.6.
Запустил lspci - вот тут у меня и начались проблемы:
По выше заданному примеру:
Процессор:
Host bridge: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub - нет такого в процессорах.
АудиоКарта:
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller - тоже нету ((
Харддиск:
00:1f.2 SATA controller: Intel Corporation 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode]

как видно из перечисленного выше - все сводится к одной конфигурации Intel Corporation 82801
я уже не говорю о юсб контроллерах, которые тоже Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 и PCI мостах с той же терминалогией. Это нормально вообще, или я что-то не так нажимаю?

# Гость Feb. 6, 2013, 3:02 a.m.
@cowboyчто тут:
$ lspci -v|grep driver
# make defconfig;make nconfig
F8(или где-там поиск?)

# cowboy Feb. 6, 2013, 1:54 p.m.
@Гость
Вот что показывает lspci -v|grep driver
lspci -v|grep driver
Kernel driver in use: pcieport
Kernel driver in use: uhci_hcd
Kernel driver in use: uhci_hcd
Kernel driver in use: uhci_hcd
Kernel driver in use: ehci_hcd
Kernel driver in use: snd_hda_intel
Kernel driver in use: pcieport
Kernel driver in use: pcieport
Kernel driver in use: uhci_hcd
Kernel driver in use: uhci_hcd
Kernel driver in use: uhci_hcd
Kernel driver in use: ehci_hcd
Kernel driver in use: ahci
Kernel driver in use: nouveau
Kernel driver in use: r8169
Kernel driver in use: ath5k

# divion April 25, 2013, 2:29 a.m.
Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller

Эта аудиокарта точно поддерживается. Буквально сегодня настраивал звук - при включение интел дров и алса - будет счастье.

# Tigger April 25, 2013, 7:32 p.m.
Спасибо очень нужная статья и все доходчиво.

# Михаил July 15, 2013, 11:23 a.m.
Спасиб, отличная статья. Ждем продолжения)

# Робот Вертер Sept. 23, 2013, 6:44 p.m.
Спасибо за ликбез для таких как я. Лайв образы уже потрогали будем собирать теперь сами под свое ржавое железо :-)

# Генерал Кюкюров Dec. 3, 2013, 3:10 p.m.
Простите, но я так и не понял.
Скачал ядро, распаковал и написал команду:

make config
И че дальше? Нет того окна! Командная строка виндовса 7

# Гость Dec. 14, 2013, 7:18 p.m.
Спасибо огромное автору, отличная и доходчивая статья!!

# Benn Jan. 16, 2014, 11:02 p.m.
Отличный вопрос для людей пытающихся собрать ядро linux на windows: Вы вообще понимаете что Вы делаете? Как, и главное куда Вы думаете вводить команды терминалa linux? В cmd виндовса? Работать с файловой системой NTFS (виндовой) и искать где-то на диске C: каталог “/usr/src/” ? В линукс нет диска C: и D: - в нем вместо них каталоги.
Ребят, я все понимаю, статья рассчитана на новичков, но, цитирую “В этой статье я опишу процесс ручной сборки ядра Linux. Рассказывать попытаюсь просто и понятно, т.к. материал рассчитан на новичков. Те, кто уже умеет это делать, скорее всего, не найдут в этой статье ничего полезного” - из этого следует что статья рассчитана на новичков в сфере СБОРКИ ЯДРА, а не совсем “зеленых” людей в управлении ПК. И если честно, то те, кто хотя бы запускал и немного юзал линукс - поймут о чем тут написано. Так что не надо тролить автора. Для начала поставьте Linux Ubuntu и поработайте с ним недельку и Вам сразу станет все понятно и просто!
Автору огромное спасибо за статью - ядро собирал в первый раз - все получилось отлично!

# Гость Feb. 14, 2014, 10:42 p.m.
Я думаю статья доступна всем, кто осилел хотя бы первые пару страниц руководства линукса и привык к тому, что диск Цэ все таки примонтировался где-то в sda1 :D

Меня как новичка (да и не только меня как я понимаю http://www.linux.org.ru/forum/talks/4297534) волнует не сколько сборка ядра, сколько сборка ядра таким образом и с теми параметрами, чтобы у меня система была устойчивой, стабильной, с гарантированным отзывом… т.е. у меня слабая машина и даже серфинг в Интернете при обилии графики, flash может вызывать сильную нагрузку. В какой-то определенный момент контроль над машиной постепенно теряется:
1) начинает по 1-2 сек открываться меню пуск, при этом адского отжора памяти нету, система в своп не влазит, просто ЦП нагружен процентов на 80%
2) если не предпринять меры по снижению нагрузки, прикрывшись фразой ‘ээээ… это ж линукс братан, тут крутая многозадачность, nice renice и все пучком’ то при загрузке ЦП на 100% возникает настоящий ‘буллет-тайм’ мышь дергается, весь графический интерфейс лихорадит и в какой-то момент система виснет. Полностью на лопатки линукс не ложится и всегда минут эдак за 15 можно переключиться в другой терминал и htop ом бабахнуть процесс и после этого опять работать…

Почему так происходит? Ведь я даже выставляю приоритеты нагружающим программам, скажем браузер у меня работает с PRI = 30, аби ворд 25, LXpanel 20. Т.е. исходя из всех книг про распределение процессорного времени в линуксе должно следовать, что как только процесс со средним приоритетом (LXpanel PRI 20) попросит от системы что-то, то процесс с высоким приоритетом (Chromium PRI 30) сразу же должен отправится в конец очереди и ждать когда LXpanel отработает. На практике - chromium захлебнулся во флэш анимации в 10+ вкладках и все встало нафиг…

Вышеописанное в ненависных виндах (windows NT) случается только если система сожрала до фига памяти и адски зависла в свопе после какой-нибудь адовой игры… т.е. в любое время там зарезирвировано чуть-чуть cpu для того, чтобы сама система работала, чтобы хотя бы диспетчер задач (task менеджер в винде, htop в линуксе) вызвать и грохнуть какой-то процесс.

# Гость Sept. 7, 2014, 11:36 a.m.
Ссылка http://hardware4linux.info/types/ теперь ведет на какой-то непонятный блог

# jtuadmin Jan. 6, 2015, 3:53 p.m.
to Benn копать надо глубже и не в сторону линукс. Например firefox (да и другие браузера) открывают сразу несколько соединений. При небольшой скорости, обилия графики, да и то что например грузит аякс или флеш в бекграунде - все это приводит к висякам. От флеша уже например aple открещивалась, так как грузит проц на 100 процентов. Если у вас проц с одним ядром - это фатально. Линукс прекрасная система, но тоже зависит и от железа и от идиотского софта.

# Вячеслав March 27, 2016, 3:05 a.m.
еще можно значения опций ядра посмотреть тут http://deep-system.com правда там на английском все, но все же удобней чем через make menuconfig или xconfig

# Андрей March 28, 2016, 2:09 p.m.
я новичок и недавно выяснил что можно просто перевесить жесткий диск на другой компьютер и все будет работать без дополнительных телодвижений))) я так понимаю это потому что в ядре по умолчанию включена поддержка разных чипсетов для процессоров одного семейства…

Комментировать:

Гость, Вы можете оставить свой комментарий.

Стиль кода:
Имя
Сайт * не обязательное поле
Поставьте галку, если вы - бот
Поставьте галку, если вы - человек

Друзья! Убедительная просьба воздержаться от нецензурной лексики!



Справка:
Если вы хотите использовать в тексте комментария специальные символы, например, [ и ], используйте их внутри тега [code] [/code]
Вы можете использовать теги BBcode. Для оформления кода и подсветки синтаксиса используйте тег [code] или [code=название_языка], например, [code=python]
Ссылки вставляйте так: [url]zenux.ru[/url] или так: http://zenux.ru, но не так: zenux.ru
Текст сообщения должен быть в пределах 3000 символов.




Последние комментарии:

Eugene: Галка, внешний вид изменить совершенно не сложно.... >>>
Галка: А сильно сложно Убунту переделывать?... >>>
Brainsburn_: “Написание в 1-й” подразумевает “в первой”, а не в... >>>
ZZZ: “Написание в 1-й” подразумевает &ldquo... >>>
SBOdin: Спасибо за полезное руководство... >>>