Системни директории
data partition: системните данни на Линукс. В повечето Линукс системи ID на дяла с данни е 83 (виж изхода от командата fdisk: https://dreamlandpoly.blogspot.com/p/linux-file-system-1.html#fdisk-l).
swap partition: разширение на компютърната физическа памет, допълнителна памет от твърдия диск (използването ѝ е по-бавно, отколкото реалната памет на компютъра). Размерът на SWAP дяла обикновено е 2 пъти размера на RAM паметта на компютъра. В повечето Линукс системи ID на swap дяла е 82 (виж изхода от командата fdisk: https://dreamlandpoly.blogspot.com/p/linux-file-system-1.html#fdisk-l).
При сървърите задължително се създават повече партишъни с данни и swap дялове.
Системните директории съдържат файлове, приложения, скриптове, които са нeобходими за работа и управление на Линукс. Те се създават автоматично по време на инсталация на операционната система. От изхода на командата fdisk -l: https://dreamlandpoly.blogspot.com/p/linux-file-system-1.html#fdisk-l се вижда, че root директорията на файловата система е монтирана в блоково устройство sda4.
Как да получа информация за mime типа на блоковото устройство и поддиректориите, които се съдържат в root директорията?
В терминала въвеждам:
Основните системни поддиректории на root директорията (/) са: /mnt, /var, /etc, /usr, /dev, /tmp, /home, /boot (няма да изброявам всички) и схематично могат да се представят така:
Ще разгледам директория /home. За целта, в терминала въвеждам:
Какво научавам за поддиректория /home?
charset: binary;
inode: 1067647
общ брой блокове: 4;
съдържа една поддиректория: poli
брой твърди линкове към директорията: 52
собственик и група: poli poli
дължина на файла в байтове: 4096
последна модификация: 2 декември, 20:21
име на директорията: poli
Директория/Поддиректория | Описание |
---|---|
/ | Главна директория в Линукс. Всички останали файлове и директории се създават и управляват под тази директория. Размерът ѝ обикновено е 100-500 MB. Стандартната инсталация изисква около 250 MB дисково пространство. Съдържа системните конфигурационни файлове, повечето основни команди и сървърни програми, системни библиотеки, временни файлове и директорията на административно създадения потребител. |
/home | Подразбиращата се директория за потребителските данни. Винаги, когато добавим нов потребител, Линукс автоматично създава домашна директория с името на потребителя. При вход на потребител в системата, Линукс стартира сесия от тази директория. |
/boot | Съдържа файловете, необходими за зареждане на операционната система. |
/bin | Съдържа файловете за стандартните команди. Командите, съхранени в тази директория са налични за всички потребители и обикновено не се изискват специални позволения, за да се стартират. |
/dev | Съдържа файловете за устройствата, отговарящи на хардуера. Те се генерират автоматично от системата и никога не се налага редактирането им. |
/mnt | Служи като точка за монтиране на отдалечени файлови системи и външни устройства като СD, DVD, дигитална камера и др. |
/var | Съхранява данни за системните програми, променливите на средата. |
/usr | Съдържа приложенията, инсталирани от потребителя, документацията към тях и библиотеките за програмните езици. |
/tmp | Тук се съхраняват временните файлове, създадени от системата и потребителите. |
/lost+found | Съдържа файловете, съхранени по време на срив на системата. |
/proc | Виртуална файлова система, съдържаща информация за системните процеси и системните ресурси. |
/lib | Споделени библиотеки и модулите на ядрото. |
/opt | Софтуерни пакети на допълнителни приложения, инсталирани в Линукс. |
/sbin | Основни системни бинарни файлове (Файлове на основни програми на операционната система). |
/srv | Данни за услугите, доставяни от системата. |
/media | Служи като точка за монтиране на сменяеми носители. |
Блокова структура на файловата система
Всеки дял (партишън) от диска има собствена файлова система. Всяка файлова система съдържа:
- boot сектор (MBR, EFI (или UEFI)) – разположен е в първите няколко сектора на файловата система. Съдържа програмата, необходима за зареждане на операционната система и таблица с партишъните върху твърдия диск. Размерът му е 512 байта.
- superblock – описва състоянието на файловата система (общ размер на партишъните, размер на блоковете, указатели към свободни блокове, inode номера на root директорията и др.). Всяка файлова система си има суперблок, който съдържа следната информация: Тип файлова система, размер, статус (монтирана или не, други метаданни). Линукс държи множество копия на файловата система, което е много важно в случай на срив на системата, например. Тези копия могат да се ползват за ресторване на състоянието на първичния суперблок, например. Информация за първичния суперблок и резервните му копия, можем да получим чрез командата:
sudo dumpe2fs /dev/sda4 | grep -i superblock
Други полезни команди: e2fsck, tune2fs, dumpe2fs ...
- inodes – Всеки обект от файловата система се представя с неговия inode номер, който съдържа метаданни за обект от файловата система и указател към блоковете от файловата система, които съдържат данните от обекта, но не името му.
Метаданните за обект включват:
собственик на файла
група, собственик на файла;
позволения;
флагове за тип на файла – обикновен файл, директория, специално устройство, pipe ...;
размер (за обикновените файлове) и major и minor номер на устройството (за специалните устройства);
номер на блока, където е съхранен;
време за достъп;
време на промяна;
време на изтриване;
брой линкове към файла (aliases);
фрагменти;
версия;
разширени атрибути;
адрес, определящ актуалната локация на файла;
access control list (ACL) има ли поставен setuid (sticky) bit.
Как да получа inode номера на файл или директория?
Чрез командите
ls -i [път до файла/директорията]
или
stat [път до файла/директорията]
По-горе съм дала примери: Пример
Как да изтрия файл чрез неговия inode номер?
Шел (Shell)
Шелът е командния интерпретатор. Той взема командата/ите, въведени от потребителя, преобразува ги в двоичен код, подава ги на ядрото и извежда резултата:
Шелът поддържа I/O (Вход/Изход) пренасочване, което означава, че може да чете команди от нестандартни източници, като например скриптове. Шелът може да пренасочва изхода към външни устройства – принтери, сървъри за данни и т.н.
За да получа информация за всички налични шелове в системата, в терминала въвеждам:
Файлът /etc/shells съдържа пълните пътища до валидните шелове при лог в системата. Ако път до даден шел не съществува в този файл, нямаме достъп до него.
За да получа информация за текущия шел, в терминала въвеждам:
За временна промяна на текущия шел (при следващо влизане в системата, подразбиращият се шел ще се възстанови):
За постоянна промяна на шела (необходим е рестарт след изпълнение на командата в терминала):
Ядро на операционната система (Kernel)
Ядрото е сърцето на операционната система. То комуникира директно със системните устройства - памет, CPU, CDROM, твърд диск и др. Когато потребителят иска да получи достъп до някое системно устройство, въвежда команда в шела, който интерпретира командата и я подава в двоичен вид към ядрото, което я изпраща от своя страна към хардуера. Информацията достига до потребителя по обратния път.
Работа с файлове:
https://dreamlandpoly.blogspot.com/p/files-1.html
Работа с директории:
https://dreamlandpoly.blogspot.com/p/directories-1.html
Няма коментари:
Публикуване на коментар