---
##

- [1. Философия UNIX: «Everything is a file»]
- [2. Как работает VFS — Virtual File System]
- [3. Файловая иерархия Linux]
- [4. /dev — устройства как файлы]
- [5. /proc — процессы и ядро]
- [6. /sys — драйверы и атрибуты]
- [7. Управление системой через файлы]
- [8. Сокеты, TTY и файловые дескрипторы]
- [9. Память как файл]
- [10. FIFO, каналы и пайпы]
- [11. Плюсы и минусы подхода]
- [12. Чек-лист практики]
- [13. Полезные ссылки и man-страницы]
## 1. Философия UNIX: «Everything is a file»
В 1970-х создатели UNIX решили:
Это значит, что:
- Жёсткий диск, веб-камера, сетевой порт, процесс и даже сокет TCP/IP — всё имеет файловый интерфейс.
- Мы используем одинаковые вызовы:
open()
,read()
,write()
,ioctl()
,close()
.
Это делает систему универсальной: если ты умеешь читать файл, значит умеешь читать температуру процессора, управлять сетью и работать с USB-устройствами.
---
## 2. Как работает VFS — Virtual File System
VFS — слой ядра, который абстрагирует доступ к разным источникам данных:
- EXT4, XFS, Btrfs, ZFS — обычные файловые системы
/proc
и/sys
— виртуальные системы/dev
— устройства как файлы- Сетевые сокеты
- Пайпы и FIFO
VFS делает так, что приложение видит всё как файлы, хотя ядро под капотом работает с совершенно разными объектами.
---
## 3. Файловая иерархия Linux
Linux использует единую иерархию — нет разделения на диски (C:, D

/
.| Путь | Назначение |
|--------|-------------------------------------------|
|
/
| Корень всей системы ||
/dev
| Файлы устройств ||
/proc
| Виртуальные файлы процессов и ядра ||
/sys
| Драйверы, устройства, параметры системы ||
/etc
| Конфигурационные файлы ||
/home
| Домашние каталоги пользователей ||
/var
| Логи, базы данных, очереди ||
/tmp
| Временные файлы ||
/run
| Временные сокеты и данные процессов |Пример:
Bash:
tree -L 1 /
/
├── bin
├── boot
├── dev
├── etc
├── home
├── lib
├── proc
├── sys
└── var
---
## 4. /dev — устройства как файлы
Всё оборудование отображается как файлы.
Примеры устройств:
- Жёсткие диски:
/dev/sda
,/dev/nvme0n1
- USB:
/dev/bus/usb/001/002
- Веб-камера:
/dev/video0
- Звук:
/dev/snd/
- Клавиатура/мышь:
/dev/input/*
Посмотрим диск:
Bash:
ls -lh /dev/sda
brw-rw---- 1 root disk 8, 0 Sep 9 18:42 /dev/sda
b
→ блочное устройствоrw
→ права8,0
→ идентификатор
Прочитаем первые 512 байт MBR:
Bash:
sudo dd if=/dev/sda bs=512 count=1 | hexdump -C
---
## 5. /proc — процессы и ядро
/proc
— виртуальная файловая система, которую ядро создаёт «на лету». Содержит информацию о процессах и параметрах ядра.
Полезные файлы:
Bash:
cat /proc/cpuinfo # Информация о CPU
cat /proc/meminfo # Оперативная память
cat /proc/uptime # Время работы системы
cat /proc/partitions # Разделы дисков
Информация о процессах:
Bash:
ls /proc # PID процессов
ls /proc/$$/fd # Файлы текущего shell
cat /proc/$$/status # Статус shell-процесса
---
## 6. /sys — драйверы и атрибуты
/sys
(sysfs) — интерфейс к драйверам и железу.Примеры:
Bash:
ls /sys/class/net # Сетевые интерфейсы
ls /sys/block # Диски и разделы
ls /sys/class/thermal # Датчики температуры
Чтение температуры CPU:
Bash:
cat /sys/class/thermal/thermal_zone0/temp
Обычно значение делится на 1000:
42000 → 42.0°C
.---
## 7. Управление системой через файлы
Изменение параметров ядра = запись значения в файл.
Пример: включаем IP forwarding:
Bash:
echo 1 > /proc/sys/net/ipv4/ip_forward
Альтернатива:
Bash:
sysctl -w net.ipv4.ip_forward=1
Меняем лимит открытых файлов:
Bash:
echo 65535 > /proc/sys/fs/file-max
Сделать изменения постоянными:
Bash:
sudo nano /etc/sysctl.conf
---
## 8. Сокеты, TTY и файловые дескрипторы
Файловые дескрипторы — числовые ссылки на открытые файлы:
0
— stdin1
— stdout2
— stderr
Список дескрипторов текущего shell:
Bash:
ls -l /proc/$$/fd
Сетевые соединения — тоже файлы:
Bash:
lsof -i -P -n
Отправляем сообщение в чужой терминал:
Bash:
echo "Привет!" > /dev/pts/1
---
## 9. Память как файл
Linux предоставляет доступ к памяти как файлу:
/dev/mem
→ физическая память/proc/kcore
→ дамп ядра
Пример:
Bash:
sudo hexdump -C /dev/mem | head

---
## 10. FIFO, каналы и пайпы
Linux позволяет соединять процессы через пайпы:
Bash:
dmesg | grep error
Создание именованного канала:
Bash:
mkfifo mypipe
echo "data" > mypipe &
cat mypipe
---
## 11. Плюсы и минусы подхода
###

- Универсальный интерфейс
- Простота API
- Лёгкость автоматизации
- Мощные пайплайны команд
###

/proc
и/sys
пугают новичков- Ошибочная запись может сломать ядро
- Разные ядра → разные атрибуты
---
## 12. Чек-лист практики
- [ ] Проверить CPU →
cat /proc/cpuinfo
- [ ] Посмотреть диски →
lsblk
- [ ] Изучить температуру CPU →
cat /sys/class/thermal/thermal_zone0/temp
- [ ] Найти сетевые сокеты →
ss -tulpn
- [ ] Проверить процессы →
ps aux | less
- [ ] Настроить sysctl →
sysctl -a | less
---
## 13. Полезные ссылки и man-страницы
-
Чтобы увидеть нужно авторизоваться или зарегистрироваться.
man 5 proc
man 5 sysfs
man 2 open
man 2 read
man 2 write
man 7 unix
man 7 fifo
---
##

Linux строится на фундаментальной идее:
Эта философия:
- упрощает разработку,
- делает систему гибкой,
- открывает доступ к мощнейшим инструментам.
Если ты умеешь читать файлы — ты уже умеешь управлять системой.