Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МІТ-лекції-2014.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
8.65 Mб
Скачать

Зміст

Тема 1. Мережеві операційні системи, ОС FreeBSD 2

Тема 2. Ядро ОС FreeBSD і управління програмним забезпеченням 29

Тема 3. Мережева підсистема FreeBSD 47

Тема 4. Маршрутизація трафіку в ОС FreeBSD 66

Тема 5. Динамічне налаштування мережевих інтерфейсів 80

Тема 6. Засоби фільтрації трафіку 91

Тема 7. Трансляція мережевих адрес 106

Тема 8. Служба доменних імен 116

Тема 9. Поштові служби. Протоколи SMTP, POP3 135

Тема 10. Протокол IMAP 153

Тема 11. Обмін файлами у мережах. Протокол FTP 165

Тема 12. Обмін файлами у мережах. NFS, SMB, BitTorrent 180

Тема 13. Веб-сервер на основі ОС FreeBSD 195

Тема 14. Проксі –сервер. Сервіси моніторингу 217

Тема 15. Захищені віртуальні канали. Стек протоколів IPSec 234

Тема 1. Мережеві операційні системи, ос FreeBsd

Вступ

Програма вивчення нормативної навчальної дисципліни складена з урахуванням вимог освітньо-професійних програм підготовки магістрів, спеціалістів напряму підготовки 6.050102 Комп’ютерна інженерія, спеціальності 8.05010201, 7.05010201 Комп’ютерні системи та мережі.

Предметом вивчення навчальної дисципліни «Мережеві інформаційні технології» є сучасні мережеві операційні системи (ОС), мережеві проколи і прикладення.

Міждисциплінарні зв'язки: дисципліна пов’язана з попередніми їй курсами: «Корпоративні і загальнодоступні мережі», «Цифрові системи зв’язку». З урахування знань дисципліни «Мережеві інформаційні технології» вивчаються такі дисциплін, як: «Сучасні інформаційні технології в науці та освіті», «Дистанційні платформи та технології навчання».

Програма навчальної дисципліни складається з таких змістових модулів:

1. Мережеві ОС, адміністрування FreeBSD.

2. Мережеві сервіси FreeBSD.

Мета та завдання навчальної дисципліни

Мета і завдання дисципліни

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

1.2. Основними завданнями вивчення дисципліни «Мережеві інформаційні технології» є:

– підвищення рівня знань студентства з мережевих ОС;

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

– виховання уміння застосовувати набуті знання з мережевих інформаційних технологій при розв’язанні практичних задач.

1.3. Згідно з вимогами освітньо-професійної програми студенти повинні:

– знати матеріал програми курсу «Мережеві інформаційні технології», принципи побудови операційних систем сучасних комп’ютерних мереж; методів реалізації файлових систем сучасних мережних ОС; шляхів покращення характеристик мережних ОС; принципів керування мережною ОС;

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

На вивчення навчальної дисципліни відводиться 198 годин, 5,5 кредитів ECTS.

Історія операційних систем

UNIX зародився в лабораторії Bell Labs фірми AT&T більше 30 років тому. У те час Bell Labs займалася розробкою розрахованої на багато користувачів системи розподіли часу MULTICS (Multiplexed Information and Computing Service) спільно з MIT і General Electric, але ця система потерпіла невдачу, частково із-за занадто амбітних цілей, не що відповідали рівню комп'ютерів того часу, а частково і через те, що вона розроблялася на мові PL/1, а компілятор PL/1 затримувався і взагалі погано працював після свого запізнілої появи. Тому Bell Labs взагалі відмовилася від участі в проекті MULTICS, що дало можливість одному з її дослідників, Кену Томпсону, зайнятися пошуковою роботою у напрямі поліпшення операційного середовища Bell Labs. Томпсон, а також співробітник Bell Labs Денис Ритчи і деякі інші розробляли нову файлову систему, багато риси якої вели своє походження від MULTICS. Для перевірки нової файлової системи Томпсон написав ядро ОС і деякі програми для комп'ютера GE - 645, який працював під управлінням мультипрограмної системи розподіли часу GECOS. У Кена Томпсона була написана їм ще в часи роботи над MULTICS гра "Space Travel" - "Космічне подорож". Він запускав її на комп'ютері GE - 645, але вона працювала на йому не дуже добре із-за невисокої ефективності розподілу часу. Окрім цього, машинний час GE - 645 коштувало занадто дорого. В результаті Томпсон і Ритчи вирішили перенести гру на ту, що стоїть в кутку без діла машину PDP - 7 фірм DEC, що має 4096 18-бітових слів, телетайп і хороший графічний дисплей. Але у PDP - 7 було неважливе програмне забезпечення, і, закінчивши перенесення гри, Томпсон вирішив реалізувати на PDP - 7 ту файлову систему, над який він працював на GE - 645. З цієї роботи і виникла перша версія UNIX, хоча вона і не мала у той час ніякого назви. Але вона вже включала характерну для UNIX файлову систему, засновану на індексних дескрипторах inode, мала підсистему управління процесами і пам'яттю, а також дозволяла двом користувачам працювати в режимі розподілу часу. Система була написана на асемблері. Ім'я UNIX (Uniplex Information and Computing Services) було дане їй ще одним співробітником Bell Labs, Брайаном Керниганом, який спочатку назвав її UNICS, підкреслюючи її відмінність від розрахованої на багато користувачів MULTICS. Незабаром UNICS почали називати UNIX.

Першими користувачами UNIX стали співробітники відділу патентів Bell Labs, які знайшли її зручним середовищем для створення текстів.

Великий вплив на долю UNIX зробила перепис її на мові високого рівня З, розробленого Денисом Ритчи спеціально для цих цілей. Це сталося в 1973 році, UNIX налічував до цього часу вже 25 інсталяцій, і в Bell Labs була створена спеціальна група підтримки UNIX.

