Операционни системи Unix въведение



Дата22.07.2016
Размер279.41 Kb.
#149
Операционни системи Unix – въведение

1. История – Мощна ОС, разработена в края на 60те години. Има силно въздействие върху ОС. Създадена като многопотребителска и многозадчна ОС. Написана от програмисти за програмисти. Основна задача е да се даде възможност на програмисти да въвеждат данни и да виждат резултата веднага. Историята на Unix е пълна с интриги, проблеми; започва през 1964г. с проект по разработка на ОС Multics (фирми като General Electric, AT&T, Масачузецкия технологичен институт). Просъществува до 2000 година. В тази ОС е направен експеримент за реализирането на различни конструкции: 1) Осигурява се времеделение и потребителски достъп; 2) Осигурява се среда за мултипрограмиране и поделяне на памет; 3) Написана на език от високо ниво - PL/1; 4) За пръв път се реализира йерархична фаилова система; 5) Команден интерфейс за потребителя;

Multics е реализирана за двупроцесорна машина на GE 645.

Основни принципи, на които се базира ОС Unix – 1) Състои се от малки програми, всяка от които върши само едно нещо, но го върши много добре; 2) Програмистите комуникират помежду си чрез общ формат на данните; 3) всичко е файлове

Основни приоритети на ОС – преносимост на архитектури; простота; елегантност (ограничено изобилие); съвместимост; уважение към потребителите (дава мощ, но вие трябва да сте достатъчно добри, за да я ползвате); възможност за избор;



Т. Linux – 32-битова ОС, която може да се ползва на всякакви компютърни архитектури. Базирана е на Unix и наследява нейната стабилност, гъвкавост, надеждност. Ползва се на персонални компютри, работни станции, лаптопи, рутери, джобни компютри, има версии за GSM.

Основни предимства: Разпространява се като свободен софтуер. Непрекъснато нараства броя на потребителите на ОС. Ползва се и от големи кооперации, университети, държавни администрации, имат програми за преминаване към Linux.

Създаване: Проф. Баун разработва ОС Minix като алтернатива на Unix. Финландски студент разработва Linux, преписва кода, разпространява се по лиценза GNUGPL, като целта е да се отрази заначението на GNU за разпространението на Linux.

Unix е въедена от Intel, IBM и др., и най-вече от натиска на потребителите. Нараства броя на крайните потребители на Linux.

Фактори, възпрепятстващи развитието й: 1) Повечето приложения са ориентирани към ОС на Microsoft, не са преносими на Linux; 2) Изоставане на Linux по отношение на поддържания хардуер (USB, Bluetooth); 3)Много IT-мениджъри не се доверяват на тази ОС все още;

Основни предимства: Високо бързодействие, надеждност, преносимост, файловата с-ма на Linux е стандартизирана, развитието на Linux се различава от другите ОС, всяка поправка се публикува веднага в Internet, към ядрото може да се добавят нови модули, а стари да се извеждат докато ОС работи, гъвкавост, контрол от страна на потребителите.


ТЕМА 2. Архитектури.

1. Принципи при проектиране на Unix – разработена като интерактивна система за работа на многопотребителски режим.

1)предлага простота,елегантност, съвместимост(принцип на най-малката изненада). Файлът се разглежда като съвкупност от bytes.

2)мощност и гъвкавост;неограничен брой комбинации; всяка програма трябва да прави едно нещо, но да го прави добре.

3)икономичност

2. Интерфейси на Unix. Пирамида трябва да е това отдолу 

ПИ

Интерфейс на | Потребители



Библ.файлове __\/________________________________----------------------------/\-------------

| Стандартни утилити (шел,компилатори) | потребит.

Инт. на _\/______________________________________________ | ревим

сист. извикв.| Стандартни библиотеки (open, close) |

__ \/______________________________________________________--------- \/--/\---------

ОС Unix (управление на процеси, памет, В/И, ФС) | сист.режим

____________________________________________________________________---\/----------

HW (CPU, памет, диск, …)

____________________________________________________________________

Стандртните библиотеки съдържат процедури, написани на Asembler.

POSIX- съвместимост, систематизира библиотечни процедури.

3. Дтруктура на ядрото.

4.4 – BDS


Системни извиквания


Прекъсвания


управление на рерминала

сокети

наименоване на файлове, …

изобразяване на адреси

страничен прекъсвач

образуване


на сигнали

създаване и


унищоване
на процеси

не мога да си разчета



и тук

мрежови протоколи



ФС


ВП


и тук

маршрут


буферен кеш



страничен кеш



планиране на процеси



символни устройства

драйвери на мрежови устройства

драйвери на диск устройства


диспечиране на процеси


hw


Драйвери в Unix – 2 групи: символни и блокови устройства. При блоковите устройства има операция търсене, а при символните няма. Диспечереризацията се реализира при прекъсване, програмата от ниско ниво прекъсва процеса, запомня състоянието му в буфера на процесите на ядрото и се стартира съответния драйвер. Програмата – написана на Asembler. Съдържанието на по-високите слоеве се характеризира от колонката, в която се намира. В ляво долу са символните устройства. Те се използват по 2 начина. При първия – визуален редактор – emacs. Използват се необработени терминали. Другите програми, като shell, са ориентирани линейно. Подобни програми използват обработен код и линии за връзка.

