от Nick Angelow(23-10-2012)

рейтинг (38)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Тъй като в последно време във форума на „Linux за българи“ зачестиха прекалено много въпросите от рода на „Коя дистрибуция на Linux да избера?“, респективно „Коя е най-добрата дистрибуция на Linux“ и понеже по силата на случайността, която е основна ръководна сила в живота, попаднах на една статия, чийто превод по някаква причина бях зарязал за повече от една-две години и в която се прави опит за класификация на дистрибуциите на Linux по няколко съществени признака. Мисля, че тази статия би била полезна на новобранците в използването на Linux и ще им помогне поне малко да се ориентират в това какво представляват дистрибуциите му, поради което този превод беше довършен и публикуван.

Оригиналът на статията е публикуван през януари 2005 година, поради което много от споменатите в нея дистрибуции вече не се поддържат, но основните съображения и аргументи, приведени от автора продължават да са валидни и до сега (imho). Но все пак имайте предвид този факт, когато решите да публикувате коментар за евентуално остаряла информация в тази статия :)

Всички бележки под линия и повечето от хипервръзките в статията са направени от мен – реших, че това е единственият сравнително разумен начин да допълня тук-там изложението на автора, за което съм готов да чуя и различни от моето мнения ;)

В един момент ще кача на някое удобно място за сваляне и вариант на статията в .pdf формат, тъй като нещо на linux-bg не всичко изглежда така, както съм го направил. Възможна е и при поискване да бъде осъществена и доставка по пощата.

И накрая – не стреляйте по преводача, той толкова си може :D
Николай Ангелов

Бел. ред.: Когато четете тази прекрасна статия, не забравяйте, че тя е писана и преведена през вече далечната 2005 година. Тук е публикувана в оригиналния си вид, така че наистина има неща, които днес са малко по-различни. Доста от тях вече са описани в коментарите - не ги пропускайте и ги допълвайте с каквото се сетите.


ПЕРИОДИЧНА ТАБЛИЦА НА ДИСТРИБУЦИИТЕ НА LINUX

© В. А. Костромин, януари 2005 г.
http://www.linuxcenter.ru/lib/articles/distrib/periodic_table.phtml?style=print
31 януари 2005 || Библиотека на Линукс Център
® януари 2005, превод от Николай Ангелов

    СЪДЪРЖАНИЕ
  1. Какво представлява дистрибуцията на Linux?
  2. Критерии за класификация на дистрибуциите
  3. Несъществени критерии
  4. Средства за управление на пакети
  5. Скриптове за начално зареждане
  6. Ориентация на дистрибуциите според областта на приложение
  7. Заключение

1. КАКВО ПРЕДСТАВЛЯВА ДИСТРИБУЦИЯТА НА LINUX?

Операционната система Linux се състои от много компоненти, най-важният от които е ядрото (kernel), като общността на разработчиците му се оглавява от Линус Торвалдс. Но операционната система не се състои само от ядро. За нейната работа са необходими още много програмни средства – драйвери за хардуерните устройства, програми за управление на файловата система, програми за организация на взаимодействието с потребителите и така нататък. За разлика от останалите операционни системи (например Windows, Solaris или HP-UX), отделните компоненти на операционната система се разработват и поддържат не от някаква отделна фирма, а от независими групи разработчици, които работят според принципите на отворения софтуер и предоставят разработените от тях продукти за обществено ползване при условията на Общият публичен лиценз (General Public License – GPL). Към момента на поява на ядрото на Linux, значителна част от програмните компоненти, необходими за една операционна система беше разработена в рамките на проекта GNU, което позволи на Торвалдс в съкратени срокове да създаде операционна система, която получи неговото име.

Тъй като всички компоненти на Linux се разпространяват при условията на лиценза GPL, може да се създаде впечатлението, че всеки един човек може да събере своя колекция от свободен софтуер и да инсталира Linux на своя компютър. И в това има известна доза истина. Но този, който е замислил подобен проект, трябва да има представа какви изпълними файлове и библиотеки ще са му необходими за да може системата1 да работи успешно, както и да знае къде трябва да бъдат разположени системните файлове, как да се организира нейното зареждане и как да бъде правилно конфигурирана. Освен това, трябва да се разрешат зависимостите между пакетите и да се премахнат противоречията между тях (и различните им версии), което не е толкова лесна задача. Първите версии на Linux, появили се през 1991 г., се състояха от две дискети. Първата служеше за зареждане на операционната система и съдържаше ядрото, а втората – кореновата (/) файлова система и основните приложни програми, разработени по проекта GNU. Копия от тези дискети можеха да бъдат изтеглени от сървъра на университета в Хелзинки. Конфигурирането и настройката на системата се извършваха на ръка и бяха много сложни. Затова до появата на първите дистрибуции, да инсталира Linux на своя компютър можеше само достатъчно подготвен специалист, може да се каже и експерт в UNIX.

Положението се промени след появата на така наречените дистрибуции. Дистрибуцията на Linux се различава от обикновеният набор от програми на първо място с наличието на инсталираща програма, позволяваща на обикновен потребител да инсталира системата на своя компютър, като при това не се налага помощта на висококвалифициран експерт. Ако се опитаме да дадем формално определение за дистрибуция, то ще се получи нещо подобно на това:

„Дистрибуцията на Linux е набор от програми, включващи основните компоненти на операционната система (в това число и ядрото на Linux), някаква съвкупност от приложни програми и програма за инсталация, позволяваща инсталирането върху потребителския компютър на операционната система GNU/Linux, както и набор от приложни програми, необходими за конкретната употреба на системата“.

Първите дистрибуции на системата се появяват много скоро след като Линус Торвалдс пуска разработеното от него ядро2 под GPL лиценз. Тъй като в рамките на проекта GNU бяха създадени много приложни програми, отделни програмисти (и групи от програмисти) започнаха да разработват както програми за инсталиране, така и други приложни програми, потребителски интерфейс и програми за управление на пакети, и да издават свои дистрибуции на Linux.

Първата дистрибуция на Linux е създадена в Англия, в Манчестърският компютърен център (Manchester Computing Centre, MCC) от Оуен Льо Бланк (Owen Le Blanc). Първата версия на тази дистрибуция, получила впоследствие името MCC Interim Linux, става достъпна за всички желаещи на ftp сървъра на университета в Манчестър през февруари 1992 г.

Приблизително по същото време, сътрудници на университета в Тексас създават дистрибуцията TAMU.

През октомври 1992 г. се появява разработената от Питър Макдоналд (Peter McDonald) дистрибуция Softlanding Linux System (SLS), която беше първата дистрибуция, включваща в себе си такива елементи като X Windows System и поддръжка на TCP/IP.

Нито една от тези дистрибуции нямаше добра поддръжка. В края на 1992 г., Патрик Фолкердинг (Patrick Volkerding) издава дистрибуция, основана в по-голямата си част на SLS, наречена Slackware и която в момента е най-старата дистрибуция от тези, които все още са активни.

