LINUX-BG Адрес : http://www.linux-bg.org |
Периодична таблица на дистрибуциите на Linux ... |
От: Nick Angelow Публикувана на: 23-10-2012 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=450330953 |
Тъй като в последно време във форума на „Linux за българи“ зачестиха прекалено много въпросите от рода на „Коя дистрибуция на Linux да избера?“, респективно „Коя е най-добрата дистрибуция на Linux“ и понеже по силата на случайността, която е основна ръководна сила в живота, попаднах на една статия, чийто превод по някаква причина бях зарязал за повече от една-две години и в която се прави опит за класификация на дистрибуциите на Linux по няколко съществени признака. Мисля, че тази статия би била полезна на новобранците в използването на Linux и ще им помогне поне малко да се ориентират в това какво представляват дистрибуциите му, поради което този превод беше довършен и публикуван. Оригиналът на статията е публикуван през януари 2005 година, поради което много от споменатите в нея дистрибуции вече не се поддържат, но основните съображения и аргументи, приведени от автора продължават да са валидни и до сега (imho). Но все пак имайте предвид този факт, когато решите да публикувате коментар за евентуално остаряла информация в тази статия :) Всички бележки под линия и повечето от хипервръзките в статията са направени от мен – реших, че това е единственият сравнително разумен начин да допълня тук-там изложението на автора, за което съм готов да чуя и различни от моето мнения ;) В един момент ще кача на някое удобно място за сваляне и вариант на статията в .pdf формат, тъй като нещо на linux-bg не всичко изглежда така, както съм го направил. Възможна е и при поискване да бъде осъществена и доставка по пощата.
И накрая – не стреляйте по преводача, той толкова си може :D
Бел. ред.: Когато четете тази прекрасна статия, не забравяйте, че тя е писана и преведена през вече далечната 2005 година. Тук е публикувана в оригиналния си вид, така че наистина има неща, които днес са малко по-различни. Доста от тях вече са описани в коментарите - не ги пропускайте и ги допълвайте с каквото се сетите. ПЕРИОДИЧНА ТАБЛИЦА НА ДИСТРИБУЦИИТЕ НА LINUX
© В. А. Костромин, януари 2005 г.
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. НЕСЪЩЕСТВЕНИ КРИТЕРИИНякои от изброените критерии може да изключим без някаква особена аргументация – например достъпността до допълнителни пакети е практически еднаква за всички дистрибуции, тъй като всяка програма може да бъде компилирана от изходен код или да бъде създаден пакет със специфичен за дадената дистрибуция формат. По същите причини може да изключим и критерия за наличие в състава на дистрибуцията на комерсиални програми, тъй като няма начин да ви бъде забранено да купите такива програми и да ги включите във вашата система. Средства за локализация се включват вече във всички дистрибуции без изключение, въпреки че не винаги дистрибуцията съдържа необходимите шрифтове. Този критерии става още по-несъществен в светлината на очаквания преход към 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, набор от шрифтове и така нататък.
Съществуват също така и пакети, които при добро желание могат да бъдат отнесени едновременно и към двата вида. Това са пакетите, които съдържат скриптове и конфигурационни файлове, помощни страници в формат 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 ще завърши със съобщение за грешка. Затова в състава на пакета се включва не само двоичния код на изпълнимата програма, но и допълнителна служебна или мета-информация: името на програмата, данни за разработчика, информация за други пакети, които са необходими за правилната работа на дадената програма (най-често това е необходима на даденото приложение библиотека), контролни суми, информация за това как правилно да бъде конфигуриран пакета и как да бъде правилно деинсталиран, ако нуждата от неговото използване изчезне. Пакетът обикновено представлява един архивиран файл, в който се намират както самата програма, която ще се инсталира, така и необходимата служебна информация (мета-информация). Понякога тази мета-информация се съдържа не в самия пакет, а във външна база от данни. Но за да се възползваме от нея е необходима още една програма, която да инсталира приложението от пакета в система, използвайки при необходимост мета-информацията от пакета. Очевидно е, че тази програма силно ще зависи от това, каква точно мета-информация се съдържа в пакета и как е организирана тя. По този начин се е получило, че създателите на някои дистрибуции са разработили всеки за себе си своя собствена структура на пакетите и свои специализирани средства за управление на тези пакети, които позволяват инсталация на програмата от пакета с помощта на съдържащата се в него мета-информация. Системата за управление на пакети е набор от инструменти, предназначени за автоматизация на процесите на инсталиране, обновяване, конфигуриране и отстраняване на пакети на програмно осигуряване от определен формат.
Компилацията на пакети от изходен код също може да се разглежда като един от вариантите на система за управление на пакетите. От изброените по-горе системи, той се различава само по това, че пакетите в source-based дистрибуциите почти не съдържат в себе си предварително компилирани програми (освен тези, които са абсолютно необходими като ядро и компилатор), така че единственият начин за инсталация на нов пакет е неговата непосредствена компилация от изходен код. Най-разпространено средство за управление на пакети програмно осигуряване остава програмата rpm. Наистина, тя притежава този недостатък, че разрешаването на зависимостите лежи основно върху потребителя13. Програмата само съобщава, че липсва някакъв пакет в системата, а самото намиране и инсталиране остава за потребителя. Затова много основани на rpm дистрибуции използват създадения от Debian инструмент apt, който понякога се появява и под други имена. Дебианският deb и tgz на Slackware (и неговите производни) също са широко разпространени. Освен вече изброените са били изобретени още няколко средства за управление на пакети. Като примери може да използваме slp от дистрибуцията Stampede, който има няколко интересни особености и системата за управление на пакети от дистрибуцията JBLinux. Таблица 1, която е взаимствана от сайта Distrowatch.com, показва разпространението на различните системи за управление на пакети. Имайте предвид, че за разлика от аналогичната таблица на сайта, аз не съм си поставял за задача да изброя в най-дясната колона на таблицата всички дистрибуции, използващи една или друга система за управление на пакети, а само съм показал само по няколко примера.
Трябва да се каже, че понякога е много трудно да се прокара ясна граница между различните системи за управление на пакетите. Освен това, съществува и програмата 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 и неговите производни. Но и единият и другият стил не се спазват съвсем строго. Например, структурата на директориите, в които се съхраняват инициализиращите скриптове, в основните дистрибуции се различават съществено:
Както виждате, даже и в 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).
При стила на 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, в която са показани отделни примери за това към какви области на приложение могат да бъдат ориентирани отделните дистрибуции. Трябва да ви предупредя, че голяма част от обясненията са дадени на основата на намерени в паяжината описания и информацията не е проверена лично, за което моля да не бъда съден строго за допуснати грешки.
Ще отбележа, че на сайта на Linux Weekly News има много по-подробна таблица, класифицираща дистрибуциите по тяхното предназначение [3]. 7. ОКОНЧАТЕЛНА ТАБЛИЦА И ЗАКЛЮЧЕНИЕ
Тази таблица може да бъде допълвана „по вертикала“ чрез добавяне на нови области на приложение на Linux. За съжаление, аз не съм в състояние да разпределя всички съществуващи към настоящият момент дистрибуции по клетките на таблицата. Поставих само тези дистрибуции, с които съм запознат. Ако вие сте работили с други дистрибуции и можете да ми помогнете в запълването на таблицата, пишете на адрес kos at rus-linux dot net. Аз ще се старая да попълвам тази таблица по хода на пристигащите съобщения.
В.А.Костромин (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 >> |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|