Ядрото е модул. Unix е разработена от самото начало за мрежова операционна система. Съдържа функции по маршрутизирането. Гарантира, че всеки пакет е изпратен на правилното устройство и е използван правилния протокол. В мрежовите програми се използва IP и TCP протоколите и някои други. Над тях се намират сокет интерфейс, който дава възможност за създаване на сокети за отделните протоколи и мрежи. В по-старите Unix – бефернния кеш е фиксирана част. В новите не е така. Над буферния кеш се намират файлови системи – в Unix има няколко файлови системи. Всички файлови системи използват един буферен кеш. Над ФС се намират програмите за наименование на файловете, … Над страничния кеш се намира ВП – виртуалната памет, която отговаря на страниците на паметта (алгоритмите за заместване). Последната колона е свързана с управлението на процесите. Над диспечера на процесите се намира модула на планиране на процесите, определя кой е следващия процес, който трябва да се стартира. Ако има нишки и управлението им е реализирано в ядрото – става в планиране на процеси. Модул за обработка на сигнали, процесите в Unix се управляват чрез сигнали. Тук се намира и кодът на създаване и унищожаване на процеси. В ляво горе – интерфейс за системните извиквания, които се изпращат към по-ниските слоеве за съответния вид. В дясно горе – кодът за прекъсвания, прихващания, изключения и др.

4. Процеси на Unix – същите като в Windows. Всеки процес изпълнява определена програма и има поне една нишка. Процесът има програмен брояч, показващ коя е следващата нишка, която трябва да бъде стартирана. След стартиране на процеса може да се създадат нови нишки. Могат да се използват няколко активни процеса. Броят им може да достигне стотици или хиляди. При отсъствие на потребителя може да се изпълнява програма наречена demon. Стартират се автоматично при стартиране на програмата (croud-процес; d-означава, 4е е такава програма демон), събужда се веднъж на всяка минута и проверява дали има задача, която трябва да се изпълни, ако има я изпълнява, ако не – изчаква до другото събуждане. Други програми демони в Unix управляват е-пощата, опашките за принтера, дали има свободни страници в паметта и др. Процесите в Unix се създават чрез едно системно извикване fork, това извикване се използва за създаване на йерархично. Създават се родители и деца. И родителя, и детето имат свои собствени образи в паметта, имат частни пространства. Ако родителския процес промени част от себе си, то тя е независима за детето. Ако е отворен родителя, корекциите са видими и за детето. Процесите в Unix се разпознават по своя идентификатор pid (като в windows). Oтговорник за определянето на идентификатора е системно извикване fork. Взаимодействието между процесите се реализира чрез обмен на съобщения. Възможно е м/у два процеса да се създаде канал (piples, конвейер), в който единия процес записва поток от bytes, а др. процес обработва и чете. Реализира се синхронизация и комуникация м/у процесите. Пример: sort…|head

Всички данни от sort са входни и начални към head.



Tема 3

Друг вариант за комуникация на процеси е чрез софтуер.Дадения процес може да изпрати сигнал при изпращане/получаване на сигнали са възможни:

-процесът получател игнорира сигнала;

-получателя прихваща сигнала;

-процесът получател позволява на сигнала да го унишожи;

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

За да се поддържат нишките се въвеждат пакети за обработка, но се затруднява преходността.В Posix не е казано дали нишките да се реализират в потребителското или системното адресно пространство.Реализирането в потребителското адресно пространство има недостатък-ако една нишка блокира се блокират и останалите,ядрото приема , че процесът се състои само от една нишка.

Синхронизацията на нишката се организира чрез mutex-и те са като един вид ключалки, охраняващи някаква нишка. Първата нишка използваща буфера го прави чрез mutex и след това освобождава. Не са подходящи за дълговременно използване.Характерни са за това са променливи на състоянието- управление и създадени/унищожавани чрез системни извиквания. В Linux ни6ките са реализирани в ядрото.Управлението се извършва чрез сиситемното използване clone.

1.Диспечеризация в Unix i Linux

Разпределяне на нишките за даден процесор.Разпределение на процесорното време.В Unix се разпределят процеси ,а в Linux нишки за изпълнение на процесор.

Алгоритъм за разпределение на процеси в Unix- състои се от 2 нива. По-ниското ниво отговаря за избор на процес, който да се изпълни. По-високото ниво отговаря за преместване на процесите от основната памет на диска във виртуалната памет и обратно, за да има шанс всеки процес трябва да бъде изпълнен. Алгоритъмът за ниско ниво използва няколко опашки, всяка опашка е свързана с определено ниво на преоритет.Процесите, които се изпълняват в пот5ребителски режим имат положителен приоритет(число), а в системен режим отрицателен приоритет.Отрицателен приоритет=по-висок приоритет.Процесите,които са готови се нареждат в опашка и алгоритъмът търси такава опашка с най-висок приоритет т.е. най-ниско число и избира процес от нея.Всеки процес се изпълнява за определен квант от време или докато изпълнението му бъде блокирано.1 квант=100milisec. Ако не е изтекло времето той се подрежда отново в края на опашката.веднъж на секунда системата из4ислява приоритета.В Linux процесорното време се разпределя м/у нишки или различни алгоритми- диспечеризация на ниво нишка. В Linux нишките са в 3 групи:

