17129

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

Лекция

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

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

Украинкский

2013-06-29

78 KB

23 чел.

Лекція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.  Особливості системних бібліотек.


 

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

21779. Исследование спектральных характеристик систем с ШИМ c выходом по пстоянному току 548.5 KB
  Задачей работы является приобретение навыков расчета силового фильтра в схеме предложенного преобразователя, анализ спектральных характеристик широтно-импульсной модуляции (ШИМ), а также обработки результатов эксперимента.
21780. Деньги и кредитные отношения, краткий курс лекций 92 KB
  Деньги в функции средства обращения – представлены в качестве средства оплаты товаров и услуг, а также средства погашения различных долговых обязательств.
21781. Методы снижения степени риска 64 KB
  Классификация методов управления рисками 2. Методы уклонения от риска 3. Методы локализации риска 4.
21782. Учет риска при принятии управленческих решений 63 KB
  Это обстоятельство усложняет процесс принятия решений в условиях неопределенности и предопределяет необходимость использования соответствующих методов которые дают возможность по заданным целям и ограничениям получить приемлемые для практики оптимальные или рациональные управленческие решения. На методы принятия решений в условиях риска существенным образом накладывает отпечаток многообразие критериев и показателей посредством которых оценивается уровень риска. В самом общем виде постановка и решение задачи оптимизации решений...
21783. Управление риском в банковской системе 120.5 KB
  Важными составляющими кредитного риска являются отраслевой риск который связан с неопределенностью в отношении перспектив развития отрасли заемщика и риск страныместопребывания заемщика. Последний имеет место при кредитовании иностранных заемщиков и обусловлен действием факторов риска относящихся к стране в которой находится заемщик. Тремя ключевыми для банка рисками относящимися к данной группе являются риск изменения процентных ставок рыночный и валютный риски: риск изменения процентных ставок касается кредитных вложений а также...
21784. Риск-менеджмент в страховании 189.5 KB
  Страхователи имеют право при заключении договоров личного страхования назначать с согласия застрахованного лица граждан или юридических лиц выгодоприобретателей для получения страховых выплат а также заменять их до наступления страхового случая если иное не предусмотрено договором страхования. Страховые платежи определяют на основе страховых тарифов отождествляемых с бруттоставкой которая состоит из двух частей: неттоставки предназначенной для возмещения вероятного ущерба; нагрузки включающей расходы на содержание страховой...
21785. Инвестиционный менеджмент и риск 162.5 KB
  Отсюда с очевидностью вытекает что оценивая риск конкретного актива из инвестиционного портфеля можно действовать двояко: либо рассматривать этот актив изолированно от других активов либо считать его неотъемлемой частью портфеля. Более того актив имеющий высокий уровень риска при рассмотрении его изолированно может оказаться практически безрисковым с позиции портфеля и при определенном сочетании входящих в этот портфель активов. Кроме того увеличение числа включаемых в портфель активов как правило приводит к снижению риска данного...
21786. Управление финансовыми рисками 174.5 KB
  Сущность и классификация финансовых рисков 2. Сущность и классификация финансовых рисков Финансовая деятельность предприятия во всех ее формах сопряжена с многочисленными рисками степень влияния которых на результаты этой деятельности существенно возрастает с переходом к рыночной экономике. Риски сопровождающие эту деятельность выделяются в особую группу финансовых рисков играющих наиболее значимую роль в общем портфеле рисков предприятия. Возрастание степени влияния финансовых рисков на результаты финансовой деятельности предприятия...
21787. Риск как экономическая категория 80 KB
  Понятие риска его основные элементы 2. Причины возникновения риска 3. Общие принципы классификации риска 4. Факторы влияющие на уровень экономического риска 1.