Реферат: Однойменна операційна система, що увібрала в себе останні досягнення в області вирішення проблем багатозадачності, керування файлами І взаємодією з користувачем
ВСТУП
У 1968 році консорціум дослідників, які представляли фірми General Electric, AT&T Bell Laboratories і Масачусетський технологічний інститут, завершив роботу над науково-дослідним проектом MULTICS (MUL-Tiplexed Information Computing System), результатом якого стала однойменна операційна система, що увібрала в себе останні досягнення в області вирішення проблем багатозадачності, керування файлами і взаємодією з користувачем. У 1969 році Кен Томпсон, Деніс Рітчі й інші дослідники з AT&T Bell Laboratories розробили операційну систему UNIX, у якій використовувалися багато результатів проекту MULTICS. Вони пристосували цю систему, призначену для роботи на міні-ЕОМ, до потреб дослідників. Із самого початку UNIX стала зручною для всіх і ефективною багатокористувацькою і багатозадачною операційною системою.
Популярність UNIX у Bell Laboratories росла, і в 1973 році Деніс Рітчі і Кен Томпсон переписали код системи мовою програмування С. Деніс Рітчі, колега Томпсона по Bell Labs, створив цю мову з метою забезпечення гнучкості при розробці програм. Однією з переваг мови С є те, що вона дозволяє звертатися безпосередньо до апаратних засобів комп'ютера за рахунок використання узагальненого набору команд. До цього тексти програм для операційної системи потрібно було спеціально переписувати апаратно-залежною мовою асемблера для кожного типу комп'ютера. Мова С дозволила Рітчі і Томпсону написати всього одну версію операційної системи UNIX, яку потім можна було транслювати компіляторами С на різних машинах. Операційна система UNIX стала мобільною, тобто здатною працювати на машинах різних типів практично без перепрограмування.
Поступово UNIX виросла з персонального витвору кількох людей у стандартний програмний продукт, розповсюджуваний багатьма фірмами, включаючи Novell і IBM. Спочатку цю ОС вважали дослідницьким продуктом, тому перші версії UNIX поширювалися безкоштовно по факультетах обчислювальної техніки багатьох відомих університетів. У 1970 році Bell Labs почала випускати офіційні версії UNIX і продавати ліцензії на неї різним користувачам. Одним з таких користувачів був факультет обчислювальної техніки Каліфорнійського університету в Берклі. Його фахівці ввели в систему багато нових особливостей, що згодом стали стандартними. Дослідницька група по обчислювальним системам (Computer Systems Research Group, CSRG), що була організована в Каліфорнійському університеті у Берклі, придбала ліцензію на вихідний код системи у компанії AT&T. Версії, що випускаються цією групою, скорочено називають BSD (Berkeley Software Distribution). Їх випуск почався в 1977 р. з версії 1BSD для машини PDP-11.
Поступово стали з'являтися й інші незалежно розроблювальні версії UNIX. У 1980 році фірма Microsoft випустила версію UNIX для ПК, що одержала назву Xenix. Компанія AT&T розробила декілька дослідницьких версій UNIX, а в 1983 році випустила першу комерційну версію, System 3. За нею була System V, яка стала дуже серйозно підтримуваним програмним продуктом.
Паралельно з цими подіями випускалися версії BSD. Наприкінці 70-х років BSD UNIX стала основою дослідницького проекту, виконуваного в Агентстві перспективних досліджень і розробок (DARPA) міністерства оборони США. У результаті в 1983 році Каліфорнійський університет випустив потужну версію UNIX під назвою BSD 4.2. Вона містила в собі досить досконалу систему керування файлами і мережеві засоби, засновані на використанні протоколів TCP/IP. Версія BSD 4.2 широко поширилася і була обрана багатьма фірмами-виробниками, зокрема Sun Microsystems.
Розвиток досліджень в Берклі досяг кульмінації у 1993 р. коли вийшла версія 4.4 BSD. Для комерційних користувачів ліцензії AT&T на вихідні тексти завжди коштували дорого. Для університетів вони спочатку були дешевими або взагалі безкоштовними, та з часом в зв’язку завоюванням системою UNIX комерційного визнання ціна швидко зросла. Нарешті, спеціалісти Берклі вирішили прибрати код AT&T із BSD. Робота була довгою і тяжкою. Перед самим її завершенням університет був позбавлений фінансування в галузі дослідження операційних систем і Дослідницьку групу з обчислювальних систем реформували. Перед розформуванням група випустила фінальну версію системи без кода AT&T під назвою 4.4BSD-Lite. Більшість сучасних версій BSD UNIX, включаючи BSD/OS, Free BSD, NetBSD, OpenBSD беруть свій початок саме з цієї версії.
Хоча системи BSD та System V лежать в основі більшості інших версій UNIX, самі вони ніколи не мали комерційного впливу. Зазвичай поставники обирали одну з таких систем в якості базового варіанту, на основі якого розробляли власну ОС. Іноді на світ з’являлися гібриди, що об’єднували в собі риси обох базових систем. Не дивно, що з часом версії UNIX почали достатньо суттєво відрізнятися одна від одної.
Поширення різних версій UNIX привело до необхідності вироблення стандарту на цю ОС. У розроблювачів цих програм не було іншого способу довідатися про те, у яких версіях будуть працювати програми, призначені для використання в середовищі UNIX. У середині 80-х років з'явилися два конкуруючих стандарти: один був створений на основі версії AT&T, а другий - на основі версії BSD.
Компанія AT&T згодом передала роботи по UNIX новій організації, UNIX System Laboratories, що зосередила свої зусилля на розробці стандартної системи, що поєднує основні версії UNIX. У 1991 році UNIX System Laboratories розробила System V версії 4, у якій були реалізовані практично всі можливості варіантів System V версії 3, BSD версії 4.3, SunOS і Xenix. У відповідь на появу System V версії 4 кілька компаній, зокрема IBM і Hewlett-Packard, створили Фонд відкритого програмного забезпечення (Open Software Foundation, OSF), метою якого стала розробка власної стандартної версії UNIX. У результаті з'явилися два конкуруючих комерційних стандартних варіанти UNIX - версія OSF і System V версії 4. У 1993 році компанія AT&T продала свою частку прав на UNIX фірмі Novell, і якийсь час UNIX Systems Laboratories належала Novell. За цей час фірма випустила власні версії UNIX на базі System V версії 4, що одержали загальну назву UNIXWare. Система UNIXWare призначена для взаємодії із системою NetWare розробки Novell. В даний час UNIX System Laboratories належить фірмі Santa Cruz Operation. ОС Solaris ознаменувала собою орієнтацію фірми Sun на System V версії 4. Два конкуруючих графічних користувальницьких інтерфейси для UNIX - Motif і Open Look, були об'єднані в новому стандарті робочого столу - Common Desktop Environment (CDE).
Протягом майже усього свого розвитку UNIX залишалася операційною системою, що була вимогливою стосовно апаратних засобів і для ефективної роботи якої необхідно було мати робочу станцію чи міні-ЕОМ. Деякі версії UNIX були розраховані в основному на робочі станції. Систему SunOS розробили для робочих станцій Sun, а систему AIX - для робочих станцій IBM. В міру нарощування потужності персональних комп'ютерів стали з'являтися повідомлення про розробку версій UNIX для ПК. Зокрема, Xenix і System V/386 є такими комерційними версіями UNIX для IBM-сумісних ПК. AUX - версія UNIX, що працює на ПК Macintosh. To, що UNIX встановлюється на комп'ютерах практично всіх типів (робочих станціях, міні-ЕОМ і навіть супер-ЕОМ ), - зайве свідчення властивої їй мобільності, що і забезпечило можливість створення ефективної версії UNIX для персональних комп'ютерів.
Справжнім потрясінням для всього світу UNIX була поява ядра Linux, яке на сьогодні вбудоване в багатьох UNIX-системах. Система Linux призначена спеціально для персональних комп'ютерів з елементною базою Intel. Її розробка починалася з проекту Лінуса Торвальдса, студента факультету обчислювальної техніки Хельсинкського університету. У той час студенти користалися операційною системою Minix, що демонструвала різні можливості UNIX. Ця програма, яку розробив професор Ендрю Танебаум, широко поширилася по мережі Internet серед студентів усього світу. Лінус вирішив створити на основі Minix ефективну версію UNIX, призначену для персонального комп'ютера. Він розробив таку операційну систему, назвав її Linux і в 1991 році випустив версію 0.11. Linux широко поширилася по Internet і в наступні роки піддалася доробкам з боку інших програмістів, що ввели в неї можливості й особливості, властивим стандартним системам UNIX. У Linux, зокрема, минулому перенесені практично всі основні програми-менеджери вікон. У цієї ОС використовуються всі утиліти Internet, включаючи засоби підтримки протоколу FTP, Web-броузери і програми керування віддаленими з'єднаннями по протоколу ррр. Є і повний набір засобів розробки програм, у тому числі компілятори і відладчики C++. Незважаючи на такі широкі можливості, операційна система Linux залишається невеликою, стабільною і швидкодіючою. У мінімальній конфігурації вона може ефективно працювати навіть при наявності оперативної пам'яті обсягом лише 4 Мбайт.
Незважаючи на те що Linux розвивається у вільному і відкритому середовищі Internet, вона відповідає офіційним стандартам UNIX. Унаслідок поширення в минулі десятиліття різних версій UNIX Інститут інженерів по електротехніці і радіоелектроніці (IEEE) розробив незалежний стандарт UNIX для Американського національного інституту стандартів (ANSI). Цей новий стандарт UNIX називається Portable Operating System Interface for Computer Environments (POSIX, інтерфейс переносимих операційних систем для обчислювальних середовищ), він визначає порядок роботи системи, подібної UNIX, і описує деякі особливості її роботи, наприклад системні виклики й інтерфейси. POSIX - це універсальний стандарт, якому повинні відповідати усі версії ОС UNIX. Більшість найбільш популярних версій UNIX вже сумісні з ним. Linux із самого початку розроблялася відповідно до норм POSIX. На систему Linux поширюється також стандарт FSSTND (FileSystem STaNDard), що визначає місцезнаходження файлів і каталогів у файловій системі Linux.
В наслідок різноплановості розвитку UNIX-систем виникає необхідність чіткого розуміння – яка саме операційна система потрібна для виконання поставлених задач. Це розуміння повинно грунтуватися на чіткому уявленні про можливості кожної системи. В сучасних умовах можна розглядати декілька основних гілок розвитку UNIX. А саме :
Solaris – операційна система кампанії Sun Microsystems, що відноситься до сімейства System V
HP-UX – кампанії Hewlett-Packard – є гібридом між System V та Berkeley UNIX, але з своїми “особливостями”
Linux – сама по собі має велику кількість гілок розвитку, які в більшості випадків не сумісні програмно
Free BSD – версія, що основана на 4.4BSD-Lite
Але не дивлячись на різноманітність підходів всі ці системи належать до UNIX і відповідно мають спільні риси. Саме тому ми можемо розглядати питання адміністрування цих систем, як адміністрування UNIX взагалі. При цьому необхідно враховувати специфіку кожної системи і спільні риси притаманні всім системам UNIX. В даній роботі в якості прикладів по адмініструванню ми будемо використовувати операційну систему Free BSD, так як вона орієнтована на платформу Intel x86 і на відміну від Linux є стандартизованою ОС і не має різноманітних гілок розвитку.
Адміністрування ОС UNIX.
Адміністрування будь-якої комп’ютерної системи передбачає виконання певного набору функцій. При цьому слід розуміти, що функції адміністрування виконує системний адміністратор і слід розрізняти функції системного адміністратора і функції адміністрування операційної системи. Деякі функції системного адміністратора не належать до адміністрування ОС. Давайте визначимось.
Основні завдання системного адміністратора:
Додавання та видалення користувачів
Підключення та видалення апаратних засобів
Резервне копіювання
Інсталяція нових програм, видалення непотрібних та оновлення версій
Моніторинг системи
Пошук несправностей
Ведення локальної документації
Стеження за безпекою системи
Надання допомоги користувачам
Дві задачі в цьому переліку не належать до адміністрування операційної системи – ведення локальної документації та надання допомоги користувачам.
Об’єктами адміністрування ОС слід вважати наступні елементи:
Файлова система
Привілеї та групи
Керування процесами
Підключення нових користувачів
Резервне копіювання
Робота в мережах
Аналіз продуктивності системи
Стратегія та політика адміністрування
Таким чином саме ці елементи ми будемо розглядати, як об’єкти адміністрування. Практичні приклади розглядатимемо на прикладі ОС Free BSD.
1. Файлова система
Будь-яку файлову систему можна роозглядати як систему, що складається з чотирьох основних компонентів:
простір імен – методи іменування об’єктів та організація їх у вигляді ієрархій
АРІ – набір системних викликів, призначених для переміщення між вузлами системи та керування ними
модель безпеки – система захисту, приховування та спільного використання об’єктів
реалізація – програмний код, що зв’язує логічні моделі з дисковою підсистемою
Сучасні файлові системи UNIX визначають абстрактний інтерфейс рівня ядра, що дозволяє працювати з різноманітними апаратними інтерфейсами. Деякі частини фалового дерева обробляються традиційною файловою підсистемою, інші керуються окремими драйверами ядра.
Нажаль архітектурні межі визначені нечітко і має місце багато “особливих” випадків. Наприклад, файли пристроїв дозволяють програмам взаємодіяти з драйверами ядра. Вони не є файлами даних, але обробляються базовими засобами файлової системи, а їх характеристики записуються на диск. Іншим ускладнюючим фактором є те, що сучасні версії UNIX підтримують декілька типів файлових систем.
Файлова система UNIX ніколи не була добре організована. Оскільки не існує єдиної системи призначення імен, одночасно використовується багато різних, не узгоджених між собою правил іменування файлів. У багатьох випадках файли групуються за ознакою виконуваних функцій, незалежно від того, як часто вони змінюються. Це ускладнює модифікацію операційної системи. При цьому можна розглядати стандартну структуру файлової системи, що застосовується в різних UNIX-системах. Ця структура містить найбільш важливі каталоги і показана на рисунку 1.
Рисунок 1. Стандартні каталоги UNIX.
Призначення цих каталогів вказане у таблиці 1.
Таблиця 1. Стандартні каталогі та їх вміст
Шляхове ім’я
Вміст каталогу
/
Каталог root (кореневий каталог)
/bin
Команди, необхідні для забезпечення мінімального рівня функціонування системи
/dev
Файли пристроїв: терміналів, дисків, модемів і т.і.
/etc
Важливі файли запуску та конфігурації
/lib
Бібліотеки компілятора мови С
/tmp
Тимчасові файли, що видаляються в процесі перезавантаження
/sys
Робоча область для побудови ядра, файли конфігурації
/proc
Образи всіх працюючих процесів
/stand
Автономні утиліти, програми форматування дисків і т.і.
/usr/bin
Виконувані файли
/usr/games
Іграшки та розважальні програми
/usr/include
Файли заголовків С-програм
/usr/5bin
Команди, що забезпечують сумісність з ядром System V в BSD-системах
/usr/sbin
Служебні системні програми
/usr/lib
Допоміжні файли для стандартних UNIX-програм
/usr/man
Сторінки електронної довідки
/usr/share
Елементи, загальні для різних систем
/var/adm
Облікові файли, журнали використання ресурсів
/var/log
Різноманітні системні журнальні файли
/var/spool
Буферні каталоги для принтерів, електронної пошти і т.і.
/var/tmp
^ Каталог для тимчасового зберігання файлів
/usr/ucb
Утиліти і програми BSD
/usr/local
Локальне програмне забезпечення
/usr/local/adm
Локальні облікові файли та файли реєстрації
/usr/local/bin
Локальні виконувані файли
/usr/local/etc
Локальні системні файли та файли конфігурації
/usr/local/lib
Локальні допоміжні файли
/usr/local/sbin
Локальні службові системні команди
/usr/local/src
Вихідні тексти для програм каталогів /usr/local/*
/kernel
Файли необхідні для завантаження ядра
Для того щоб зрозуміти функціонування файлової системи UNIX необхідно знати сутність поняття “тип файла”, що використовується у UNIX системах. В більшості цих систем підтримується сім типів файлів:
звичайні файли
каталоги
файли байт-орієнтованих (символьних) пристроїв
файли блок-орієнтованих (блочних) пристроїв
сокети
іменовані канали (FIFO)
символьні посилання
В деяких системах не реалізовано підтримку таких типів файлів, як сокети або іменовані канали, а іноді не розділяють файли байт- та блок-орієнтованих пристроїв, поєднуючи їх в один тип файлів пристроїв.
^ Звичайні файли - це проста послідовність байтів. В UNIX не накладається обмежень на їх структуру. Текстові документи, виконувані програми, бібліотеки функцій та багато іншого – все це зберігається в звичайних файлах. До них можливий, як послідовний так і прямий доступ.
Каталоги – містять іменовані посилання на інші файли. Каталог створюється командою mkdir і видаляється (якщо пустий) командою rmdir.
Каталоги в яких є файли можуть видалятися командою rm –r.
Файли пристроїв – дозволяють UNIX-програмам взаємодіяти з апаратними засобами та периферійними пристроями системи. Драйвери пристроїв створюють стандартний комунікаційний інтерфейс, який для користувача виглядає як звичайний файл. Слід відрізняти файли пристроїв від драйверів пристроїв. Файли являють собою шлюзи через які драйверу передаються запити. Файли байт-орієнтованих пристроїв дозволяють зв’язаним з ними драйверам виконувати власну буферизацію введення-виведення. Файли блок-орієнтованих пристроїв обробляються драйверами, що виконують введення-виведення великими порціями (блоками) і завдання буферизації покладають на ядро.
Сокети – дозволяють виконувати інкапсуляцію між процесами, дозволяючи їм взаємодіяти, не підпадаючи під вплив іншиїх процесів. В UNIX підтримується декілька видів сокетів, використання яких в більшості випадків передбачає наявність мережі. Сокети локальні для конкретного комп’ютера. Звернення до них відбувається через файлову систему, а не через мережевий порт.
Іменовані канали – подібно сокетам, іменовані канали забезпечують взаємодію двох процесів, що виконуються на одній машині.
^ Символічні посилання – забезпечують можливість замість шляхового імені файла вказувати псевдонім.
Операційна система Free BSD зберігаючи загальну концепцію UNIX має деякі відмінності від стандартної структури розглянутої вище. Але це ніяк не впливає на методи адміністрування. Отже розглянемо наступні дії з файловою системою Free BSD:
моніторинг використання файлової системи
монтування та демонтування файлових систем
перевірка та відновлення файлових систем
^ 1.1 Моніторинг використання файлової системи
Одна з концепцій UNIX-подібних файлових систем, незнайома користувачам Windows, полягає в ідеї “точок монтування” (mount point). У Windows кожному диску системи призначено им’я у вигляді літери (наприклад С: ), і кожен диск має незалежну файлову систему. В UNIX існує тільки одна загальносистемна структура каталогів, і всі диски монтуються як різноманітні точки в ній. Перевагою такої структури є легкість додавання дискового простору: достатньо підмонтувати новий диск або розділ до певної точки ієрархії. Недоліком є те, що в такій файловій системі складніше перемістити весь вміст одного диска на інший.
Команда df (disk free – вільний простір) – найпростіший спосіб отримання інформації про використання дискового простору. Ознайомлення з виведенням команди df є частиною щоденної перевірки стану системи.
Виведення команди df виглядає наступним чином:
Filesystem
1k-blocks
Used
Avail
Capaciti
Mounted on
/dev/ad0s1a
49583
28427
17190
62%
/
/dev/ad0s1f
4254901
1959405
1955104
50%
/usr
/dev/ad0s1e
19815
12058
6172
66%
/var
procfs
4
4
0
100%
/proc
Слід роз’яснити, що осначають ці написи. Спочатку слід вказати, що назви дисків у Free BSD мають таке написання: ad0, ad1, ad2, ad3 – що відповіає жорстким дискам підключеним відповідно до порядку HDD0, HDD1, HDD2, HDD3. Розділи називають слайсами (slice) – вони позначаються відповідно літерою s, а розділи Free BSD позначаються літерами відповідно за призначенням розділу:
а – кореневий розділ ( / )
b – розділ підкачки (swap)
c – звертається до всього диска в небезпечному режимі
d, e, f, g, h – для загального використання (розміщення каталогів)
Таким чином напис ad0s1a – означає диск HDD0 (primary master), перший слайс і розміщений в ньому кореневий каталог.
Відповідно ad0s1f – для розміщення каталога /usr , ad0s1e – розміщений каталог /var.
Команда du (disk usage – використання диска) – рекурсивно виводить розмір всіх каталогів, що знаходяться в поточному каталозі, або в каталозі вказаному в якості параметра. Параметр –d , що супроводжується числом задає глибину рекурсії. Наприклад:
# du –d 1 /home/
22572
/home/
9
/home/vova
31
/home/filip
1520
/home/alice
66211
/home/pasha
^ 1.2 Монтування та демонтування файлових систем
Це питання наочно демонструє багатогранність UNIX-систем. Припустимо, що система заповнила один диск ( /dev/ad0 ) і адміністратор додає другий диск, як primary slave (HDD1). Система визначає його як /dev/ad1 . після розбиття диска на розділи і вказування мітки з’явиться одна або декілька файлових систем, які можна додати в будь-яку точку структури каталогів системи. Іншими словами всі каталоги системи можуть за бажанням адміністратора отримати певну, визначену адміністратором додаткову ємність. При цьому структура всієї системи залишиться незмінною.
Команда mount – призначена для монтування нової файлової системи.
Перед тим як монтувати файлову систему необхідно створити точку монтування. Наприклад ми маємо бажання розширити каталог /usr/home в якому знаходяться локальні каталоги користувачів.
Для створення точки монтування створюємо каталог /home командою mkdir /home. Тепер ми можемо монтувати розділ (розділ повинен бути створений до монтування).
Якщо монтується розділ ad1s1g – то команда виглядає так:
# mount /dev/ad1s1g /home
Якщо команда виконується без помилок, то новою файловою системою можна користуватися одразу після монтування. Перевірити це можна за допомогою команди df
Filesystem
1k-blocks
Used
Avail
Capaciti
Mounted on
/dev/ad0s1a
49583
28427
17190
62%
/
/dev/ad1s1g
39245453
3362491
32119340
12%
/home
/dev/ad0s1f
4254901
892410
3140012
22%
/usr
/dev/ad0s1e
19815
12058
6172
66%
/var
procfs
4
4
0
100%
/proc
Команда umount – призначена для демонтування файлової системи.
Якщо необхідно демонтувати файлову систему /home , яку ми перед цим монтували - цю дію можна виконати такою командою:
# umount /home
Такий самий результат можна отримати ввівши команду:
# umount /dev/ad1s1g
^ А команда
# umount -a
демонтує всі файлові системи крім кореневої.
Єдине обмеження, яке існує для виконання цієї команди – недозволяється знаходитись всередині файлової системи, яка демонтується. Для користувачів Windows це означає, що не можна видаляти папку всередині якої ви знаходитесь.
Операційні системи UNIX підтримують не тільки власні файлові системи, а й файлові системи інших ОС. Наприклад по замовчанню ОС Free BSD підтримує файлові системи вказані у таблиці 2.
^ Таблиця 2. Файлові системи, що підтримуються стандартним ядром
Файлова система
Назва
FFS
Швидка файлова система
MFS
Файлова система в пам’яті
NFS
Мережева файлова система
MSDOSFS
Файлова система MS-DOS
CD9660
Файлова система ISO-9660 (CD-ROM)
PROCFS
Файлова система процесів
Крім того є можливість включити в ядро системи підтримку інших фалових систем, наприклад NTFS (використовується у Windows) та Ext2FS (Linux).
Таким чином ОС Free BSD може працювати практично в усіма найбільш поширеними файловими системами, чого не можна стверджувати про ОС Windows, в якій не передбачено роботи з іншими, відмінними від базових файловими системами. Windows просто не бачить диски з іншими файловими системами.
Приклади монтування файлових систем у Free BSD:
# mount_msdos /dev/ad1s1 /mnt - монтування диска Windows98
( система MS-DOS)
# mount_ext2fa /dev/ad1s1 /mnt – монтування розділу Linux
# mount_cd9660 /dev/acd0c /cdrom – монтування CD-ROM
# mount /dev/fd0 /floppy – монтування флопі диска
# mount_msdos /dev/fd0 floppy – флопі з системою DOS
^ 1.3 Перевірка та відновлення файлових систем
Файлова система UNIX напрочуд надійна і виконує значну роботу, долаючи будь-які збої та відмови апаратних засобів. Але існує ряд причин, що викликають пошкодження файлів та порушення їх цілісності. В таких випадках стане у пригоді спеціальна програма, що входить до складу практично всіх UNIX-систем - fsck (File System Consistency checK).
Ця програма схожа на Microsoft ScanDisk. Її основне завдання полягає в перевірці файлових систем та їх придатності до монтування. Такий режим має назву preen (чищення) і задається опцією –p. Крім того цей режим випавляє всі неузгодженості у файлових системах, що не відмічені як clean (чистий) коректним методом зупинки системи, тобто виправляє помилки, що виникають при некоректному виключенні системи.
Утиліта fsck виконується при кожному завантаженні системи, але її можна запустити з командного рядка для будь-якої змонтованої файлової системи. Для його необхідно перейти до однокористувацького режиму. Після запуску утиліти для одного чи декількох пристроїв командою :
fsck -p /dev/ad1s1g необхідно вийти з однокористувацького режиму командою exit і повернутися до звичайного стану системи.
^ 2. Привілеї та групи.
Модель користувачів та прав доступу в більшості систем UNIX має один рівень. Існує тільки два типи користувачів: звичайний та суперкористувач, або root. Права доступу звичайних користувачів так чи інакше обмежують їх дії в системі. Користувач root – єдиний, хто звільнений від будь-яких обмежень. Інші моделі прав доступу, наприклад у Windows включають у себе більш складні моделі, що дозволяють забезпечити певні функції системи, такі як аутентифікація та процеси системного рівня. Слід відмітити, що система з складною системою прав доступу є менш захищеною, оскільки містить більше елементів, що піддіються збоям. В той же час прості моделі вимагають від адміністратора більшої вишуканості в роботі по налаштуванню прав доступу.
Кожний користувач у Free BSD має обмежені права доступу і постійне місце для роботи в системі – початковий каталог (home directory). Підвищити свій статус до рівня root дає можливість команда su. Вона запитує пароль root – який є найважливішою інформацією в будь-якій UNIX-системі. Отримання доступу з правами root дозволяє створювати, змінювати та знищувати абсолютно все, що містить система. При реєстрації в системі з правами root слід виявляти підвищену обережність. Для того, щоб запустити команду su необхідно належати до елітної групи, що називається wheel. Хоча Free BSD має тільки два типи користувачів – звичайний та root , група wheel дуже ефективно створює обмежене коло особливо довірених користувачів: тих, кому дозволено отримувати привілеї root. Використовуючи можливості команди su , можна покласти частину адміністративних завдань на інших користувачів.
Користувачів системи можна розділити на реальних людей, що підключаються до системи та псевдокористувачів, таких як bin , operator , daemon , nobody та ін. Псевдокористувачі необхідні системі для того, щоб керувати процесами. Справа в тому, що процеси, як і файли належать певним користувачам і при взаємодії з іншими процесами і файлами підкоряються обмеженням, що накладаються на них правами доступу. Якщо користувачем виступає root , тобто користувач з необмеженими правами, то система може стати менш захищеною в наслідок можливих помилок користувача. Тому більшість системних процесів запускається з правами доступу псевдокористувачів, а не користувача root.
Кожний користувач може належати до будь-якої групи в системі, включаючи персональні групи інших користувачів або групу wheel. Єдиним користувачем, що керує приналежністю користувачів до різних груп є root.
Як правило групи необхідні для того, щоб забезпечити декільком користувачам права доступу до набору файлів або процесів. Неприпустимо, щоб декілька користувачів мали один пароль та реєструвалися під одним іменем. Групи дозволяють їм володіти набором файлів та мати необхідні для роботи права доступу до них.
У всіх варіантах UNIX кожен файл або каталог належить і користувачу і групі. Але це не означає, що всі користувачі або члени групи мають однакові права доступу.
Розглянемо права доступу та володіння для набору файлів. Для отримання лістингу необхідно запустити команду ls з опціями -l (детальне виведення) та -a (виведення всіх файлів, з прихованими включно).
# ls -la /home/vova
total 3126
drwxr-xr-x
3 frank
users
512 May
12
.
drwxr-xr-x
52 root
users
9216 Mar
7
..
- rw -r--r--
1 bob
users
291090 Jan
23
1.bmp
- rw -rw-r--
1 bob
bob
2703 Dec
22
contents.html
- rw -r--r--
1 frank
users
3657 Jan
9
file.txt
- rw -r--r--
1 bob
users
92195 Sep
11
1.uu
drwxr-xr-x
2 root
users
512 Jan
2
files
drwxr-xr-x
12 root
wheel
1024 Feb
18
more-files
Розберемо, що означають ці написи. Рядок drwxr-xr-x задає режим доступу до файла. Для кожного різновиду користувачів – користувач (user), група (group) та інші (others) – існує набір бітів повноважень. Ці біти надають три види доступу – читання (read), запис (write) та виконання (execute). Сутність цих бітів для файлів наступна :
r – файл дозволено читати
w – файл можна модифікувати, видаляти та перейменовувати
x – файл можна виконувати
Тепер ми готові розшифрувати рядок, що задає режим доступу. Перший символ визначає каталог (d) або файл (-) , далі групи по три символи визначають права власника файла , права членів групи і права інших користувачів. Таким чином запис - rw - rw - r - - означає, що це файл, права власника rw- (читання і запис), права групи rw- (читання і запис), права інших користувачів r - - (тільки читання).
Права володіння файлами можна змінювати. Цю дію може виконувати суперкористувач root. Для зміни хазяїна файла використовується команда chown (change owner – змінити володаря):
# chown bob file.txt
Ця команда зміню ім’я хазяїна файла file.txt (але не групу) на bob. Раніше хазяїном цього файла був frank (дивись у таблиці прав доступу вище).
Команда chown може застосовуватись до каталогів:
# chown bob /home/frank
Наведена команда змінює право доступу до каталога з користувача frank на користувача bob, який тепер може створювати і видаляти файли в каталозі, навіть якщо вони йому не належать.
За допомогою команди chgrp можна змінити права володіння групи. Діє ця команда таким чином:
# chgrp users contents.html
Після цього права володіння файлом contents.html будуть належати групі users (раніше вони належали групі bob).
Змінювати права доступу до файлів і каталогів можна також за допомогою команди chmod ( change mode – змінити режим). Цю команду використовують двома способами: з числовим або символьним аргументом.
Найпростіший спосіб зміни прав доступу – встановлення трьохзначного числового коду. Кожна цифра визначає режим володіння: користувача, групи та всіх інших. Режим задає є двійкове число, кожен біт якого має певне значення. Значення бітів наведені в таблиці 3.
Таблиця 3. Значення бітів режимів прав доступу.
Біт
Значення
0
Немає доступу
1
Доступ на виконання
2
Доступ на запис
4
Доступ на читання
Таким чином режиму «читання та запис» відповідає число 110 (6),
режиму «читання та виконання» число 101 (5), «читання запис та виконання» число 111 (7).
Комбінація цифр формує трьохзначне число, що задає права доступу до файла. Наприклад:
755 – читання/запис/виконання для володаря, читання/виконання для групи і читання/виконання для інших
644 – читання/запис для володаря, тільки читання для групи і для інших
600 – читання/запис для володаря, для групи і для інших доступу немає
Застосування команди виглядає так:
# chmod 755 testscript.sh
Символічний метод легше запам’ятовується за рахунок використання символічних флагів, що задаються в якості аргумента команди. Символічні режими доступу задаються рядком символів. Перші символи вказують, чиї права змінюються u - володаря, g - групи, o – інших, a – всіх (встановлюється по замовчанню, якщо перший символ не задано).
Другий символ – вказує на вид зміни +, - , = , а третій – біти доступу.
Наприклад:
go+w - додає право на запис для групи та інших користувачів
+х - додає право на виконання для всіх
ugo=rw – встановлює всім права на читання та запис (таке саме значення має запис a=rw).
Таким чином, як бачимо Free BSD надає достатньо прості і дієві засоби керування та адміністрування правами доступу всіх категорій користувачів у вигляді простих і зрозумілих команд.
^ 3. Керування процесами.
Процес – це абстракція, що використовується в UNIX для опису виконання програми. Це системний об’єкт через який можна контролювати звернення програми до пам’яті, процесора та ресурсів введення/виведення.
Системні та користувацькі процеси підкоряються однаковим правилам, внаслідок чого керування ними відбувається за допомогою одних і тих самих команд.
Процес складається з адресного простору та набору структур даних, що містяться в середині ядра. В структурах ядра зберігається різноманітна інформація про кожен процес. До найбільш важливих відомостей належать:
таблиця розподілу пам’яті процесу
поточний статус процесу (виконується, призупинений, неактивний)
пріоритет виконання процесу
інформація про ресурси, що використовуються процесом
маска сигналів процесу
ідентифікатор володаря процесу
Кожному новому процесу, що створений ядром, надається унікальний ідентифікатор – Process ID (PID). Ідентифікаційні номери надаються процесам в порядку їх створення. Коли номери закінчуються, ядро скидає лічильник в одиницю і знову починає надавати їх по порядку, пропускаючи ті ідентифікатори, що ще використовуються.
Коли система завантажується, ядро самостійно створює декілька процесів. Найбільш важливий з них – процес init , ідентифікатор якого завжди дорівнює 1. Програма init відповідає за виклик командного інтерпретатора для виконання стартових сценаріїв, якщо вони використовуються в системі. Всі процеси, крім тих, що створюються ядром, є потомками процесу init.
На рівні процесів існують запити на переривання, що мають назву сигналів. В UNIX визначено більше тридцяти різних сигналів. В таблиці 4 перелічено сигнали, що мають найбільше цікавити системного адміністратора.
Таблиця 4. Сигнали процесів
Ім’я
Опис
Реакція
Перехоп-люється
Блоку-ється
HUP
Відбій
Завершення
Так
Так
INT
Переривання
Завершення
Так
Так
QUIT
Вихід
Завершення
Так
Так
KILL
Знищення
Завершення
Ні
Ні
BUS
Помилка на шині
Завершення
Так
Так
SEGV
Помилка сегментації
Завершення
Так
Так
TERM
Програмне завершення
Завершення
Так
Так
STOP
Зупинка
Зупинка
Ні
Ні
TSTP
Сигнал зупинки з клавіатури
Зупинка
Так
Так
CONT
Продовження після зупинки
Ігнорується
Так
Ні
WINCH
Зміна вікна
Ігнорується
Так
Так
USR1
Визначається користувачем
Завершення
Так
Так
USR2
Визначається користувачем
Завершення
Так
Так
Багато сигналів призводять до завершення роботи процесу, а в деяких випадках при цьому ще виконується дамп оперативної пам’ят
еще рефераты
Еще работы по разное
Реферат по разное
Робоча навчальна програма підготовки лікарів-інтернів зі спеціальності «інфекційні хвороби» у 200
17 Сентября 2013
Реферат по разное
Міністерство охорони здоров'я україни нака з
17 Сентября 2013
Реферат по разное
З А К О н у К Р А Ї Н И
17 Сентября 2013
Реферат по разное
Київський національний університет внутрішніх справ
17 Сентября 2013