1.Нишки в реално време-FIFO алгоритъм: нишките са с най-висок приоритет и тяхното изпълнение не може да бъде прекъснато.

2. Нишки в реално време- алгоритъм циклична опашка.По-нисък приоритет от 1.и може да бъде прекъснато тяхното изпълнение от системния часовник и те отиват в края.

3. Нишки във времеделене- обикновено са от потребителски режим.Всяка нишка има приоритет и квант.Квант- показва колко кванта на часовника може да бъде изпълнявана без да бъде прекъсвана.

2.Управление на паметта в Unix-прост,за лесна преносимост.Всеки процес в Unix има адресно пространство състоящо се от 3 сегмента: текст,данни,стек.























ОС



Процес А Физ.памет Процес Б






BSS

данни

текст









BSS

данни

текст

Два процеса и изобразяването им във Физическата памет.

Текстовия- съдържа машинни инструкции съставящи машинния код на програмата.Създава се в компилатора и Asembler.Може само да се чете, не се променя при изпълнение на програмата(read only).

Данновия- съдържа променливи,низове,масиви и др. данни на програмата.Дели се на 2 части -1 част инициализирани данни; 2 част неинициализирани данни(BSS).Инициализиращата част съдържа променливи и константи на компилатора, на които се задават значения при стратиране на програмата.Компилаторът назначава определено място в адресното пространство на процеса.Инициализираните данни не се различават от текстовия сегмент.Съдържат последователност от битове, зареждащи се в паметта при стартиране на програмата.Неинициализираните данни са въведени с цел да се оптимизира използваната памет.Глобалните програми имат начално значение 0,те са неинициализирани дании.В началото се задава колко трябва да бъдат нулите се поставя дума и на неина база се изгражда BSS.

В текста на програмата-8К инициализиращи данни; 4К-неинициализиращи данни.Генерират се 4К нули.Може да се променя текста и затова е необходимо е да се заделя динамично памет.Затова сегмента се намалява и се увеличава.

- Стековия- започва от върха и нараства към началните адреси.Ако размера нарасне до BSS(долната си граница),размера на стека се намалява с една страница и се извежда на диск.В Unix се създават поделени сегменти.Текстовия може само да се поделя.



Управление на паметта

Управлението на страниците се нарича страничен demon .Този процес периодично проверява дали броя на свободните страници е прекалено малък, ако е така предприема действия за освобождаване на страници.Основната памет се дели на 3 части: PF(page frame),kernel и карта на паметта.










PF 3

PF 2

PF 1 PF 0

Карта на паметта

Kermel

(Ядро)

Първата част за ядрото;Втората част –карта на паметта;третата част е разделяне на странични фреймове.Всеки PF може да съдържа страници и от 3те сегмента,може да е и празен.Картата на паметта съдържа информация за страничните фреймове.За всеки PF се съдържа по един запис с фиксирана дължина.Фреймове с дължина 1К заема 2% от паметта.
Запис в картата на паметта

Индекс към следващ запис

Индекс към предходния запис

# блок на диска

# блок на устройството




Индекс в таблицата на процесите

T / D / S

Измесване в сегмента





Фиксирана

Памет Свободна памет




1.Свободните фреймове са свързани в двусвързан списък.

2.Използват се когато фрейма съдържа информация,показват на кое място на диска да се изведе фрейма при необходимост.

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

Четвъртия запис съдържа файлове,които показват състоянието на фрейма-свободен, в процес на преместване, нулиран.

При стартирането на даден процес може да се получи странично прекъсване т.е. в основната памет няма дадени страници.ОС трябва да освободи фрейм.Извежда фрейма от списъка на свободните фреймове.Ако има свободни фреймове прочита необходимата информация от тях.Ако няма свободни се изчаква докато страничния demon освободи фреймове.Ако техния брой намалее и стане по-малък от значението на определен параметър страничният demon започва да извежда фреймове от свободната памет на диска.При Pentium процесорите размера на страницата е 4К.Извършват се 2 търсения.

Тема 4: Зареждане на Linux

….

….

…..



Linux като 2-ра ОС:

  1. Модифицира се програмата NT Loader

  2. Заменя се програмата за зареждане с програма за зареждане на Linux

  3. Решава се от куде да се зарежда от FDD или CD

В Linux всеки дял се третира като устройство.

Дисковете се обозначават с букви

/dev /hda, /dev/hdb

Дяловетв се номерират с поредно число.

/dec/hda1, /dev/hdb1

Процеса на зареждане на Linux се състои от следните стъпки :

1.) Прогармата за зареждане намира т.нар. изображение на ядрото ( файл съдържащ ядрото) – kernel image

2.) Ядрото инициализира устройставата и дайверите

3.) Ядрото присъединява кореновата файлова система – root file system

4.) Ядрото стартира програма наречена init, която управлява зареждането понататък

5.) Стартира се процес Log in от init

ОС е успешно заредена след първоначално тестване.



