Основи на Linux

Мариян Маринов(HackMan)

Какво е операционна система

Какво е Linux

Какво е GPL

Как е структуриран Linux

Сигурност в Linux - Нива на достъп

Какво е Шел(Shell)

Графична система на Linux

Графични Шелове или интерфеиси(KDE, Gnome, Xfce и fvwm95)

Как Linux работи с фаилови системи

Какво е Операционна система?

Операционна система е софтуер(програма) който взима информацията от входните устройства(клавиятура, мишка) превежда входната информация и я предава за обработка на процесорът на компютъра и възпроизвежда изходният код обратно на потребителя. В светът съществуват много операционни системи: DOS, Windows, OS/2, Mac OS, Linux, Unix и много други.

Какво е Linux?

Linux е високопроизводителна, многозадачна, многопотребителска операционна система, подобна на Unix, която се разпространява под GNU GPL(GNU General Public License). Linux е създадена от Линус Торвалдс през 1991 година когато той е едва на 21 години. Всъщност ако трябва да бъда точен Linux е само ядрото - основната част която движи опрационната система и от което завиис всичко.

Какво е GPL

General Public License е създаден от Ричард Столман в началото на 80-те години. Като този лиценз дава правото на всеки да копира, променя и разпространява софтуерът, независимо дали ще е за комерсиални или некомерсиални цели. Този лиценз задължава единствено притежателят на софтуерът да запази информацията свързана с първоначалният създател на софтуера.

Как е структориран Linux?

Като цяло Linux е разделен на 3 части: Ядро, Модули(още познати като драйвери) и помощен софтуер. В ядрото на Linux се намират основните функции движещи компютърът - описанието на хардуерът който има в компютърът, описанието на всички модули и видовете фаилове които Linux може да изпълнява. При стартирането си, копютърът първо зарежда Boot Loader, който от своя страна стартира оказаното в настройките му ядро. След зареждането на ядрото следва инициализирането на стартовите скриптове на ликнукс и определянето на стартовото ниво.

Linux има няколко стартови нива:

0 - изключване на компютърът

1 - еднопотребителски достъп (ползва се още при проблеми)

2 - не се използва но в повечето дистрибуции е настроено като ниво 3

3 - многопотребителски достъп

4 - графичен многопотребителски достъп

5 - не се използва но в повечето дистрибуции е настроено като ниво 3

6 - рестартиране на компютърът

Взависимост от нуждата Linux се настройва да се стартира сам в нужното ниво. Важно е да се знае, че НЕ ТРЯБВА да си настроивате Linux да се стартира директно в ниво 0 или 6 по обесними причини.

След инициализирането си Linux ви предоставя логин менажер, който служи за оторизация на потребителите. В заисимост от стартовото ниво той може да бъде графичен или конзолен. Ако ползвате конзолен логин менажер след като въведете правилното потребителско име и парола ще бъдете пуснати в така нареченият Шел(обвивка).

Какво по-точно е Шел?

Само по себе си ядрото не прави нищо освен да постави компютърът в готовност да приема данни. Шелът служи като посредник между Ядрото, потребителя и помощните програми. В Linux има много шелове: ash,bash,csh,ksh,rksh,sh,zsh. Най-разпространеният от всички шелове е bash.

Как Linux работи с фаиловите системи?

За разлика от други операционни системи Linux не се обръща към устройствата не по име или номер, а вместо това той използува една централизирана дървовидна структура за да покаже фаиловата система като едно цяло. Linux добавя всяко ново устройство в тази централизирана структура, независимо от вида на фаиловата система, като го слага в дадена директория. Деиствието при което ново устройство се добавя в фаиловата структура на Linux се нарича монтиране(mounting). При монтирането на ново устройство в Linux фаиловете на това устройство препокриват съществуващите фаиловете в директорията в която се монтира устройството и така старото съдържание на директорията е недостъпно докато не се демонтира устройството. Тази директория се нарича директория за монтиране(mount point). След демонтиране фаиловете на директорията са отново достъпни.

При инициализирането на един диск(първоначалното цепене примерно с PartitionMagic или fdisk) той има дялова структура(partition table) която представлява списък на логическите дялове върху физическият твърд диск. Всеки дял може да има собствена фаилова структура, например ext3. Фаиловите системи организират фаиловете на дялът от диска в логическа йерархична структура с директории и тн. като иформацията за тези фаилове и директории се записва на блокове от физическият диск. Устройства които съдържат фаилови системи са наричани още блокови устройства(block devices).

