17129

ОС Linux. Архітектура ОС Linux

Лекция

Информатика, кибернетика и программирование

Лекція №5 Тема: ОС Linux. Архітектура ОС Linux. План Архітектура Linux. Модулі ядра. Система файлів і каталоги. Імена файлів і каталогів. Розширення та дерево каталогів. Архітектура Linux В ОС Linux можна виділити три основні частини: ядро яке реа

Украинкский

2013-06-29

78 KB

22 чел.

Лекція5

Тема: ОС Linux. Архітектура  ОС Linux.

План

  1.  Архітектура Linux.
  2.  Модулі ядра.
  3.  Система файлів і каталоги.
  4.  Імена файлів і каталогів.
  5.  Розширення та дерево каталогів.

Архітектура Linux

В ОС Linux можна виділити три основні частини:

  •  ядро, яке реалізує основні функції ОС (керування процесами, пам'яттю, введенням-виведенням тощо);
  •  системні бібліотеки, що визначають стандартний набір функцій для використання у застосуваннях (виконання таких функцій не потребує переходу в привілейований режим);
  •  системні утиліти (прикладні програми, які виконують спеціалізовані задачі). Призначення ядра Linux і його особливості.

Linux реалізує технологію монолітного ядра. Весь код і структури даних ядра перебувають в одному адресному просторі. У ядрі можна виділити кілька функціональних компонентів.

  •  Планувальник процесіввідповідає за реалізацію багатозадачності в системі (обробка переривань, робота з таймером, створення і завершення процесів, перемикання контексту).
  •  Менеджер пам'яті - виділяє окремий адресний простір для кожного процесу і реалізує підтримку віртуальної пам'яті.
  •  Віртуальна файлова система — надає універсальний інтерфейс взаємодії з різними файловими системами та пристроями введення-виведення.
  •  Драйвери пристроїв - забезпечують безпосередню роботу з периферійними пристроями. Доступ до них здійснюється через інтерфейс віртуальної файлової системи.
  •  Мережний інтерфейс - забезпечує доступ до реалізації мережних протоколів і драйверів мережних пристроїв,
  •   Підсистема міжпроцесової взаємодії - пропонує механізми, які дають змогу різним процесам у системі обмінюватися даними між собою.

Деякі із цих підсистем є логічними компонентами системи, вони завантажуються у пам'ять разом із ядром і залишаються там постійно. Компоненти інших підсистем наприклад, драйвери пристроїв) вигідно реалізовувати так, щоб їхній код міг завантажуватися у пам'ять на вимогу. Для розв'язання цього завдання Linux підтримує концепцію модулів ядра.

Модулі ядра

Ядро Linux дає можливість на вимогу завантажувати у пам'ять і вивантажувати з неї окремі секції коду. Такі секції називають модулями ядра (kernel modules)  і виконують у привілейованому режимі.

Модулі ядра надають низку переваг.

  •  Код модулів може завантажуватися в пам'ять у процесі роботи системи, що спрощує налагодження компонентів ядра, насамперед драйверів.
  •  З'являється можливість змінювати набір компонентів ядра під час виконання: ті з них, які в цей момент не використовуються, можна не завантажувати у пам'ять.
  •  Модулі є винятком із правила, за яким код, що розширює функції ядра, відповідно до ліцензії Linux має бути відкритим. Це дає змогу виробникам апаратного забезпечення розробляти драйвери під Linux, навіть якщо не заплановано надавати доступ до їхнього вихідного коду.

Підтримка модулів у Linux складається із трьох компонентів.

  •  Засоби керування модулями дають можливість завантажувати модулі у пам'ять і здійснювати обмін даними між модулями та іншою частиною ядра.
  •  Засоби реєстрації драйверів дозволяють модулям повідомляти іншу частину ядра про те, що новий драйвер став доступним.
  •  Засоби розв'язання конфліктів дають змогу драйверам пристроїв резервувати апаратні ресурси і захищати їх від випадкового використання іншими драйверами.

Один модуль може зареєструвати кілька драйверів, якщо це потрібно (наприклад, для двох різних механізмів доступу до пристрою).

Модулі можуть бути завантажені заздалегідь — під час старту системи (завантажувальні модулі) або у процесі виконання програми, яка викликає їхні функції. Після завантаження код модуля перебуває в тому ж самому адресному просторі, що й інший код ядра. Помилка в модулі є критичною для системи.

Особливості системних бібліотек

Системні бібліотеки Linux є динамічними бібліотеками, котрі завантажуються у пам'ять тільки тоді, коли у них виникає потреба. Вони виконують ряд функцій:

  •  реалізацію пакувальників системних викликів;
  •  розширення функкціональності системних викликів (до таких бібліотек належить бібліотека введення — виведення мови С, яка реалізує на основі системних викликів такі функції, як printf());
  •  реалізацію службових функцій режиму користувача (сортування, функції обробки рядків тощо).

Файл.

Для операційної системи Linux файл - не менш важливе поняття, чим для її користувача: всі дані, що зберігаються на будь-яких носіях, обов'язково перебувають усередині якого-небудь файлу, у противному випадку вони просто недоступні ні для операційної системи, ні для користувачів. Більше того, багато пристроїв, підключені до комп'ютера (починаючи із клавіатури й закінчуючи будь-якими зовнішніми пристроями, наприклад, принтерами й сканерами), Linux представляє як файли (так називані файли-дірки). Звичайно, файл, що містить звичайні дані, сильно відрізняється від файлу, призначеного для звертання до пристрою, тому в Linux визначено кілька різних типів файлів. В основному користувач має справу з файлами трьох типів: звичайними файлами, призначеними для зберігання даних, каталогами й файлами-посиланнями.

Система файлів: каталоги

Файлова система з погляду користувача – це «простір», у якому розміщаються файли. Наявність файлової системи дозволяє визначити не тільки «як називається файл», але й «де він перебуває». Розрізняти файли тільки по імені було б недоцільно: доводилося б пам'ятати, як називається кожен файл і при цьому піклуватися про те, щоб імена ніколи не повторювалися. Більше того, необхідний механізм, що дозволяє працювати із групами тематично зв'язаних між собою файлів (наприклад, компонентів однієї й тієї ж програми або різних глав дисертації). Інакше кажучи, файли потрібно систематизувати.

Файлова система
 Спосіб зберігання й організації доступу до даних на інформаційному носії або його розділі. Класична файлова система має ієрархічну структуру, у якій файл однозначно визначається повним шляхом до нього.

Linux може працювати з різними типами файлових систем, які розрізняються списком підтримуваних можливостей, продуктивністю в різних ситуаціях, надійністю й іншими ознаками. У цій лекції будуть описані можливості файлової системи Ext2/Ext3, на сьогодні de facto стандартної файлової системи для Linux.

Більшість сучасних файлових систем (але не всі!) використають у якості основного організаційного принципу каталоги. Каталог - це список посилань на файли або інші каталоги. Прийнято говорити, що каталог містить файли або інші каталоги, хоча в дійсності він тільки посилається на них, фізичне розміщення даних на диску звичайно ніяк не пов'язане з розміщенням каталогу. Каталог, на який є посилання в даному каталозі, називається підкаталогом або вкладеним каталогом. Каталог у файловій системі найбільше нагадує бібліотечний каталог, що містить посилання на об'єднані по якихось ознаках книги й інші розділи каталогу (файли й підкаталоги). Посилання на той самий файл може втримуватися в декількох каталогах одночасно - це робить доступ до файлу більше зручним. У файловій системі Ext2 кожен каталог - це окремий файл особливого типу (“d”, від англ. «directory»), що відрізняється від звичайного файлу з даними: у ньому можуть утримуватися тільки посилання на інші файли й каталоги.

У файловій системі, організованої за допомогою каталогів, на будь-який файл повинна бути посилання як мінімум з одного каталогу, у противному випадку файл просто не буде доступний усередині цієї файлової системи, інакше кажучи, не буде існувати.

У файловій системі Linux немає папок і документів. Є каталоги й файли, можливості яких куди ширше.

Імена файлів і каталогів

Припустимі імена

Головні відмітні ознаки файлів і каталогів - їхні імена. В Linux імена файлів і каталогів можуть бути довжиною не більше 256 символів, і можуть містити будь-які символи, крім “/”. Причина цього обмеження очевидний: даний символ використається як роздільник імен у складі шляху, тому не повинен зустрічатися в самих іменах. Причому Linux завжди розрізняє прописні й малі літери в іменах файлів і каталогів, тому “methody”, “Methody” й “METHODY” будуть трьома різними іменами.

Є кілька символів, припустимих в іменах файлів і каталогів, які потрібно використати з обережністю. Це так називані спецсимволи “*”, “\”, “&”, “<”, “>”, “;”, “(”, “)”, “|”, а також символи пробілу й табуляції. Справа в тому, що ці символи мають особливе значення для будь-якої командної оболонки, тому потрібно буде спеціально подбати про те, щоб командна оболонка сприймала ці символи як частина імені файлу або каталогу. Символ “-” означає, що наступне слово - ключ, а пробіли й табуляції розділяють параметри в командному рядку.

Розширення

Багатьом користувачам знайоме поняття розширення - частина імені файлу після крапки, що звичайно обмежується декількома символами й утримуються у файлу, що вказує на тип, даних. У файловій системі Linux немає ніяких приписань із приводу розширення: в імені файлу може бути будь-яка кількість крапок (у тому числі ні однієї), а після останньої крапки може стояти будь-яка кількість символів (на відміну від старих файлових систем, організованих за принципом «8+3» (DOS, ISO9660 і т.п.), де в імені файлу припустимо не більше однієї крапки й розширення може бути не длиннее 3-х символів. Це обмеження визначило вид багатьох відомих сьогодні розширень файлів, наприклад, “txt” для текстового файлу). Хоча розширення не обов'язкові й не нав'язують технологією в Linux, вони широко використаються: розширення дозволяє людині або програмі, не відкриваючи файл, тільки по його імені визначити, якого типу дані в ньому втримуються. Однак потрібно враховувати, що розширення - це тільки набір угод про найменування файлів різних типів. Строго говорячи, дані у файлі можуть не відповідати заявленому розширенню по тій або іншій причині, тому цілком покладатися на розширення не можна.

Визначити тип умісту файлу можна й на підставі самих даних. Багато форматів передбачають вказівку на початку файлу, як варто інтерпретувати подальшу інформацію: як програму, вихідні дані для текстового редактора, сторінку HTML, звуковий файл, зображення або щось інше. У розпорядженні користувача Linux завжди є утиліта file, що призначена саме для визначення типу даних, що втримуються у файлі:


Приклад 1. Визначення типу даних у файлі

Ця утиліта ніколи не довіряє розширенню файлу (якщо воно присутнє) і аналізує самі дані. file розрізняє не тільки різні дані, але й різні типи файлів, зокрема, повідомить, якщо досліджуваний файл є не звичайним файлом, а, наприклад, каталогом.

Дерево каталогів

Поняття каталогу дозволяє систематизувати всі об'єкти, розміщені на носії даних (наприклад, на диску). У більшості сучасних файлових систем використається ієрархічна модель організації даних: існує один каталог, що поєднує всі дані у файловій системі - це «корінь» всієї файлової системи, кореневий каталог. Корнєвій каталог може містити будь-які об'єкти файлової системи, і зокрема, підкаталоги (каталоги першого рівня вкладеності). Ті, у свою чергу, також можуть містити будь-які об'єкти файлової системи й підкаталоги (другого рівня вкладеності) і т.д. Таким чином, усе, що записано на диску - файли, каталоги й спеціальні файли - обов'язково «належить» кореневому каталогу: або безпосередньо (утримується в ньому), або на деякому рівні вкладеності.

Ієрархію вкладених друг у друга каталогів можна співвіднести з ієрархією даних у системі: об'єднати тематично зв'язані файли в каталог, тематично зв'язані каталоги - в один загальний каталог і т.д. Якщо строго додержуватися ієрархічного принципу, те чим глибше буде рівень вкладеності каталогу, тим більше приватною ознакою повинні бути об'єднані дані, що втримуються в ньому. Структуру файлової системи можна представити наочно у вигляді дерева, «коренем» якого є кореневий каталог, а у вершинах розташовані всі інші каталоги. На мал. 1 зображене дерево каталогів, курсивом позначені імена файлів, прямим накресленням - імена каталогів.

Рис.1. Дерево каталогів в Linux

У будь-якій файловій системі Linux завжди є тільки один кореневий каталог, що називається “/”. Користувач Linux завжди працює з єдиним деревом каталогів, навіть якщо різні дані розташовані на різних носіях: декількох твердих або мережних дисках, знімних дисках, CD-ROM і т.п.( Це відрізняється від технології, застосовуваної в Windows , де для кожного пристрою, на якому є файлова система, використається свій кореневий каталог, позначений літерою, наприклад “a”, “c”, “d” і т. д) Для того щоб відключати й підключати файлові системи на різних пристроях до складу одного загального дерева, використаються процедури монтування й размонтирования. Після того, як файлові системи на різних носіях підключені до загального дерева, що втримуються на них дані доступні так, ніби всі вони становили єдину файлову систему: користувач може навіть не знати, на якому пристрої які файли зберігаються.

Положення будь-якого каталогу в дереві каталогів точно й однозначно описується за допомогою повного шляху. Повний шлях завжди починається від кореневого каталогу й складається з перерахування всіх вершин, що зустрілися при русі по ребрах дерева до шуканого каталогу включно. Назви сусідніх вершин розділяються символом “/” («слэш»). В Linux повний шлях, наприклад, до каталогу “methody” у файловій системі, наведеної на мал. 1, записується в такий спосіб: спочатку символ “/”, що позначає кореневий каталог, потім до нього додається “home”, потім роздільник “/”, за яким треба назва шуканого каталогу “methody”, у результаті виходить повний шлях “/home/methody”.

Організація каталогів файлової системи у вигляді дерева не допускає появи циклів: тобто каталог не може містити в собі каталог, у якому втримується сам. Завдяки цьому обмеженню повний шлях до будь-якого каталогу або файлу у файловій системі завжди буде кінцевим.

Література:

Гордеев А.В. Операционные системы: Учебник для вузов. - 2-е изд. – СПб.: Питер, 2004. – 416 с  [2], 312-339

Контрольні запитання:

  1.  Особливості архітектури ОС Linux?
  2.  Особливості системних бібліотек.


 

А также другие работы, которые могут Вас заинтересовать

23827. Програмування повторень 62 KB
  Виконання завдань: Створив додаток який обчислює середнє значення ВВП країни за nроків.Caption a = 0 b = 0 For n = 1 To n a = InputBox Введіть розмір ВВП b = b a Next Label2.Caption = Strb n 1 End Sub Створив додаток який визначає кількість країн ВВП яких перевершує заданий рівень. Назви країн та ВВП вводяться в діалоговому вікні.
23828. Алгоритми, алгоритмізація 90 KB
  Виконання роботи Словесні форми алгоритмів Щоб розв’язати квадратне рівняння потрібно: отримати коефіцієнти аbс; якщо а=0 b=0 і с=0 то розв’язок може набути будьяких значень; якщо а=0 b=0 і с не дорівнює нулю тоді розв’язків немає; якщо а=0 а коефіцієнти b та с не дорівнюють нулю тоді розв’язок єдиний і дорівнює х= с b. Якщо коефіцієнт а не дорівнює 0 тоді слід обчислити дискримінант D=b24ac якщо отриманий результат менший нуля то рівняння матиме комплексні корені якщо більше нуля то знаходимо корені рівняння за формулою: ...
23829. Дані та змінні 367.5 KB
  Спроектував додаток Обмін значеннями таким чином щоб після запуску програми на виконання поля на зазначеній формі розміщуються відповідно до своїх написів. Програмний код: Зовнішній вигляд програми до і після завершення виконання : 2. Спроектував додаток який реалізує: зміну положення командної кнопки на екранній формі після активізації командної кнопки; зміну кольору командної кнопки на екранній формі після активізації командної кнопки; зміну розміру командної кнопки на екранній формі після активізації...
23830. Форматування абзаців тексту 974 KB
  Атрибут ALIGN також можна використати з багатьма іншими дескрипторами HTML для вирівнювання зображень вмісту таблиць і інших елементів сторінки. Щоб полегшити їм перегляд можна розбити документ на логічні розділи кожний з яких буде присвячений одній темі. Найкраще використати заголовки вважаючи їх елементами структури документа У заголовках можна використати атрибут ALIGN як і в дескрипторі P .
23831. Форматування за допомогою таблиць 37 KB
  Вихідний код сторінки: html head title Країни Індокитаю title head body p align= center ; font size= 6 Країни Індокитаю font p div align= center table border= 1 width= 459 height= 216 tr td height= 40 width= 97 rowspan= 2 h3 align= center Країна h3 td td height= 24 width= 347 colspan= 2 h4 Характеристика країни h4 td tr tr td height= 24 width= 169 h5 align= center Населення h5 td td height= 24 width= 172 h5 align= center Площа h5 td tr tr td height= 36 width= 97 align= left valign= top font...
23832. Використання фреймів 34.5 KB
  Вихідний код сторінки: HTML HEAD TITLE FRAMES TITLE HEAD FRAMESET COLS=2575 FRAMESET ROWS=3070 FRAME SRC= zmist.html FRAME SRC= cast.html FRAMESET FRAMESET ROWS=5050 FRAME SRC= inflist.html FRAME SRC= empty.
23833. Використання каскадних листів стилів 29.5 KB
  Виконання завдань: Створити три гіпертекстових сторінки з наступними характеристиками: Для першої сторінки: визначити стиль для документу – фон блакитний; визначити стиль для заголовку шрифт Arial колір червоний вирівнювання за центром сторінки; визначити стиль для абзацу шрифт Sans Serif курсив. Для другої сторінки: визначити стиль для заголовку шрифт Times New Roman розмір 14 пунктів колір зелений; визначити стиль для абзацу шрифт Courier напівжирний. Для третьої сторінки розбитої на два розділи: застосувати стиль 1ої...
23834. Створення та налагодження форм 34.5 KB
  html fieldset style= padding: 2 legend Характеристики legend p Назва країни: span lang= uk nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; span input type= text name= T1 size= 20 p p span lang= uk Місце розташування: span span lang= uk nbsp;nbsp;nbsp; span input type= text name= T1 size= 20 p p span lang= uk Столиця span : span lang= uk nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; span nbsp; input...
23835. Форматування символів 38 KB
  Вихідний код сторінки: html head title Країни АСЕАН title head body BGCOLOR=Black TEXT=White BASEFONT SIZE=3 H1 ALIGN=CENTER FONT COLOR= RED Малайзія FONT H1 H3 ALIGN=LEFT FONT FACE= Comic Sans MS COLOR = YELLOW Столиця FONT H3 P SAMP U Столиця КуалаЛумпур. U SAMP P H3 ALIGN=LEFT FONT FACE= Comic Sans MS COLOR = YELLOW Географічне розташування FONT H3 P EM Малайзія розташована в екваторіальному поясі. EM P H3 ALIGN=LEFT FONT FACE= Comic Sans MS COLOR = YELLOW Державний устрій FONT H3 P B Малайзія це федерація яка складається з 13 штатів...