Процесът init- системна програма намираща се в /sbin. Основна задача - да стартира и спира други програми в определена последователност.

Във всеки един момент в Linux системата се изпълнява определено базово множество процеси като това състояние на системата се нарича runlevel (0 до 6). Системата не променя нивото, но при спиране на системта процеса init превключва към друго ниво. Различнои ниво на изпълнение има и при singleuser mode ( = safe mode)

В Linux се използват следните нива на изпълнение:

- 0 – за спиране на системата, init превключва на ниво 0;

- 1 – използва се за режим single-user;

- 2 – съответства на многопотребителски режим, но в това ниво не се стартират и изпълняват мрежовите demon-и, не се присъединяват отдалечени файлове;

-3 – пълен потребителски достъп;

-5- пълен многопотребителски достъп + графичен режим;

-6 – презарежадне на ОС;

Управлението на init се извършва от специален конфигурационен файл- inittab -/etc/inittab

Редовете на този файл се състоят от по четири полета, разделени с двуеточие. Имат следното значение :

1-во поле - уникален идентификатор;

2-ро поле –число или числа съотвтстващи на ниавата на изпълнение, за което се отнася дадения ред;

3-то поле – задава действието, което init трябва дас извърши ( default-подразбиращо се ниво 5 );

4-то поле – команда, която трябва да се изпълни, не е задължително да я има;

Пример:


id : 5 : init default

id : 5: wait : /etc/ rc.d/rc 5


Този ред управлява голяма част от конфигурирациите на системата в rc директории и init.d директориите. Този ред показва и, че процеса init е настроен, когато е в ниво на изпълнение 5 да изпълни командата след полседните две точки. Wait показва кога и как да се изпълни , указва да се изпълни командата за превключване на ниво 5 и да се изчака преди да се премине към изпълнение на указаната команда.

..........

,.,

Про задаване на това действие init изпълнява командата, която следва и когато завърши изпълнението се повтаря .



c1 : 3245 : respown : /sbin/mingetty tty1

tty1- първа виртуална конзола (Ctr+Alt+…)

Друго действие е sysinit – задава първото действие, което трябва да се изпълни след стартиране на init.

Стариране на системни услуги преди страриране нан ОС

id : 5: wait : /etc/ rc.d/rc 5

rc = run commands

etc/rc.d/rc * .d * - число съответстващо на нивото

etc/rc.d/rc5.d

etc/rc5.d

rc1.d , rc2.d


Услуги :

s10 sysklogd

s12 kerneld

……

……


rc5 - kоманда изпълнява тези програми с аргумент start

s – съответната прогарма трябва да се изпълни, числото след това определя последователността

s10 sysklogd start

……………………


Обикновено тези програми са script-ове, които се стартират програми намиращи се директория /sbin

Всяка програам може да се стартира и ръчно след стартиране на ОС.

http (web server)

s 99 httpd start – стартиране на улсуга

s 99 htpd stop – спиране на услуга

Някои имат аргумент “к” ( kill ) т.е. спрени



Добавяне, изтриване, премахване на услуги в директория rc.d

ако изпълним в rc.d команда ls

/rwxrwrwx……..s10sysklogd……/init.d/sys/logd

За да не се изпълни дадена улсуга е достатъчно да се премахне символната връзка за нейното стартиране. Ако я изтрием, трудно се възтановява, затова може да се преименува друг script ( пр. Прибавя се долно тире към името). При преминаване на съотвтното ниво на изпълнение и да се прибави нова услуга е необходимо да се напише script и после да се създаде символна връзка в rc.

Най-добре е да се модифицира стар script. Трябва парвилно да се определи мястото на услугата в последователността. Неглавните услуги да се задават с номер над 90.

Debian – update –rc.d

Rtt –chkconfig

Промяна нивото на изпълнение – командa telinit

telinit 3 - отива на ниво 3

telinit 9 – прочита се повторно файла init

telinit 1 – преминаване към режим single-user

Init контролира спирането и презареждането на ОС.

Команда shutdownkоректно спиране на ОС

shutdown –r nrw – спиране на системата

shutdown –h nrw – презареждане на системата

shutdown –r +10 – презареждане селд 10 минути

shutdown –r 05:00 – презареждане в 5 сутринта

shutdown –h +5 & - спиране на ОС след 5 минути

nrw – ( now )- сптане/ презареждане СЕГА

При shutdown init минава към ниво 0 (спиране) или 6 (презареждане)

telinit 0 = shutdown –h

telinit 6 = shutdown –r


При спиране на ОС се извършват следните стъпки :

  • init спира процеси, които може;

  • изпълняват се команди от директорията rc.0 или rc.6 в зависимост дали спира или презарежда ОС;

  • изпълняват се команди от същите директории за всички просъединени файлови системи, освен корена root;

  • извършва се повторно присъединяване на root, но в режим само за четене;

  • данните от буфетите се записват на съотвтните устройства чрез командата sync;

  • казва се на ядрото или да презареди или изключи захранването;

Ако трябва бързо да се спре ОС , трябва да се изпълни опцията –f на shutdown .

Ако е на ниво за изключване преминава направо на последните стъпки.