На основата на Slackware, немската фирма S.u.S.E (съкращение от „Software- und System Entwicklung), основана през 1992 г. като консултантска група по операционната система UNIX, създава дистрибуцията SuSE Linux, първата версия от която излиза през 1994 г. По-късно, SuSE интегрира в себе си дистрибуцията Jurix на Флориан ла Рош (Florian La Roche).

На 16 август 1993 г. Йън Мърдок започва още един проект, Debian, за разработване на дистрибуция на Linux като алтернатива на комерсиалните дистрибуции на Linux. Йън е искал да създаде система, разпространявана абсолютно свободно и открито, според духа на Linux и GNU. По-късно разработването на Debian е било финансирано от проекта GNU – Free Software Foundation, който предоставил финансиране в продължение на една година – от ноември 1994 до ноември 1995 г., което позволява на Йън Мърдок да се посвети изцяло на Debian през това време.

Дистрибуцията Red Hat, включваща в себе си някои аспекти от дистрибуцията Bogus (например пакетният механизъм), е основана през 1993 г. На основата на Red Hat впоследствие възникват редица други дистрибуции, в числото на които има и много комерсиални – Caldera, Mandrake и TurboLinux.

От тогава, броят на Linux дистрибуциите непрекъснато расте, възможно и поради относителната лекота, с която може да бъде създадена една дистрибуция от отделни пакети, доставяни от независими разработчици. Според сайта DistroWatch.com (който води отчет на различните Linux дистрибуции), към 15 януари 2005 г. съществуват 373 дистрибуции на Linux. Поддръжката на някои от тях вече е прекратена, но повече от 300 разработки продължават да „живеят“. Само през 2004 година са се появили повече от 100 нови дистрибуции. И това не е краят, тъй като едва ли не всеки ден продължават да се появяват нови и нови дистрибуции.

Как да се ориентираме сред тези дистрибуции, с какво се различават една от друга, по какви критерии може да ги класифицираме? И как да изберем вариант на система, който ще е най-подходящ за конкретната ситуация?

2. КРИТЕРИИ ЗА КЛАСИФИЦИРАНЕ НА ДИСТРИБУЦИИТЕ

Посочените по-горе числа за броя на дистрибуциите, разбира се, са впечатляващи, но старите потребители на Linux знаят, че ядрото и повечето програми са еднакви при всички дистрибуции, и че техният състав се различава най-вече по номера на версията или компилацията на пакета от конкретният потребител. Освен това, потребителят може да добави към системата си практически всяка необходима му програма, като в краен случай я компилира от изходен код или разработи самостоятелно пакет с нея (при наличие на съответната квалификация, разбира се).

Тъй като броят на дистрибуциите на Linux е много голям, практически да се запознаем с всяка една от тях за да може да направим правилен избор вече не е възможно. Следователно, актуален става проблемът за тяхното класифицирането, както и за избор на съществени характеристики, които да служат за критерии при избор на дистрибуция. На вече споменатия сайт www.distrowatch.com могат да бъдат намерени достатъчно много материали, които дават някакъв, макар и частичен, отговор на поставените въпроси и които са залегнали в основата на тази статия, в която ще бъде направен опит за класифициране на дистрибуциите на Linux по няколко критерия.

    Съществуват много признаци, по които могат да се различават отделните дистрибуции, като някои от тях са следните:
  • предназначение на дистрибуцията към конкретна област на приложение (например за организация на защитна стена, за работа като маршрутизатор, за създаване на особено защитена система или за използване на домашен компютър от обикновен потребител с акцент върху мултимедийните приложения);
  • изисквания към апаратното осигуряване3 (някои дистрибуции са оптимизирани за компютри с процесор Pentium, други могат да се инсталират и на компютри с процесор Intel 80486; например SUSE LiveCD 9.2 не се стартира на компютри, които имат оперативна памет по-малка от 256 MB;
  • използваната графична среда – KDE, GNOME или XFce;
  • наличието на средства за локализация, осигуряващи поддръжката на нужния ви език (например в някои LiveCD дистрибуции не е предвидена поддръжка на български език, така че се налагат допълнителни усилия за кирилизиране на системата);
  • носителят, от който може да се стартира системата – например една или няколко дискети, CD-ROM диск, инсталация върху твърд диск;
  • организацията на процедурата за начално зареждане на системата – BSD или System V;
  • използваната система за управление на пакети – dpkg или apt-get в Debian, rpm във Fedora Core;
  • структурата на директориите на файловата система [виж 5, 6];
  • родословието или историята за възникване на дистрибуцията – новите дистрибуции не се създават в повечето случаи на празно място, а на основата на някоя съществуваща такава);
  • състава на основното програмно осигуряване4, което се инсталира;
  • достъпност до допълнителните пакети с програми;
  • наличие на комерсиални програми, включени в дистрибуцията;
  • процедурата за откриване на различният хадуер;
  • предоставените инструменти за управление на операционната система;
  • и така нататък ...

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

3. НЕСЪЩЕСТВЕНИ КРИТЕРИИ

Някои от изброените критерии може да изключим без някаква особена аргументация – например достъпността до допълнителни пакети е практически еднаква за всички дистрибуции, тъй като всяка програма може да бъде компилирана от изходен код или да бъде създаден пакет със специфичен за дадената дистрибуция формат. По същите причини може да изключим и критерия за наличие в състава на дистрибуцията на комерсиални програми, тъй като няма начин да ви бъде забранено да купите такива програми и да ги включите във вашата система. Средства за локализация се включват вече във всички дистрибуции без изключение, въпреки че не винаги дистрибуцията съдържа необходимите шрифтове. Този критерии става още по-несъществен в светлината на очаквания преход към Unicode5. Нека разгледаме по-подробно още няколко критерия.

Структура на файловата система

Алексей Федорчук в статиите [5, 6] предлага като критерии за класификация на дистрибуциите да се използва структурата на файловата система6. Вероятно тази разлика е била значителна по времето на написването на статията [5]. В последно време набира скорост процесът на разработване на стандарти за Linux. В рамките на организацията Linux Standard Base, поставила си за задача да съгласува взаимодействието между различните дистрибуции и да разработи общи стандарти за едни или други компоненти на системата (а по-точно, даже преди възникването на тази организация), беше разработен стандарт за структурата на файловата система (Filesystem Hierarchy Standard – FHS). Спазването на изискванията на стандарта значително опростява живота на създателите на програмни приложения, тъй като осигурява лесно намиране на нужният на приложението програмен компонент от софтуера (в частност – на библиотеките) в точно определени и известни места. Затова структурата на файловата система придоби приблизително еднакъв вид във всички основни дистрибуции. Например дистрибуцията SuSE някога беше упреквана за непълно съответствие със стандарта FHS, но от версия 9.2 тя напълно отговаря на версия 2.3 на този стандарт. Даже и в случая, когато фактическата структура на файловата система се отличава от стандартната, може да бъде постигнато съответствие с помощта на употребата на символни връзки. Така че открояване на ясно изразени групи дистрибуции на основа на различна структура на файловата система не е възможно да се направи.

Използваната графична среда