Устройствата при Linux са събрани в виртуална фаилова система в директорията /dev. Блоковите устройства са представени там по следният начин:

fd – флопи дискови устройства

hd – твърди дискове

sd – SCSI/SATA или RAID твърди дискове

md – RAID масиви

CD-ROM устройствата също са представени като твърди дискове(hd). След името на блоковото устройство следва цифра или буква с цифра зависимост от компютъра и типа на устройството. Символите след наименованието на устройството определят за коя точно част от контролера на устройството става на въпрос. Когато говорим за IDE/SCSI контролери буквата след името на устройството уточнява на кой кабел е вързано самото устойство и кое подред е то. Пример:

при IDE контролерите

primari master	– hda

primari slave	– hdb

secondary master	– hdc

secondary slave	– hdd

Когато физическият диск има повече от една логическа част то след името на устойството следва и поредният номер на частта.

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

Фаиловите структури специално ползвани за Linux са: ext2, ext3 и reiserfs, има и други но те не се ползуват толкова често.

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

Сигурността на Linux е разделена на 2 части потребители и групи. Всеки потребител има собствен идентификационен номер (UID) и групов идентификационен номер (GID). Така се определя до кои фаилове има достъп потрбителя. Всеки фаил както казах си има собственик и група, но какво правим ако не сме собственици на фаилът или не сме от групата притежател на фаила. В Linux правата за достъп са разделени на 3. Така съществуват права за достъп за собственикът, за групата собственик и за всички останали.

Когато напишем: ls ( командата за изкарване на листа на директориите в Linux/Unix ОС-и)

излиза следният списък:

drwxr-xr-x	8 hackman root	4096 2004-11-19 00:52 work/

^^^^^^^ - собственик

-rw-------	1 hackman root	218634 2004-11-10 12:36 12624-aranio.tar.gz

^^^^ - група

-rw-r--r--	1 hackman users	5184 2004-07-02 01:02 release.sh

^^^^^^^^ - права за достъп или още познати като привилегии(privilages)

Както казах привилегиите на фаиловете в Linux са разделени на 3 части. Всяка от тези части има по 3 ключа. Ключ за четене – r (read), ключ за запис – w(write) и ключ за изпълнение – x(execute). Когато сложим тези 3 ключа един до друг получаваме – rwx или по друг начин казано правата за достъп до даден фаил за собственикът, групата собственик или всички останали. При разширен лист на фаиловете под Linux изходът от командата започва всеки ред първо с правата за достъп, като това са 7 ключа показващи правата за достъп до този фаил(-rwxrwxrwx). Първият от тези ключове е специален и няма да го обеснявам сега, всеки по-любопитен може да се обърне към man ls. Слвдващите 3 ключа се отнасят до собственика на фалът, след това следват 3-те ключа за групата собственик на фаилът и приключваме с 3-те ключа за всички останали потребители.

-rw-r--r--	1 hackman users	5184 2004-07-02 01:02 release.sh

Нека се обърнем към примерният лист преди малко. Там фаилът release.sh имаше права за достъп: -rw-r--r--

това означава, че собственикът на фаилът има право да го чете и да пише в него, групата обственик на фаила и всички останали имат право само да четът фаилът. Либстващите ключове се заместват с тирета за да покажат че този ключ не е сложен.

За разлика от други операционни системи Linux не се интересува от разширението на фаилът а от първите няколко символа в самият фаил. Тези първи символи определят дали фаилът е стартируем или не.

Какви фаилови системи поддържа Linux?

До момента в Ядрото на Linux е включена поддръжката на над 30 вида фаилови системи.

Колкото и да не му се иска на някой Linux първоначално е изграден за конзола и понякога може и да ви се наложи да ползвате Xterm, Console или друг вид конзола за да видите или оправите нещо. За да ползвате конзола обаче ще трябва да знаете някои основни команди в Linux.

Командите с които ще ви запозная са най-основните от които имате нужда под Linux.

ls	cd	cp	mv	rm	chown	chgrp	chmod

pwd	who	w	less	man	info	-h	--help

mount	umount	locate	which

Директориите от дървото на Linux

/	/bin	/boot	/dev	/etc	/home	/lib

/mnt	/proc	/root	/sbin	/tmp	/usr	/var

Евгения Маринова

2004-11-30T00:48:42