Unix
Unix або UNIX — це сімейство операційних систем, філософія проєктування, стандарт сумісності та одна з найважливіших ідей в історії компʼютерних систем. Unix виник наприкінці 1960-х років у Bell Labs і вплинув на Linux, BSD, macOS, iOS, Android, Solaris, AIX, HP-UX, сучасні сервери, командний рядок, C, POSIX, DevOps, інтернет-інфраструктуру й культуру відкритих систем.
У строгому сучасному значенні UNIX® — це не просто будь-яка Unix-подібна система, а сертифікована система, яка відповідає вимогам The Open Group. У ширшому технічному й історичному сенсі Unix — це ціла традиція операційних систем, побудованих навколо ідей простоти, текстових інтерфейсів, файлів, процесів, pipes, shell, прав доступу й переносимості.
Unix — це не тільки операційна система. Це стиль мислення: маленькі інструменти, текстові потоки, файли як універсальна абстракція і можливість поєднувати прості речі у складні системи.
Коротко
| Параметр | Значення |
|---|---|
| Назва | Unix / UNIX |
| Тип | Сімейство операційних систем, стандарт, філософія проєктування |
| Походження | Bell Labs |
| Початок розробки | 1969 рік |
| Ключові постаті | Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy та інші дослідники Bell Labs |
| Основна мова реалізації | C та assembly у ранніх версіях |
| Сучасний власник торговельної марки UNIX® | The Open Group |
| Актуальна специфікація | Single UNIX Specification Version 5 / 2024 |
| Повʼязані стандарти | POSIX, Single UNIX Specification |
| Нащадки й родичі | BSD, Solaris, AIX, HP-UX, illumos, macOS, Linux-подібні системи |
| Ключові ідеї | Everything is a file, pipes, shell, process model, permissions, portability |
Головна ідея Unix
Головна ідея Unix — створити просту, переносиму й багатокористувацьку операційну систему, у якій програми можна легко поєднувати між собою.
Unix-система мислить так:
файли; каталоги; процеси; користувачі; права доступу; команди; shell; текстові потоки; pipes; невеликі утиліти; скрипти; мережа; системні виклики.
Типова схема:
Користувач → Shell → Команди й програми → System calls → Unix kernel → Hardware
Unix зробив операційну систему не монолітом із важкими інструментами, а набором простих механізмів, які можна комбінувати.
Важливі акценти
| Статус | Теза | Пояснення |
|---|---|---|
| Ключове | Unix вплинув майже на всі сучасні операційні системи | Linux, BSD, macOS, iOS, Android і багато серверних систем прямо або концептуально повʼязані з Unix. |
| Ключове | UNIX® сьогодні є торговельною маркою | Назву UNIX® офіційно використовують сертифіковані системи, які відповідають вимогам The Open Group. |
| Ключове | Unix-філософія вплинула на DevOps і CLI-культуру | Shell, pipes, grep, sed, awk, cron, ssh і текстові конфігурації — прямі спадкоємці Unix-культури. |
| Ключове | Мова C і Unix розвивалися разом | Переписування Unix мовою C зробило систему переносимішою між апаратними платформами. |
| Важливо | Unix і Unix-like — не одне й те саме | Linux є Unix-подібною системою, але не обовʼязково сертифікованим UNIX®. |
| Увага | Unix-команди дають багато влади | Неправильні команди з правами адміністратора можуть пошкодити систему або дані. |
Unix, UNIX і Unix-like
Ці терміни потрібно розрізняти.
| Термін | Значення |
|---|---|
| Unix | Історичне сімейство операційних систем і філософія проєктування |
| UNIX® | Зареєстрована торговельна марка The Open Group для сертифікованих систем |
| Unix-like | Система, схожа на Unix за принципами, API або поведінкою, але не обовʼязково сертифікована |
| POSIX-compatible | Система або середовище, яке підтримує POSIX-інтерфейси |
| GNU/Linux | Unix-подібна система на основі Linux kernel і GNU/інших компонентів |
У побуті Linux часто називають Unix-подібною системою. Але офіційна назва UNIX® стосується сертифікації й торговельної марки.
Історія Unix
Unix зʼявився в Bell Labs наприкінці 1960-х років. Його створювали дослідники, яким потрібне було зручне середовище для програмування, роботи з файлами й експериментів.
Unix виріс після досвіду Multics — великого й амбітного проєкту операційної системи. На відміну від Multics, Unix спочатку був меншим, простішим і практичнішим.
Ключові етапи:
- 1969 — початок роботи над Unix у Bell Labs;
- ранні версії для PDP-компʼютерів;
- розвиток shell, файлової системи, процесів і утиліт;
- створення мови C;
- переписування значної частини Unix мовою C;
- поширення Unix в університетах;
- поява BSD;
- комерційні Unix-системи;
- стандартизація POSIX і UNIX;
- вплив на Linux, macOS, Android, BSD і сучасний інтернет.
Unix став успішним не тому, що був найбільшим, а тому, що був простим, переносимим і зручним для програмістів.
Bell Labs
Bell Labs — дослідницька лабораторія, де народилися Unix, мова C та багато інших фундаментальних технологій.
У контексті Unix Bell Labs важливі тому, що там працювали:
- Ken Thompson;
- Dennis Ritchie;
- Brian Kernighan;
- Douglas McIlroy;
- Joe Ossanna;
- інші дослідники.
Саме там сформувалися багато ідей, які сьогодні здаються звичними:
- shell;
- pipes;
- C;
- ієрархічна файлова система;
- small tools;
- text processing;
- переносимість;
- документація через man pages.
Ken Thompson
Ken Thompson — один із головних творців Unix.
Його внесок повʼязаний із:
- раннім Unix;
- файловою системою;
- shell;
- системним програмуванням;
- мовою B;
- ранніми інструментами;
- загальною архітектурою системи.
Dennis Ritchie
Dennis Ritchie — співтворець Unix і творець мови C.
Його внесок критично важливий:
- C стала мовою, якою Unix став переносимим;
- Unix і C разом сформували стиль системного програмування;
- багато сучасних мов, компіляторів і систем досі несуть цей вплив.
Unix дав світу модель операційної системи, а C дала спосіб переносити цю модель між різним обладнанням.
Brian Kernighan
Brian Kernighan — важлива постать Unix-культури, автор і співавтор класичних книг та інструментів.
Він повʼязаний із:
- популяризацією Unix;
- книгою про мову C разом із Dennis Ritchie;
- AWK;
- Unix-документацією;
- поясненням Unix-філософії.
Douglas McIlroy
Douglas McIlroy — один із людей, повʼязаних із концепцією pipes і Unix-філософією.
Pipes стали однією з найважливіших ідей Unix, бо дозволили зʼєднувати програми між собою.
Приклад:
cat access.log | grep "error" | wc -l
Unix-філософія
Unix-філософія — це набір принципів проєктування програм і систем.
Типові ідеї:
- робити одну річ добре;
- поєднувати програми через текстові потоки;
- використовувати прості формати;
- писати програми, які можна комбінувати;
- уникати зайвої складності;
- робити інструменти придатними для автоматизації.
Unix-філософія каже: не створюй одну гігантську програму для всього. Створи прості інструменти, які можна поєднувати.
Everything is a file
Одна з відомих ідей Unix — everything is a file.
Це означає, що багато обʼєктів системи представлені через файлову модель:
- звичайні файли;
- каталоги;
- пристрої;
- термінали;
- pipes;
- sockets;
- псевдофайлові системи.
Приклади:
/dev/null /dev/tty /proc /etc/passwd
Коли система представляє багато речей як файли, з ними можна працювати однаковими інструментами: читати, писати, перенаправляти, фільтрувати.
Pipes
Pipe передає результат однієї програми іншій.
Символ pipe:
|
Приклад:
ps aux | grep nginx
Порахувати кількість рядків із помилками:
grep "error" app.log | wc -l
Сортування і підрахунок:
cat names.txt | sort | uniq -c
Pipes — це клей Unix-світу. Вони дозволяють будувати складну обробку даних із маленьких простих команд.
Shell
Shell — командна оболонка Unix.
Shell дозволяє:
- запускати команди;
- працювати з файлами;
- перенаправляти потоки;
- використовувати pipes;
- писати скрипти;
- автоматизувати задачі;
- керувати процесами;
- запускати програми.
Популярні shell:
| Shell | Опис |
|---|---|
| sh | Класична Bourne shell |
| bash | Bourne Again Shell, дуже поширена в Linux-світі |
| zsh | Зручна інтерактивна shell, популярна в macOS і серед розробників |
| ksh | KornShell, історично важлива shell |
| csh / tcsh | C shell і її розвиток |
| fish | Friendly Interactive Shell, зручна сучасна shell |
sh
sh — класична shell Unix-систем.
Приклад скрипта:
#!/bin/sh
echo "Hello from Unix shell"
Команди Unix
Багато Unix-команд досі використовуються в Linux, macOS, BSD і серверних системах.
| Команда | Що робить |
|---|---|
| ls | Показує файли |
| cd | Переходить у каталог |
| pwd | Показує поточний каталог |
| cp | Копіює файли |
| mv | Переміщує або перейменовує файли |
| rm | Видаляє файли |
| cat | Виводить вміст файлу |
| grep | Шукає текст |
| find | Шукає файли |
| sed | Потоковий редактор |
| awk | Обробка тексту й колонок |
| sort | Сортує рядки |
| uniq | Прибирає або рахує повтори |
| wc | Рахує рядки, слова, символи |
| chmod | Змінює права доступу |
| chown | Змінює власника |
| ps | Показує процеси |
| kill | Надсилає сигнал процесу |
Приклад Unix-стилю
Знайти всі log-файли, вибрати рядки з error і порахувати їх:
find . -name "*.log" -type f -print0 | xargs -0 grep -i "error" | wc -l
Ця команда поєднує:
- find;
- xargs;
- grep;
- wc;
- pipe;
- текстові потоки.
Файлова система Unix
Unix використовує ієрархічну файлову систему.
Корінь:
/
Типові каталоги:
| Каталог | Призначення |
|---|---|
| /bin | Основні виконувані програми |
| /sbin | Системні утиліти |
| /etc | Конфігураційні файли |
| /home | Домашні каталоги користувачів у багатьох Unix-like системах |
| /usr | Програми, бібліотеки, документація |
| /var | Логи, кеші, spool, змінні дані |
| /tmp | Тимчасові файли |
| /dev | Пристрої як файли |
| /proc | Псевдофайлова система процесів у багатьох Unix-like системах |
| /opt | Додаткове програмне забезпечення |
Користувачі й права доступу
Unix із самого початку був багатокористувацькою системою.
Основні поняття:
- user;
- group;
- owner;
- permissions;
- root;
- process owner;
- file owner;
- read/write/execute.
Права:
| Символ | Значення |
|---|---|
| r | read, читання |
| w | write, запис |
| x | execute, виконання |
Приклад:
ls -l
Результат:
-rwxr-xr--
chmod
chmod змінює права доступу.
Зробити файл виконуваним:
chmod +x script.sh
Встановити права 755:
chmod 755 script.sh
chown
chown змінює власника файлу.
sudo chown user:group file.txt
Рекурсивно:
sudo chown -R user:group /path/to/folder
Рекурсивні команди з правами адміністратора потрібно виконувати обережно, бо вони можуть змінити багато файлів одразу.
root
root — суперкористувач Unix-системи.
Root може:
- змінювати системні файли;
- керувати користувачами;
- встановлювати програми;
- змінювати права;
- запускати системні служби;
- керувати мережею;
- виконувати адміністративні дії.
Root має майже повну владу над системою. Тому працювати постійно під root — погана практика.
Процеси
Unix має модель процесів.
Кожна запущена програма є процесом.
Основні поняття:
- PID;
- parent process;
- child process;
- signals;
- foreground process;
- background process;
- daemon.
Команди:
ps aux
kill 1234
jobs
bg
fg
Сигнали
Signals — механізм повідомлення процесів.
Приклади:
| Сигнал | Значення |
|---|---|
| SIGTERM | Прохання завершитись |
| SIGKILL | Примусове завершення |
| SIGHUP | Часто використовується для перечитування конфігурації |
| SIGINT | Переривання, наприклад Ctrl+C |
Приклад:
kill -TERM 1234
Daemons
Daemon — фоновий процес Unix-системи.
Приклади:
- web server;
- cron;
- sshd;
- syslog;
- database server;
- mail server;
- print service.
cron
cron — класичний Unix-механізм запуску задач за розкладом.
Приклад запуску backup щодня о 02:00:
0 2 * * * /home/user/backup.sh
Формат:
хвилина година день_місяця місяць день_тижня команда
Стандартні потоки
Unix-програми мають стандартні потоки.
| Потік | Номер | Призначення |
|---|---|---|
| stdin | 0 | Стандартне введення |
| stdout | 1 | Стандартне виведення |
| stderr | 2 | Стандартний потік помилок |
Приклади redirect:
echo "Hello" > output.txt
command 2> errors.log
command > output.log 2>&1
POSIX
POSIX — набір стандартів, які описують інтерфейси Unix-подібних операційних систем.
POSIX важливий для:
- переносимості програм;
- shell;
- системних викликів;
- файлових операцій;
- процесів;
- потоків;
- утиліт;
- сумісності між Unix-like системами.
POSIX — це спроба формалізувати Unix-поведінку так, щоб програми могли працювати на різних системах.
Single UNIX Specification
Single UNIX Specification або SUS — специфікація The Open Group, яка визначає вимоги до систем, що можуть бути сертифіковані як UNIX®.
Актуальна специфікація — Single UNIX Specification Version 5 / 2024. Вона повʼязана з POSIX і описує інтерфейси, утиліти, заголовки, поведінку системи та вимоги до сумісності. The Open Group управляє UNIX trademark licensing program.
| Елемент | Значення |
|---|---|
| UNIX® | Торговельна марка The Open Group |
| SUS | Single UNIX Specification |
| POSIX | Набір стандартів переносимих інтерфейсів |
| Certification | Процес підтвердження відповідності системи вимогам UNIX |
Сертифіковані UNIX-системи
Сертифікованими UNIX можуть бути тільки системи, які пройшли відповідну процедуру The Open Group.
Приклади історично важливих або повʼязаних із UNIX систем:
- IBM AIX;
- HP-UX;
- Oracle Solaris;
- macOS у певних версіях;
- інші системи, що проходили сертифікацію.
Не кожна Unix-подібна система є сертифікованим UNIX®. Наприклад, Linux зазвичай називають Unix-like, але не UNIX® у строгому торговельно-стандартизованому сенсі.
BSD
BSD або Berkeley Software Distribution — важлива гілка Unix-історії, що виникла в University of California, Berkeley.
BSD вплинув на:
- TCP/IP stack;
- sockets;
- modern Unix;
- FreeBSD;
- OpenBSD;
- NetBSD;
- macOS;
- інтернет-інфраструктуру.
FreeBSD
FreeBSD — Unix-like операційна система з BSD-традиції.
Використовується для:
- серверів;
- мережевих систем;
- storage;
- firewalls;
- appliances;
- ZFS-сценаріїв;
- високонавантажених систем.
OpenBSD
OpenBSD — BSD-система з сильним акцентом на безпеку, аудит коду й простоту.
Відома завдяки:
- OpenSSH;
- security-first підходу;
- якісній документації;
- консервативному дизайну;
- чистій архітектурі.
NetBSD
NetBSD — BSD-система, відома переносимістю на багато апаратних платформ.
Її часто описують ідеєю:
Of course it runs NetBSD
Solaris
Solaris — Unix-система, історично повʼязана з Sun Microsystems, пізніше Oracle.
Відома завдяки:
- ZFS;
- DTrace;
- zones;
- enterprise-сценаріям;
- SPARC;
- серверній інфраструктурі.
illumos
illumos — відкрита гілка, що походить від OpenSolaris.
Повʼязана з:
- ZFS;
- DTrace;
- zones;
- серверними й storage-сценаріями;
- системами на кшталт OmniOS або SmartOS.
AIX
AIX — Unix-система IBM.
Використовується в enterprise-сценаріях:
- банки;
- великі компанії;
- критичні системи;
- IBM Power hardware;
- корпоративні бази даних;
- ERP.
HP-UX
HP-UX — Unix-система Hewlett-Packard / HPE.
Історично використовувалась у enterprise-середовищах:
- сервери;
- промислові системи;
- корпоративні застосунки;
- бази даних;
- великі організації.
macOS і Unix
macOS має Unix-подібну основу Darwin і в різні періоди мала UNIX-сертифікацію для певних версій.
macOS поєднує:
- Unix-подібну основу;
- Terminal;
- shell;
- POSIX-інтерфейси;
- графічний Apple UI;
- AppKit;
- Swift;
- Apple ecosystem.
macOS цікава тим, що під красивим графічним інтерфейсом Apple ховається Unix-подібна основа з shell, процесами, правами й системними інструментами.
Linux і Unix
Linux не походить безпосередньо від оригінального Unix-коду, але є Unix-подібною системою.
Linux успадкував або повторив багато Unix-ідей:
- shell;
- permissions;
- process model;
- filesystem hierarchy;
- pipes;
- signals;
- sockets;
- C API;
- POSIX-сумісність;
- command-line culture.
| Unix | Linux |
|---|---|
| Історична система Bell Labs і її нащадки | Незалежне Unix-подібне ядро, створене Лінусом Торвальдсом |
| Може означати сертифікований UNIX® | Зазвичай не є сертифікованим UNIX® |
| Комерційні й академічні гілки | Open source-екосистема дистрибутивів |
| AIX, Solaris, HP-UX, BSD-гілки | Debian, Ubuntu, Fedora, Arch, RHEL та інші |
Android і Unix
Android використовує Linux kernel, а отже має непрямий звʼязок із Unix-like світом.
Але Android не є звичайним Unix-дистрибутивом.
| Unix/Linux-like ідея | Android-реалізація |
|---|---|
| Kernel | Linux kernel |
| Застосунки | APK/AAB, Android Runtime |
| Userland | Android framework замість класичного GNU/Linux userland |
| Security | Android sandbox, permissions, SELinux |
| Shell | adb shell у технічних сценаріях |
Unix і C
Unix і C розвивалися разом.
C стала мовою, яка дозволила:
- переписати Unix з assembly на переносимішу мову;
- переносити систему на різні машини;
- створювати системні утиліти;
- писати компілятори;
- формувати API;
- вплинути на C++, Java, C#, JavaScript, Go, Rust та інші мови.
Приклад C-програми:
#include <stdio.h>
int main(void) {
printf("Hello, Unix\n");
return 0;
}
Unix і мережа
Unix-системи сильно вплинули на розвиток мережевої інфраструктури.
Важливі елементи:
- TCP/IP;
- sockets;
- inetd;
- ssh;
- telnet у старих системах;
- sendmail;
- DNS;
- NFS;
- web servers;
- network daemons.
Команди:
ping example.com
ssh user@example.com
netstat -an
Unix і інтернет
Багато ранньої інтернет-інфраструктури працювало на Unix або Unix-подібних системах.
Unix вплинув на:
- web servers;
- DNS;
- email;
- TCP/IP;
- scripting;
- log processing;
- server administration;
- open systems;
- remote access;
- network tools.
Unix і сервери
Unix-системи історично були дуже важливі для серверів.
Сценарії:
- web server;
- database server;
- mail server;
- file server;
- application server;
- scientific computing;
- enterprise systems;
- telecom;
- banking;
- universities.
Unix і DevOps
DevOps-культура багато в чому успадкувала Unix-підхід.
Unix-ідеї в DevOps:
- shell scripts;
- pipes;
- logs as text;
- config files;
- cron;
- ssh;
- small tools;
- automation;
- command-line pipelines;
- monitoring;
- deployment scripts.
DevOps виглядає сучасно, але його коріння дуже Unix-ове: автоматизація, текст, shell, процеси, мережа й маленькі інструменти.
Unix і ERP
Unix-системи історично використовувались у великих корпоративних середовищах.
ERP-сценарії:
- сервер бази даних;
- application server;
- batch jobs;
- інтеграції;
- обмін файлами;
- планові задачі;
- резервне копіювання;
- middleware;
- monitoring;
- enterprise storage;
- банківські й промислові системи.
Unix і K2 ERP
Для K2 ERP Unix важливий не обовʼязково як конкретна ОС для встановлення, а як історична й технічна основа багатьох серверних практик.
Unix-підхід корисний для K2 ERP у таких напрямах:
- серверна архітектура;
- Linux-сервери;
- shell-автоматизація;
- backup scripts;
- cron/systemd timers;
- логування;
- text-based configuration;
- API-сервіси;
- бази даних;
- Docker і Kubernetes;
- CI/CD;
- monitoring;
- POSIX-сумісні інструменти.
Типова схема:
Користувачі K2 ERP → Web / Desktop / Mobile client → Backend на Linux/Unix-like server → Database → Queue / Cache / Storage → Backup / Monitoring / Logs
Навіть якщо K2 ERP не працює на класичному UNIX®, багато її серверних практик можуть бути Unix-подібними: shell, logs, services, backup, API, cron, Linux, Docker і monitoring.
Unix у корпоративному світі
Unix довго був основою великих корпоративних систем.
Типові галузі:
- банки;
- телеком;
- університети;
- промисловість;
- авіація;
- наука;
- державні системи;
- медіа;
- інженерія;
- великі ERP-системи;
- бази даних.
Unix і безпека
Unix має сильну базову модель безпеки:
- користувачі;
- групи;
- права доступу;
- root;
- процеси від імені користувача;
- ізоляція файлів;
- системні логи;
- sudo у Unix-like системах;
- chroot у деяких сценаріях;
- SSH keys;
- audit tools.
Але безпека залежить від адміністрування:
- оновлення;
- права;
- конфігурація;
- мережеві служби;
- firewall;
- backup;
- моніторинг;
- мінімізація доступів.
Unix і документація
Unix має сильну традицію документації через manual pages.
Команда:
man ls
Приклади:
man grep
man chmod
man sh
man printf
У Unix-світі документація часто живе прямо в системі. Команда man — це перше місце, куди варто дивитися.
Man pages
Manual pages зазвичай поділяються на секції.
| Секція | Зміст |
|---|---|
| 1 | Команди користувача |
| 2 | Системні виклики |
| 3 | Бібліотечні функції |
| 4 | Спеціальні файли |
| 5 | Формати файлів |
| 6 | Ігри |
| 7 | Огляди, conventions |
| 8 | Адміністративні команди |
Переваги Unix
| Перевага | Пояснення |
|---|---|
| Простота концепцій | Файли, процеси, shell, pipes і permissions створюють зрозумілу модель |
| Композиційність | Команди можна поєднувати в pipelines |
| Переносимість | C і POSIX-ідеї допомогли переносити програми між системами |
| Стабільність | Unix-системи історично сильні в довготривалих серверних сценаріях |
| Багатокористувацька модель | Unix із самого початку був розрахований на кількох користувачів |
| Сильна CLI-культура | Shell і команди зручні для автоматизації |
| Вплив на сучасне IT | Linux, macOS, BSD, Android і DevOps несуть Unix-спадщину |
Недоліки Unix
| Недолік | Пояснення |
|---|---|
| Складність для новачків | Shell, права, процеси й конфігурації потребують навчання |
| Історична фрагментація | Різні Unix-гілки мали різні команди, API й інструменти |
| Комерційні Unix-системи можуть бути дорогими | AIX, HP-UX, Solaris у enterprise-сценаріях повʼязані з обладнанням і підтримкою |
| Не всі системи однаково сумісні | POSIX і SUS допомагають, але деталі можуть відрізнятися |
| CLI може бути небезпечним | Потужні команди легко використати неправильно |
| Менше масового desktop-ПЗ | Класичні Unix-системи не стали головною домашньою desktop-платформою |
Типові помилки новачків у Unix-like системах
| Помилка | Чому це проблема |
|---|---|
| Працювати постійно під root | Можна випадково пошкодити систему |
| Копіювати команди без розуміння | Команда може змінити права, видалити файли або зламати конфігурацію |
| Ігнорувати man pages | Втрачається головне джерело документації |
| Не брати змінні в лапки у shell | Пробіли й спецсимволи можуть зламати скрипт |
| Плутати Unix, Linux і macOS | Це повʼязані, але різні системи |
| Не робити backup | Помилки адміністратора або диска можуть призвести до втрати даних |
Unix у порівнянні з іншими ОС
| Система | Порівняння |
|---|---|
| Linux | Unix-подібна open source-екосистема, не прямий нащадок оригінального Unix-коду |
| BSD | Історично ближча Unix-гілка з університетської традиції Berkeley |
| macOS | Unix-подібна система Apple з графічним інтерфейсом і Darwin-основою |
| Windows | Має іншу історію й архітектуру, хоча підтримує багато Unix-подібних інструментів через WSL |
| Android | Використовує Linux kernel, але має власну Android-модель застосунків |
| Solaris / AIX / HP-UX | Комерційні enterprise Unix-системи |
Коли Unix-підхід — хороший вибір
| Задача | Чи підходить Unix-підхід? |
|---|---|
| Серверна інфраструктура | Дуже добре |
| Автоматизація через shell | Дуже добре |
| Обробка логів | Дуже добре |
| DevOps | Дуже добре |
| ERP backend і сервери | Добре |
| Навчання системному програмуванню | Дуже добре |
| Масовий домашній gaming desktop | Не основний сценарій |
| Windows-only програми й драйвери | Не напряму |
Рекомендований шлях вивчення Unix
| Етап | Що вивчати |
|---|---|
| 1 | Історія Unix і Bell Labs |
| 2 | Unix-філософія |
| 3 | Shell і командний рядок |
| 4 | Файлова система |
| 5 | Права доступу й користувачі |
| 6 | Процеси й сигнали |
| 7 | Pipes і redirect |
| 8 | grep, sed, awk, find |
| 9 | Shell scripts |
| 10 | cron і daemons |
| 11 | POSIX |
| 12 | C і системні виклики |
| 13 | TCP/IP і sockets |
| 14 | BSD, Linux, macOS, Solaris |
Мінімальний набір Unix-команд
| Команда | Для чого |
|---|---|
| man | Документація |
| ls | Перегляд файлів |
| cd | Перехід у каталог |
| pwd | Поточний каталог |
| cat | Виведення файлу |
| grep | Пошук тексту |
| find | Пошук файлів |
| chmod | Права доступу |
| ps | Процеси |
| kill | Сигнали процесам |
| ssh | Віддалений доступ |
| cron | Задачі за розкладом |
Корисні приклади
Поточний каталог:
pwd
Переглянути файли:
ls -la
Знайти текст:
grep -R "error" .
Знайти файли:
find . -name "*.conf"
Подивитись процеси:
ps aux
Переглянути документацію:
man grep
Простими словами
Unix — це прадід багатьох сучасних операційних систем і водночас набір ідей, які досі живуть у Linux, macOS, BSD, Android, серверах і DevOps.
Якщо сучасний сервер — це місто, то Unix — це один із перших вдалих планів такого міста: вулиці-файли, мешканці-процеси, правила-дозволи, транспорт-pipes і диспетчер-shell.
Висновок
Unix — одна з найвпливовіших технологій в історії компʼютерів.
Він важливий для:
- операційних систем;
- Linux;
- BSD;
- macOS;
- Android;
- серверів;
- DevOps;
- C;
- POSIX;
- shell;
- інтернет-інфраструктури;
- системного програмування;
- ERP-серверів;
- автоматизації;
- текстових інструментів.
Unix навчив індустрію, що операційна система може бути не тільки набором внутрішніх механізмів, а й культурою роботи: прості інструменти, текстові потоки, переносимість, автоматизація, документація й повага до командного рядка.
Unix — це система, яка стала філософією. Саме тому її ідеї пережили десятиліття й досі працюють у Linux-серверах, MacBook, Android-смартфонах, хмарі, контейнерах і бізнес-системах.
Джерела
- The Open Group — UNIX: https://www.unix.org/
- The Single UNIX Specification V5 / 2024: https://www.unix.org/overview.html
- The Open Group — UNIX Standard: https://www.opengroup.org/membership/forums/platform/unix
- The Open Group — UNIX Certification Program: https://www.opengroup.org/certifications/unix
- POSIX / The Open Group Base Specifications: https://pubs.opengroup.org/onlinepubs/9799919799/
- Dennis Ritchie — The Evolution of the Unix Time-sharing System: https://www.nokia.com/bell-labs/about/dennis-m-ritchie/hist.pdf
- The Unix Heritage Society: https://www.tuhs.org/
- FreeBSD: https://www.freebsd.org/
- OpenBSD: https://www.openbsd.org/
- NetBSD: https://www.netbsd.org/