Въведение в GNU/Linux

Съдържание
В това ръководство ще дам основно въведение в GNU/Linux за новите потребители на GNU/Linux. Това ръководство е предназначено за потребители, които искат да преминат от Windows или Mac към дистрибуция на GNU/Linux, или за настоящи потребители на GNU/Linux, които търсят друга възможност за препоръчване на софтуер, полезни съвети и бърза справка за запознаване на нови потребители.
Отказ от отговорност #
Ще използвам малка колекция от другите си статии за GNU/Linux в това въведение като комбинирано усилие за създаване на рационализирано и лесно за четене въведение, като това не е с цел самоплагиатство. Това ще бъде предимно поредица от мои лични препоръки и не трябва да се приема като последна дума за „Най-добрия“ или „Най-лошия“ софтуер, тъй като Linux е свят на предпочитания и философии. Поради този обхват на типове потребители на GNU/Linux, бих искал да отбележа, че трябва да намерите своя собствен начин за използване на Linux. Ако нещо не работи за вашия личен случай на употреба, не се колебайте да опитате нещо различно. Също така, за краткост, ще видите GNU/Linux и Linux да се използват взаимозаменяемо; тези термини са правилни, когато се отнасят за Linux като цяло, но GNU/Linux често се счита за „по-правилен“ от просто Linux.
Какво е GNU/Linux? #
Linux или GNU/Linux е семейство операционни системи с отворен код, подобни на Unix, базирани на ядрото на Linux – ядро на операционна система, пуснато за първи път на 17 септември 1991 г. от Линус Торвалдс, и на Проекта GNU, стартиран през 1983 г. от Ричард Столман, чиято цел е била да създаде цялостна софтуерна система, съвместима с Unix, съставена изцяло от свободен софтуер (Free Software). Linux в основата си е просто ядрото на Linux, а Linux, заедно със системата GNU, съставляват цялостна операционна система.
Изданията на GNU/Linux често се наричат Дистрибуции или Дистрота, които включват ядрото на Linux и поддържащ системен софтуер и библиотеки, много от които са предоставени от Проекта GNU. Често споменаваните дистрибуции на Linux включват Debian, Fedora и Arch. Настолните дистрибуции на Linux включват прозоречна система като X11 или Wayland и среда на работния плот (Desktop Environment) като GNOME или KDE. Тъй като Linux се разпространява свободно, всеки може да създаде дистрибуция за всякаква цел; вие също може да се почувствате подтикнати да направите това.
Философията на GNU/Linux и защо да използваме GNU/Linux #
Това често е силно дебатирана тема по отношение на това как потребителите на GNU/Linux смятат, че GNU/Linux трябва да се използва въз основа на лични предпочитания, естетика, политика и др. Основата на повечето от следващите философии обаче е Философията на свободния софтуер, FOSS, или Философията на GNU, която се фокусира върху отворена и споделена операционна система, която е не само безплатна като пари, често наричана “Gratis”, но и свободна като свобода, наричана “Libre”. Системата GNU/Linux дава на потребителите повече контрол върху тяхното компютърно изживяване, отколкото конкурентни операционни системи като Windows, които биха могли да съдържат злонамерени функции без знанието на потребителя. Допълнително четене по многото философски движения около GNU/Linux може да намерите в линковете по-долу.
- https://www.gnu.org/philosophy/philosophy.html
- https://en.wikipedia.org/wiki/Unix_philosophy
- http://www.catb.org/esr/writings/taoup/html/ch01s06.html
Въпреки че препоръчвам да прочетете повече за движенията зад GNU/Linux, не се насилвайте да следвате принципите на тези философии, ако това противоречи на вашия личен случай на употреба. Не забравяйте да намерите своя собствен начин за използване на Linux. Ако нещо не работи за вашия личен случай, не се колебайте да опитате нещо различно.
Намиране на дистрибуция #
Изборът на първата ви дистрибуция на Linux може да бъде предизвикателство за тези, които не са сигурни какво точно търсят. В този раздел ще дам кратко въведение в основните клонове на Linux и стъпките, които трябва да предприемете, за да изберете своя собствена дистрибуция на Linux, която отговаря на вашите нужди. Често, когато се разглежда историята на дистрибуциите на Linux, те се показват като голямо дърво, разклоняващо се на все по-малки клонове. Това често е смущаващо както за нови, така и за стари потребители поради огромния обхват и клонове, които Linux е имал през поколенията си. За да опростя това дърво, ще го разделя на Основните клонове, от които са се разклонили повечето Linux дистрибуции:
| Дистрибуция | Пускане | Подробности |
|---|---|---|
| Slackware | 1993 | Slackware Linux от Патрик Волкердинг е проектиран с две основни функции: лекота на използване и стабилност. Въпреки че често липсват най-новите зависимости от пакети (въпреки че можете да компилирате от изходния код), Slackware е подкрепен от много отдадена потребителска база. Счита се за първата в голямото наследство на GNU/Linux. |
| Debian | 1993 | Проектът Debian е асоциация от лица, обединени с каузата за създаване на свободна операционна система. Debian идва с над 50 000 пакета, компилирани в неговите хранилища. |
| Red Hat и Fedora | 1995 | RHEL е дистрибуция, насочена към търговския пазар. Fedora е общностно развита дистрибуция, фокусирана върху иновациите, интегрираща нови технологии рано и работеща в тясно сътрудничество с горните Linux общности. |
| Linux From Scratch | 1999 | Linux From Scratch (LFS) е проект, който предоставя стъпките, необходими за изграждане на ваша собствена персонализирана Linux система. Използва се предимно като инструмент за обучение как работи вътрешно една Linux система. |
| Gentoo | 2002 | Gentoo Linux е дистрибуция, изградена с помощта на системата за управление на пакети Portage. Portage е истинска портова система по традицията на BSD портовете, но е базирана на Python. |
| Arch | 2002 | Arch Linux е независимо разработена дистрибуция, насочена към компетентни потребители на Linux, които искат да персонализират и изградят своя собствена система. Работи по система на плаващо издание (rolling release). |
Това са основите на повечето, ако не и на всички останали GNU/Linux дистрибуции. Препоръчвам да останете възможно най-близо до тези основни клонове, когато избирате дистрибуция, тъй като това често ще ви даде повече стабилност и повече поддръжка.
Допълнително четене за дистрибуциите:
Създаване на зареждащо USB #
Създаването на зареждащо се USB за използване на GNU/Linux често е проста задача:
- Изтеглете дисковия образ или ISO на избраната от вас дистрибуция.
- Проверете целостта на изтеглянето, ако е предоставена контролна сума (Препоръчително, но може да се пропусне).
- Използвайте инструмент за създаване на образ, препоръчан в бележките за инсталиране на вашата дистрибуция, за да копирате ISO-то на вашето USB и да го направите зареждащо се.
За тези, които не са сигурни как да използват или да направят зареждащо се USB, препоръчвам Unebootin, тъй като е достъпен за Windows, Linux и Mac.
Какво е Systemd? И защо Systemd има значение #
Systemd е софтуерен пакет, който предоставя колекция от системни компоненти за операционната система GNU/Linux. Основната цел на Systemd е да скриптира и организира функциите за зареждане на GNU/Linux с помощта на системен и сервизен мениджър, който е init система. Init е инициализираща програма, която е първият процес, стартиран по време на зареждането. Systemd използва тази init система за зареждане на потребителското пространство и управление на потребителските процеси.
Systemd често е критикуван, като се твърди, че страда от разширяване на функциите (function creep) и е раздут (bloated). Systemd също е изправен пред критики относно друг софтуер, добавящ зависимости от него, като например десктопа GNOME. Но независимо от тези проблеми, към момента мнозинството от дистрибуциите на GNU/Linux са приели Systemd като своя основна init система. Тази тема често е поляризираща в общността на Linux.
Какво е среда на работния плот? И намиране на среда на работния плот #
Средата на работния плот (Desktop Environment) е графичен потребителски интерфейс (GUI), който обикновено имитира физически работен плот. Освен това, средата на работния плот използва набор от инструменти за уиджети (widget toolkit). В момента има два големи инструментални комплекта: GTK (The Gimp Toolkit) и Qt (произнася се „кют“).
Разграничаване между DE и WM #
Важно е да се изясни, че Мениджърът на прозорци (Window Manager) е реализация на графичен потребителски интерфейс с основна цел да управлява местоположението и позиционирането на прозорците на приложенията на вашия екран. Мениджърът на прозорци не е среда на работния плот, а средата на работния плот не е мениджър на прозорци. Въпреки това, средата на работния плот съдържа мениджър на прозорци в своя пакет от инструменти.
Препоръки за среди на работния плот #
- За тези, които преминават от Windows и се нуждаят от познато пространство, бих препоръчал LXQt или KDE.
- По-тежките за употреба среди на работния плот са Mate, Cinnamon, Gnome и KDE. За тези, които искат да усетят какъв е модерният GNU/Linux, препоръчвам Gnome. Тези среди често следват по-скоро дизайн, ориентиран към клавиатурата, и имат функционалност за тъчскрийн.
Алтернативи на свободен софтуер с отворен код #
При преминаването към GNU/Linux може да бъде трудно да се намерят полезни и функционални алтернативи на обикновения софтуер. Използването на FOSS (Free and Open Source Software – Свободен софтуер с отворен код) може да бъде освобождаващо. За да намерите алтернативи на популярен софтуер, базирани на GNU/Linux, можете да разгледате тук: https://alternativeto.net/platform/linux/
Софтуерен минимализъм #
Софтуерният минимализъм (Software Minimalism) е философия, присъща на много дистрибуции на GNU/Linux и други Unix-подобни операционни системи. Софтуерният минимализъм обхваща Философията на Unix. Можете да прочетете повече тук:
Философия на Unix #
Философията на Unix, възникнала от Кен Томпсън, е набор от културни норми и философски подходи към минималистичното, модулно разработване на софтуер. Тя често се обобщава като:
- Пишете програми, които правят едно нещо и го правят добре.
- Пишете програми, които да работят заедно.
- Пишете програми, които да обработват текстови потоци, защото това е универсален интерфейс.
Suckless Software Project #
Този подход води до Проекта Suckless Software. suckless.org е общност от програмисти, работещи по минималистични проекти за свободен софтуер с фокус върху простота, яснота и пестеливост. Екипът за разработка следва стила “Worse is better” от Ню Джърси и се придържа към принципа KISS (Keep It Simple, Stupid – Дръж го просто, глупако).
Обосновка за минимализма #
Като следваме Философията на Unix, можем:
- Да направим код, който е по-лесен за писане и поддръжка
- Да улесним скриптовете и автоматизацията
- Да намалим грешките в кодовата база
- Да намалим уязвимостите и да премахнем векторите на атака в нашия софтуер
- Да станем като цяло по-ефективни
Според тази философия, една система не може да бъде минимална, ако използва софтуер, създаден от Потеринг (Poettering), или какъвто и да е софтуер, поддържан от free-desktop. Това включва Systemd, Pulse Audio, Wayland, Gnome, KDE, GUI базирани инструменти и др. (Вижте https://suckless.org/sucks/).
Минимални операционни системи #
Въпреки че повечето съвременни GNU/Linux дистрибуции започват да се отклоняват от Философията на Unix, има малко, които се придържат към нея повече от другите. Всички те могат да бъдат персонализирани, за да отговарят на стандартите на Софтуерния минимализъм:
- 9Front
- Open BSD
- Void Linux
- Crux
- Gentoo
- Funtoo
- Alpine Linux
- LFS (Linux From Scratch)
Дистрибуции като Arch Linux и Puppy Linux също могат да бъдат включени като минималистични опции, въпреки че използват потребителското пространство на GNU и systemd.
Мениджъри на прозорци #
Повечето GNU/Linux и BSD дистрибуции използват X Window System за рисуване на работния плот, като тя разчита на Мениджър на прозорци (Window Manager). Те се делят на три категории:
- Stacking (Наслагващи): Позволяват на прозорците да се рисуват един върху друг (по “Z ред”).
- Compositing (Композиращи): Осигуряват буфер за всеки прозорец, което позволява използването на полупрозрачни прозорци.
- Tiling (Плочкови): Прозорците не се припокриват. Те се делят на Статични и Динамични.
| Тип Мениджър на прозорци | Примери |
|---|---|
| Пълни динамични | Awesome, i3 |
| Пълни Stacking | Blackbox, Fluxbox, Openbox |
| Пълни Compositing | Compiz, KWin, Mutter, XFWM |
| Минимални динамични | DWM, MonsterWM |
| Минимални Tiling | BSPWM, Ratpoison, WMFS2, Xmonad |
| Минимални Stacking | 2BWM, Rio, WindowMaker |
Използването на GNU/Linux е процес на проучване. Не се притеснявайте да спазвате минималистичната философия, ако личните ви нужди не са удовлетворени, но ви призовавам да отделите време да прочетете повече и да тествате някои от изброените дистрибуции.