Тема 5: Версия и дистрибуция на Linux

1.Версия на ядрото – версиите на ядрото определят неговия статус, функционални характеристики и надеждност.Чрез система за номериране на ядрата, всяко едно от тях се идентифизцира с номер. Системата за номериране на ядрата се състои от три елемента:

* главен номер – най-лявото число; определя главните промени в ядрото

* второстепенен номер – средното число; определя стабилността на съответното ядро (четните числа – стабилни, нечетните – нестабилни и недовършени);

* номер на версията – последното число; показва подверсията и съответната версия на ядрото;



2.Дистрибуции на Linux – Набор от софтуерни пакети, помощни програми, компютърни средства, базирани на определена версия на ядрото. Дистрибуциите подпомагат инсталирането и изпълнението на операционната система. Обикновенно се разработват с някаква определена цел, в повечето случаи са с общо предназначение, съдържат множество пакети и помощни програми, като не е задължително да се инсталират всичките. Повечето се разпространяват безплатно, но има и такива, които се плащат. Броя на дистрибуциите надвишава 160 (спрямо 2005 год.).

Най-широко използвана версия е Red Hоt/FEDORAпостижение в нея е пакета RPM.



RPM-пакет – указва добър контрол върху инсталираните пакети. Red Hоt поддържа последната версия на ядрото. Номерацията му се състои от 4 номера, като последния показва промените( към номера на версията накрая се добавя с тире число). IBM и други фирми стоят зад името му и продават комерсиален софтуер. Поддържа разнообразни архитектури и процесори(Motorola). Поддържа се разширена on-line информация. 30% от потребителите на Linux са ориентирани именно към тази дистрибуция.

Втората оп дял дисртибуция е Mаndrake – Усъвършемствана версия на Red Hоt, 20%от потребителите я използват. Развила се е във висока степен. Нейно достижение е DrakX, който осигурява сравнително добра поддръжка на графика. Mondrake CS- съдържа администраторски инструменти за управление на операционната система. Сравнително лесна за инсталация. Недостатък: ориентирана само към архитектури на Intel и някои Laptop архитектури.



Debian – около 20% от потребителите на Linux са ориентирани към нея. Изцяло некомерсиалнен продукт, разработен от доброволци. Има малко софтуер за нея. Лесна за инсталация и конфигуриране. Потребителите й са с по-голям опит, поради ограничена поддръжка и следователно трябва да си решават сами проблемите. Поддържа разнообразни архитектури. Главно се използва от интренет доставчици.ч

Slackware – Разработена през 1993г. Цел максимална близост до ориентираните към UNIX операционни системи. По-сложна в сравнение с останалите. Добро решение за тези, които обичат стандартните операционни системи. 12% от потребителите я използват.

SuSE Linux– много популярна в Европа. Разработена от немски специалисти. Най-бързо печели дял сред потребителите. Има версии на различни езици. Висока популярност в цял свят. Тя е една от най-добрите и пълните Linux дистрибуции. Лесно се внасят новости в нея. Една от първите Linux поддържащи USB. Разнообразни софтуерни пакети записани на голям брой CD-та. Добро решение за сравнително малки компании. Поддържа широк набор от средства типични за сървърите DB2, Lotos, Mailserver и др. Широк списък от поддържани hardware компоненти.

Bluecat, Caldera, Dragon, Bright за други дистрибуции на Linux.

Има много специализирани дистрибуции:



Astro – Предлага добра защита срещу хакери, вируси и работа в компютърна мрежа..

Kyzo – Зарежда се от flashROM и дава надежност на сървърната система.

FlightLinux – Поддръжка на летателни устройства (космически).

3. Инсталация на Linux – Всяка дистрибусия има собствена програма за инсталиране, но има някои общи правила. 2 Етапа:

* Подготовка и планиране



* Физическо инсталиране

През първия етап трябва да се решат следните задачи:



-> Проучване на изискванията на потребителя, определяне на основните цели на Linux-системата;

-> Определяне не типа на инсталацията;

-> Определяне на пакетите, които ще инсталираме;

-> Събиране на информация за хардуера;

-> Планиране на броя и вида на Linux-дяловете;

На база на изискванията на потребителя се определя типа на инсталацията. Възможни са следните вариянти за инсталация:

Workstation – Подходяща в еднопотребителски режим. Не се предоставят услуги и ресурси на външни потребители;

Server – Избираме, когато предоставя услуги и ресурси на всички потребители в системата;

Applience – За специализирано оборудване.Предоставя определни защитни функци, изисква минимална хардуерна инсталация за поддръжка. Подходяща при нужда от специални мрежови услуги;

Thin Server – Поддържат работа на специализирана система (пр. за видеообработка). Предоставят вход и изход за други системи.;

Laptop – Включва поддръжка на устройства, типични за преносимите компютри;

Custom – Дава възможност за най-голям контрол върху инсталирането. Препоръчва се при dualboot и инсталирането на 2 опреационни ситеми( Linux kато втора операционна система);