Външният вид на екрана на компютъра, върху който са стартирани различни мениджъри на прозорци и графични обвивки може да се различава съществено. Но надали си струва да взимаме използваният мениджър на прозорци или използваната графична среда (KDE vs GNOME) за основа на някаква класификация на дистрибуциите. Най-често дистрибуцията предлага възможност за избор между няколко графични среди7. А освен това, тези среди не са нищо друго освен един пакет от софтуера и потребителят винаги има възможност да изтегли и инсталира този пакет, даже и ако първоначално той не е влизал в избраната дистрибуция.

Родословие

По-голямата част от съвременните дистрибуции водят своето родословно дърво или от Red Hat, или от Debian. Но произходът на дистрибуцията, тоест изясняването от коя по-ранно съществувала дистрибуция тя се е разклонила според мен представлява единствено чисто исторически интерес. Всяка нова дистрибуция с времето се отдалечава от своя родител и може да мигрира към някоя друга дистрибуция или да даде началото на съвсем нов клон в дървото на дистрибуциите. Такива дистрибуции като Mandrake, Conectiva8 или PLD произлизат, както е известно от Red Hat, но в момента представляват напълно самостоятелни разработки. Нещо повече – съществуват вече други дистрибуции, които се явяват производни от вече назованите. Така че макар и произхода да може в някаква степен да характеризира дистрибуциите за опитните потребители, все пак не може да се използва като критерии за класификация. Ако ви интересува кои дистрибуции от кои други са произлезли, то на сайта DistroWatch има страница, на която са показани тези данни9.

Процедура за разпознаване на хардуера

Съдейки по отзивите в различни източници, средствата за определяне на хардуера в компютъра в различните дистрибуции се различават съществено. Широко известно е, че дистрибуцията Knoppix в този аспект се отличава най-добре. Само че, предполагам, това преимущество е временно. По силата на отвореността на всичкият софтуер на GNU/Linux, постиженията и разработките на един разработчик бързо стават достояние на всички и затова идеите на Клаус Кнопер, скоро ще бъдат реализирани и в други дистрибуции. Именно този свободен обмен на идеи позволява бързото развитие въобще на свободният софтуер.

Състав на основният инсталиран софтуер

За да използваме този критерий, първо трябва да уточним какво имаме предвид, когато говорим за „базов софтуер“. Това понятие беше въведено и разгледано в статиите на А. Федорчук [6, 7]. Само че неговата трактовка на този термин има отношение по-скоро към операционната система като такава, а не към конкретна дистрибуция. Когато става дума за дистрибуции, а още повече и за тяхната класификация по този признак, за „базов“ би трябвало да се приеме този набор от програми, който се инсталира от инсталатора независимо от желанието на потребителя, тоест даже и тогава, когато при избора на пакети за инсталиране вие сте махнали отметките от всички пакети. Но доколкото знам, нито една инсталираща програма не спира на това място, когато е инсталиран този „базов“ софтуер. Така че за изясняване на това, доколко се различават състава на „базовия“ софтуер в различните дистрибуции, ще се наложи да се проведе специално изследване. И критерия се получава трудоемък. А освен това, доколкото мога да преценя по резултатите от експериментите по инсталиране на Red Hat Linux 9 Cyrillic Edition в минимална конфигурация (виж [8]), този набор трудно може да бъде наречен минимално необходим за стартирането на компютъра. Така, че за каква „базовост“ става дума тук?

Инструменти за управление на системата

Наборът на програмите, използвани за конфигуриране, настройване и оптимизация на системата във всяка дистрибуция е различен. И мненията за това кои от тях са най-добри за тези цели също се различават много. Едни автори смятат, че освен ръчно редактиране на конфигурационни скриптове никакви други средства не са нужни, други смятат, че за потребителя са необходими конфигуратори, работещи в графичен режим. Поради което наборът от графични инструменти за настройване на системата практически във всяка дистрибуция е различен (особено красивия инструмент YaST странно защо не съм срещал в нито една друга дистрибуция). Нещо повече, доколкото си спомням, даже в последователните версии на Red Hat, този набор силно се променя от версия на версия. Ако съществуваше неголямо количество стандартни инструменти за настройка, от които създателите на дистрибуции можеха да избират най-подходящите според тях, можеше да бъде създаден критерий за класификация по този признак. А тъй като многообразието на тези инструменти е сравнимо с количеството дистрибуции, то разумен критерии за класификация по този признак не може да бъде построен.

Носител, от който се стартира системата

Сред стотиците съществуващи в момента дистрибуции има както такива, които се инсталират на твърдия диск и се стартират от него, така и такива, които не изискват инсталация върху твърд диск10. Като носител може да се използва CD-ROM, USB памет, дискета или няколко дискети, даже и виртуален диск, създаден в оперативната памет на компютъра. Но да класифицираме дистрибуциите по този признак едва ли е целесъобразно. В края на краищата, ние се опитваме да построим класификация за да облекчим избора на дистрибуция за една или друга област на приложение. И не е важно как ще стартираме системата, важно е каква задача ще изпълнява тя. Нали нито една дистрибуция не се създава с цел просто да стартираме системата. Даже дистрибуциите на дискети се създават за стартиране на системата в ролята на маршрутизатор, защитна стена, за използване на компютъра, на който има инсталирана такава операционна система като отдалечен терминал или станция за вход към Internet.

Изисквания към хардуера

Що се отнася до хардуера в компютъра, на който ще бъде използвана системата, то този признак според мен се слива с признака за предназначението на дистрибуцията. Просто сред сферите на приложение на дистрибуцията трябва да се създаде отделна категория – дистрибуция за „слаби“ компютри. В тази категория частично ще попаднат и тези дистрибуции, които се стартират от дискети, ако нямат друго предназначение.

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

4. СРЕДСТВА ЗА УПРАВЛЕНИЕ НА ПАКЕТИТЕ

Както беше казано в посоченото по-горе определение, дистрибуциите се състоят от отделни пакети, всеки от които съдържа някакво приложение, помощна програма или услуга. Отделният пакет може да съдържа например web браузър, библиотека за работа с графични файлове във формат png, набор от шрифтове и така нататък.

    Софтуерът, съдържащ се в пакета, се доставя в една от двете форми:
  • под формата на двоични файлове, предназначени за непосредствено инсталиране във вашата система без да има нужда от каквато и да е допълнителна обработка (например компилация);
  • под формата на изходен текст, които файлове обикновено съдържат текст на някакъв език за програмиране, архивирани във формат tar и опаковани с програмата gzip, а също така и допълнителни файлове, необходими за компилацията на приложението от файловете с изхо­ден код.

Съществуват също така и пакети, които при добро желание могат да бъдат отнесени едновременно и към двата вида. Това са пакетите, които съдържат скриптове и конфигурационни файлове, помощни страници в формат man или info, информация за авторските права или друга документация. От една страна те представляват също „изходен код“, а от друга се инсталират в системата без всякаква допълнителна обработка, също като изпълнимите файлове. Но този тип пакети изпълнява спомагателна роля и за нас не представлява интерес. А количеството и състава на пакетите от първите два типа имат много съществена роля в класификацията на дистрибуциите.