Широке поширення UNIX отримав з 1974 року, після опису цієї системи Томпсоном і Ритчи в комп'ютерному журналі CACM. UNIX отримав широке поширення в університетах, оскільки для них він поставлявся безкоштовно разом з початковими кодами на С. Широке поширення ефективних C -компиляторов зробило UNIX унікальній для того часу ОС із-за можливості перенесення на різні комп'ютери. Університети внесли значний вклад в поліпшення UNIX і подальшу його популяризацію. Ще одним кроком на шляху отримання визнання UNIX як стандартизованого середовища стала розробка Денисом Ритчи бібліотеки введення-виведення stdio. Завдяки використанню цієї бібліотеки для компілятора програми для UNIX стали легко переносимими.

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

Найбільше поширення набули дві дуже несумісні лінії версій UNIX: лінія AT&T - UNIX System V, і лінія університету Berkeley - BSD. Багато фірм на основі цих версій розробили і підтримують свої версії UNIX : SunOS і Solaris фірми Sun Microsystems, UX фірми Hewlett - Packard, XENIX фірми Microsoft, AIX фірми IBM, UnixWare фірми Novell (проданий тепер компанії SCO), і список цей можна ще довго продовжувати.

Найбільший вплив на уніфікацію версій UNIX зробили такі стандарти як SVID фірми AT&T, POSIX, створений під егідою IEEE, і XPG4 консорціуму X/Open. У цих стандартах сформульовані вимоги до інтерфейсу між додатками і ОС, що дає можливість додаткам успішно працювати під управлінням різних версій UNIX.

Незалежно від версії, загальними для UNIX рисами є:

  • розрахований на багато користувачів режим із засобами захисту даних від несанкціонованого доступу;

  • реалізація мультипрограмної обробки в режимі розподілу часу, заснована на використанні алгоритмів витісняючої багатозадачності (preemptive multitasking);

  • використання механізмів віртуальної пам'яті і свопінгу для підвищення рівня мультипрограмування;

  • уніфікація операцій введення-висновку на основі розширеного використання поняття "файл";

  • ієрархічна файлова система, твірна єдине дерево каталогів незалежно від кількості фізичних пристроїв, використовуваних для розміщення файлів;

  • переносимість системи за рахунок написання її основної частини на мові C;

  • різноманітні засоби взаємодії процесів, в тому числі і через мережу;

  • кешування диска для зменшення середнього часу доступу до файлів.

Мережеві ОС

Мережева операційна система є "мозком" мережі і забезпечує коректну взаємодію її програмного та апаратного забезпечення. Мережеві операційні системи (ОС) поділяються на дві категорії: однорангові і клієнт-серверні. Однорангові операційні системи передбачають можливість використання будь-якого комп'ютера як робочої станції і сервера одночасно. В однорангових мережах мережеві ОС ( LANtastic, LanSmart, Windows for Workgroups тощо) інсталюються на кожному комп'ютері, у цьому разі назва мережі - це похідна від операційної системи, що утворює однорангову мережу. Таким чином, кожний із комп'ютерів отримує можливість надавати свої ресурси всім іншим комп'ютерам у мережі. Продуктивність однорангових мереж значно знижується за збільшення розмірів мережі і збільшення кількості взаємодій мережевих комп'ютерів. Експлуатація і підтримка таких мереж, як правило, ускладнена. Не маючи можливості централізованого управління, адміністратори змушені керувати множиною сервісів на кожній машині окремо. Така робота ускладнюється ще й тим, що користувачі, працюючи на кожному з комп'ютерів, мають можливість самостійно змінювати настройки ОС, що часто призводить до непрацездатності всього програмного забезпечення робочої станції.

У мережах клієнт/сервер мережна ОС (Windows 95/98, Windows 2000, Windows NTt Windows XP, Windows Millennium, Novell NetWare, UNIX тощо) установлюється на сервері. Цей комп'ютер керує мережею і надає свої ресурси клієнтським робочим станціям. Мережева ОС, працюючи на сервері (серверна ОС), відповідає за координацію всіх дій, пов'язаних із використанням ресурсів і сервісів цього сервера. Клієнтом у такій мережі є будь-який мережевий пристрій, що формує запит до сервера для використання його ресурсів і сервісів. Для забезпечення взаємодій клієнта і сервера на комп'ютер і-клієнті встановлюється і функціонує клієнтське програмне забезпечення, яке підтримує загальний протокол взаємодії клієнта і сервера. У клієнт/серверній мережі користувачі "реєструються" зі своєї робочої станції. Для реєстрації користувач повідомляє серверові своє ім'я і пароль, якщо ім'я і пароль коректні, сервер аутентифікує користувача і надає йому доступ до всіх тих ресурсів і сервісів (використання файлів і принтерів, забезпечення безпеки даних і надання можливостей мережевої взаємодії), на які користувачу були надані права. Серверна ОС гарантує надійність і безпеку будь-яких даних, що зберігаються і опрацьовуються на сервері.

Мережева операційна система дає змогу користувачам спільно використовувати: дорогі апаратні ресурси мережі - принтери, сканери, дискові накопичувані тощо; програмне забезпечення, інстальоване тільки на сервері; інформаційні ресурси - базу даних сервера; організувати сумісну роботу великого колективу користувачів з оперативним обміном інформації між ними. До складу сучасних операційних систем (Windows XP, Windows 2000, Windows NT Server, Net Ware) входять компоненти: керування локальними ресурсами комп'ютера; серверна частина для надання власних ресурсів і послуг у загальне користування; клієнтська частина операційної системи для розпізнавання і перенаправлення в мережу запитів до віддалених ресурсів; комунікаційні засоби для обміну повідомленнями в мережі.

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

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

Наприкінці 80-х років минулого століття Міжнародна організація зі стандартизації розробила правила пересилання даних мережею, які отримали назву "Модель взаємодії відкритих систем" (International Organization for Standartization, ISO). Модель ISO отримала статус міжнародного стандарту і її рекомендації є керівництвом для побудови мережі. Відповідно до моделі ISO засоби взаємодії поділяються на сім рівнів: рівень протоколу, представлення даних, сеансовий, транспортний, мережевий, канальний і фізичний. Кожен із семи рівнів визначає сукупність логічно згрупованих функцій, необхідних для контролю процесу передачі даних мережею.

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