Трябва да се направи списък на услугите и ресурсите за инсталиране. Да се реши коя дистрибуция. Да се избере алтернативна работна среда Genom, CDE.Избор на webserver.Server за базите данни – SQL , MySQL. Избор на средства за разработка Perl, Piton, C и др. Ако дадена програма е включена в дистрибуцията, то тя ще работи добре. Инсталирането на един пакет понякога изсква инсталирането на други пакети. Малко от дистрибуциите правят проверка за съдъържаните програми в пакета.

Събиренто на информация за hardware-a е необходимо, за да се въведе информация при инталирането за вида и характеристиките на някои устройства. Нужна е и информация за броя, капацитета на HDDs; използван адаптер към всяко устройство ( IDE, SCSI); aдаптер, марка, модел на CD-ROM yстройството; размер на основната памет; марка, модел на видеомонитора ( хоризонтална и вертикална черта на опресняване); тип, модел, брой бутони на мишката; прозводител, чипсет, модел на звуковия адаптер; производител и модел на видеокартата; IP адрес; име на domain и т.н. Тази информация е наи-вече необходима при типа на инсталиране Custom.

Повечето дистрибуции изискват поне два дяла. Първият обикновенно е с име /root, а вторият /swap (поне два пъти по-голям от RAM,поради това, че се изпозва като виртуална памет). Някои дистрибуции изискват и други дялове - /boot, /bin, /dev, /tmp.

Boot дяла съдържа зареждащите файлове на системата.

Bin дяла съдъдржа изпълними файлове.

Boot и root могат да съвпадат и да не е необходимо да се създаването на boot.

При създаавнето иммогат да се използват PartitionMagic , МDisk и др.Иначе средствата включени в дистрибуцията сами разделят и управляват дяловете.

Втори етап: Физическо инсталиране – задачи:


  1. Избор на устройство, което ще реализира инсталирането и устройство, от което ще се зарежда операционната система;

  2. Избор на метод за взаимодействие по време на инсталацията – в тесктов или графичен режим (някой не поддържат графичен режим, но той е за предпочитане);

  3. Потвърждаване и приемане на лиценза GNU GPL;

  4. Избор на език;

  5. Опции за клавиатура и мишка;

  6. Създаване на необходимите Linux-дялове;

  7. Конфигуриране на мрежа;

  8. Задаване на дата и време;

  9. Избор на пакети, включително и на работна среда;

  10. Избор на език за програмиране и т.н.;

  11. Конфигуриране на графична система Х (необходима при инсталиране на тип Workstation, Laptop);

  12. Инсталиране на пакетите( задача на ОС);

  13. Инсталиране на конфигуриране на програмата за зареждане на операционната система (Loaders могат да бъдат LILO, GRUB);

  14. Създаване на дискета за зареждане на операционната система;

  15. Конфигуриране на мрежата;

  16. Съзадаване на акаунти – root е задължителен, плюс поне един потребителски акаунт. Желателно е администраторът да ползва своя акаунт, само когато е необходимо.

Тема 6: Програми за зареждане на ОС

Преди init се използва header. Програмите за зареждане могат да се управляват (стартиране на ОС в определен режим). Програмата за зареждане може да управлява зареждането на ядрото като му предава параметри:

-s – single – user mode

-root = partition – указваме различна коренова директория.

Може да се зададе различно ниво на изпълнение.

Първо трябва да се изведе promot-a.

Най-широко използваните в Linux са LILO (Linux Loader). Тази програма може да бъде инсталирана на дискета или в главния запис за зареждане на диска(master boot loader) или записа на деля, в който е записана/инсталиран Linux. Програмата (promot-a) на LiLo завършва с boot: ако вместо boot излезе LiLo, се натиска shift, ako LiLo извежда различни графики трябва да се следи за съобщение и да се натисне Ctrl+Shift. След извеждане на promot-a на LiLo, може да се натисне Tab и се извежда списък на ОС в РС-то, ако не се направи избор се зарежда тази ОС, която е по подразбиране. За да заредим подразбиращото се ядро, изписваме името му и enter.

single-user: primpt  linux-s

linux root = /dev/hda3-s

Освен Linux LiLo може да се зарежда и друга ОС (работи добре с MS-DOS, MSWin#, всички сиситеми на Unix ). Може да се инсталира тази програма и след инсталиране на ОС.

Програмата LiLo се състои от няколко елемента:

- самата програма за зареждане

- конфигурационен файл за управлението й /etc/lilo.conf

- файла /boot/map съдържа местоположението на ядрото на диска

- /sbin/lilo команда lilo) – loader lilo или 2 аспекта:

- самата програма за зареждане / кода изпълняван при зареждане

- командата, която актуализира, конфигурира системата

Другата основна програма е GRUB (Ground Uified Bootloader) – по-нова и изметсва LiLo.

Може да зарежда ядро намиращо се след 1024 цилиндър на диска. Вече и LiLo (нова версия) може да работи с по-големи ядра. Може да бъде записана на дискета или в записа на дела, в който е инсталирана ОС.

Основни предимства на GRUB:

- менюориентиран интерфейс, т.е. управлява се с менюта;

- при него има възможност за навигация във файловата система преди зареждането на ядрото;

- трябва да се влезе в minishell – промпта се извежда като се натисне „С”

grub>

За да заредим ядрото от Linux с различния от подразбиране коренова система в режим single-user