Да си припомним първо, че всичкият софтуер в GNU/Linux е свободен, тоест доставя се заедно с изходният код. И поради това, за всеки бинарен пакет на дисковете на дистрибуцията ще се намери съответният пакет с изходен код. Но обратното твърдение не е вярно, тъй като съществуват дистрибуции, в които броят на двоичните файлове е силно ограничен. Това са така наречените source-based11 дистрибуции, тоест дистрибуции, основани на изходен код. Техните създатели са предположили, че техните потребители ще могат самостоятелно да компилират и инсталират на компютъра всяко необходимо им приложение. Но за да се пусне самият процес на компилиране, трябва операционната система вече да е работоспособна, макар и с някаква минимална конфигурация. Трябва да са били инсталирани програмата за начално зареждане, ядрото, архиваторите tar и gzip (за да може да се разопакова и деархивира пакета с изходният код), компилатор с целият съпътстващ го инструментариум (линкер, асемблер и така нататък), библиотеките на езика C, помощни програми за работа с файлове и текст (find, grep, awk, sed), без които компилирането и инсталирането на програмите е просто невъзможно. Този проблем може да се реши по два начина: или компилацията се извършва на някаква друга система, или необходимият минимум от прекомпилирани пакети се инсталира от дистрибуцията, а останалите пакети се компилират в създадената по този начин среда. Най-яркият пример на реализация на подхода, основан на компилация на цялата система от изходен код е проекта Linux From Scratch, който не е дистрибуция в прекия смисъл на тази дума, а представлява набор от инструкции за създаването на система от набор пакети с изходен код (виж [10]).

Колкото до пакетите с прекомпилиран софтуер, то за тяхното инсталиране както в процеса на инсталация на системата или във вече инсталирана система, се изискват специални средства за управление на пакетите. Работата е в това, че инсталацията софтуер от пакети, обикновено е свързана с разрешаването на така наречените „зависимости“. Например, пакетът, съдържащ компилатора GNU C (gcc) „зависи“ от пакета binutils, който включва в себе си linker12 и транслатор. Ако потребителят се опита да инсталира gcc без предварително да е инсталирал binutils, най-вероятно процеса на инсталиране на gcc ще завърши със съобщение за грешка. Затова в състава на пакета се включва не само двоичния код на изпълнимата програма, но и допълнителна служебна или мета-информация: името на програмата, данни за разработчика, информация за други пакети, които са необходими за правилната работа на дадената програма (най-често това е необходима на даденото приложение библиотека), контролни суми, информация за това как правилно да бъде конфигуриран пакета и как да бъде правилно деинсталиран, ако нуждата от неговото използване изчезне.

Пакетът обикновено представлява един архивиран файл, в който се намират както самата програма, която ще се инсталира, така и необходимата служебна информация (мета-информация). Понякога тази мета-информация се съдържа не в самия пакет, а във външна база от данни. Но за да се възползваме от нея е необходима още една програма, която да инсталира приложението от пакета в система, използвайки при необходимост мета-информацията от пакета. Очевидно е, че тази програма силно ще зависи от това, каква точно мета-информация се съдържа в пакета и как е организирана тя. По този начин се е получило, че създателите на някои дистрибуции са разработили всеки за себе си своя собствена структура на пакетите и свои специализирани средства за управление на тези пакети, които позволяват инсталация на програмата от пакета с помощта на съдържащата се в него мета-информация.

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

    Най-известни системи за управление на пакети са:
  • rpm/yum – мениджърът на пакети на Red Hat. В момента абревиатурата RPM обикновено се разшифрова рекурсивно (RPM – RPM Package Manager), но първоначално тя е означавала пакетен мениджър на Red Hat (RedHat Package Manager), тъй като беше разработена за дистрибуцията Red Hat. В настоящият момент, този пакетен мениджър се използва и в много други дистрибуции.
  • dpkg/APT – е системата за управление на пакетите *.deb в дистрибуцията Debian, която също е портвана и за други дистрибуции. Самите пакети .deb представляват сами по себе си два tar архива, компресирани с помощта на gzip: в единият се намира управляващата информация, а в другия – самите данни. Стандартно средство за управление на тези пакети е конзолната програма dpkg, допълнена от обвивката APT (Advanced Packaging Tool).
  • tgz или tar.gz е стандартен набор от две програми – tar и gzip, понякога допълнен с някои допълнителни управляващи файлове. Използва се в дистрибуцията Slackware и някои други дистрибуции, като не осигурява решаването на зависимости. От source-based дистрибуциите тази система се различава по това, че вътре в tar.gz архивите се намират предварително компилирани програми (а не изходен код на програмите).
  • Системата portage на дистрибуцията Gentoo, представляваща набор от файлове ebuild, съдържащи информация за това как да получим (от всеки достъпен източник – мрежа, локален диск etc), компилираме и инсталираме пакет в системата Gentoo, използва конзолната команда emerge. Обикновено пакета в този случай съдържа изходният код на програмата и приложението се компилира директно по време на инсталацията, за сметка на което се оптимизира за конкретната машина. Макар, че по този начин могат да се инсталират и предварително компилирани програми, този вариант се използва само в изключителни случаи, например при инсталация на много бавни машини.
  • YaST е приложение, разработено от Novell и използвано в дистрибуцията SuSE.

Компилацията на пакети от изходен код също може да се разглежда като един от вариантите на система за управление на пакетите. От изброените по-горе системи, той се различава само по това, че пакетите в source-based дистрибуциите почти не съдържат в себе си предварително компилирани програми (освен тези, които са абсолютно необходими като ядро и компилатор), така че единственият начин за инсталация на нов пакет е неговата непосредствена компилация от изходен код.

Най-разпространено средство за управление на пакети програмно осигуряване остава програмата rpm. Наистина, тя притежава този недостатък, че разрешаването на зависимостите лежи основно върху потребителя13. Програмата само съобщава, че липсва някакъв пакет в системата, а самото намиране и инсталиране остава за потребителя. Затова много основани на rpm дистрибуции използват създадения от Debian инструмент apt, който понякога се появява и под други имена. Дебианският deb и tgz на Slackware (и неговите производни) също са широко разпространени. Освен вече изброените са били изобретени още няколко средства за управление на пакети. Като примери може да използваме slp от дистрибуцията Stampede, който има няколко интересни особености и системата за управление на пакети от дистрибуцията JBLinux.

Таблица 1, която е взаимствана от сайта Distrowatch.com, показва разпространението на различните системи за управление на пакети. Имайте предвид, че за разлика от аналогичната таблица на сайта, аз не съм си поставял за задача да изброя в най-дясната колона на таблицата всички дистрибуции, използващи една или друга система за управление на пакети, а само съм показал само по няколко примера.