Рівень представлення даних - відповідає за спосіб кодування даних, Далеко не всі комп'ютерні системи використовують ту саму схему кодування даних, тому на рівень представлення даних покладено обов'язки з перетворення між несумісними схемами кодування даних.

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

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

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

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

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

Функціональні компоненти мережевої ОС

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

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

– адресація об'єктів мережі;

– функціонування мережевих служб;

– забезпечення безпеки даних;

– управління мережею.

При виборі NOS необхідно розглядати безліч чинників. Серед них: – набір мережевих служб, які надає мережа;

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

– механізм розосередження ресурсів по мережі;

– спосіб модифікації мережі і мережевих служб;

– надійність функціонування і швидкодія мережі;

– фізичні засоби з'єднання, що використовуються або вибираються;

– типи комп'ютерів, що об'єднуються в мережу, їх операційні системи;

– пропоновані системи, що забезпечують управління мережею;

– засоби захисту даних, що використовуються;

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

– число серверів, яке може працювати в мережі;

– перелік ретрансляційних систем, що забезпечують сполучення локальних мереж з різними територіальними мережами;

– спосіб документування роботи мережі, організація підказок і підтримки.

Мережева операційна система складає основу будь-якої обчислювальної мережі. Кожен комп'ютер в мережі автономний, тому під мережевою операційною системою в широкому сенсі розуміється сукупність операційних систем окремих комп'ютерів, що взаємодіють з метою обміну повідомленнями і розділення ресурсів за єдиними правилами – протоколами. У вузькому сенсі мережева ОС – це операційна система окремого комп'ютера, що забезпечує йому можливість працювати в мережі.

Відповідно до структури, приведеної на рис. 1.1, в мережевій операційній системі окремої машини можна виділити декілька частин.

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

Рисунок 1.1 - Структура мережевої ОС

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

При виборі мережевої операційної системи необхідно враховувати:

– сумісність устаткування;

– тип мережевого носія;

– розмір мережі;

– мережеву топологію;

– вимоги до сервера;

– операційні системи на клієнтах і серверах;

– мережеву файлову система;

– угоди про імена в мережі;

– організація мережевих пристроїв зберігання.

*BSD вітка *nix

Berkeley Software Distribution (BSD) – назва кількох POSIX-сумісних операційних систем сімейства UNIX, створених на основі розробок Каліфорнійського університету в Берклі на початку 1970-х років. Безкоштовні, мають відкритий вихідний код. Сьогодні найпопулярнішою є FreeBSD. Назва *BSD також є збірною для сучасних наступників тих збірок. До сімейства BSD відносяться: NetBSD, FreeBSD, OpenBSD, ClosedBSD, MirBSD, DragonFly BSD, PC-BSD, DesktopBSD, SunOS, TrueBSD, Frenzy, Ultrix і частково Darwin (ядро Mac OS X). Хронологію розвитку можна побачити на генеалогічному дереві BSD. Відмінності від «класичної» системи UNIX полягають у відсутності перемикання рівнів виконання, системі друку, файлової системи і командного процесора. Користувача команди практично ідентичні.

FreeBSD