/boot/vm/inu2 /div/hda3

root(hd0,2)

kernel/boot/vm/inu2 root/div/hda3

Програми за зареждане LOADLIM и SXSLINUX. Повечето работят като LiLo, но без опция Tab.


Режим single-user

Съответства на safe mode. Когато има проблем в ОС, трябва да се опита да се зареди първо в този режим.При зареждане в този режим, се извършва бързо зареждане на Shell с администраторски account, като много от услугите не се зареждат. Sinlge-user съответства на ниво на изпълнение 1. За да се зареди в този режим се изисква парола на администратор. В него се решават следните задачи:

- проверка на факловата система при срив в ОС;

- поправяне на проблеми във важни системни файлове /fstab, passwd, inittab/

- да се възстанови системата от архивно копие;

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


Съвместно използване на Linux и Windows

Подобна система се нарича: Dual-Boot system

Най-важното при конфигурирането на такава система да се нарушат данните, които вече съществу-ват на диска. Препоръчително е архивиране на важните данни преди започването на инсталиране на 2ра ОС. LiLo може да бъде инсталирана и в главния дял и да зарежда и Windows 9#.

Стъпки при инсталиране на dual-boot:

1) инсталира се linux в система, в която е инсталирана Windows

2) LiLo се инсталира в главния дял за зареждане

3) LiLo разпознава дяловете с вече инсталирани ОС и създава елемент за тях в менюто за зареждане

4) Ако Lilo е вече инсталиран в записа за зареждане в linux дяла, то той трябва да се направи активен, за да може да се зарежда.

/etc/4/o.conf { other = /dex/hda1 } win е инсталирана за първи път на дял на „а” устройство

{ label = windows }

Тази команда става и за инсталиране на linux като 2ра система.
Linux в MS WindowsNT

По-сложно е като е NTFS, а не FAT 32, както при Windows 9#. Ако се използва NTloader, не може и двете зареждащи програми да се разположат в главния дял. Ако изберем NTloader може да постъпим по следния начин:

1) инсталираме lilo в записа за зареждане на linux дела на дискета

2) зареждаме linux чрез дискетата, защото NTloader пще не е конфигуриран

3) копираме сектора за зареждане на linux в двуичен вид на празна дискета

Mount –t msdos /dev/fdo/inut/floppy

dd if = /dev/hda5 bs=512 count=1

of = /inut/floppy/linux.bin

4) зареждаме Windows

5) във файла boot.ini добавяме следния ред

C:\linux.bin=”linux”

6) копираме файла linux.bin в кореновата директория на дела, в който е Windows

NTloader ще изведе елемент за избор на linux и от него се предава на loader-a на linux, ако бъде избран linux.

Ако изберем lilo как ще конфигурираме linux и Win NT

1) създаваме елемент или модифицираме файла за зареждане във файла lilo.couf

#cab /etc/lilo.conf – с права на администратор

Boot = /dev/sda

default = RHL |

prompt > общи настройки

timeout = 300 |

image = /boot/vm/linux – 2.4.7-10 |

/abc/=RHL > елементи за инсталиране на диска ОС

root = /dev/sda2 |

read – only |

За linux елементи

image = /boot /dm/ linux -2.4.7-6

label=”RHL-s”

root = /dev/sda2

append=-s

read-only

Елементи за Windows

Other=/dev/sda3

label=Windows2000

table=/dev/sda


Първият ред специализира мястото на главната директория за зареждане на ОС

Default – показва коя ОС да се зареди по подразбиране

Prompt – указва на lilo да даде възможност на потребителя да избере на потребителя предпочитана ОС

Timeout – колко време да се чака преди да се премине към зареждане на подразбиращата ОС

времето се задава като десети от секундата

Специфицира се името на файл, съдържащ ядрото (image) етикета(името), което ОС се извежда в менюто. Реда, започващ с root, указва мястото на дела съдържащ ядрото.

Read-only – зарежда се в режим само за четене

2рата система е за избор за зареждане в single-user

Чрез append се задават параметри на ядрото. В случая е за single-mode (-s)

Елемента за Windows-a се намира в 3тия дял на диска; трябва да се укаже името, което да се зададе за избор в менюто.

Table – показва къде с енамира таблицата за дяловете съдържащи информация за дяловете на Windows.

2) инсталираме или актуализираме lilo в главния запис за зареждане на диска

#/sbin/lilo-t

3) презареждане на ОС извежда се prompt-a на lilo.

LILO boot: ? или tab

извеждат се всички възможности за избор




Тема 7: Управление на устройства и файлови системи

Linux използва устройства да получава и изпраща .....