Таблица 1.
Система за управление на пакетите Брой дистрибуции, използващи тази система Примерни дистрибуции
DEB 121 Adamantix, Damn Small, Debian, GNUstep, Helix, Knoppix, Kurumin, Linspire, MEPIS, Morphix, Ubuntu, UserLinux, Xandros
RPM 111 Fedora, Hancom, Linare, Linux XP, Lycoris, Magic, Mandrake, Novell, PLD, Red Flag, Red Hat, SOT, SUSE, Trustix, Turbolinux, Voodoo
TGZ (TAR.GZ, TAR.BZ2, TBZ, DPAK, PKG) 38 Arch, Blin, CRUX, Definity, GoboLinux, LiveCD Router, Sentinix, Slackware, SLAX, STUX, Vector
Source-based 10 Core, LFS, Lunar, Sorcerer, Source Mage
APT-RPM 9 ALT, Ark, ASP, CLE, Conectiva, Lorma, PLD, Vine, Yellow Dog
Portage 9 Gentoo, Gentoox, iBox, Jollix, Knopperdisk, Shark, SystemRescue
BOX 1 Pingwinek
CCS 1 Specifix
CGZ 1 MirOS
INSTALL 1 Athene
NBA 1 Nasgaia
OLM 1 Onebase
RUBYX 1 Rubyx
UHU 1 UHU

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

5. СКРИПТОВЕ ЗА НАЧАЛНО ЗАРЕЖДАНЕ14

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

Като начало нека си припомним, че съществуват два различни стила на първоначално зареждане на unix-подобните операционни системи, произхода на които стига до корените на историята на възникване и развитие на UNIX: така нареченият BSD стил (използван също така в такива операционни системи като FreeBSD, NetBSD и OpenBSD) и стилът System V (наричан още стил ATT). Разликата между тях е в организирането и разполагането на началните скриптове, осигуряващи управлението на процеса на първоначално зареждане на системата. В класическите BSD системи, тези файлове се съхраняват в директорията /etc и техните имена започват с представката „rc“. В системите от семейството на System V, тези файлове се намират в директорията /etc/init.d, а връзки към тях са създадени в директориите /etc/rc0.d, /etc/rc1.d и така нататък. Вторият стил на организиране на скриптовете е по-ясен и позволява по-точно да се изпълнява процесът на спиране на системата. Ако искате да научите повече подробности за разликите в двата споменати стила, прочетете глава 2 от книгата [6].

По-голямата част от дистрибуциите на Linux използват стила на System V. Към тях спадат Debian, всички производни на Red Hat, включително Mandrake и руските дистрибуции ASPLinux и ALT Linux. В стил BSD е организирано зареждането на дистрибуцията Slackware и неговите производни. Но и единият и другият стил не се спазват съвсем строго. Например, структурата на директориите, в които се съхраняват инициализиращите скриптове, в основните дистрибуции се различават съществено:

    Листинг 1.
    • Fedora Core (Red Hat):
    • /etc/init.d/ – символна връзка към /etc/rc.d/init.d/
    • /etc/rc.d/ – скриптове rc, rc.sysinit и rc.local
                |
    •           /init.d/ – множество файлове със скриптове
    •           /rc0.d/ – символни връзки @K*.* и @S*.*
    •           /rc1.d/ – символни връзки @K*.* и @S*.*
                      ..........
    •           /rc6.d/ – символни връзки @K*.* и @S*.*
    •           /rcS.d/ – символни връзки @K*.* и @S*.*
    • Knoppix (клон Debian):
    • /etc/init.d/ – скриптове rc, rcS, reboot и множество други
    • /etc/rc0.d/ – символни връзки @K*.* и @S*.*
    •     /rc1.d/ – символни връзки @K*.* и @S*.*
             ..........
    •     /rc6.d/ – символни връзки @K*.* и @S*.*
    •     /rcS.d/ – символни връзки @K*.* и @S*.*
    • Slackware:
    • /etc/rc.d/ – скриптове rc.0, rc.4, rc.6, rc.K, rc.M, rc.S, rc.local, rc.syslog, rc.nfsd, rc.sysvinit, rc.netdevice, rc.keymap и други скриптове, имената на които имат вид rc.*.
    • Gentoo:
    • /etc/init.d/ – скриптове с най-различни имена.
    • SuSE:
    • /etc/rc.d/ – символна връзка към /etc/init.d/
    • /etc/init.d/ – множество файлове с различни имена, в частност boot.*
    •                 /boot.d/ – символни връзки @K*.* и @S*.*
    •                 /rc0.d/ – символни връзки @K*.* и @S*.*
    •                 /rc1.d/ – символни връзки @K*.* и @S*.*
                       ..........
    •                 /rc6.d/ – символни връзки @K*.* и @S*.*
    •                 /rcS.d/ – символни връзки @K*.* и @S*.*

Както виждате, даже и в Red Hat и Debian, които следват стила на System V, структурата на директориите се различава. А SuSE, макар и произлизаща от Slackware, се движи в посоката на стила System V най-малко в организацията на структурата на директориите. А Red Hat са създали скрипт rc.local, приличащ на едноименния такъв във FreeBSD. В процеса на първоначално зареждане този скрипт се изпълнява последен. Вярно е, че в последните версии на Red Hat и Fedora този скрипт е „празен“, тоест практически не се използва. И авторите на книгата [6] не съветват в него да се добавят собствени команди, препоръчвайки по-добре да се използват средствата на System V.

Но структурата на директориите и имената на инициализиращите скриптове може би не са най-важното. Както е известно, в процеса на начално зареждане на операционната система, в началото се зарежда ядро, което стартира процеса init, имащ винаги идентификатор 0. Този процес изпълнява инструкциите, зададени във файла /etc/inittab. В листинг 2 са показани извадки от него от няколко дистрибуции. Показан е не целият текст на файла, а само 4 групи от най-важните редове, определящи процеса на зареждане. Във всички дистрибуции освен посочените инструкции се определят и действията при натискане на клавишната комбинация Ctrl-Alt-Del и се стартират виртуални терминали (само в дистрибуциите Fedora Core и SuSE за тази цел се извиква процеса mingetty, в Gentoo и Slackware – agetty, а в Knoppix -- /bin/bash -login).

Листинг 2.
Fedora Core (Red Hat)
 id:3:initdefault:
 
 
 # System initialization. si::sysinit:/etc/rc.d/rc.sysinit
 
 
 l0:0:wait:/etc/rc.d/rc 0
 
 l1:1:wait:/etc/rc.d/rc 1
 
 l2:2:wait:/etc/rc.d/rc 2
 
 l3:3:wait:/etc/rc.d/rc 3
 
 l4:4:wait:/etc/rc.d/rc 4
 
 l5:5:wait:/etc/rc.d/rc 5
 
 l6:6:wait:/etc/rc.d/rc 6
 
 
 x:5:respawn:/etc/X11/prefdm -nodaemon
 				
Knoppix (Debian)
 id:5:initdefault:
 
 # Boot-time system configuration/initialization script.
 
 si::sysinit:/etc/init.d/rcS
 
 
 # What to do in single-user mode.
 
 ~~:S:respawn:/bin/bash -login >/dev/tty1 2>&1 
 			
Slackware
 id:3:initdefault:
 
 
 # System initialization (runs when system boots).
 
 si:S:sysinit:/etc/rc.d/rc.S
 
 su:1S:wait:/etc/rc.d/rc.K
 
 rc:2345:wait:/etc/rc.d/rc.M
 
 l0:0:wait:/etc/rc.d/rc.0
 
 l6:6:wait:/etc/rc.d/rc.6
 
 
 # Runlevel 4 used to be for an X window only system
 
 x1:4:wait:/etc/rc.d/rc.4
 				
