Гъвкавият Gentoo Linux

1
381

Много Linux потребители са чували за дистрибуцията Gentoo. Обикновено Gentoo се счита за нещо сложно и непостижимо за обикновения потребител. Но всъщност това не е така. Gentoo е една от малкото дистрибуции, които дават възможност за много гъвкаво настройване на цялата компютърна система, при това бързо. Софтуерът в хранилищата на тази дистрибуция е в много голямо количество и не се налага добавянето на допълнителни външни източници. А системата с портван софтуер дава допълнителни възможности.

Нека се опитаме да оценим възможностите на Gentoo Linux с цел да създадем нещо като идеална операционна система. Да се запознаем с Portage, да разберем, как може да избегнем излишната функционалност в някои програми, да видим, как може да се оптимизира операционната система според наличния хардуер. Няма да описваме инсталирането на Gentoo, понеже особени разлики с другите Linux дистрибуции няма.

Гъвкавостта на Gentoo

В интернет пространството често се разгарят спорове, дали Gentoo увеличава производителността. Всъщност, всичко е пределно просто. Всичко зависи от това, доколко тънка е настройката на операционната система. На практика всички потребители на Gentoo Linux завяват, че това е най-гъвкавата дистрибуция, но на какво се дължи тази гъвкавост?

Първата причина за това е, че Gentoo е source-based дистрибуция, тоест, всичкият софтуер се разпространява не във вид на двоични пакети, като например deb и rpm, а като сорс код. Самият пакетен мениджър, ако може да бъде наречен по този начин в Gentoo Linux, прилича на пакетния мениджър във FreeBSD. В операционната система има папка, в която се намират портваните програми, По-точно, това е подпапката с .ebuild файловете. Това са своеобразни скриптове, които показват откъде да се теглят файловете, как да се компилират и къде да се записва полученото след компилацията. Този подход дава възможност за създаването на само един ebuild за инсталирането на цял комплект програми.

USE флаговете

При инсталирането на софтуер в Gentoo, функционалността на програмите може да се увеличи или намали чрез използването на флаговете USE. Така например, ако искаме да инсталираме WireShark, ще видим, че в стандартния пакет на тази програма, за различните дистрибуции е включен доста голям по обем допълнителен софтуер, който едва ли ще бъде използван. В Gentoo с помощта на USE флаговете можем да компилираме собствен WireShark, само с необходимата на нас функционалност. Ако например решим да инсталираме само програмния стек с мрежовите протоколи и графичния интерфейс базиран на Qt, то можем да включим всички флагове с изключение на doc, doc-pdf и GTK.eq.

В крайна сметка ще получим програма, която е с много по-малък размер, отколкото нейния аналог в другите Linux дистрибуции.

Флаговете могат да се поставят и локално. Да разгледаме два файла:

Файлът /etc/portage/make.conf – това е глобалният файл на portage настройките, като на него ще обърнем специално внимание, понеже именно той дава възможност за изстискването на всички възможности на хардуера. В този файл работата с USE флаговете е елементарна – в реда „USE=“ можем да поставим флаговете за всеки софтуерен пакет. Така например, има смисъл там да се постави systemd, ако възнамеряваме да използваме именно тази система на инициализиране. А може да се постави KDE, ако ще се работи с тази графична среда. Важно е да се знае, че от флаговете се определят зависимостите за програмните пакети и колкото повече флагове има, толкова повече ще бъдат зависимостите за съответния софтуер.

Файлът /etc/portage/package.use. Тук могат да се изберат файловете с настройки за всеки програмен пакет отделно, като се поддържат и логически изрази.

Например:
>=dev-lang/python-3.6.0 examples
<=dev-lang/python-2.7.0 -examples

В този случай, за python версия 3.6 и нагоре ще бъдат инсталирани примерните програми, а за python 2.7 и надолу тези примери няма да бъдат инсталирани. Да обърнем внимание, че за да се включи даден флаг е достатъчно просто да се изпише неговото име, а за да кажем на portage категорично да игнорира този флаг, пред него трябва да се постави „-„.

Могат да се задават и временни флагове, които ще се задействат само веднъж по време на компилация:

# USE=" <флаг> " emerge <пакет>

Оптимизация за точно определена процесорна архитектура

Освен сериозното намаляване размера на двоичните файлове чрез промяна на USE флаговете, работата на компютъра може значително да се оптимизира за наличния хардуер.

Как става това? Програмите в хранилищата на другите Linux дистрибуции са в двоичен вид. Програмистите на практика винаги компилират програмите си без оптимизации за конкретна архитектура, понеже тяхната основна задача е да накарат своите програми да работят на всякакви персонални компютри. Gentoo дава възможност за компилиране на всяка програма за точно определена конкретна архитектура.

За да можем да направи това е необходимо да погледнем файла /etc/portage/make.conf, в който да променим един-два реда.

CFLAGS – тук можем да добавим -martch=native или името на конкретната процесорна архитектура, например -march=haswell

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

На някои места се среща информация, че колкото е по-голямо числото след „О“, толкова по-голяма ще е оптимизацията. Понякога хората слагат -О10 и повече, но GCC компилаторът поддържа само четири нива на оптимизация и всичко по-голямо от 4 се приравнява на 4.

Оптимизации на компилирането

  • MAKEOPTS – тук могат да се зададат броя потоци по време на компилацията. Препоръчва се значенияе – брой процесорни ядра +1
  • ACCEPT_LICENSE = „*“ – с това се дава разрешение на portage да компилира програмата за всякакъв лиценз. По този начин компилацията протича по-бързо
  • L10N = „bg“ и LINGUAS = „linguas_bg_BG“ – по време на компилирането ще се извършва и локализация на програмата (ако в тази програма се поддържа локализация)
  • FEATURES – най-различни опции за portage по време на компилирането. Например userfetch – по време на изтеглянето на файловете portage ще маха root привилегиите. Това има смисъл от гледна точка на безопасността. 2ccache – кеширане за GCC компилатора, което съкращава времето за компилиране. Всички опции са добре описани в официалния Wiki на проекта Gentoo
  • VIDEO_CARDS – оптимизация на според видеокартата. Например =“i965 intel“
  • ACCEPT_KEYWORDS – избор на версията на portage. Например при ~amd64 ще се използва тестовата версия amd64
  • GRUB_PLATFORMS – по време на компилирането Grub ще определи зависимостите за вашия компютър и инсталирането ще се съобрази с това значение. Например, с „efi-64“ ще бъде създаден Grub за инсталиране на efi дял за 64-битови компютърни системи.

Няколко думи за компилирането на Linux ядрото

Преди да се занимавате с конфигуратора на ядрото е добре да се потърси чрез някоя търсачка дали вече няма готово решение. Така например, има готово решение за T440P, което може да икономиса много временни

За конфигурирането на ядрото има съвременни методи, при които не се налага ръчна работа с файла .config, като например използването на уеб-конфигуратори. Кой знае защо, във всички помощни материали се описва работата на menuconfig и има съвсем малко материали за по-удобните GTK – gconfig и Qt – xconfig.

По-удобно е предварително да бъде инсталиран sys-kernel/linux-firmware и ако се наложи добавянето на модул, който го няма в ядрото (например iwlwifi.ucode), добре е да се знае, че всичко това се намира в /lib/firmware

Ако ще трябва да се използват пачове, препоръчва се използването на sys-kernel/vanilla-source

Използването на ccache по време на компилирането на ядрото ще икономиса страхотно много време, понеже ще се работи само с променените части на Linux ядрото

Полезни софтуерни инструменти

  • gentoolkit – комплект програми за администриране на Gentoo Linux
  • layman – работа с овърлеи
  • eix – удобно приложение за търсене на прогарами в portage
  • porthole – графичен интерфейс за portage, написан на GTK с използването на emerge

Заключение

Gentoo Linux дава възможност за съвсем тънка настройка на операционната система според хардуера и предпочитанията на потребителя. С помощта на флаговете може значително да се намали размера на двоичните файлове, вследствие на което те по-бързо ще се зареждат в оперативната памет и ще заемат по-малко дисково пространство. А фината настройка на /etc/portage/make.conf може да даде осезателен ръст на производителността. Тези качества са особено полезни при работа с по-стара техника, и е особено удачно при работа със специализиран хардуер.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iOS и Huawei!

Абонирай се
Извести ме за
guest

1 Коментар
стари
нови оценка
Отзиви
Всички коментари