Ядрото създава т. нар. псевдо устройства, които не съществуват физически. Работата с устройствата е сравнително лесна. Всяко устройство се разглежда като файл и някои стандартни команди за файлове могат да се използват (пр: #cat)

Linux използва същите базисни конструкции като Unix. Съхраняват се в директория /dev (devices)

echo blah blax > /dev/null

Стандартинят изход на echo се насочва към null, а самото устройство решава какво да прави с данните. В случая се игнорират.

cat blab.wav > dev/dsp

Насочва музикален файл към устройство, възпроизвеждащо музика. За да се виждат устройствата, поддържани от системата се използва командата $ls –l от /dev

Опцията –l – извеждане на детайлна информация за всеки файл

Първата група показва права за достъп.

b c p s – първа буква, показваща вида на устройството

b – блокови устройства

c – символно устройство

p – pipe-устройство тръба

s – socket

При блоковите устройства, данните са организирани във фиксирани блокове, общия размер на такива устройства също е фиксиран (пр: дисковите устройства)

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

Пример за устройство тръба е програмата gpm, която дублира събитията от нишката и те могат да се използват от други програми след това.

Сокетите са специализирани входно-изходни файлове, представляващи мрежовия интерфейс.

Командата –dd – извършва конвертиране и кеширане на блокове с фиксиран размер.

dd if = /dev/zero of =new.file bs=1024

count = 1

Копира един 1024 байтов блок от zero (устройство, съдържащо безкрайно множество от 0-ли) във new.file

if – input file ако не се укаже file се приемат

of – output file стандартните вход и изход

bs – block size b- по подразбиране k – kb

bs = 1024  bs = 1k

count - num

може да се създаде различен размер на вход и различен на изход ibs и obs
Имена на устройствата:

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

->ATA (IDE) дискове и дялове:

/ dev/ hd*

пр: / dev/hda1, / dev/hdb

->SCSI дисковете: / dev/ sd*

->Терминали: / dev/ tty*, / dev/ pts/ *, / dev/ tty/

Псевдо терминали: вместо да комуникират с устройство и ядрото, я прехвърлят към софтуерно приложение

tty – терминали, контролиращи текущия процес

Пр: /dev/tty 1, /dev/pts/0

->сериини портове: /dev/tty3*

пр: /dev/tty30 (COM1)

/dev/tty31 (COM2)

->дискетни устройства: /dev/fd* - флопи устройство, с 0 е първото

->паралелни портове: /dev/lp0

/dev/lp1 (LPT1 & LPT2)

->аудио устройства: /dev/dsp

/dev/audio, /dev/snd/*

OSS – open sound system

ALSA -


-> CD_ROM устройства: dev/cdrom, /dev/hdc

->псевдоустройства:

=> /dev/null – приема неограничен обем изходни данни от програмите

=> /dev/zero – неизчерпаем поток от нулеви байтове


За създаване не устройства се използват следните команди:

->mknod


->makedev

->devfs


Създаване на дялове:

-> fdisk - работи само в текстов режим и изисква да се въвеждат еднобуквени команди

-> ?m – след командата заповече информация

d - изтриване на дял

n - създаване на дял

p - извеждане на таблица на дяловете

q - изход без запомняне на промените

t - смяна на типа на диска

w - запомняне на промените и изход

fdisk /dev/hda //за първи дял информация

p

Може да се създадат дялове за различните оперционни системи.


Файлови системи:

Използва се в два смисъла термина файлови системи: 1) Oбозначава организацията на файловете в директории и поддиректории; 2) Отнася се до структури от данни на ниско ниво, използвани за запомняне на файловете на диска или друго устройство.

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

/bin – общи за всички потребители команди ls, sort, datе,chmod,…

/dev – hd*, fdu, cdrom, tty* - файлове на дисковете

/etc – съдържа важни конфигурационни файлове - inittab

/home – лични директории за потребителските акаунти

/mnt – floppy, cdrom( поддиректории на /mnt) - осигурява мястото за присъединяване на устройствата

/root – директория на администратора

/sbin – съдържа команди, които могат да се изпълняват само от администратора

/tmp – временни файлове, създадени от приложенията

/usr – потребителска информация (ако има такава директория)

Втори смисъл: За да се използва дяла трябва да се форматира дяла с определена файлова система, за да се използва. Форматирането на диска на Linux се нарича създаване/поставяне на файлова система. Linux поддържа много голям брой файлови системи ext2, ext3, ext, msdos, vfat, iso9660, reiserfs, hpts, minix….

ext2 – се използва в момента, добри способности за дефрагментиране и за това не се налага дефрагментиране (second extended file system)

ext3 – разширяват се възможностите на ext2, поддържа се дневник в нея (регистрират се събития касаещи файловете) като в NTFS

msdos – съвместими с файловата система FAT, използва се за дискети най-вече

vfat – съвместима е с FAT32, при CD-ROM устройства

reiserfs – съдържа дневник, проектиран е за системи с висока надеждност

hpfs – съвместима е с файловата система на операционната система на OS2 на IBM (OS2) работа с дискети основно

-> форамтиране (поставяне на файлова система) (make file system)

mkfs [-x] [-t fstype] [options]

device


пр: mkfs –t ext2 /dev/hdb2

mkfs –t msdos /dev/fd0

mkdosfs /dev/fd0

mkfs е интерфейс към набор от програми за създаване на файлови системи


-t – след него се указва типа на файловата система, която желаем да поставим

-v – извежда по-подробна информация при форматирането

- [options] – специфични опции

пр: -с – извършва проверка за лоши блокове на диска



- задължително се обозначава и името на дяла, който форматираме

mkfs ext2 /dev/hda1


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница