Основи роботи в операційній системі UNIX. Історія виникнення та стандарти UNIX. Командний рядок Linux

Транскрипт

1 Вступ Курс «Основи ОС UNIX» призначений для студентів початкових курсів факультетів, які зацікавлені у підготовці розробників програмного забезпечення того чи іншого рівня. Обов'язковим попереднім для ОС UNIX є вступний курс з програмування мовою С, як базовий, а також курс з основ архітектури комп'ютерів. Структура курсу пропонує 13 лекцій та відповідні лабораторні роботи, які допомагають зрозуміти загальні принципи функціонування операційної системи типу UNIX. Матеріал лекцій представляється в тезовій формі, що залишає велику міру свободи для глибини презентації тем у лекційному матеріалі. Крім того, тривалість деяких лекцій може змінюватись від 2 до 6 годин, якщо є така необхідність. Лабораторні заняття не передбачають використання спеціалізованої лабораторії або певного клону UNIX/Linux та можуть виконуватися на персональних комп'ютерах студентів з використанням будь-якого доступного програмного забезпечення UNIX, Solaris, Linux, FreeBSD, Mac OS X тощо, за умови встановлення відповідних пакетів із депозитаріїв для розробників. Практично, зазвичай, використовувався віддалений доступ до Linux серверу протоколу SSH, для Windows робочихстанцій та PuTTY 1 - як SSH клієнта. Зауважимо, що всі завдання виконуються в командному інтерпретаторі shell (bash) і тут не обговорюються різні існуючі X Window (X11) інтерфейси (CDE, GNOME, KDE, Xfwm, Xfce або wmii та ін), що дозволяє використовувати мінімальні конфігурації ядра і сконцентруватися на вивченні ядра ОС від початку курсу. Чому ж, все ж таки, Linux вибирається для представлення основ операційних систем, а, наприклад, не Microsoft Windows? Причин кілька: відкритий код Linux, ідеологія UNIX, закладена в ньому, основні ідеї ОС, реалізовані в UNIX/Linux, використовуються і в Microsoft Windows: багатозадачність, ієрархічна файлова система, розрахована на багато користувачів система, віртуальна пам'ять, вбудований мережевий стек, багатопоточність, і, головне, ядро ​​Linux все частіше вибирається для побудови комп'ютерних систем різного рівня від розподілених та хмарних серверів у корпоративній системі до мобільних і впроваджених у керуючі чіпи систем. 1 Власов С.В ФКН ВДУ, Воронеж 1

2 Лекція 1. Основні поняття. ОС операційна система це програмний продукт, призначений керувати ресурсами комп'ютера: апаратурою, даними, програмами і процесами. Обов'язковим компонентом ОС є ядро, решта компонентів є додатками, що додаються в ОС при необхідності. Наприклад, коли кажуть: "Linux версії..." мають на увазі ядро ​​(kernel), але під GNU/Linux мають на увазі деякий клон з певним ядром і набором додатків (Debian, Red Hat, Susse, і т.д.) Ядро ОС обов'язковий компонент ОС, що надає структури даних, програми та процеси, а також апаратно-залежний код, необхідні для керування ресурсами комп'ютера. Існують різні принципи побудови ядра: монолітне ядро ​​(Linux) чи мікроядро (напр., Minix). Ядро можна настроювати, додаючи або видаляючи деякі компоненти (модулі, драйвери). Файл є певною послідовністю байт. У ОС UNIX багато що представляється файлом. При цьому розрізняють лише 7 типів файлів (у дужках вказаний відповідний символ: у виведенні команди ls -l) регулярні файли (-) спеціальні файли: директорій, (d) символічне посилання, (l) іменований канал, (p) символьний пристрій, ( c) блоковий пристрій; (b) UNIX сокет. (s) За розпізнавання та обробку внутрішньої структури файлу відповідає додаток, для якого цей файл був призначений або яким був створений. Ієрархічна файлова система абстракція для представлення впорядкованості файлів у вигляді дерева каталогів. Коренем дерева є каталог з ім'ям "/", який називається кореневою (root) файловою системою (не плутати з /root). Особливість ієрархічної файлової системи Linux полягає в тому, що вона є віртуальною, у тому сенсі, що будь-який вузол в єдиній ієрархії може бути пов'язаний з власною файловою системою певного типу (ext2fs, ext3fs, riserfs, vfat і т.д.), що знаходиться на окремому пристрої, розділі або безпосередньо у пам'яті. Директорій в ієрархії, що використовується в кожний момент за замовчуванням, називається поточним робочим каталогом. Можна використовувати абсолютні імена файлів, починаючи від кореня / або відносні імена від поточного робочого каталогу (символ «.» - точка), коли батьківський каталог позначається символами «..» (дві точки горизонтально без пробілів). Програма це файл, що містить інструкції, що виконуються. Файл, що містить друкований текст програми мовою програмування, називається вихідним модулем програми. Вихідник, написаний на скрипт-мові (shell, perl, python, ruby ​​тощо). ) виконується безпосередньо інтерпретатором мови. Вихідники іншими мовами (C, Fortran тощо) підлягають компіляції для перетворення вихідного тексту у виконуваний програмний модуль, що містить інструкції процесора у двійковому форматі (що еволюціонує від a.out і COFF до ELF). Процес це програма під час виконання. Процеси також організовані в ієрархію зі стосунками «батько нащадок». Всі процеси в UNIX мають унікальний цілий ідентифікатор (PID). Кореневим процесом ієрархії є процес з номером 1 це процес init, що породжується при завантаженні ядра операційної системи і породжує інші процеси нащадка. При роботі ОС будь-який процес, крім init, може бути зупинений. Існує також прихований процес 0 - swap, що відповідає за сторінки обміну віртуальної пам'яті. Логон процес це батьківський процес для всіх процесів, що породжуються користувачем Власов С.В ФКН ВДУ, Воронеж 2

3 системи, що працює в розрахованому на багато користувачів режимі. Завданням цього процесу є перевірка атрибутів безпеки (реєстраційного імені та пароля) користувача та запуск процесу, що забезпечує інтерфейс взаємодії ОС з користувачем зазвичай, це інтерпретатор командної мови shell. Інтерпретатор shell - це програма, що входить до складу конкретної ОС для забезпечення взаємодії користувача з ОС. У системах UNIX/Linux використовуються різні інтерпретатори: bash, csh, tcsh, ksh, zsh та багато інших. Стандартним інтерпретатором у системах GNU/Linux зазвичай вибирається bash. Інтерпретатор надає командний рядок для запуску на виконання стандартних команд та програм користувача. Власов С.В ФКН ВДУ, Воронеж 3

4 Практичні приклади. Вхід у систему через SSH клієнт (PuTTY) У MS Windows виберіть Start->Run і введіть: X:/Putty/Putty.exe У вікні Putty Configuration, що відкрилося, введіть у поле Host Name (or IP address): www2 Клацніть на Open приведе до з'єднанню з сервером www2 та появі логон вікна, в якому при першій спробі з'єднання з Linux сервером з'явиться повідомлення PuTTY Security Alert про відсутність у кеші реєстру нового RSA ключа погодьтеся з включенням ключа в кеш для довірчого з'єднання з сервером тепер і в майбутньому. Натисніть Yes (Так). У DOS вікні з'явиться запрошення Власов С.

5 Logon as: ім'я password: де ви вводите ваше реєстраційне ім'я (замість name) та пароль. Будьте уважні при введенні пароля, оскільки клавіші при вводі ніяк не відображаються, навіть зірочок немає. Якщо все виконано правильно, то ви побачите в цьому вікні підказку командного рядка інтерпретатора shell 2:~$ _ Тепер ви можете взаємодіяти з ОС Linux через інтерфейс командного рядка. 3 Надалі ми будемо використовувати лише символ $ для позначення командного рядка, хоча перед ним може відображатися шлях до поточного робочого каталогу. Де ми? (домашній директорій) При реєстрації в системі кожному користувачеві призначається захищений домашній директорій для збереження персональних файлів. При вході в систему логон процес автоматично підключає ваш домашній директорій як поточний робочий каталог. Три наступні команди повинні показати той самий результат повний шлях до вашого домашнього каталогу. $ pwd $ echo ~ $ echo $HOME Що ми маємо? (файли, що автоматично генеруються) Вміст поточного робочого каталогу можна вивести командою: $ ls При першому вході в систему цей список зазвичай порожній. 4 Однак при реєстрації користувача в його домашньому каталозі створюються деякі приховані службові файли, які можуть змінюватися самим користувачем для налаштування необхідного середовища. Ключ -a команди ls дозволяє побачити у списку вмісту поточного каталогу все приховані файли, іменовані з префіксом «.» (точка) $ ls -a До речі, до цього списку включені також анонімні імена поточного каталогу «.» та батьківського каталогу «..». Призначаючи власний файл ім'я з префіксом «.» (точка) ви робите його прихованим. Яка система використовується? Виконання операцій та можливості натріювання системи залежать від версії ОС, яку ви використовуєте. Щоб отримати інформацію про це, скористайтеся командою $ uname -a Коротку довідку про параметри та ключі команди можна отримати за допомогою ключа help, наприклад, 2 У разі виникнення проблем з'єднання з сервером або введенням імені та пароля у вас є тільки один вихід зверніться до системного адміністратора сервера . 3 Символ $ перед курсором є ознакою командного рядка і прийнятий за замовчуванням для звичайного користувача командного інтерпретатора bash. (Для суперкористувача root використовується символ #) 4 Можливо, у вас є каталог public_html, який можна використовувати для обміну файлами між Linux і MS Windows системами завдяки відповідному сервісу. Власов С.В ФКН ВДУ, Воронеж 5

6 $ uname --help Детальний опис команд і функцій UNIX можна отримати з документації, званої, manсторінки («manual pages» - посібник із системи): $ man pwd $ man ls $ man echo $ man uname Сторінки посібника подаються у спеціальному форматі nroff /troff/groff та форматуються при виведенні відповідної утилітою залежно від типу пристрою виведення. Завершення перегляду сторінок посібника здійснюється натисканням клавіші Q $ man man Файли посібника зазвичай зберігаються в упакованому вигляді (суфікс.gz або.bz2) та організовані за розділами: 1. Загальні команди 2. Системні виклики 3. Функції бібліотеки С 4. Спеціальні файли 5. Формати файлів та конвертація 6. Ігри та екранні заставки 7. Додаткові 8. Команди та демони для системного адміністрування Номер розділу використовується при посиланні на використовувану команду або функцію, наприклад, printf/3 і вказується першим параметром команди $ man 1 printf $ man 3 printf Директорій, в якому розташовується сторінка посібника по команді можна визначити за допомогою ключа -w $ man -w команда Ієрархічна файлова система Команда ls може використовуватися для перегляду списку вмісту будь-якого каталогу в ієрархії файлової системи (незалежно від фізичного пристрою та типу файлової системи на розділі або в пам'яті). Наприклад, коренева файлова система відображається командою $ls / Однак, для того, щоб вивести на екран структуру всього дерева знадобиться неабияка винахідливість, наприклад, $ls-R grep ":$" sed -e "s/:$//" -e "s/[^-][^\/]*\//--/g" -e "s/^/ /" -e "s/-/ /" де використані фільтр регулярних виразів grep, потоковий редактор sedта неіменовані канали (pipes), що позначаються символом (пайп). У своєму домашньому каталозі ви можете створити новий (порожній) директорій вузол в ієрархії, наприклад, Власов С.В ФКН ВДУ, Воронеж 6

7 $ mkdir lab1 Будь-який вузол в ієрархії може бути обраний як поточний $ cd lab1 $ pwd Для повернення в свій домашній директорій (визначений змінною оточення HOME) використовуйте команду cd без параметрів $ cd $ pwd Видалити порожній директорій можна командою rmdir, наприклад, $ rmdir lab1 Якщо директорій не порожній, остання команда (якщо lab1 містить деякі файли) виведе повідомлення rmdir: lab1: Directory not empty і видалення не буде виконано. У поточному каталогу можна створити, наприклад, текстовий (регулярний) файл. Для цього можна скористатися перенаправленим виведенням команди echo $echo "echo Print directory tree" > tree Створюється файл tree, вміст якого можна вивести командою $cat tree або у посторінково відформатованому вигляді $pr tree Можна навіть додати новий рядок до кінця існуючого файлу, наприклад, $ echo using grep and sed >> tree $ cat tree Можна використовувати малий редактор текстів ed стандартний редактор, призначений для редагування текстів з консолі типу машинки. $ ed tree a ls -R grep ":$" sed -e "s/:$//" -e "s/[^-][^\/]*\//--/g" -e "s /^/ /" -e "s/-/ /". wq $ cat tree Фактично ми створили тут файл із командами, який можна буде виконувати як нову команду, якщо оголосити його «виконуваним»: $ chmod +x tree $./tree Власов С.В ФКН ВДУ, Воронеж 7

8 Зауважимо, що спроба виконати файл без вказівки поточного директорія, тобто. просто tree, а не./tree, як показано вище, не призведе до виявлення файлу в поточному каталозі. Це пов'язано з тим, що з міркувань безпеки анонімний поточний каталог не включений до змінної оточення PATH, яка використовується для пошуку програми, що запускається на виконання на ім'я. $ echo $PATH Повний список змінних оточення та їх значення користувач може отримати командою: $ env Для створення текстових файлів можна також використовувати команду cat з перенаправленням виведення у файл $ cat > file текст Ctrl-D Тут натискання клавіш Ctrl-D передає у вхідний потік символ кінець файлу (EOF) END OF TRANSMISSION. Можна також додавати текст у кінець файлу $ cat >> file додається текст Ctrl-D Для створення великих текстових файлів, наприклад, з вихідними мовами С використовуються потужні екранні редактори текстів, такі як vi/vim, nano або emacs. Видалення файлу здійснюється командою $rm файл Крім інших, ключ -r або -R дозволяє рекурсивно видаляти піддерево каталогів. Для безпечного видалення файлів рекомендується використовувати ключ -i, що генерує вимогу для підтвердження видалення. Переміщення та перейменування файлу здійснюється командою Дата і час $ mv старе нове Поточний системний час і дату можна визначити командою $ date Для зміни часу та/або дати використовується параметр у форматі MMDDhhmmYY. Наприклад, для завдання 24 січня 8:36 PM 2011 року, потрібно ввести $ date Зазначимо також, що команда time, існуюча в системах UNIX показує час, використаний наступним процесом (реальний час, час виконання в режимі користувача та час в режимі ядра) , а чи не поточний системний час. Спробуйте Власов С.В ФКН ВДУ, Воронеж 8

9 $ time date ви повинні отримати, приблизно, наступне на виході real user sys 0m0.040s 0m0.000s 0m0.040s Хто ще в системі? ОС UNIX є розрахованою на багато користувачів системою, що дозволяє одночасно виконати логон процес і працювати в системі кільком користувачам незалежно один від одного. Для визначення хто зараз у системі, використовується команда $ who показує реєстраційне ім'я користувача, термінал та час ініціації логон процесу. У розрахованій на багато користувачів системі один і той же користувач може використовувати кілька різних терміналів одночасно (наприклад, кілька паралельних SSH сеансів). Для визначення - хто використовує поточний термінал, можна скористатися командою $whoami Зареєстровані користувачі Отже, для використання системи вам необхідно бути зареєстрованим користувачем. Реєстрацію здійснює адміністратор системи з правами суперкористувача, що має стандартне ім'я в UNIX/Linux - root. 5 Зазвичай всі реєстраційні записи про користувачів зберігаються в єдиному файлі /etc/passwd, який доступний для читання всім $ cat /etc/passwd У ранніх версія системи в цьому ж файлі зберігався і зашифрований пароль (хеш) користувача (друге поле після імені користувача , розділені двокрапкою). Але в нових системах прийнято зберігати хеші паролів в іншому файлі /etc/shadow не доступному читання нікому, коме root. У полі пароля у файлі /etc/passwd зберігається лише приховане посилання на запис /etc/shadow тому, відображається лише символ «*». Для зміни поточного пароля в UNIX системах використовується команда $passwd Changing password для імені. (current) UNIX password: поточний пароль користувача new UNIX зфыицщкв: Новий пароль retype new UNIX password: новий пароль (ще раз так само, як у попередньому рядку) passwd: password updated successfully При помилці, або надто простому паролі з'являються повідомлення, наприклад, або passwd: Authentication token manipulation error /systematic 5 Зазвичай, ім'я root не використовується для входу в систему натомість адміністратор створює для себе звичайну реєстраційний записале використовує команду su для виконання операцій, що вимагають привілеїв суперкористувача. У Linux системах популярна група привілейованих користувачів sudoers, які отримують право на виконання операцій з правами rootчерез команду sudo Власов С.В ФКН ВДУ, Воронеж 9

10 При цьому необхідно ввести інший пароль. Зауважимо, що процес passwd виконується у спеціальному режимі суперкористувача та ігнорує сигнал SIGINT, що посилається натисканням клавіш Ctrl-C, і таким чином не може бути перерваний. Простий спосіб комунікації Користувачі, які одночасно працюють в системі можуть передавати один одному короткі повідомленняза допомогою команди $ write ім'я Користувач із зазначеним ім'ям/терміналом відразу отримає повідомлення Message from ваше_ім'я on tty0 at 10:30.. і якщо ви продовжите друкувати у себе на терміналі (тут на tty0), то повідомлення буде негайно з'являтися рядок за рядком на терміналі у користувача із зазначеним у команді ім'ям. Щоб завершити повідомлення, необхідно ввести Ctrl-D. Однак, якщо ваш опонент не бажає отримувати жодних повідомлень, він використовує команду $mesg n для відключення можливості посилки/приймання write повідомлень. Для включення такої можливості користувач повинен виконати команду $mesg y Якщо необхідно надіслати повідомлення одразу всім користувачам у системі (у яких включено прийом повідомлень), можна використовувати команду $wall повідомлення до 20 рядків Ctrl-D Завершення сеансу $ logout Можна також використовувати Ctrl-D або $ exit Команда logout може не завершити сеанс, а вивести одне з двох повідомлень, або Перше повідомлення є попередженням про те, що у вашому сеансі були запущені і призупинені (сигналом SIGSTOP або Ctrl- Z) завдання. Ви маєте можливість продовжити виконання завдань (командами jobs та fg) до їхнього нормального завершення. Але якщо цього не робити, призупинені завдання будуть завершені (за сигналом SIGTERM) під час повторного виконання команди logout або Ctrl-D. Друге повідомлення означає, що ви породжували процеси-нащадки з оболонки запущеної логон процесом, які виконують поточний shell сеанс, не пов'язаний з логон процесом. Власов С.В ФКН ВДУ, Воронеж 10

11 Необхідно виконати команду exit або Ctrl-D у поточній оболонці, щоб повернутися до shell-процесу, породженого при логоні. Висновки ОС це складна програмна система, що складається з підсистем управління різними ресурсами Метою курсу вивчення основних особливостей функціонування підсистем ядра ОС UNIX/Linux через інтерфейс системних викликів. Власов С.В ФКН ВДУ, Воронеж 11


МІНІСТЕРСТВО ОСВІТИ І НАУКИ РФ ФЕДЕРАЛЬНА ДЕРЖАВНА БЮДЖЕТНА ОСВІТАЛЬНА УСТАНОВА ВИЩОЇ ПРОФЕСІЙНОЇ ОСВІТИ «Камська державна інженерно-економічна академія»

6.31. Цикли. Зсув параметрів. для змінної in значення do оператори done for var1 in value1 value2 value3 do echo $var1 done for File1 in $(ls *.sh); do echo $File1 >> All.txt done while умова do

Інформаційні технологіїЛекція 3 1 Оболонка bash 2 Основні відомості Оболонка або shell робота в текстовому режимі (інтерфейс командного рядка) Графічний інтерфейс користувача (GUI) робота в графічному

SHELL Визначення: Shell [Shell] інтерпретатор команд операційної системи. Shellи діляться на два типи, залежно від організації роботи з користувачем: - Інтерпретатор командного рядка; - графічний

2 Навігація Перше, що ми спробуємо вивчити (після пробних натискань на клавіші), навігацію у файловій системі Linux У цьому розділі введемо в ужиток наступні команди: pwd виводить назву поточного робітника

СибГУТІ Кафедра ЗС Програмування мовою високого рівня (ПЯВУ), семестр 1 2009 2010 навчальний рік Поляков О.Ю. Лабораторна робота 1. Середовище програмування ОС Linux. Мета роботи: Познайомитись із програмним

Лекція 2. Підсистема керування процесами. Управління процесами у багатозадачній системі полягає у виділенні ресурсів ядра для кожного запущеного процесу, здійсненні перемикання контексту процесів

МОСКІВСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ ім. н.е. БАУМАНА Факультет «Інформатика та системи управління» Кафедра «Автоматизовані системи обробки інформації та управління» Сьомкін П.С., Сьомкін

Робота з ОС GNU/Linux у термінальних класах Кафедри ЗС Мета роботи: познайомитися із програмним забезпеченням ОС GNU/Linux написати найпростішу програму мовою Сі. Операційна система (ОС) GNU/Linux

Система Boinc. Заняття проводить: Храпов Микола Павлович Інститут Проблем Передачі Інформація РАН Практичне заняття Основи роботи з ОС Linux Установка BOINC-сервера Практичне заняття Основи роботи

Компоненти ОС Основні компоненти ОС 1. Управління процесами 2. Управління основною пам'яттю 3. Управління файлами 4. Управління системою введення-виведення 5. Управління зовнішньою пам'яттю 6. Підтримка мереж (networking)

Введення в командний рядок Linux Олексій Сергушичів Практична школа з біоінформатики МНЛ « Комп'ютерні технології» 19.02.2014 Командний рядок Командний рядок

Операційна система Linux Лекція 6 Командна оболонка (shell, bash) є інтерфейсом командного рядка в Unix-подібних ОС, тобто виконує команди, які подає користувач або читаються

Лабораторна робота 4 ЗНАЙОМСТВО З ПРОЦЕСАМИ Мета роботи Ознайомитись із поняттям процесу. Навчитися отримувати список наявних у системі процесів та керувати їх станом. 1. Теоретичні відомості

Шаблони імен файлів, пошук файлів та інші можливості UNIX Реєстрація в Linux Запустіть програму putty.exe Введіть ip-адресу Натисніть Open Ім'я користувача studentx Пароль studentx 2 Створіть каталог

Зміст Передмова 6 Лекція 1. Сеанс роботи в Linux 8 1.1 Користувачі системи........................ 8 1.2 Реєстрація в системі....... ................. 13 1.3 Одночасний доступ до системи..................

Для користувача-непрофесіонала викладаються основи неосяжного світу системи UNIX. Користувач поступово вчитися входити в систему, використовувати різні команди, звертатися по допомогу, знаходити

Робота з шаблонами типових документів Посібник користувача Cognitive Technologies Москва, 2015 2 АННОТАЦІЯ У цьому документі наводяться відомості про використання у програмному комплексі «Е1 Євфрат»

Інформатика Інформаційні технології Лекція 1. Введення в ОС Linux Основні характеристики Linux Реальна багатозадачність Розрахований на багато користувачів доступ Свопування оперативної пам'яті на диск Сторінка

Інші мови: English українська iridium Server для Raspberry Pi Встановлення та налаштування сервера в проекті i3 lite iridium Sever для Raspberry Pi - це програмна реалізація iridium Server, яка запускається

ФЕДЕРАЛЬНА АГЕНЦІЯ З ОСВІТИ Томський політехнічний університет СТВЕРДЖУЮ: Декан АВТФ Гайворонський С.А. 2009 р. НАЙПРОСТІШІ ЗАСОБИ SHELL Методичні вказівки до виконання лабораторних робіт

Заняття 3. Тема: Облікові записи Linux. Вигляд заняття: лекція, практичне заняття. Навчальні питання: 1. Поняття облікового запису та аутентифікації. Файли /etc/passwd та /etc/group, /etc/shadow та /etc/gshadow.

Анотація програми дисципліни «Операційні системи» 1. Цілі освоєння дисципліни Цілями освоєння дисципліни «Операційні системи» є: формування у студентів базових знань, умінь та навичок з

Лабораторна робота 2. Навігація по файловій структурі та її обслуговування засобами терміналу ОС Xubuntu. Практична частина II. Навігація по файловій структурі та її обслуговування засобами терміналу ОС

Page 1 of 7 Новини Технічне оснащення Linux кластер Статистика використання ресурсів Реєстрація на Linux кластері Реєстрація на SPP-2000 Файлова система AFS Питання безпеки в мережі Бібліотеки

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

Розділ 1 Вибір операційної системи Той факт, що ви читаєте цю книгу говорить про те, що ви хочете вивчити Linux. Перед тим як розпочати цю подорож, ви повинні зрозуміти, що таке операційна система

Практична робота 10 Робота з файлами в LINUX Мета роботи: вивчення особливостей роботи з файлами в операційній системі Linux. План виконання роботи: 1. Ознайомитись із короткими теоретичними відомостями.

ЗАТВЕРДЖЕНИЙ -ЛУ СИСТЕМА ЗАХИСТУ ІНФОРМАЦІЇ ВІД НЕСАНКЦІОНОВАНОГО ДОСТУПУ Dallas Lock Linux Керівництво оператора (користувача) Листів 11 2016 р.

Інформаційні технології Лекція 2 Команди Linux 2 Команди Linux Командиконсолі Linux - взаємодія між користувачем та ОС Виконуються через командний рядок шляхом ручного введення За кожною командою

Програмно-апаратний комплекс довіреного завантаження «Блокхост-МДЗ» Посібник з інсталяції ПАК «Блокхост-МДЗ». Посібник з інсталяції. Стор. 2 Анотація У документі наводиться опис інсталяції

Багатофункціональний апаратно-програмний комплекс для надання послуг зв'язку «ІС РІНО» Базове ПЗ Сервер управління ЗМІСТ 1 ВСТУП... 3 2 СКЛАД ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ... 3 3 ВСТАНОВЛЕННЯ СЕРВЕРУ...

Рутокен Логон. Посібник адміністратора 2018 Компанія «Актив» У цьому документі Цей документмістить відповіді на такі запитання: Для чого використовується програмний продукт Рутокен Логон? (Див. стор.

Зміст заняття Термінологія Засоби віддаленого доступу Вхід у систему 1 User (користувач) користувач, обліковий запис (account). Об'єкт обліку системних дій. Login (логін) 1. Ім'я користувача/обліковий

Завдання Частина 1. Запуск FTP із командного рядка Частина 2. Завантаження FTP-файлу за допомогою клієнта WS_FTP LE Частина 3. Запуск FTP у браузері Вихідні дані/сценарій FTP (протокол передачі файлів) входить до набору

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

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

ТОВ "Компанія "АЛС і ТЕК" ПО сімейства комутаторів АЛС-24000, вер. 6.01 Посібник з інсталяції Листів 13 2017 2 1. ЗАГАЛЬНІ ВІДОМОСТІ 3 1.1.

IV. МЕТОДИЧНІ ВКАЗІВКИ З ОРГАНІЗАЦІЇ САМОСТІЙНОЇ РОБОТИ СТУДЕНТІВ ПРИ ВИВЧЕННІ ДИСЦИПЛІНИ «ОПЕРАЦІЙНІ СИСТЕМИ» п/п Найменування розділу дисципліни 1. Еволюція операційних Призначення

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

4 Лабораторна робота 1. Встановлення та конфігурація операційної системи на віртуальну машину 1.1. Мета роботи Метою даної роботи є набуття практичних навичок встановлення операційної системи

Федеральна державна бюджетна освітня установа вищої професійної освіти «Національний дослідний Томський політехнічний університет» СТВЕРДЖУЮ: Начальник навчального

Лабораторна робота 1. Навігація за файловою структурою та її обслуговування засобами інтерпретатора командного рядка Windows Теоретична частина. Каталог файл спеціального вигляду, що містить імена підкаталогів

Операційна система Програмне забезпечення Операційна система це найголовніша програма Операційна система комплекс програм, що забезпечують взаємодію всіх апаратних та програмних частин

Система ліцензування та захисту конфігурацій платформи 1С:Підприємство 8, версія 3.0 Керівництво адміністратора Операційні системи, що підтримуються... 1 Склад системи... 1 Сервер СЛК... 1 Зовнішня компонента...

Робота з операційною системою GNU/Linux В даний час основним інтерфейсом взаємодії користувача і настільною операційною системою є графічний інтерфейскористувача (Graphic

ПРАКТИЧНА РОБОТА 2 Командний рядок OS Windows Мета роботи: вивчити інтерфейс командного рядка ОС Windows, набути навичок вирішення типових завдань адміністрування операційної системи Windows з використанням

Лабораторна робота 2 Управління файлами в операційній системі Цілі та завдання лабораторної роботи здобуття навичок роботи з операційною системою типу Linux; вивчення базових основ управління операційною

ДИСПЕТЧЕР ПІДКЛЮЧЕНЬ ВІРТУАЛЬНИХ РОБОЧИХ МІСЦЬ ТЕРМІДЕС КЕРІВНИЦТВО АДМІНІСТРАТОРА (підготовка базового робочого місця) 23811505.6200.001.І5.01-2 Аркушів 17 МОВД 17 МОСКВА 2.

ФГОБУ ВПО "СібГУТІ" Кафедра обчислювальних системДисципліни "МОВИ ПРОГРАМУВАННЯ" "ПРОГРАМУВАННЯ" Практичне заняття 55 ОС GNU/Linux Викладач: Доцент Кафедри НД, к.т.н. Поляков Артем Юрійович

Додаток РОБОЧА ПРОГРАМА НАВЧАЛЬНОЇ ДИСЦИПЛІНИ ОПЕРАЦІЙНІ СИСТЕМИ І СЕРЕДОВИЩА Робоча програманавчальної дисципліни Операційні системи та середовища розроблена на основі Федерального державного освітнього

2.1. Файли. Вимоги до зберігання інформації: можливість зберігання великих обсягів даних інформація повинна зберігатися після припинення роботи процесу; кілька процесів повинні мати одночасний.

Мови програмування та методи трансляції Презентація до лабораторної роботи 2 Операційна система Windows Зміст 2 Зміст 3 Поняття операційної системи Операційна система (ОС) базове програмне

Встановлення сервера IBM DB2 v11.1 під Linux Для встановлення IBM DB2 з використанням майстра установки потрібна наявність встановленого та працюючого графічного інтерфейсу, включаючи базові пакети X-Window,

1.1 Історія ОС Перші (1945-1955г.г.) комп'ютери працювали без операційних систем, зазвичай, ними працювала одна програма. Коли швидкість виконання програм та їх кількість стала збільшуватися, простої

Управління драйверами Рутокен за допомогою групових політик 2017 Компанія «Актив» У цьому документі У цьому документі описується, як використовувати групові політики для автоматичного розповсюдження комплекту

Тема: Мета: Практична робота 23. Основи роботи в Ubuntu. Ознайомитись з інтерфейсом ОС Ubuntu, навчитися працювати з файлами та каталогами, запускати програми, переглядати текстові та графічні

Засіб захисту інформації Secret Net Інструкція по локальному оновленню клієнта Secret Net Цей документ містить розгорнутий опис послідовності дій для локального оновлення клієнта

Про авторів 15 Вступ 17 Структура книги 18 Від видавництва 20 Розділ 1. Короткий огляд основ 21 Деякі основні команди 21 Відображення дати та часу: команда date 21 Виявлення користувачів, зареєстрованих

HV Manager Посібник користувача 2017 AprelTech, llc. All rights reserved 1 ЗМІСТ Вступ... 3 Встановлення та конфігурація... 4 Системні вимоги... 4 Встановлення... 5 Конфігурація... 6 Налаштування

1 Лабораторна робота 3 «ПЕРЕНАПРАВЛЕННЯ ПОТОКІВ ДАНИХ» Потоки та файли Логічно всі файли в системі Linux організовані в безперервний потік байтів. Будь-який файл можна вільно копіювати та додавати до іншого

Операційна система UNIX

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

До основних характеристик UNIX, що дозволяє зрозуміти причини довгожительства цієї системи, можна віднести такі.

Код системи написаний мовою високого рівня СІ, що зробило її простою для розуміння, змін та перенесення на інші апаратні платформи.

Незважаючи на різноманіття версій UNIX, основою всього сімейства є однакова архітектура і ряд стандартних інтерфейсів.

UNIX має простий, але потужний набір стандартних інтерфейсів користувача.

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

Для системи UNIX розроблено багато різних додатків - від найпростіших текстових редакторів до потужних систем управління базами даних.

Загалом операційна система UNIX може бути представлена ​​дворівневою моделлю, як і зображено на рис. 8.1
.

У центрі знаходиться ядро системи (kernel). Ядро безпосередньо взаємодіє з апаратною частиною комп'ютера, ізолюючи прикладні програми від особливостей її архітектури. Ядро включає програми, що реалізують набір послуг, що надаються прикладним програмам. До послуг ядра належать операції введення/виводу, створення та управління процесами, синхронізація процесів тощо. Наступний рівень моделі - системні послуги, що забезпечують інтерфейс користувача ОС UNIX. Схема взаємодії з ядром і додатків і системних завдань однакова.

Функції операційної системи UNIX

Операційна система UNIX взаємодіє з апаратними та програмними ресурсами комп'ютера, виконуючи наступні функції:

    керування обладнанням;

    управління ресурсами;

    моніторинг системи;

Управління обладнанням

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

Управління ресурсами

ОС UNIX управляє розподілом ресурсів комп'ютера між безліччю користувачів, що виконують одночасно безліч завдань, що часто працюють з різними об'єктами, підтримуючи багатозадачний і розрахований на багато користувачів режими роботи. Багатозадачний режим дозволяє одному користувачеві виконувати одночасно кілька програм, при цьому центральний процесор і оперативна пам'ятьподіляються між безліччю процесів.

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

Підтримка інтерфейсів користувача

Це засіб забезпечення інтерактивної (що забезпечує діалог) взаємодії користувачів з обчислювальною системою.

Сучасні версії операційної системи UNIX підтримують декілька типів інтерфейсів: командний рядок, меню та графічний інтерфейс користувача.

Командний рядокзазвичай зручна для користувачів, знайомих з функціями та командамисистеми. При роботі з таким типом інтерфейсу користувач на запрошення (за замовчуванням для користувача це знак долара) вводить кожну команду з клавіатури. Цей інтерфейс не забезпечує «огляд» системи, проте дозволяє виконати будь-яку команду системи. Програми, які забезпечують такий інтерфейс, називаються командними оболонками(Shell). Командних оболонок існує дуже багато: Bourne shell (sh), Bourne Again Shell (bash), Korn shell (ksh), C shell (csh), Debian Almquist shell (dash), Zsh і т.д. Найбільш поширеною є bash.

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

Графічний інтерфейс користувачаорієнтований як на новачків, так і на кваліфікованих користувачів. Він забезпечує кілька шляхів взаємодії з комп'ютером: огляд об'єктів системи, що зображуються піктограмами, виконання команд шляхом вибору графічного зображення (піктограми) на екрані дисплея за допомогою миші або пристрою tracking ball. ОС UNIX забезпечує X.desktop як графічний інтерфейс для роботи зі спеціальними X-терміналами або систему X Window для роботи зі звичайними графічними терміналами.

Забезпечення віддаленого доступу до комп'ютерної мережі

ОС UNIX забезпечує доступ користувачів до ресурсів інших комп'ютерів, які працюють у обчислювальної мережі. У складі операційної системи є набір мережевих програм, що дозволяють встановлювати зв'язок з віддаленим комп'ютером, реєструватися у віддаленій системі, передавати дані між комп'ютерами мережі, користуватися електронною поштою. UNIX підтримує мережеву файлову систему NFS (Network File System), що дозволяє користуватися командами операційної системи для доступу до файлової системи віддаленого комп'ютера.

Компоненти операційної системи UNIX

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

У складі ОС UNIX є кілька сотень команд, які виконують завдання організації та обробки даних та керують оточенням користувача. Самі команди є програмами, які виконують певні функції, вимагаючи, як правило, мінімального введення даних і виконуються порівняно швидко. Більшість їх доступна всім користувачам, проте є команди, які доступні лише адміністратору системи, який є привілейованим користувачем. Деякі команди, під час виконання яких є можливість інтерактивного введення інформації, іноді називають утилітами. Прикладом утиліт можуть бути редактор текстів vi та команда управління електронною поштою mail.

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

Як було зазначено вище, у складі ОС UNIX зазвичай використовують кілька оболонок.

Оболонки з обмеженнями (restricted shell – rsh та ksh – підмножини Bourne shell та Korn shell) розроблені для користувачів, яким необхідно обмежити доступ до системи.

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

Взаємодія прикладних завдань із ядром відбувається за допомогою стандартного інтерфейсу системних викликів. Інтерфейс системних дзвінків визначає формат запитів на базові послуги. Процес запитує базову функцію ядра у вигляді системного виклику певної процедури ядра. Ядро виконує запит та повертає процесу необхідні дані.

Ядро складається з трьох основних підсистем:

    1) підсистема управління процесами та пам'яттю;

    2) файлова підсистема;

    3) підсистема введення/виводу.

Виконує наступні функції:

    створення та видалення процесів;

    розподіл системних ресурсів між процесами;

    синхронізацію процесів;

    взаємодія процесів.

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

Забезпечує розподіл пам'яті між процесами. Якщо для всіх процесів недостатньо пам'яті, ядро ​​переміщає частини процесу або кілька процесів (частіше пасивних, які чекають будь-яких подій в системі) в спеціальну область диска (область «підкачування»), звільняючи ресурси для процесів, що виконуються (активних).

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

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

Доступ до системи UNIX

Щоб встановити контакт із системою UNIX, вам необхідно мати:

    термінал;

Отримання реєстраційного імені

Реєстраційне ім'я- це ім'я, за допомогою якого система UNIX перевіряє, чи ви є повноважним користувачем системи, під час запиту доступу до неї.

Реєстраційне ім'я ви повинні вводити щоразу, коли хочете увійти до системи.

Існує кілька правил вибору реєстраційного імені. Зазвичай довжина імені становить від 3 до 8 символів. Вона може складатися з великих або маленьких букв, цифр, символу підкреслення, але не може починатися з цифри.

Однак ваше реєстраційне ім'я, можливо, визначатиметься конкретним застосуванням. Приклади допустимих імен:

Зв'язок із системою UNIX

Якщо ОС UNIX встановлена ​​на персональному комп'ютеріВи можете зареєструватися безпосередньо на ньому через текстову віртуальну консоль. Але можливі інші варіанти доступу.

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

Для здійснення зв'язку із системою необхідно включити термінал.

Якщо він безпосередньо пов'язаний з комп'ютером, то у верхньому лівому кутку негайно з'явиться підказка:

Якщо як термінал використовується персональний комп'ютер, налаштований працювати у мережі з допомогою сімейства протоколів TCP/IP, необхідно встановити зв'язок з комп'ютером, де встановлено ОС UNIX. Це можна здійснювати декількома способами, наприклад, за допомогою мережевого додатка telnet, який є в операційних системах Windows або за допомогою засобів доступу до Internet. Зверніть увагу, що це незахищений протокол, який в даний час вже практично не застосовується. Сучасною альтернативою є Secure Shell (SSH).

приклад.

Як термінал використовується персональний комп'ютер з Windows NT, налаштованої для роботи в мережі. Необхідно зареєструватись у UNIX-системі.

Необхідні вихідні дані та дії:

    для встановлення зв'язку з ОС UNIX необхідно знати мережне ім'я віддаленого комп'ютера або його IP-адресу (наприклад, 192.168.2.19);

    знайти в персональному комп'ютері додаток telnet та запустити його на виконання;

    у вікні програми, що відкрилося, вибрати пункт меню Підключення;

    ввести IP-адресу віддаленої UNIX-системи (наприклад, 192.168.2.19);

    встановити за бажанням характеристики терміналу.

Процедура реєстрації

Коли з'явиться підказка login: , введіть реєстраційне ім'я та натисніть клавішу . Наприклад, якщо ваше реєстраційне ім'я all30123 , то рядок реєстрації буде виглядати так:

    login: all30123

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

Пам'ятайте, що важливий регістр символів, що вводяться. Імена all30123 та ALL30123 належать двом різним користувачам.

Тепер система видає вам підказку для введення пароля. Введіть пароль та натисніть клавішу . Якщо під час введення ви зробите помилку, то можете виправити її за допомогою клавіші або символ @. Система UNIX не відображає ваш пароль на екрані з метою безпеки.

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

Коли ви увійдете в систему, екран терміналу буде виглядати наступним чином:

    login: all30123

Якщо ви зробите помилку під час входу до системи, UNIX виведе повідомлення:

    login incorrect

Потім надасть вам другий шанс увійти до системи, видавши підказку login:. Екран буде виглядати так:

    login: all30123

Якщо ви ніколи не були зареєстровані в системі UNIX, процедура вашої реєстрації може відрізнятися від описаної вище. Це може статися, якщо адміністратор системи передбачив процедуру призначення тимчасових паролів новим користувачам. Якщо ви маєте тимчасовий пароль, система змусить вибрати новий пароль, перш ніж дозволить зареєструватися.

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

Процедура входу до системи:

    Ви встановлюєте контакт; система UNIX відображає підказку login:. Введіть ваше реєстраційне ім'я та натисніть клавішу .

    Система UNIX виводить підказку password:. Введіть тимчасовий пароль та натисніть клавішу .

    Система повідомить, що ваш тимчасовий пароль більше не є дійсним, і запропонує вибрати новий пароль.

    Система запропонує ввести старий пароль. Введіть тимчасовий пароль.

    Система запропонує ввести новий пароль. Введіть вибраний пароль.

Пароль повинен відповідати наступним вимогам:

    кожен пароль повинен складатися принаймні з 6 символів;

    кожен пароль повинен містити принаймні 2 буквені символи і одну цифру або спеціальний символ. Літерний символ може бути набраний у регістрі чи великих символів чи малих;

    кожен пароль повинен відрізнятись від вашого реєстраційного імені. Великі літери та відповідні їм малі літери еквівалентні;

    новий пароль повинен відрізнятися від старого принаймні на три символи.

Приклади допустимих паролів:

Для перевірки система просить вас наново ввести пароль. Введіть пароль знову.

Якщо ви введете новий пароль вдруге не так, як у перший, система повідомить, що паролі не збігаються, і запропонує повторити процедуру реєстрації знову. Коли паролі збігатимуться, система відобразить підказку.

Наступний екран відображає описану процедуру:

    login: dko30123

    password:

    Your password has expired

    Choose a new one

    Old password:

    New password:

    Re-enter new password:

Ідентифікація користувача

Коли системний адміністратор реєструє користувача у системі, з реєстраційним ім'ям зв'язуються два компоненти ідентифікації: ідентифікатор користувача(user ID - UID) та ідентифікатор групи, До якої він відноситься (group ID - GID).

Ім'я користувача зв'язується із унікальним числом. Система використовує його як інструмент у різних механізмах захисту в ОС UNIX, наприклад, для захисту файлів або при виконанні привілейованих команд.

У будь-якій ОС UNIX є один спеціальний суперкористувач з ідентифікатором UID = 0, який зв'язаний з ім'ям root. Це означає, що користувач має усі системні привілеї.

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

Вся реєстраційна інформація про користувачів системи зберігається у файлі /etc/passwd.

У сучасних версіях ОС UNIX зашифровані паролі і системна інформація, що відноситься до них, зберігаються у файлі /etc/shadow, структура і призначення полів якого представлені на рис. 8.2
.

Записи даних про кожну встановлену групу містяться у файлі /etc/group, структура та призначення полів якого представлені на рис. 8.3 .

Структура та призначення полів файлу /etc/passwd представлені на рис. 8.4
.

Угоди щодо введення

При взаємодії із системою UNIX ви повинні бути обізнані про угоди щодо введення. Система UNIX вимагає, щоб ви вводили команди маленькими літерами (за винятком деяких команд, у яких є великі літери). Інші угоди дозволяють виконувати завдання, такі як стерти літери або видалити рядок, натиснувши одну або дві клавіші.

Таблиця 8.1.
Угоди про введення

Ключ

Функція

Підказка системної команди (пропонує вам запровадити вашу команду)

або<^h>

Стерти символ

Зупинити виконання програми чи команди

Видалити поточний командний рядок

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

Означає кінець рядка введення та поміщає курсор на новий рядок

Зупинити введення в систему або вийти із системи (завершити роботу)

Повернутися на один символ (для терміналів, які не мають клавіші )

Тимчасово зупинити виведення на екран

Продовжити виведення на екран інформації, яка була зупинена за допомогою<^s>

Примітка. У табл. 2.1 символ ^ означає управляючий символ . Тобто ви повинні в цьому випадку натиснути дві клавіші одночасно: клавішу символу, що управляє, і вказану літеру.

Підказка команди

Стандартним запрошенням командного рядка для користувача UNIX є знак долара $. Для користувача root - #. Коли запрошення з'являється на екрані вашого терміналу, це означає, що система UNIX очікує інструкції від вас. Відповіддю на підказку з вашого боку є видача команди з наступним натисканням клавіші .

Виправлення помилок введення

Існує кілька способів виправлення помилок уведення. Символ @ стирає поточний рядок, а клавіші і<^h>стирають останній введений символ. Ці клавіші та знаки є стандартними значеннями. Функції, які вони виконують можуть бути перепризначені іншим клавішам.

Зупинка виконання команд

Щоб зупинити виконання більшості команд, просто натисніть клавіші . Система UNIX зупинить виконання програми та виведе підказку на екрані. Ця підказка служить сигналом, що остання запущена виконання команда зупинена і система готова до прийому наступної команди.

Поява на екрані підказки означає, що UNIX розпізнала вас як повноважного користувача і чекає від вас введення команди.

У загальному вигляді командний рядок має таку структуру:

    ім'я [опції] [аргументи]

Ім'я команди, опції та аргументи повинні відокремлюватися один від одного пробілом або знаком табуляції. Обробка командного рядка інтерпретатором починається лише після натискання клавіші .

У подальшому викладі функцій команд передбачається:

Опції (параметри):

    є ознакою модифікації команди та, як правило, складаються з одного символу; великі та малі літери означають різні модифікації;

    як правило, починаються з символу "-" ("мінус"), який не відокремлюється пробілом від інших символів;

    можуть бути скомбіновані будь-яким чином, при цьому знак мінус можна використовувати тільки один раз.

Аргументи вказують об'єкти, які мають оброблятися командою, наприклад:

    ім'я файлу;

    номер процесу;

Якщо ви знаєте, що має зробити програма, що викликається, але не впевнені в правильному використанні синтаксису, можна в командному рядку після імені команди вказати опцію --help :

    $ cal --help

Для того щоб мати можливість отримання детальної інформації, в ОС UNIX є вбудований посібник (on-line), доступ до якого забезпечують команди man і apropos.

У найпростішому випадку для отримання інформації про будь-яку команду необхідно вказати її ім'я як аргумент команди man:

    man ім'я_команди

apropos виводить список команд відповідно до ключового слова (шаблону), вказаного як аргумент команди:

    apropos шаблон

приклади.

Якщо запустити команду date та натиснути клавішу , система UNIX звертається до програми, званої date , виконає її та виведе результат на екрані:

    $date

    Tues Sep 18 14:49:07 2000

Команда date виводить дату та час.

Якщо запустити команду who та натиснути клавішу , то екран буде виглядати так:

    $ who

    dko30024

    Oct18 8:30

    dko30001

    Oct18 8:34

    dko30020

    Oct18 8:32

    Oct18 8:00

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

Це означає, що ви успішно завершили роботу із системою і вона готова зареєструвати нового користувача.

Якщо ви реєструвалися з віддаленого терміналу, відбудеться розрив зв'язку, про що вам повідомить, наприклад, програму telnet.

Примітка. Перш ніж ви відключите термінал, обов'язково завершіть роботу із системою.

Основні висновки

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

    Загалом операційна система UNIX може бути представлена ​​дворівневою моделлю. У центрі є ядро ​​системи (kernel). Ядро безпосередньо взаємодіє з апаратною частиною комп'ютера, ізолюючи прикладні програми від особливостей її архітектури. Ядро включає програми, що реалізують набір послуг, що надаються прикладним програмам. До послуг ядра належать операції введення/виводу, створення та управління процесами, синхронізація процесів тощо. Наступний рівень моделі - системні послуги, що забезпечують інтерфейс користувача ОС UNIX. Схема взаємодії з ядром і додатків і системних завдань однакова.

    Операційна система UNIX взаємодіє з апаратними та програмними ресурсами комп'ютера, виконуючи такі функції:

    • керування обладнанням;

      управління ресурсами;

      підтримка інтерфейсів користувача;

      виконання введення та виведення інформації;

      моніторинг системи;

      забезпечення віддаленого доступу до комп'ютерної мережі.

    UNIX-система містить три основні компоненти: систему команд, оболонки та ядро.

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

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

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

    Ядро складається з трьох основних підсистем:

    • підсистема управління процесами та пам'яттю;

      файлова підсистема;

      підсистема введення/виводу.

    Щоб встановити контакт із системою UNIX, вам необхідно мати:

    • термінал;

      реєстраційне ім'я, яке ідентифікує вас як повноважного користувача;

      пароль, що перевіряє вас на ідентичність;

      інструкції для діалогу та доступу до системи UNIX, якщо термінал безпосередньо не пов'язаний з комп'ютером.

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

    Для вирішення яких завдань призначено клас операційних систем UNIX?

    Які можливості має надавати операційна система класу UNIX?

    Які завдання ядра ОС UNIX?

    Які функції ядра ОС UNIX?

    Яким є призначення компонента операційної системи «Система команд»?

    Чи можна стверджувати, що оболонка надає користувачеві інтерактивний інтерфейс взаємодії з операційною системою?

    Як ідентифікувати користувача в ОС UNIX?

Спочатку непогано було б скласти загальне уявлення про те, що таке Linux і як він працює.

А почати можна з Введення в Linux(sxw). Хоча є й інші запровадження. Наприклад, це. Ось дока Р.С.Клочкова та Н.А.Коршеніна Основи UNIX та Linux (SXW), (PDF).

Основи ОС UNIX. Навчальний курс. (SXW) (PDF)
Copyleft (no c) - Fuck copyright! 1999-2003 В. Кравчук, OpenXS Initiative
Цей короткий (імовірно, 16 годин, з яких 6 – практичні заняття) вступний курс призначений для ознайомлення з архітектурою, особливостями та основними засобами ОС UNIX. При успішному освоєнні курс дозволить вільно і продуктивно працювати в ОС UNIX в якості користувача і продовжити вивчення адміністрування або програмування цієї операційної системи.
Виклад ведеться, в основному, без прив'язки до особливостей будь-якої версії UNIX, але при необхідності конкретизації вона робиться для систем SVR4, зокрема, ОС Solaris 8.
Також пропоную книгу Андрія Робачевського"Операційна система UNIX"
Ось що пише автор: «Ця книга не є заміною довідників і різних посібників з операційної системи UNIX. Більше того, відомості, представлені в книзі, часом важко знайти в документації, яка постачається з операційною системою. Ці видання насичені практичними рекомендаціями, скрупульозним описом налаштувань тих чи інших підсистем, форматів виклику команд тощо. При цьому за кадром часто залишаються такі питання, як внутрішня архітектура окремих компонентів системи, їхня взаємодія та принципи роботи. Без знання цієї «анатомії» робота в операційній системі перетворюється на використання завчених команд, а неминучі помилки призводять до незрозумілих наслідків. З іншого боку, у цій книзі питанням адміністрування UNIX, налаштуванню конкретних підсистем і командам, що використовуються, приділено значно менше уваги. Мета цієї книги полягає у викладі основ організації операційної системи UNIX. Слід мати на увазі, що ім'ям UNIX позначається значне сімейство операційних систем, кожна з яких має свою назву та властиві лише їй особливості. У цій книзі зроблено спробу виділити те загальне, що становить «генотип» UNIX, а саме: базовий користувальницький та програмний інтерфейси, призначення основних компонентів, їх архітектуру та взаємодію, і на основі цього уявити систему в цілому. У той самий час там, де це має значення, наводяться посилання конкретну версію UNIX».

Особисто мені дуже допомагає читання прекрасної книги Віктора Олексійовича Костроміна Linux для користувача” яку можу Вам запропонувати (kos1, kos2, kos3, kos4, kos5, kos6, kos7, kos8, kos9, kos10, kos11, kos12, kos13, kos14, kos15, kos16, kos17, kos18).
А ось ця ж книга, але вже в PDF (kos1, kos2, kos3, kos4, kos5, kos6, kos7, kos8, kos9, kos10, kos11, kos12, kos13, kos14, kos15, kos16, kos17, kos18).
А тепер ще і в SXW (kos1, kos2, kos3, kos4, kos5, kos6, kos7, kos8, kos9, kos10, kos11, kos12, kos13, kos14, kos15, kos16, kos17, kos18).
Якщо Ви надаєте перевагу документам у форматі HTML, то за наведеними вище посиланнями можна потрапити на сторінку, звідки пропонується завантажити архіви розділів книги саме в цьому форматі.

З фундаментальних книг можу також порадити чудове керівництво Карла Шредера «Linux. Збірник рецептів». Відразу попереджаю, що за цим посиланням книга у форматі.pdf, та важить вона 50 МВ. Але можливий і альтернативний варіант — та сама книга, тільки в

ФОРМАТЕ.ТХТАнотація до книги наступна:»Пропоноване видання містить унікальну колекцію порад, інструментів та сценаріїв; ви знайдете низку готових налагоджених рішень складних проблем, з якими стикається будь-який адміністратор, що налаштовує Linux-сервер; ці рішення стануть у нагоді і при налаштуванні невеликих мереж, і при створенні потужних розподілених сховищ даних. Книга написана в вже популярній формі книг рецептів видавництва O'Reilly у форматі «Проблема-Рішення-Обговорення». Для досвідчених користувачів, програмістів, системних адміністраторів, студентів вузів, аспірантів та викладачів». Якщо раптом посилання припинить існування, прохання повідомити — можливо, викладу файл.pdf і на свій сайт.

Мені дуже подобається серія статей та нотаток Олексія Федорчука, Володимира Попова та інших авторів, які я беру звідси: http://unix.ginras.ru/ . Ось найцікавіші матеріали про Linux в цілому та його окремі компоненти зокрема(Linux-all.zip, Linux-all2.zip, Linux-all3.zip, Linux-all4.zip).
SXW - (Linux-all. zip, Linux-all2.zip, Linux-all3.zip, Linux-all4.zip),
А також книга Олексія Федорчука» Сага про POSIX або Введення в POSIX'івізм» у якій висвітлюються загальні питання низки систем, насамперед про UNIX-подібних. Назва говорить сама за себе. За словами авторів, книга призначена для користувачів (у тому числі і початківців). Ось файли - Частина 1, Частина 2, Частина 3, Частина 4.
І SXW- Частина1, Частина2, Частина3, Частина4.

А якщо цікава історія ВІЛЬНИХ СИСТЕМ, то можете почитати Підбірку статей під загальною назвою Дорога, відкрита всім»(sxw) і, за словами автора, висвітлює спільні питання Open Sources, POSIX-систем, історію UNIX, BSD, Linux

Також, розуміння принципів роботи ОС, поняття процесу, поруч із поняттям файла, є, безумовно, однією з найважливіших понять. Цьому присвячено статтю В.А. Костроміна » Процеси та демони в Linux»(SXW.

Text-Terminal-HOWTO(SXW)v 0.05, June 1998
Цей документ пояснює, що таке текстові термінали, як вони працюють, як встановлювати та конфігурувати їх та дає деяку інформацію про їх ремонт. Він може частково використовуватися, навіть якщо у вас немає посібника з терміналу. Хоча ця робота написана для реальних терміналів на системі Linux, частина її також застосовна для емуляторів терміналу та/або інших Unix-подібних систем.

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

Ось матеріали присвячені командним оболонкам, чи командним інтерпретаторам, іменованих також просто шеллами (shell). В першу чергу добірка статей, які об'єднані під назвою Шелл та утиліти(SXW), (PDF).

Найбільш популярною оболонкою на сьогоднішній день є Bash - це скорочення Bourne Again SHell (Ще одна оболонка Борна). Раджу прочитати BASH конспект, (SXW), (PDF)
Дата створення: 16.12.97.

А також Особливості роботи оболонки bash(SXW), (PDF).
Документ коротко підсумовує, що Bash успадкував від борнівської оболонки: структури контролю оболонки, вбудовані команди, змінні та інші особливості. Тут також перераховуються найбільш значні відмінності між Bash та борнівською оболонкою.

Інтерпретатор командної мови Shell Shell(SXW), (PDF) — командна мова, яка може виконувати як команди, введені з терміналу, так і команди, що зберігаються у файлі.

Програмування на Shell(UNIX) (SXW), (PDF)

Якщо зависає Windows, користувач робить деякі рухи тіла, а потім, переконавшись в «марності і суєтності цього світу», зі спокійним серцем натискає RESET. У Лінуксі все інакше. Про це стаття Висить? Знімемо!(SXW)

Запитання та відповіді по kppp(SXW)

Стаття В.А.Костроміна « Ієрархія каталогів та файлових систем у Linux» (SXW) в якій розповідається про розроблений у рамках проекту Open Source стандарт на структуру каталогів UNIX-подібних операційних систем (маються на увазі Linux та BSD-системи).

Про файли (якими в Linux, по суті, є каталоги, і навіть пристрої) але в іншому ракурсі розповідає керівництво Файли та права доступу до них(SXW).
Дуже рекомендую. Розжовано чудово.

Команди та скорочення Linux(SXW).
Це — практична добірка програм, які ми використовуємо найчастіше, вважаємо корисними, і які є в наших дистрибутивах Linux (RedHat або Mandrake).

Консолі UNIX(SXW) – нотатки про різні консолі.

А ось нехиле керівництво Mandrake Linux 9.0 Посібник з Командного Рядку(SXW).

Монтування файлових систем з пристроїв та файлів(SXW) (PDF)
Дата створення документа: 26.07.2004
Дата останньої зміни: 20.08.2004
Автор: Князєв Олексій.

Основи Linux

Linux натхненна операційною системою Unix, яка з'явилася в 1969 році і досі використовується та розвивається. Багато з внутрішнього пристрою UNIX існує і в Linux, що є ключем до розуміння основи системи.

Unix орієнтувалася насамперед на інтерфейс командного рядка, це ж дісталося Linux у спадок. Таким чином, графічний інтерфейс користувача з його вікнами, зображеннями і меню надбудований над основним інтерфейсом - командним рядком. Крім того, це означає, що файлова система Linux побудована так, щоб бути легко керованою і доступною з командного рядка.

Каталоги та файлова система

Файлові системи в Linux та Unix організовані за принципом ієрархічної, деревоподібної структури. Верхній рівень файлової системи - / або кореневий каталог . Це означає, що всі інші файли та каталоги (включаючи інші диски та розділи) знаходяться всередині кореневого каталогу. У UNIX і Linux файлом вважається все - включаючи жорсткі диски, їх розділи та знімні носії.

Наприклад, /home/jebediah/cheeses.odt показує повний шлях до файлу cheeses.odt . Файл знаходиться в каталозі jebediah , яка знаходиться в каталозі home , який у свою чергу знаходиться в кореневому каталозі (/).

Усередині кореневого каталогу (/) існує низка важливих системних каталогів, які є у більшості дистрибутивів Linux. Нижче наведено список загальних каталогів, які знаходяться безпосередньо в кореневому каталозі (/):

Права доступу

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

Кожен файл має наступні три набори доступу, як їх значимості:

    власник

    відноситься до користувача, який є власником файлу

    група

    відноситься до групи, пов'язаної з файлом

    інші

    відноситься до всіх інших користувачів системи

Кожен із трьох наборів визначає права доступу. Права, а також способи їх застосування до різних файлів та каталогів наведені нижче:

    читання

    файли можуть бути відображені та відкриті для читання

    вміст каталогів доступний для перегляду

    запис

    файли можуть бути змінені або видалені

    вміст калогов доступний для змін

    виконання

    виконувані файли можуть бути запущені як програми

    каталоги можуть бути відкриті

Для перегляду і редагування повідомлень на файлах і directories, Open the Applications → Accessories → Home Folder and right-click on a file або directory. Then select Properties. The permissions exist under the Permissions tab and allow for editing all permission levels, якщо ви є власником файлу.

Щоб дізнатися більше про файли відправлення в Linux, скачать файл зміщення сторінку в Ubuntu Wiki.

Термінали

Working at command line is not as daunting a task as you would think. Там немає спеціального знання, необхідного для знання, як використовувати command line. It is a program like everything else. Більшість тих, хто в Linux може бути використаний як лінію, але вони є графічні інструменти для багатьох програм. Деякий час вони не є добрими. This is where the command line comes in handy.

The Terminal is located in Applications → Terminal . Terminal is often called command prompt or the shell. У дні буде, це було, як він interacted з комп'ютером. However, Linux users має підстави, що використовуйте шпильку може бути quicker than graphical method and still holds some merit today. Тут ви будете дізнатися, як використовувати terminal.

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

Основні команди

Перегляд вмісту каталогів: ls

Команда lsпоказує список файлів різними кольорами з повним форматуванням тексту

Створення каталогів: mkdir (ім'я каталогу)

Команда mkdirстворює новий каталог.

Перейти до каталогу: cd (/адреса/каталога)

Команда cdдозволяє перейти в будь-який вказаний вами каталог.

Копіювання файлу чи каталогу: cp (що - ім'я файлу чи каталогу) (куди - ім'я каталогу чи файлу)

Команда cpкопіює будь-який вибраний файл. Команда cp -rкопіює будь-який вибраний каталог з усім вмістом.

Видалення файлів або каталогів: rm (ім'я файлу чи папки)

Команда rmвидаляє будь-який вибраний файл. Команда rm -rfвидаляє будь-який вибраний каталог з усім вмістом.

Перейменувати файл або каталог: mv (ім'я файлу чи каталогу)

Команда mvперейменовує або переміщує вибраний файл чи каталог.

Пошук каталогів та файлів: locate (ім'я каталогу або файлу)

Команда locateдозволяє знайти заданий файл на комп'ютері. Для прискорення роботи використовується індексація файлів. Щоб оновити індекс, введіть команду updatedb. Вона запускається автоматично щодня, якщо комп'ютер увімкнено. Для запуску цієї команди потрібні права супер користувача (див. Користувач root і командна sudo).

Ви також можете використовувати маски, щоб вказати більше одного файлу, такі як "*" (збіг з усіма символами) або "?" (збіг з одним символом).

Для того, щоб продовжувати вступ до Linux Command Line, скористатись read Command Line Introduction на Ubuntu wiki.

Редагування тексту

Всі параметри і налаштування в Linux є збережені в текстових файлах. Тільки через вас найбільше може бути edit configurations через графічний interface, ви можете залишитися до edit them by hand. Mousepad is the default Xubuntu text editor, який ви можете зробити за допомогою кнопок Applications → Accessories → Mousepad on desktop menu system.

Іноді, Mousepadзапускається з командного рядка за допомогою програми gksudo, яке запускає Mousepadз адміністративними привілеями, що дозволяє змінювати конфігураційні файли.

Якщо вам потрібний текстовий редактор у командному рядку, можете використати nano- Простий у використанні текстовий редактор. При запуску з командного рядка завжди використовуйте наступну команду, щоб вимкнути автоматичне перенесення слів:

Nano -w

For more information про how to use nano, refer to the guide on the wiki .

Існують також ніби кілька інших terminal-based editors available in Ubuntu. Popular ones include VIM and Emacs(The pros and cons of each cause for much friendly debate within Linux community). These are often more complex to use than nano, але є також більше потужним.

Користувач root та командна sudo

root user in GNU/Linux is the user ,який має administrative access to your system. Normal users не має цього access for security reasons. However, Ubuntu does no enable root user. Instead, administrative access is given to individual users, які можна використовувати "sudo" application to perform administrative tasks. Перший user account ви створили на вашій системі при налаштуванні буде, вказати, має доступ до sudo. Ви можете завантажити та запобігти sudo access to users with the Users and Groups application (see «Керування користувачами та групами» for more information).

Коли ви відкриваєте програму, що вимагає прав супер користувача, sudo вимагатиме ввести ваш пароль. Це гарантує, що шкідливі програми не зможуть пошкодити вашу систему, а також нагадає вам, що ви збираєтеся виконати дії, які потребують особливої ​​обережності!

Щоб використовувати sudo у командному рядку, просто наберіть sudo перед командою, яку необхідно виконати. Після цього потрібно ввести пароль.

Sudo will remember your password for 15 minutes (надалі). Ця особливість була розроблена для всіх користувачів до виконання множинних адміністративних рішень без будь-якого дозволу для password кожного часу.

Be careful when doing administrative tasks - you might damage your system!

Деякі інші типи для використання sudo include:

    Щоб використати термінал із правами супер користувача (root), наберіть «sudo -i» у командному рядку

    Натисніть на додаткові графічні налаштування інструментів в Ubuntu також, щоб використовувати sudo, так що вони будуть отримувати вашу password if needed.

    При запуску графічних додатківзамість "sudo" використовується "gksudo". Це дозволяє запитувати пароль у користувача у невеликому графічному вікні. Команда gksudo зручна, якщо ви хочете встановити кнопку запуску Synapticна вашу панель чи щось подібне.

    For more information on the sudo program and absence root user in Ubuntu, read the sudo page on the Ubuntu wiki.

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

У цьому розділі ми збираємося пояснити основні поняття, пов'язані з Linux. Виконуючи поставлене перед нами завдання ми вважаємо, що ви вже маєте уявлення про комп'ютерні системив цілому, включаючи такі компоненти як центральний процесор (ЦП), оперативна пам'ять (ОЗП), материнська плата, жорсткий диск, а також інші контролери та пристрої, пов'язані з ними.

3.1

Термін "Linux" часто використовується для позначення всієї операційної системи, але насправді Linux - це ядро ​​операційної системи, яке запускається початковим завантажувачем, що запускається BIOS/UEFI. Ядро бере на себе роль, схожу на роль диригента в оркестрі, забезпечує узгоджену роботу апаратних засобів і програмного забезпечення. Ця роль має на увазі під собою управління обладнанням, користувачами та файловими системами. Ядро є загальною базою для інших програм, що працюють в даній системі, і найчастіше запускає ring zero,також відоме, як простір ядра (Kernel space).

Користувальницький простір

Ми використовуємо термін «простор користувача», щоб об'єднати все, що відбувається за межами ядра.

Серед програм, що працюють у просторі користувача, багато основних утиліт із проекту GNU, більшість з яких призначені для запуску з командного рядка. Ви можете використовувати їх у сценаріях для автоматизації різних завдань. Додаткову інформацію про найважливіші команди див. у розділі 3.4 « ».

Давайте швидко розглянемо різні завдання, які виконує ядро ​​Linux.

3.1.1 Запуск обладнання

Призначенням ядра, перш за все, є керування та контроль над основними компонентами комп'ютера. Воно виявляє та налаштовує їх, коли комп'ютер вмикається, а також коли пристрій монтується або виймається (наприклад, USB-пристрій). Це також робить їх доступними для більш високорівневого програмного забезпечення завдяки спрощеному програмному інтерфейсу, тому програми можуть використовувати переваги пристроїв, не звертаючись до деталей, наприклад, до слота розширення, в який вставлена ​​плата. Програмний інтерфейс також дає певний рівень абстракції; це дозволяє використовувати обладнання для проведення відеоконференцій, наприклад, використовувати вебкамеру незалежно від моделі та виробника. Програмне забезпечення може використовувати інтерфейс Video for Linux(V4L) та ядро ​​буде переводити виклики інтерфейсу в реальні апаратні команди, необхідні для роботи конкретної веб-камери.

Ядро експортує дані про виявлене обладнання через віртуальні системи /proc/ та /sys/. Програми часто отримують доступ до пристроїв за допомогою файлів, створених у /dev/. Спеціальні файли, що представляють диски (наприклад, /dev/sda ), розділи (/dev/sdal ), миші (/dev/input/mouse0 ), клавіатури (/dev/input/event0 ), звукові карти(/dev/snd/* ), послідовні порти (/dev/ttyS* ) та інші компоненти.

Існує два типи файлів пристроїв: блокові та символьні. Перші мають характеристики блоку даних: вони мають кінцевий розмір, і ви можете отримати доступ до байтів у будь-якій позиції блоку. Останні поводяться як потік символів. Ви можете читати та писати символи, але ви не можете шукати задану позицію та змінювати довільні байти. Щоб дізнатися про тип файлу пристрою, перевірте першу літеру виведення команди Is -1. Це може бути b, для блокових пристроїв, або c, для символьних пристроїв:

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

3.1.2 Об'єднання файлових систем

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

Відправна точка цього ієрархічного дерева називається root, представлена ​​символом "/". Ця директорія може містити іменовані субдиректорії. Наприклад, домашня суб-директорія "/" називається /home/. Ця суб-директорія, своєю чергою, може містити інші суб-директорії тощо. Кожна директорія також може містити файли, де зберігатимуться файли. Таким чином, home/buxy/Desktop/hello.txt відноситься до файлу під назвою hello.txt , який зберігається в суб-директорії Desktop, що знаходиться в buxy суб-директорії домашнього каталогу, який присутній у root. Ядро компілює між цією системою іменування та місцем зберігання на диску.

На відміну від інших систем, Linux має тільки одну таку ієрархію і може інтегрувати дані з декількох дисків. Один із таких дисків стає root, а інші монтуютьсяна директорії в ієрархії (ця команда в Linux називається mount). Ці інші диски потім стають доступними під точками монтування ( mount points ) Це дозволяє зберігати домашні директорії (які зазвичай зберігаються на /home/ ) на окремому жорсткому диску, який буде містити директорію buxy (разом з домашніми директоріями інших користувачів). Після того, як ви встановили диск у /home/ , ці каталоги стають доступними в їхньому звичайному місці, а різні шляхи, такі як /home/buxy/Desktop/hello.txt , продовжують працювати.

Існує безліч форматів файлової системи відповідно до безлічі способів фізичного зберігання даних на дисках. Найбільш широко відомі ext2, ext3 та ext4, але існують і інші. Наприклад, VFAT є файловою системою, яка історично використовувалася DOS та операційними системами Windows. Підтримка VFAT ОС дозволяє жорстким дискам бути доступними як під Kali, так і під Windows. У будь-якому випадку, ви повинні підготувати файлову систему на диску, перш ніж змонтувати її, і ця операція називається форматуванням.

Команди, такі як mkfs.ext3 (де mkfsрозшифровується як MaKe FileSystem)обробляє форматування. В якості параметра ці команди вимагають файл пристрою, який представляє розділ, який слід форматувати (наприклад, /dev/sdal, перший розділ на першому диску). Ця операція знищує всі дані і повинна запускатися лише один раз, якщо, звичайно, ви не хочете стерти файлову систему і почати нову роботу.

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

3.1.3 Управління процесами

Процес є екземпляром програми, для якої потрібно зберігати пам'ять, як самої програми, так і її робочих даних. Ядро відповідає за створення та відстеження процесів. Коли програма запускається, ядро ​​спочатку виділяє деяку пам'ять, завантажує виконуваний код із файлової системи в цю пам'ять, а потім запускає код. Він містить інформацію про цей процес, найбільш помітним з яких є ідентифікаційний номер, відомий як ідентифікатор процесу (process identifier(PID)).

Більшість сучасних операційних систем, а саме ті, що працюють на основі Unixядра, включаючи Linux, здатні виконувати безліч завдань. Інакше кажучи, вони дозволяють системі запускати безліч процесів одночасно.

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

Подібні рішення можна регулювати за допомогою пріоритетів процесів, коли високопріоритетні процеси будуть виконуватися протягом більш тривалих періодів часу і з більш частими зрізами, ніж процеси з низьким пріоритетом.

Мультипроцесорні системи (та інші варіанти)

Обмеження, описані вище, про те, що одночасно може працювати лише один процес, застосовні не у всіх ситуаціях. Правильніше буде сказати, що одне ядроможе працювати лише з одним процесом. Багатопроцесорні, багатоядерні або гіперпотокові системи дозволяють кільком процесам працювати паралельно. Тим не менш, використовується та сама система скорочення часу для обробки ситуацій, коли є більш активні процеси, ніж доступні процесорні ядра. Це не є чимось незвичайним: базова система, навіть цілком бездіяльна, майже завжди має десятки запущених процесів.

Ядро дозволяє запускати кілька незалежних екземплярів однієї і тієї ж програми, але кожному дозволяється доступ тільки до власних часових зрізів та пам'яті. Таким чином, дані залишаються незалежними.

3.1.4 Управління правами

Unix системи підтримують безліч користувачів та груп і дозволяють контролювати права доступу. У більшості випадків процес визначається користувачем, який запускає його. Цей процес може виконувати лише ті дії, які дозволені його власнику. Наприклад, відкриття файлу вимагає від ядра перевірити процес на наявність необхідних прав (для отримання більшої інформації саме з цього прикладу, див. розділ 3.4.4, “Управління правами”)

3.2 Командний рядок Linux

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

3.2.1

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


Рисунок 3.1 Запуск терміналу GNOME

Наприклад, у системі Kali Linuxза промовчанням термінал GNOME може бути запущений зі списку вибраних програм. Також ви можете ввести «terminal» у вікні Activities (вікно, яке активується, коли ви пересуваєте мишу в лівий верхній кут) і натисніть на потрібній вам іконці програми, які з'являться (Малюнок 3.1, ““).

У разі будь-яких порушень або некоректної роботи вашого графічного інтерфейсу ви все одно можете запустити командний рядок на віртуальних консолях (до шести з них можуть бути доступні через шість комбінацій клавіш, починаючи з CTRL+ALT+F1 та закінчуючи CTRL+ALT+F6 – клавішу CTRL можна не натискати, якщо ви вже знаходитесь в текстовому режимі поза графічним інтерфейсом Xorgабо Wayland).

Ви отримуєте звичайний екран входу, де ви вводите свій логін і пароль перед тим, як отримати доступ до командного рядка з її оболонкою:

Програма, що обробляє введені вами дані та виконання ваших команд, називається оболонкою(shellчи інтерпретатором командного рядка). За умовчанням оболонка, що надається в Kali Linux, є Bash(це означає Bourne Again SHell). Кінцевий символ «$» або «#» вказує на те, що оболонка очікує вашого введення. Ці символи також вказують на те, як сприймає вас Bash, як звичайного користувача (перший випадок зі значком доларом) або як суперкористувача (останній випадок з хеш).

3.2.2

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

Як тільки сеанс запущено, команда pwd (яка розшифровується як print working directory (показати робочий каталог)) виведе на екран ваше поточне місцезнаходження у файловій системі. Ваше поточне розташування можна змінити за допомогою cd назва директорії(де cd означає (змінити директорію)). У тому випадку, якщо ви не вказали директорію, куди хочете перейти, ви автоматично повернетесь до вашої домашньої директорії. Якщо ви введете cd -, то ви повернетеся до попередньої робочої директорії (до тієї, в якій ви знаходилися перед введенням останньої команди cd). Батьківський каталог завжди називається .. (дві точки), у той час як поточний каталог позначається. (Однією точкою). Команда ls дозволяє вам перерахувативміст директорії. Якщо ви не вказуєте додаткових параметрівкоманда ls відобразить вміст поточної директорії.

Ви можете створити нову директорію за допомогою команди mkdir назва директорії,а також видалити існуючу (порожню) директорію за допомогою команди rmdir назва директорії.Команда mv дозволить вам переміщатита перейменовувати файли та директорії; видалитифайл можна за допомогою rm назва файлу,а копіювання файлу виконується за допомогою cp вихідний файл цільовий файл.

Оболонка виконує кожну команду, запускаючи першу програму з цим ім'ям, яку вона знаходить у каталозі, вказаному у змінному середовищі PATH. Найчастіше ці програми знаходяться в /bin,/sbin, /usr/bin або /usr/sbin. Наприклад, команда ls знаходиться у /bin/ls; Іноді команда безпосередньо обробляється оболонкою, і в цьому випадку вона називається вбудованою командою оболонки (серед них – cd та pwd); команда type дозволяє запросити тип кожної команди.

Зверніть увагу на використання команди echo, яка просто відображає рядок у терміналі. У разі, вона використовується виведення на екран вмісту змінної середовища, т.к. оболонка автоматично замінює змінні з їх значеннями пере виконання командного рядка.

Змінні середовища

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

Ці змінні можуть бути визначені як для системи /etc/profile так і для користувача ~/ .profile, але змінні, які не є характерними для інтерпретаторів командного рядка, краще вставляти в /etc/environment, оскільки ці змінні будуть введені у всі користувальницькі сесії завдяки модулю аутентифікації, що підключається (Pluggable Authentication Module (PAM)) – навіть якщо жодна оболонка не виконується.

3.3 Файлова система Linux

3.3.1 Стандарт ієрархії файлової системи

Як і інші дистрибутиви Linux, Kali Linux організовано відповідно до стандарту FilesystemHierarchy Standard(FHS), що дозволяє користувачам інших дистрибутивів Linux легко орієнтуватися в Kali. FHS визначає призначення кожної директорії. Директорії верхнього рівня описуються в такий спосіб.

  • /bin/: основні програми
  • /boot/: Ядро Kali Linux та інші файли, необхідні для його раннього процесу завантаження
  • /dev/: файли пристрою
  • /etc/: файли конфігурації
  • /home/: особисті файли користувачів
  • /lib/: основні бібліотеки
  • /media/*: точки монтування для знімних пристроїв (CD-ROM, USB накопичувачі тощо)
  • /mnt/: часові точки монтування
  • /opt/: додаткові програми, надані третіми особами
  • /root/: особисті файли адміністратора (файли root)
  • /run/: непостійні файли робочого процесу, які не зберігаються після перезавантаження (ще не включені до FHS)
  • /sbin/: системні програми
  • /srv/: дані, що використовуються серверами, розташованими в цій системі
  • /tmp/: тимчасові файли (ця директорія часто спустошується після перезавантаження)
  • /usr/: додатки (ця директорія надалі поділяється на bin, sbin, lib згідно з такою ж логікою, що і в директорії root). Крім того, /usr/share/ містять дані із незалежною архітектурою. Каталог /usr/local/ призначений для використання адміністратором для встановлення програм вручну без перезапису файлів, що обробляються системою пакетування.(dpkg).
  • /var/: змінні дані, що обробляються демоном. Це включає файли журналів, черги, буфери і кеші.
  • /proc/ та /sys/ є характерними для ядра Linux (і не є частиною FHS). Вони використовуються ядром для експортування даних в простір користувача.

3.3.2 Домашня директорія користувача

Вміст користувальницької директорії не є стандартизованим, але, проте, існує кілька умов, що заслуговують на увагу. Одна з них полягає в тому, що домашній каталог часто позначається тільдою (“~”). Це дуже корисно знати, тому що інтерпретатори команд автоматично замінюють тільду вірною директорією (яка перебуває в змінному середовищі. HOMEі чиє нормальне значення є /home/user/ ).

Традиційно файли конфігурації програми часто зберігаються безпосередньо у вашому домашньому каталозі, але їх імена файлів зазвичай починаються з точки (наприклад, клієнт електронної пошти muttзберігає конфігурацію ~/.muttrc ). Зверніть увагу, що імена файлів, що починаються з точки, за замовчуванням приховані; команда ls перерахує їх лише, якщо зазначена опція –a , а графічні файлові менеджериповинні бути явно налаштовані для відображення прихованих файлів.

Деякі програми також використовують кілька конфігураційних файлів, організованих в одному каталозі (наприклад, ~ / .ssh / ). Деякі програми (наприклад, веб-браузер Firefox) також використовують каталог для зберігання кешу завантажених даних. Це означає, що ці каталоги можуть зрештою споживати багато дискового простору.

Ці файли конфігурації, які зберігаються прямо у вашій домашній директорії, часто колективно називаються dotfiles,довгий час розширюються настільки, що ці директорії можуть бути захаращені ними. На щастя, спільна робота під егідою FreeDesktop.org спричинила створення специфікації базового каталогу XDG (XDG Base Directory Specification) конвенції, метою якої є очищення цих файлів і каталогів. У цій специфікації вказано, що файли конфігурації повинні зберігатися в ~/.config , файли кешу в -/.cache , а файли даних програми в -/.local (або їх суб-директоріях). Ця конвенція поступово набирає обертів.

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

Це цікаво:

2021 wisemotors.ru. Як це працює. Залізо. Майнінг. Криптовалюта.