FreeBSD – UNIX-подібна операційна система, коріння якої тягнеться від AT&T UNIX, через Berkeley Software Distribution (BSD) гілку операційних систем 386BSD та 4.4BSD. Працює на Intel x86 (IA-32), сумісних з ПК системах (включно з Microsoft Xbox, а також DEC Alpha, Sun, Itanium (IA-64), AMD64, PowerPC та NEC PC-98 архітектурах. FreeBSD добре зарекомендувала себе як система для побудови Інтранет і інтернет-серверів. Вона надає достатньо надійні мережеві служби і ефективне управління пам’яттю.

FreeBSD (див. рисунок 1.2) розробляється як повноцінна операційна система. Ядро, драйвери пристроїв та базові користувацькі утиліти (так звані Userland), на кшталт командного процесору (shell) розробляються в єдиному дереві джерельних текстів. Це одна з головних відмінностей системи від Linux, у котрій робота над розробкою ядра ведеться однією групою програмістів, базових користувацьких утиліт іншою (наприклад, проектом GNU), і усе це збираються третіми групами у так званий дистрибутив.

Розробка FreeBSD почалася в 1993 році із набору патчів користувачів системи 386BSD, що швидко зростав. Цей набір пізніше виріс і відокремився від 386bsd в окрему операційну систему, що увібрала код від Free Software Foundation. Перша офіційна версія FreeBSD 1.0 вийшла у грудні 1993 року. Walnut Creek CDROM погодилася поширювати FreeBSD на компакт-диску і також надала для роботи проекту окремий комп’ютер з інтернет-з’єднанням. Керівництво до FreeBSD містить докладнішу історичну інформацію про походження системи.

Проте, в січні 1995 року з міркувань законності використання запозиченого у 386BSD коду, а також через судовий процес між Novell та Берклі, проект випустив спеціальну версію системи FreeBSD 2.0, де було переписано більшу частину її коду, чимало якого запозичено у 4.4BSD-Lite.

FreeBSD 3.0 приніс до проекту багато змін: перехід до двійкового формату ELF, з’явилася початкова підтримка SMP-систем і 64-розрядної архітектури Alpha. У свій час, гілка 3.х серйозно критикувалася, оскільки багато змін не були очевидно вигідними і мало впливали на роботу, однак, вона була необхідним кроком у розвитку проекту, котрий допоміг гілці 4.х стати дуже успішною.

FreeBSD 4 була дуже популярною серед інтернет-провайдерів і хостерів часів першого «міхура доткомів» і вважалася за одну з найстабільніших і високопродуктивних систем класу Unix. Одним з головних недоліків FreeBSD 4 вважається погана підтримка багатопроцесорних систем, особливо в режимі багатопоточності. FreeBSD 4 поставила своєрідний рекорд за тривалістю розробки однієї гілки операційної системи – за п’ять років було усунено велику кількість помилок і отримана на рідкість стабільна система. В середині розробки FreeBSD 4 від неї відокремився проект Dragonflybsd, засновники якого поставили собі за мету серйозну оптимізацію ядра для високо-навантажених систем, зокрема кращу підтримку багатопроцесорності (зменшення часу, необхідного для перемикання ниток і ін.).

Рисунок 1.2 - Талісман проекту FreeBSD

Модель розробки FreeBSD

Існує близько 4000 розробників, які працюють над системою на добровільній основі. Всі вони можуть читати дерево репозиторія, але не можуть вносити зміни. Замість цього розробник звертається до комітера, який має право вносити зміну до коду. Існує близько 400 комітерів. Розробник може вирости по соціальних сходах проекту і стати комітером. Кандидатуру нового комітера пропонує до розгляду ментор майбутнього комітера. Залежно від основної області діяльності, новий комітер затверджується основною командою, portmgr@ або docmgr@. Основна команда є адміністративним ядром проекту і складається з 9 чоловік, які вибираються на 2 роки комітерами зі свого складу. Основна команда вирішує конфлікти між комітерами.

Учасники проекту розробляють гілку CURRENT («поточна» версія) і декілька STABLE («стабільна», стабільність означає гарантію незмінності інтерфейсів, як API, ABI і так далі).

Новий код поміщають у гілку CURRENT, де він отримує ширше тестування. Нові функції, додані в CURRENT, можуть залишитися в системі або від них можуть відмовитися, якщо реалізація виявиться невдалою. Інколи ця версія може опинитися в непридатному для використання стані. З початком використання perforce як допоміжного репозиторія, і з виділенням projects/ області в svn, проект прагне гарантувати постійну працездатність CURRENT.

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

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

Спочатку, FreeBSD використовувала в якості свого логотипу демона BSD, однак у 2005 році, був влаштований конкурс на створення нового логотипу. 8 жовтня 2005 змагання завершилися, і переміг у них Anton K. Gural, малюнок котрого став новим логотипом проекту. Однак, демон BSD залишається талісманом проекту FreeBSD.

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

FreeBSD має два можливих варіанти сумісності: для користувачів та для розробників. Варіант для користувачів має назву, що починається linux_base а для розробників – linux_dist. Обидва варіанти можна встановити із портів, розділ emulators (емулятори).

Версії системи

Всі можливі версії які були випущені під назвою FreeBSD наведено в таблиці 1.1. На даний момент остання випущена версія операційної системи FreeBSD має версію 9.1, і підтримує такі архітектури процесорів: amd64, i386, powerpc64, sparc64.

Таблиця 1.1 - Версії системи FreeBSD

Ім'я

Дата виходу релізу

Примітки та особливості

FreeBSD 1.0

Листопад 1993 року

Серед ключових поліпшень:

FreeBSD 2.0

Березень 1994 року

Серед ключових поліпшень:

FreeBSD 3.0

13 жовтня 1998 року

Серед ключових поліпшень:

  • Перехід на ELF виконувані файли.

  • з'явилася початкова підтримка SMP систем

  • з'явилася початкова підтримка 64 розрядної архітектури Alpha..

FreeBSD 4.0

Березнь 2000 року

Серед ключових поліпшень:

  • OpenSSH 1.2 було інтегровано до базової системи.

  • OpenSSL v0.9.4 було інтегровано до базової системи.

  • Gdb 4.18

  • IPfilter 3.3.8

FreeBSD 5.0

Січень 2003 року

Була випущена довгоочікувана версія 5.0-release. Ця версія надавала розширену підтримку багатопроцесорності і багатонитевості, а також підтримку платформ UltraSPARC і IA-64.

Найбільші архітектурні зміни в FreeBSD 5 – це зміна механізму блокування на нижньому рівні ядра, щоб поліпшити підтримку багатопроцесорних smp-систем. Це звільнило велику частку ядра від так званого «гігантського блокування» (Giant lock). Тепер в ядрі з'явилася можливість виконувати більш за одне завдання одночасно. Іншою важливою зміною була реалізація «рідної» підтримки багатонитевості типа M:N під назвою Kernel Scheduled Entities (KSE). Починаючи з FreeBSD 5.3 ця реалізація нитей була встановлена по-замовчуванню, поки не була замінена на реалізацію моделі 1:1 в FreeBSD 7.

У FreeBSD 5 була серйозно змінена система блокового введення-виводу за допомогою введення модульною структурной системи перетворення запитів вводу-виводу GEOM (внесеною Poul-henning Kamp). GEOM дає можливість створювати різну функціональність, таку як зеркалірованіє (mirroring) або шифрування (модулі GBDE і GELI).

FreeBSD 5.1

Червень 2003 року

Серед ключових поліпшень:

  • Експериментальна систем AMD Athlon 64 і Opteron.

FreeBSD 5.2

Січень 2004 року

Серед ключових поліпшень:

  • Повна підтримка одно чи багатопроцесорних систем AMD Athlon 64 і Opteron.

  • Клієнт підтримки Network File System V4.

  • Gnome 2.4

  • KDE 3.1

FreeBSD 5.3

Листопад 2004 року

Серед ключових поліпшень:

  • X.org 6.7

  • Gnome 2.6.2

  • KDE 3.3.0

  • GCC 3.4.2

  • Binutils 2.15

  • GDB 6.1

FreeBSD 5.4

Травень 2005 року

Серед ключових поліпшень:

  • Виправлено велику кількість помилок безпеки.

FreeBSD 5.5

Травень 2006 року

Серед ключових поліпшень:

  • Виправлено велику кількість помилок безпеки.

FreeBSD 6.0

4 листопада 2005 року

Серед ключових поліпшень:

  • Експериментальна підтримка PowerPC.

FreeBSD 6.1

Травень 2006 року

Серед ключових поліпшень:

  • BIND 9.3.2

  • sendmail 8.13.6

FreeBSD 6.2

Січень 2007 року

Серед ключових поліпшень:

  • KDE 3.5.4, GNOME 2.16.1.

  • GCC 3.4.6

  • BIND 9.3.3

FreeBSD 6.3

Січень 2008 року

Серед ключових поліпшень:

  • X.Org 7.3, KDE 3.5.8, GNOME 2.20.2.

  • BIND 9.3.4

  • sendmail 8.14.2

FreeBSD 6.4

11 листопада 2008 року

Ці версії є продовженням оптимізації підтримки smp і багатонитевості разом з розширеною підтримкою стандарту 802.11, записом подій безпеки проекту TRUSTEDBSD, серйозними поліпшеннями продуктивності мережевої підсистеми. Основне досягнення цього реліза – виключення «гігантського блокування» (Giant lock) з віртуальної файлової підсистеми (VFS), реалізація додаткової, продуктивнішої підтримки багатонитевості (libthr) з моделлю 1:1, і додавання OPENBSM – первинного модуля безпеки, який був створений проектом TRUSTEDBSD.

FreeBSD 7.0

27 лютого 2008 року

Серед ключових поліпшень:

  • X.Org 7.3, KDE 3.5.8, GNOME 2.20.2.

  • Виправлено помилки в роботі з unionfs.

  • GNU C compiler 4.2.1.

  • BIND 9.4.2.

FreeBSD 7.1

5 січня 2009 року

Серед ключових поліпшень:

  • оптимізований мережевий протокол транспортного рівня SCTP

  • журналування у файловій системі ufs 2

  • експериментальна адаптована версія файлової системи ZFS (розробленою компанією Sun)

  • компілятор GCC4.2

  • базова підтримка платформи ARM

  • новий менеджер пам'яті jemalloc, оптимізований для паралельних обчислень,

  • великі зміни і оптимізації підсистем роботи з мережами, аудіопристроями і smp-системами

Нова система показала значні поліпшення в швидкості в порівнянні з попередніми версіями і системоюLinux.

FreeBSD 7.2

4 травня 2009 року

Серед ключових поліпшень:

  • підтримка сімейства процесорів ULTRASPARC III (cheetah) і Sparc64;

  • можливість призначення декілька Ipv4- і Ipv6-адресів кожній клітці – віртуальній машині jail;

  • реалізація техніки Superpages, прозорого об'єднання сторінок пам'яті для додатків;

  • збільшене до 6 Гб адресний простір ядра для 64-розрядних процесорів;

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

  • покращувана сумісність в роботі 32-розрядних кліток в 64-розрядному оточенні;

  • з NETBSD портірован демон btpand з реалізацією підтримки профілів Bluetooth Network Access Point (NAP), Group Ad-hoc Network (GN) і personal Area Network User (PANU);

  • доданий новий драйвер sdhci з підтримкою PCI-sd хост-контроллеров (кард-рідеров);

  • оновлений модуль ядра DRM (Direct Rendering Manager) в якому покращена підтримка графічних процесорів (GPU) AMD/ATI, XGI, Intel;

  • оновлені драйвери мережевих і дискових пристроїв.

На сьогоднішній день вже розроблені відеодрайвера NVIDIA для 64-розрядної архітектури Amd64. Остаточна адаптація файлової системи ZFS v.13 для цієї вітки майже завершена.

FreeBSD 7.3

Березень 2010 року

Серед ключових поліпшень:

  • Gnome 2.28.2

  • KDE 4.3.5

  • Підтримка ZFS V13.

  • Підтримка BIND 9.4-ESV

  • Підтримка Perl 5.10

FreeBSD 7.4

24 січня 2011 року

Серед ключових поліпшень:

  • Gnome 2.32.1

  • KDE 4.5.5

  • Виправлено численну кількість помилок.

FreeBSD 8.0

25 листопада 2009року

Серед нововведень в цій версії можна відзначити:

  • експериментальна підтримка MIPS, заснована на розробках Juniper Networks.

  • практично необмежена масштабованість smp значно сприяє швидкодії на 16-ядерних системах.

  • масштабованість файлової системи як результат використання блокування віртуальної файлової системи (VFS).

  • робота розширюваної системи безпеки ядра (mac Framework) з коробки.

  • переписану підсистему USB з покращуваною швидкодією і підтримкою нових пристроїв. Додана підтримка Usb-target.

  • ZFS більш не знаходиться в експериментальному статусі.

Крім того, слід зазначити:

  • Реалізований новий контейнер віртуалізації, названий «vimage». vimage – це jail з віртуалізованим мережевим стеком і може бути створений за допомогою команди jail(8)

  • Підсистема ipsec(4) тепер підтримує Nat-traversal (RFC 3948).

  • Підтримувані версії GNOME desktop environment (x11/gnome2) і KDE desktop environment (x11/kde4) були оновлені до 2.26.3 і 4.3.1 відповідно.

FreeBSD 9.0

12 січня 2012 року

Серед ключових поліпшень:

  • перехід на новий модульних інсталятор BSDInstall,

  • інтеграція в базову систему компілятора Clang в якості заміни GCC,

  • нова реалізація програмного RAID (graid),

  • інтеграція системи реплікації пристроїв зберігання даних (HAST),

  • оновлення ZFS до версії 28,

  • активація журналювання Soft Updates для UFS,

  • удосконалення TCP-стека, підтримка п'яти нових алгоритмів для контролю перевантаження в TCP,

  • новий універсальний USB-драйвер з підтримкою USB 3.0,

  • новий механізм ізоляції виконання програм Capsicum,

  • реалізація RCTL для встановлення індивідуальних обмежень ресурсів для Jail.

Сфери застосування ОС FreeBSD Unix

Так як дана операційна система має безліч можливих пакетів програм, а також вбудовану графічну систему X11 вона може використовуватись в будь-яких сферах де є ПК, як для звичайного користувацького комп’ютера (декстопа), ноутбука, нетбука, планшета з графічним робочім столом, так і для без графічних серверних машин (NAS, Hosting Server). Для звичайних робочих комп’ютерів існує версія операційної системи з автоматичним встановленням робочого столу під назвою PCBSD, для NAS систем також існує готова операційна система FreeNAS яка повністю основана на FreeBSD, але має обмежені (полегшені) можливості і відносно просту утиліту інсталяції. Також дана операційна система має свої переваги порівняно ї іншими комерційними аналогами, так як має відкритий код і кожен бажаючий може виконати тонке налаштування під свої потреби підвищивши при йому стабільність і продуктивність.

Встановлення ОС FreeBSD

Апаратні вимоги для FreeBSD досить скромні, не такі жорсткі, як в сучасних ОС Windows, але вони фактично залежать від подальших задач ОС. Офіційні мінімальні апаратні вимоги FreeBSD 8 і вище:

- CPU: 486 процесор або вище;

- RAM: мінімум 24 Mб;

- HDD: мінімум 150 Mб вільного простору на жорсткому диску для виконання мінімальної інсталяції;

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

Рисунок 1.3 - Вибір Usage в головному меню Sysinstall

Утиліта sysinstall це програма установки, що надається проектом FreeBSD. Це консольний додаток, розділене на кілька меню та екранів, які ви можете використовувати для налаштування і управління процесом установки. Меню sysinstall управляється клавішами навігації, Enter, Tab, прогалиною, та іншими. Детальний опис клавіш і їх функцій міститься в інформації щодо використання sysinstall. Для перегляду цієї інформації переконайтеся, що обрані пункт Usage і кнопка [Select], як показано на Рис. 1.3, потім натисніть Enter. Будуть показані інструкції з використання меню. Після перегляду інструкцій, натисніть Enter для повернення в головне меню.

Для встановлення системи через Sysinstall існує три можливих варіанти Standart (звичайний найпростіший метод встановлення в якому всі необхідні можливі дії які треба зробити при встановленні надаються послідовно, це схоже на майстрів встановлення у Windows), Express (швидкий метод встановлення), Custom (найбільш розширений метод з вільним простором для дій). Щоб охопити всі можливості інсталятора виберемо останній варіант Custom. Отже почнемо інсталяцію:

  1. Для вибору жорсткого диска виконаємо пункт 3 Partition в меню Choose Custom Installation Options натиснувши Enter.

  2. В FDISK Partition Editor. Натискаємо клавішу A потім Q. В Install Boot Manager for drive ad0? Обираємо пункт BootMgr і натискаємо Enter.

  3. Повернувшись в меню Choose Custom Installation Options для розмітки вибраного жорсткого диска оберемо пункт 4 Label. В FDISK DiskLabel Editor створимо відповідні розділи заданим розміром як показано в таблиці 1.2.

Таблиця 1.2 – Приклад розмітки

Мітка розділу

Розмір розділу

/

300Мб

swap

256

/var

450

/tmp

200

/usr

2890

Для цього натискаємо клавішу C, та вводимо розмір розділу в мегабайтах 300М. Please choose a partition type вибираємо FS A file system. В Value Required вводимо точку монтування даного розділу, в даному випадку це буде /. Аналогічно створюємо і решту. Для swap потрібно вибирати в Please choose a partition type пункт Swap. Після завершення розподілення простору жорсткого диску натискаємо клавішу Q щоб вийти з утиліти FDisk.

  1. Тепер відмітимо необхідні нам пакети для установки і роботи системи. Оберемо пункт 5 Distributions далі Custom (див. рисунок 1.4). Тепер відмітимо необхідні пакети base, kernels та man (клавіша ПРОБІЛ). Далі повертаємося знову до меню Choose Custom Installation Options через Exit.

Рисунок 1.4 – Вибір необхідних пакетів для установки

  1. Виберемо джерело встановлення 6 Media в даному випадку це буде CD/DVD. Завершивши всі налаштування перед встановлення вибираємо пункт 7 Commit і натискаємо Enter.

  2. Далі відбувається процес встановлення FreeBSD.

Екскурс у використання FreeBSD

Встановлена операційна система представляє собою командний рядок з певною оболонкою яку можна змінювати (пр. bash, sh, csh…), кожна оболонка має свій синтаксис команд. При вході під звичайним користувачем рядок привітання має символ $, при вході під суперкористувачем, або зміні статуса користувача за допомогою команди su рядок привітання зміниться на #. За замовченням операційна система має стандартні утиліти які варто використовувати при конфігуруванні, для полегшення цього процесу.

Архітектура файлової системи

Наразі операційна система FreeBSD використовує дві файлові системи UFS (рідну), ZFS (імпортовану з Solaris). Розглянемо рідну файлову систему детально.

Unix File System (UFS) - файлова система, створена для операційних систем сімейства BSD і використовувана в переробленому і доповненому вигляді на даний момент як основна в операційних системах-нащадках (FreeBSD, OpenBSD, NetBSD).

Фізично UFS складається з наступних частин:

  • кілька блоків на початку розділу відводиться під завантажувальну область (яка повинна ініціалізуватися окремо від файлової системи);

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

  • опис груп циліндрів. Кожна група включає наступні компоненти:

  • резервну копію суперблоку;

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

  • деяка кількість індексних дескрипторів , кожен з яких містить атрибути файлів;

  • деяка кількість блоків даних.

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

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

Основні команди для роботи з ОС

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

Перервати виконуємо команду:

^ C (Ctrl-C)

Вийти з shell:

exit

Показати документацію до команди ls. Замість ls можна підставити будь-яку іншу команду:

man ls

Опис структур каталогів:

man hier

Показати поточну дату і час:

date

Показати тривалість того, скільки часів включено систему:

uptime

Показати хто залягання:

w

Показати останні 10 входів:

last -10

Показати директорію, в якій зараз знаходимося:

pwd

Перейти в директорію /usr/local/etc/:

cd /usr/local/etc/

Замість /usr/local/etc/ можна вказати будь-яку іншу директорію, в яку є доступ.

Перейти до каталогу на один рівень вгору:

cd ..

Перейти в свою домашню директорію:

cd ~

Перейти в кореневу директорію:

cd /

Дізнатися розмір папки:

du -hsx /шлях/до/папки

Показати вміст поточної директорії:

ls

Показати детально вміст поточної директорії (у виведенні команди вказані дати, права на файли директорії):

ls -l

Показати список всіх файлів, включаючи приховані файли:

ls -a

Показати права доступу до файлу filename:

ls -l filename

Показати права доступу до директорії directory:

ls -ld directory

Створити директорію newdir в папці tmp:

mkdir /tmp/newdir/

Створюємо директорію subdir, навіть якщо у нас відсутня папка newdir. Усі папки створяться автоматично:

mkdir -p /tmp/newdir/subdir/

Видалити директорію /tmp/newdir/. Замість /tmp/newdir/ можете вказати потрібну вам папку:

rmdir /tmp/newdir/

Видалити не пусту директорію newdir. Замість «newdir» у вас може бути інша папка:

rm -rd /tmp/newdir/

Список часто виконуваних команд:

history | awk '{a [$ 2] + +} END {for (i in a) {print a [i] »» i}}' | sort -rn | head

Кількість активних сполук tcp:

netstat -an | grep tcp | wc -l

Кількість активних сполук udp:

netstat -an | grep udp | wc -l

Прочитати кілька байт файлу і визначити тип файлу:

file filename

Приклад 1:

file /etc/rc.conf

/etc/rc.conf: ASCII English text

Приклад 2:

file /bin/cp

/bin/cp: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 7.1, dynamically linked (uses shared libs), FreeBSD-style, stripped

Вивести на екран вміст файлу filename:

less filename

space (пропуск) = наступна сторінка, b = попередня сторінка,

q = вийти,/= шукати далі,? = Шукати в попередньому, n = повторити пошук.

Вивести на екран вміст файлу filename. -M = показувати назву файлу:

less -Mi filename

Показати кількість рядків у файлі filename:

wc -l filename

Показати перші 5 рядків файла filename (кількість рядків можна вказати самостійно):

head -5 filename

Показати останні 5 рядків файла filename (кількість рядків можна вказати самостійно):

tail -5 filename

Показати останні 10 рядків файлу, почекати і показати нові лінії по мірі їх додавання (^ C для виходу). Особливо корисний для лог-файлів:

tail -f filename

Створити файл filename, якщо він не існує, або оновити час створення, якщо такий файл існує:

touch filename

Видалити файл filename:

rm filename

Копіювати файл filename і присвоїти йому нове ім'я - newname:

cp filename newname

Копіювати файл або файли в директорію /tmp/, назва файлів і директорію вкажіть самостійно:

cp file1 file2 .../tmp /

Копіювати директорію /tmp/ в директорію /home/, назва директорій вкажіть самостійно:

cp -R /tmp/ /home/

Перенести файл oldname в тугіше директорію, де він знаходиться, але під іншою назвою - newname. Простіше кажучи, перейменувати файл oldname в newname:

mv oldname newname

Перенести файл або файли в директорію /tmp/, назва файлів і директорію вкажіть самостійно:

mv file1 file2 ... /tmp/

Зробити жорстку посилання newname на файл filename:

ln filename newname

Знайти всі файли в директорії /etc/, або в будь-який інший вказаної вами директорії (/etc/ - для прикладу):

find /etc/ -type f

Знайти всі файли в директорії /etc/, що починаються з rc. Замість /etc/ і rc вкажіть свої дані:

find /etc/ -type f-name 'rc *'

Читати стиснене текстовий файл, без розпакування його на диск:

gzip -dc filename.gz | less

bzip2 -dc filename.bz2 | less

Показати вміст стиснутого архіву:

tar -tzf filename.tgz або. tar.gz

tar -tjf filename.tbz2 або. tar.bz2

Видобути вміст архіву filename.tgz в директорію/tmp /:

tar -xvzf filename.tgz-C /tmp/

Видобути вміст архіву filename.tbz2 в директорію /tmp/:

tar -xvjf filename.tbz2-C /tmp/

Видобути вміст архіву filename.tgz в поточну директорію:

tar -xvzf filename.tgz

Видобути вміст архіву filename.tbz2 в поточну директорію:

tar -xvjf filename.tbz2

Показати всі процеси:

ps auxw

Показати всі процеси «sshd»:

ps auxw | grep sshd

Постійно показувати найбільш активні процеси (q - вихід):

top

Надіслати сигнал для зупинки процесу, ідентифікатором якого є його pid:

kill pid

або

kill -TERM pid

Послати сигнал всім процесам, чиє ім'я «httpd»:

killall httpd

Шукати команду cp в PATH і показати, де вона була знайдена:

which cp

Показати 20 останніх введених команд:

history 20

Показати всі змінні оточення:

printenv

Показати одну змінну оточення 'PATH':

printenv PATH

або

echo $ PATH

Змінні середовища можна встановити в ~ /. Profile для sh, ~ /. Bash_profile для bash, або ~ /. Cshrc для csh

Показати поточні uid, gid та додаткові groups:

id

Показати поточне ім'я користувача:

whoami

Стати root'ом (користувач повинен бути в групі «wheel»):

su

Змінити uid на username:

su username

Показати всі облікові записи (виводиться вміст файлу /etc/passwd, де вони перераховані):

cat /etc/passwd

Показати всі групи (виводиться вміст файлу /etc/group, де вони перераховані):

cat /etc/group

Створити користувача username; - m = створити домашню директорію:

pw useradd username -m

Змінити свій пароль:

passwd

Змінити пароль користувача username (має право тільки root):

passwd username

Додати користувача username до групи «wheel» (або відредагуйте /etc/group):

pw usermod username -G wheel

Видалити користувача username;-r = видалити домашню директорію:

pw userdel username -r

Показати всі облікові записи з зашифрованими паролями:

cat /etc/master.passwd

Показати монтовані файлові системи:

mount

Показати використовуване і вільне місце на всіх монтованих файлових системах (-h = для більшої читабельності для людей,-m = якщо треба дізнатися розмір у Мб):

df

df -h

df -m

Список процесів з відкритими файлами:

fstat

Показати файлову таблицю:

cat /etc/fstab

Показати Слайс пристрої ad0:

fdisk /dev/ad0

Показати статистику дискових операцій введення/виведення кожні 2 секунди:

iostat 2 gstat -I 2s

Показати список встановлених пакетів:

pkg_info

Показати докладний опис пакету «zip» (замість zip вкажіть будь-який встановлений у вас пакет):

pkg_info zip \ *

Показати список файлів, включених в пакет «zip»:

pkg_info -L zip \ *

Встановити пакет foo-1.2.3.tbz:

pkg_add foo-1.2.3.tbz

Встановити пакет foo з FTP сервера, використовуваного за замовчуванням:

pkg_add -r foo

Встановити пакет foo з альтернативного FTP сервера:

PACKAGEROOT = «ftp://ftp.freebsd.org» pkg_add -r foo

Видалити пакет foo-1.2.3:

pkg_delete foo-1.2.3

Виконувати після встановлення пакетів, для повторного сканування PATH. (Необхідно тільки якщо використовуєте csh):

rehash

Показати завантажені модулі:

kldstat

Завантажити модуль:

kldload названіе_модуля

Вивантажити модуль:

kldunload названіе_модуля

Показати всі мережеві інтерфейси:

ifconfig -a

Показати таблицю маршрутизації:

netstat -r -n

Додати статичний маршрут за замовчуванням:

route add default 192.168.0.254

Надіслати ping пакети на адресу 1.2.3.4, перевірка доступності хоста (^ C для виходу):

ping 1.2.3.4

Відправка пакетів до адреси 1.2.3.4 і відображення проміжних знайдених маршрутизаторів:

traceroute -n 1.2.3.4

Показати всі пакети, передані та прийняті на інтерфейсі em0:

tcpdump -i em0 -n -s 1500 -X

Показати лише заголовки tcp пакетів приходять/йдуть на 80 порт:

tcpdump -i em0 -n tcp port 80

Відкрити TCP з'єднання на порт 80 хоста з адресою 1.2.3.4:

telnet 1.2.3.4 80

Ініціалізація налаштувань мережевих інтерфейсів в /etc/rc.conf:

/etc/rc.d/netif start

Ініціалізація налаштувань статичних маршрутів з /etc/rc.conf:

/etc/rc.d/routing start

Налаштування інтерфейсу з позначкою «DHCP» в /etc/rc.conf:

/etc/rc.d/dhclient start

Показати активні з'єднання з мережею:

netstat -finet -n

Показати процеси хто слухає на IPv4 sockets:

sockstat -4 -l

Перезавантажити ОС:

reboot

Вимкнути ПК, негайно:

shutdown -p now

Права на файли/папки:

права на файли і папки позначаються у вигляді цифр або букв:

4 = read (дозвіл на читання)

2 = write (дозвіл на запис)

1 = execute (дозвіл на виконання)

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

перша цифра - дозволи для вас

друга цифра - дозволи для групи

третя цифра - дозволу для всіх інших

Додавання цифр можна домогтися встановлення прав. Наприклад:

3 (2 +1) - дозвіл на запис та виконання файлу (каталогу);

5 (4 +1) - дозвіл на читання і виконання;

6 (4 +2) - дозвіл на читання і запис;

7 (4 +2 +1) - дозвіл на читання, запис і виконання

Тобто існує всього сім варіантів:

7 = read, write & execute (читання, запис, виконання);

6 = read & write (читання і запис);

5 = read & execute (читання і виконання);

4 = read (читання);

3 = write & execute (запис і виконання);

2 = write (запис);

1 = execute (виконання).

Для встановлення прав доступу використовується команда CHMOD.

На прикладі наочніше:

chmod 777 /tmp/file.sh - дозволити читати, змінювати, виконувати файл file.sh всім.

chmod 766 /tmp/ file.sh - дозволити собі читати, змінювати, виконувати файл file.sh, а групі і всім іншим тільки читати, змінювати.

Якщо треба дати права усіх файлів у папці та всього вмісту включаючи підпапки (рекурсивно), треба використовувати параметр-R, тобто:

chmod-R 766 /tmp/

Дізнатись погоду з консолі (повинен бути встановлений curl, Замість Moscow напишіть своє місто):

curl -s «http://www.google.com/ig/api?weather=Moscow» | sed's |. *. * | \ 1 |'

Дізнатися кількість встановленої фізичної пам'яті:

cat /var/run/dmesg.boot | grep «real memory»

Дізнатися змінні оточення (PATH) в мові csh (за замовчуванням в FreeBSD):

setenv | grep PATH

Перестартовать мережу (мережеве підключення по ssh збережеться)

/etc/rc.d/netif restart

Зупинити мережеву карту:

ifconfig network-interface down

тут network-interface - це інтерфейс мережевої карти, який можна подивитися командою ifconfig

Аналогічно запуск мережевої карти:

ifconfig network-interface up

Отримати список піднятих мережевих інтерфейсів:

ifconfig -u

Отримати список вимкнених мережевих інтерфейсів:

ifconfig -d

Переглянути розмір директорії:

du -h

Перезапустити ipfw:

/etc/rc.d/ipfw restart

Інформація про встановлений CPU:

sysctl -a | egrep -i 'hw.machine | hw.model | hw.ncpu'

Дізнатися всі IP-адреси сайту:

host -ta mediaunix.com

Створити дамп бази mysql:

mysqldump -u ЛогінАдмінаБД -p ПарольАдмінаБД -B ІмяБД> /шлях/куди/зберегти/дамп/бази/ІмяБази.sql