Gentoo
 id:3:initdefault:
 
 # System initialization (runs when system boots). si:S:sysinit:/sbin/rc boot
 
 ~~:S:wait:/sbin/sulogin
 
 l0:0:wait:/sbin/rc shutdown
 
 l1:1:wait:/sbin/rc single
 
 l2:2:wait:/sbin/rc nonetwork
 
 l3:3:wait:/sbin/rc default
 
 l4:4:wait:/sbin/rc default
 
 l5:5:wait:/sbin/rc default
 
 l6:6:wait:/sbin/rc reboot
 
 z6:6:respawn:/sbin/sulogin
 
 
 # Used by /etc/init.d/xdm to control DM startup.
 
 x:a:once:/etc/X11/startDM.sh
 				
SuSE
 # The default runlevel is defined here
 id:5:initdefault:
 
 
 # First script to be executed, if not booting in emergency (-b) mode
 
 si::bootwait:/etc/init.d/boot
 
 
 # /etc/init.d/rc takes care of runlevel handling
 
 l0:0:wait:/etc/init.d/rc 0
 
 1:1:wait:/etc/init.d/rc 1
 
 l2:2:wait:/etc/init.d/rc 2
 
 l3:3:wait:/etc/init.d/rc 3
 
 #l4:4:wait:/etc/init.d/rc 4
 
 l5:5:wait:/etc/init.d/rc 5
 
 l6:6:wait:/etc/init.d/rc 6
 
 
 # what to do in single-user mode
 
 ls:S:wait:/etc/init.d/rc S
 
 ~~:S:respawn:/sbin/sulogin
 				
    Както се вижда, при всички случаи редът на изпълнение на действията е приблизително един и същ:
  • Отначало се задава нивото на изпълнение (runlevel);
  • След това се изпълняват действията по началната инициализация на системата, независещи от зададеното ниво. В различните дистрибуции за тази цел се използват различни скриптове:
    • във Fedora Core – /etc/rc.d/rc.sysinit
    • в Knoppix – /etc/init.d/rcS
    • в Slackware – /etc/rc.d/rc.S (тоест скрипт за преход в Single User Mode)
    • в Gentoo – /sbin/rc boot
    • в SuSe – /etc/init.d/boot
  • След това се изпълнява скрипт за преход на дадено ниво на изпълнение15. При това, ако във Fedora Core и Gentoo за всяко ниво на изпълне­ние има отделен ред, то в Slackware за нивата от 2 до 5 се изпълняват едни и същи действия;
  • И накрая, във всички дистрибуции, освен в SuSE, на отделен ред се извършва стартирането на графичната среда на системата.

При стила на System V се използва един и същ скрипт за преминаване на дадено ниво на изпълнение, а това какво прави този скрипт, се определя от съдържанието на директорията /etc/rc.d/rcN.d. Тази директория съдържа списък на връзки към стартиращи скриптове за тези системни услуги, които трябва да работят на ниво N. Самите скриптове се намират в директорията /etc/init.d или /etc/rc.d/init.d.

За разлика от стила System V, в BSD стила за всяко ниво на зареждане отговаря отделен скрипт. И отначало винаги се извършва преход на ниво S (еднопотребителски режим), а след това вече се преминава към зададеното ниво за ползване. Стилът BSD в най-чист вид (от разгледаните примери) е реализиран в дистрибуцията Slackware.

Тъй като стилът System V е взет за основа при създаването на стандарта LSB (Linux Standart Base), дистрибуциите, използвали преди BSD стил, в последно време започнаха да се грижат за реализиране на съвместимост със стила System V. Slackware осигуриха такава съвместимост от версия 7.0 на дистрибуцията си. Тази съвместимост се постига с използване на скрипта rc.sysinit, който провежда търсене на всички скриптове в стил System V в директорията /etc/rc/d и ги изпълнява, ако нивото на зареждане отговаря на исканото. Това е полезно, ако вие използвате комерсиален софтуер, който се ориентира по стила на System V. В същото време, вие можете да използвате и BSD скриптове.

6. ОБЛАСТ НА ПРИЛОЖЕНИЕ НА ДИСТРИБУЦИЯТА

За насочеността на дадена дистрибуция в определена област на приложение си струва да поговорим. Област на приложение е доста широко понятие. Както вече беше казано по-горе, под този термин попадат и изискванията към хардуера (дистрибуции за 486 процесори, за компютри без оптично устройство и така нататък), както и дистрибуциите, стартирани от нетрадиционни носители (CD-ROM, flash памет, външни или преносими дискове и др. такива). И броя на градациите или групите, отделени по този признак може да бъде много голям. Аз съставих по материали от Internet таблица 2, в която са показани отделни примери за това към какви области на приложение могат да бъдат ориентирани отделните дистрибуции. Трябва да ви предупредя, че голяма част от обясненията са дадени на основата на намерени в паяжината описания и информацията не е проверена лично, за което моля да не бъда съден строго за допуснати грешки.

Таблица 2.
Ориентация Основни представители
Дистрибуции с общо предназначение
  • Fedora Core
    Дистрибуция с общо предназначение, за работни станции, персонални компютри и сървъри. Разработва се от общност от независими разработчици с поддръжката на компанията Red Hat.
  • Debian GNU/Linux
    Дистрибуция, различаваща се с това, че съдържа най-голямата колекция от пакети с програмно осигуряване (над 15000). В нейната разработка участва огромно количество независими разработчици от цял свят. Debian поддържа най-голям брой хардуерни платформи и се гордее с лекотата на обновяване на софтуера. От друга страна се смята, че инсталацията на тази дистрибуция е по-трудна, отколкото на останалите. В дистрибуцията се включва само некомерсиален софтуер.
  • SuSE
    Една от най-популярните в Европа дистрибуции, купена в края на 2003 година от компанията Novell. В нейния състав влиза уникалната програма за конфигуриране YaST, която служи за инсталиране и обновяване на пакети, настройване на мрежата и защитната стена, както и за изпълнение на разнообразни административни задачи.
  • Mandrake
    Една от най-лесните за начално усвояване дистрибуции. Първоначално тя е била само вариант на Red Hat, оптимизиран за процесор Pentium, но с времето се отдалечава от своя предшественик достатъчно много, запазвайки при това пълна съвместимост с Red Hat.
  • Slackware
    Най-старата дистрибуция сред тези, които се поддържат активно. С конзолна система за управление на пакетите. Ориентирана е към области на използване, в които има повишени изисквания към безопасността и стабилността на работа.
  • ALT Linux
    Руска дистрибуция (първоначално – просто русифициран Mandrake), поддържащ собствено хранилище на пакети Sisyphus и използващ системата за управление на пакети APT от Debian.
  • ASP Linux
    Руска дистрибуция, базирана на Red Hat.
  • Gentoo
    Дистрибуция за разработчици и мрежови професионалисти. Целият софтуер се доставя като изходен код. Този уникален подход се използва с две цели: осигурява възможност за работа върху всякаква хардуерна платформа и оптимизира производителността чрез компилация на изходният код непосредствено върху този компютър, на който ще работи системата. Има приложени достатъчно пълни инструкции за инсталация, но е необходимо и извършването на значително количество „ръчна“ работа. Всъщност, Gentoo представлява сам по себе си автоматизиран Linux From Scratch.
  • Linux From Scratch
    Това не е дистрибуция, а документ, описващ как да съберем своя собствена операционна система, основана на ядрото на Linux. Някои потребители избират Linux From Scratch заради гъвкавостта, която той предоставя. Gentoo предоставя същото ниво на гъвкавост, но автоматизира значителна част от работата.
  • Linspire
    Дистрибуцията първоначално се казваше Lindows и беше позиционирана като замяна на Windows върху десктоп машини. Базиран на кода на Xandros и Debian. Допълнителен софтуер може да се инсталира с помощта на apt от Debian, но пълна съвместимост с Debian не се гарантира. В състава на тази дистрибуция е включено и значително количество комерсиален софтуер.
  • PLD Linux Distribution
    Тази дистрибуция е разработена в Полша. Използва rpm пакети и е ориентиран към опитни потребители, макар и да е по-удобна от Slackware и Gentoo.
  • Red Flag Linux
    Дистрибуция, ориентирана към китайския пазар.
  • Sorcerer GNU/Linux
    Дистрибуция, която се компилира от изходен код (source based).
  • Source Mage
    Дистрибуция, базирана на компилация от изходен код (source based), възникнала като клон на проекта Sorcerer GNU'Linux, но издавана под GPL лиценз.
  • Turbolinux
    Популярна в Азия дистрибуция, базирана на Red Hat.
  • Ubuntu
    Дистрибуция, базирана на Debian и спонсорирана от компанията Canonical Ltd.
  • Xandros
    Дистрибуция, предназначена за използване на персонални компютри. Явява се наследник на печално известната дистрибуция Corel Linux. За разлика от много други дистрибуции, Xandros не може да се копира и разпространява свободно, тъй като съдържа комерсиален софтуер. Xandros е базиран на Debian, поради което е съвместим със системата за управление на пакети dkpg от Debian.
Дистрибуции за мейнфрейм машини
Сървърни дистрибуции
  • Red Hat Enterprise Linux
  • SuSE Linux Enetrprise Server
  • ALT Linux Master
    Универсална GNU/Linux дистрибуция, включваща в себе си множество готови за експлоатация програмни решения за сървъри и работни станции.
  • ASP Linux Server
    Дистрибуция, включваща в себе си всички необходими средства за създаване на корпоративни сървъри от различни класове и поддържащ различни сървърни архитектури, включително многопроцесорни системи и системи с големи обеми памет. Централизираната настройка на повечето услуги и програми въществено облекчава тяхната инсталация, използване и администрация.
  • Linux Terminal Server Project
    Проект за създаване на терминални сървъри, позволяващи използването на „слаби“ компютри в качеството на отдалечени терминали.
Сигурни дистрибуции
  • Trustix
    Дистрибуция, осигуряваща повишена сигурност. За разлика от SELinux, който е набор от модификации на ядрото, а не дистрибуция, тя позволява инсталирането на напълно пълноценна система.
  • SELinux
    Подобрена в областта на безопасността версия на ядрото на Linux, създадена от американската Агенция за национална сигурност (National Security Agency - NSA).
  • Tinfoil Hat Linux
    Дистрибуция за хората, които параноично се грижат за своята сигурност.
  • Trinux
    Дистрибуция, снабдена с набор от програмни средства за осигуряване на сигурността на системата и данните;
  • Утес-К
    Защитената интегрирана система за обработка на конфиденциална информация „Утёс-К“ представлява универсална дистрибуция на Linux, съдържаща повече от 2500 програми и подробна документация. Операционната система е сертифицирана от Държавната техническа комисия16 по 5 класа за СВТ защита на конфиденциалната информация, с 4 нива за контрол на липсата на недекларирани възможности – сертификат N685.
Дистрибуции за мултимедия
  • MoviX
    Предназначена е изключително за възпроизвеждане на мултимедийни файлове (гледане на видео и слушане на аудио). Но за сметка на това го прави изключително добре.
  • Agnula
  • Dynebolic
Дистрибуции за маршрутизатори и защитни стени
  • Coyote Linux
    Дистрибуция на Linux на дискета. Позволява свързването на локална мрежа към Internet. Може да бъде използвана и като защитна стена.
  • Linux Router Project
    Проект за създаване на пълноценен Linux маршрутизатор на една дискета.
  • Gibraltar
  • IPCop Firewall
  • Sentry Firewall
  • SmoothWall
  • FreesSCO
Дистрибуции за вградени системи
  • Embedded Debian
  • ELKS Linux
    Embeddable Linux Kernel subset (ELKS).
  • Linux Microcontroller Project
    Проект за създаване на операционна система на основата на Linux за вградени системи.
Дистрибуции за „слаби“ компютри
  • Vector Linux
    Дистрибуция, основана на Slackware. Замислена е като малка и бърза дистрибуция, предназначена както за стари, така и за съвременни модели компютри.
  • Small Kernel Project
    Малък Linux за компютри с архитектура i386, изискващ всичко на всичко 2 mb RAM и 40 mb на твърдия диск.
  • ttylinux
    Стартира се даже върху компютри с i386 архитектура, изисква само 4 mb място на твърдия диск и 6 mb RAM. Основното предназначение на тази дистрибуция е да се обадите17 до Internet доставчика си и да стигнете през него до Internet.
Дистрибуции, стартирани от CD и bootable business card18, т.е. CD с обем не повече от 50 MB.
  • Knoppix
    Дистрибуция, стартираща се от CD-ROM и имаща репутацията, че разпознава прекрасно хардуера на компютър, поради което работи успешно с най-ранообразно „желязо“. Основоположник на голям брой дистрибуции, стартиращи се от CD-ROM.
  • PCLinuxOS
    Лека за използваме дистрибуция, основана на Mandrake 9.2. Впоследствие започва да се развива независимо, ориентирайки се към използване върху desktop машини.
  • FeatherLinux
    Орязана версия на Knoppix, стартираща се от business card CD или USB pendrive19. Изисква 115 mb дисково пространство и включва в себе си цялото програмно осигуряване, необходимо за всекидневна употреба от повечето потребители.
  • Damn Small Linux
    Великолепна дистрибуция с обем 50 МБ.
Дистрибуции за USB
  • Flonix
    Дистрибуция, стартирана от USB flash памет.
  • Flash Puppy
    Много малка, но пълнофункционална дистрибуция, зареждаща се изцяло върху виртуален диск, тоест работеща само в оперативната памет.
  • SPBLinux
    Разработена в Санкт Петербург дистрибуция, стартираща се от USB flash памет и дискета.
Минидистрибуции, стартирани от дискета
  • BasicLinux
    Дистрибуция, събираща се върху две дискети и работеща върху минимални хардуерни конфигурации.теров.
  • muLinux
    Разширяема дистрибуция (Linux на едната дискета, X-windows – на другата), която умее много неща: може да бъде ftp, http, samba, printer, fax, dial-on-demand, dial-in сървър. Има добавки към нея: Perl, TeX, gcc, tcl, emu (DOS и Wine) и други. Удобна инсталация и конфигурация, като е възможно конфигурация през http протокол.
  • Tomsrtbt
    Дистрибуция, събираща се върху няколко дискети и въпеки това включваща в себе си даже графична среда.
  • BrutalWare Linux
    Linux върху три дискети.
  • Linux one disk
    Linux на една дискета. Предназначена е за възстановяване на „паднали“ системи. Една от най-добрите дистрибуции на една дискета.
  • Linux Router на една дискета
    Маршрутизатор и защитна стена за малки мрежи.
  • Linux Svncviewer one floppy
    Linux + VNCviewer на една дискета.
  • LOAF - Linux On A Floppy
    Проект "Linux на една дискета".
  • Monkey - Mini Linux
    Дистрибуция на 5 дискети. Има Х сървър, поддръжка на Ethernet карти и много други неща.
  • Pocket Linux
    Linux на една дискета, SSH + BOOTP + Modem supporting.
Дистрибуции, стартирани под Windows
  • Cooperative Linux
    Дистрибуция, която се стартира под Microsoft Windows, без да използва комерсиален софтуер, предназначен за създаване на виртуални компютри.

Ще отбележа, че на сайта на Linux Weekly News има много по-подробна таблица, класифицираща дистрибуциите по тяхното предназначение [3].

7. ОКОНЧАТЕЛНА ТАБЛИЦА И ЗАКЛЮЧЕНИЕ

    Обобщавайки гореизложеното, може да направим извода, че съществуват три съществени критерия за класифициране на дистрибуциите на Linux:
  • начинът на първоначално зареждане;
  • системата за управление на пакети;
  • предназначението на дистрибуцията.
  • И ако сведем всичко в една обща таблица, ще получим „периодичната система“ на дистрибуциите на Linux, представена в Таблица 3.
Таблица 3.
System V, RPM/YUM System V, DEB System V, APT-RPM System V, TGZ System V, Source System V, Portage System V, Други BSD, RPM/YUM BSD, DEB BSD, APT-RPM BSD, TGZ BSD, Source BSD, Portage BSD, Други
Сървърни RHEL, SuSE
С общо предназначение Fedora, Mandrake Debian ASPLinux, ALT Linux LFS Gentoo Slackware, Arch
Защитени Trustix
За мултимедия
Маршрутизатори
За вградени системи
За „слаби“ машини
Стартирани от нетрадиционни носители (Live CD, USB и т. н.) Knoppix, DamnSmall
Стартирани под Windows

Тази таблица може да бъде допълвана „по вертикала“ чрез добавяне на нови области на приложение на Linux.

За съжаление, аз не съм в състояние да разпределя всички съществуващи към настоящият момент дистрибуции по клетките на таблицата. Поставих само тези дистрибуции, с които съм запознат. Ако вие сте работили с други дистрибуции и можете да ми помогнете в запълването на таблицата, пишете на адрес kos at rus-linux dot net. Аз ще се старая да попълвам тази таблица по хода на пристигащите съобщения.

    БИБЛИОГРАФИЯ:
  1. DistroWatch
  2. Wikipedia
  3. The Linux Weekly News comprehensive list of distributions
  4. Distribution Reviews
  5. А. Федорчук, "Демоны, пингвины и пользователи. Начнем с пингвинов."
  6. А. Федорчук, "О дистрибутивах Linux"20
  7. А. Федорчук, "Кое-что об ОС, Unix'ах, Linux'ах и BSD"
  8. В. Костромин, „Red Hat Linux 9 Cyrillic Edition с точки зрения пользователя“, часть 1. Инсталляция. 1.2. Минимальная конфигурация. Базовый набор.
  9. Э. Немет, Г. Снайдер, С. Сибасс, Т. Хейн, „UNIX: руководство системного администратора“, Киев, БХВ, 1999 г.
  10. Джерард Бикманс, Linux From Scratch, версия 5.0, перевод: Виталий Катраев.
  11. Sean Russell, RPM Hell. A Perfect Example of Good Software Crippled by Bad Design.

В.А.Костромин (kos AT rus-linux.net), "Периодическая таблица дистрибутивов Linux" - 31/01/2005 || Библиотека Линукс Центра


1. От тук нататък в текста под „система“ ще се разбира „операционна система“.

2. Което ядро се нарича Linux, а цялата операционна система – GNU/Linux :)

3. В българският език от дълги години се използва и терминът „хардуер (hardware)“.

4. Също от толкова дълго време се използва и терминът „софтуер (software)“.

5. Който преход на практика към 2012 г. вече е завършен.

6. Става дума за разположението на директориите във файловата система, а не за нейния тип – ext2,3,4, reiserfs, xfs etc.

7. Към настоящият момент това са GNOME, KDE, LXDE, XFCE и още няколко мениджъра на прозорци – fluxbox, openbox, IceWM, Enlightenment и други.

8. От обединяването на Mandrake (създадена през 1998) и Conectiva през 2005 възниква дистрибуцията Mandriva.

9. Освен страницата на DistroWatch препоръчвам и тази на Éric Lévénez, на която има описана освен историята на Unix и тази на Windows, както и на различните компютърни езици. Използвайте версиите за плотер, като увеличите изгледа до 100% за да се появят детайлите по схемите. Или можете да погледнете този клип – Unix History Project на сайта YouTube ;)

10. Така наречените live дистрибуции.

11. Като такива дистрибуции се сещам за Gentoo, ArchLinux и може би Linux From Scratch проекта.

12. На български език, linker се превежда като свързващ редактор, функцията на който е да свърже в една обща програма един или няколко обектни файла.

13. За преодоляване на този недостатък, в Red Hat и неговите деривати се използва програмата yum.

14. Добра отправна точка за задълбочаване на познанията за процеса на начално зареждане на unix-подобни операционни системи е тази страница. След това, при наличието на още желание, може да се продължи с материалите, посочени в секцията External Links :)

15. Така наречените runlevels.

16. Става дума за Държавната техническа комисия на Руската федерация. Ние може само да си мечтаем това някога да се случи у нас.

17. Това за времената, когато достъпът до Internet се осъществяваше по комутируема линия – някъде преди около повече от 15 години. Не съм убеден, че в България е останал доставчик, който да предлага такъв достъп до Internet (бел. на прев.).

18. Business card CD приличат на това. Представляват отрязан от две страни мини CD-ROM диск с цел довеждане на неговите размери до тези на стандартна визитна картичка. Обикновено капацитета на тези дискове се движи между 30 и 100 mb.

19. Това всъщност е добре познатата на всички flash памет.

20. Превод на тази статия може да се намери на сайта „Linux за българи“.



<< Как работи DNS, част 3 - инсталация на DNS cache сървър. | Как работи DNS, част 2 - Топология, Authoritative servers >>