Płyta główna jest bazowym elementem sprzętowym, który stanowi szynę dla wymiany informacji pomiędzy wszystkimi komponentami sprzętowymi na lokalnym serwerze lub PC.
Elementem płyty głównej jest również jej oprogramowanie - tzw. firmware - który obsługuje i pozwala konfigurować podzespoły do niej podłączone.
Firmware obecnych płyt głównych zapewniają:
Popularne interfejsy da firmware:
W systemie Linux istnieje wirtualny katalog /proc
. Nie reprezentuje on przestrzeni dysku twardego czy innego nośnika danych. Prawie wszystkie pliki w nim zamieszczone mają rozmiar 0 bajtów, mimo to można wyświetlić ich zawartość. Przykładowo:
itmz ~ # ls -l /proc/cpuinfo -r--r--r-- 1 root root 0 paź 25 20:20 /proc/cpuinfo itmz ~ # head -n 5 /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 42 model name : Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz
Pliki w /proc/
reprezentują interfejs dostępu do informacji dotyczących procesów i sprzętu kontrolowanego przez jądro system. Na przykład:
/proc/cpuinfo
- użyte procesory/proc/PID/
- po jednym katalogu dla każdego działającego procesu w systemie, w katalogu znajdują się informacje odnośnie procesu/proc/dma
- zarejestrowane kanały DMA/proc/filesystems
- obsługiwane systemy plików/proc/interrupts
- przypisania przerwań sprzętowych (IRQ)/proc/iomem
- mapa zarezerwowanych zakresów pamięci operacyjnej/proc/ioports
- mapa zarezerwowanych zakresów portów wejścia/wyjścia dla urządzeń/proc/irq/NR/
- katalogi z informacjami dla poszczególnych numerów przerwań/proc/loadavg
- load average systemu/proc/mdstat
- aktualna konfiguracja i status macierzy RAID/proc/meminfo
- szczegóły wykorzystania pamięci operacyjnej/proc/modules
- załadowane i użyte moduły jądra systemu/proc/partitions
- obsługiwane partycje/proc/uptime
- uptime systemu/proc/version
- wersja użytego jądra/prov/vmstat
- statystyki wirtualnej pamięciForma informacji pobranych z /proc
może być czasami nieczytelna, np. cat /proc/uptime
. Dlatego w takich przypadkach lepiej używać oprogramowania, które poprawnie zinterpretuje informacje przedstawiane przez jądro - komenda uptime
.
cat /proc/uptime uptime
Niektóre pliki zawarte w katalogu /proc
można modyfikować a przez to sterować funkcjonalnością urządzeń (wpływac na sterowniki zawarte w jądrze systemu). Przykładowo, aby włączyć forwardowanie pakietów pomiędzy interfejsami (gdy Linux ma działać jako router) wystarczy zapisać liczbę 1 w odpowiednim pliku:
cat /proc/sys/net/ipv4/ip_forward echo 1 > \ /proc/sys/net/ipv4/ip_forward
Katalog /dev
, podobnie jak /proc
jest wirtualnym katalogiem niepowiązanym z przestrzenią na nośniku danych.
Każde urządzenie obsługiwane przez system Linux (w tym dyski twarde i partycje) jest reprezentowane w systemie jako specjalny plik (ang. special file or device file). Plik ten stanowi interfejs dostępu między oprogramowaniem a sterownikiem obsługującym dane urządzenie. Dzięki temu każdy program może odwoływać się do urządzenia tak jakby był on zwykłym plikiem.
Wszystkie pliki urządzeń w systemie znajdują się specjalnym folderze /dev
(ang. device). Przykładowo, drugi dysk podłączony do systemu może przyjąć nazwę /dev/sdb
. Przykładowo, aby pozakładać partycje na tym dysku komenda do partycjonowania (np. fdisk
) musi odwołać się do pliku /dev/sdb
.
fdisk /dev/sd
Obecnie całą budową specjalnych plików w katalogu /dev
zajmuje się podsystem UDEV. UDEV może być konfigurowany przez administratora i opiera się na regułach (udev rules). UDEV rozpoznaje zmiany stanu urządzeń (np. podłączenie urządzenia USB) i na podstawie reguł definiowanych przez administratora może wykonać określone operacji. Na przykład przy podłączeniu aparatu fotograficznego urządzenie może pojawić się w systemie plików jako /dev/aparatfoto
, urządzenie może być automatycznie podmontowane pod określony katalog a nawet może być uruchomiony określony skrypt (np. przenoszenia plików z karty aparatu do systemu).
Demon hald
(Hardware Abstraction Layer Deamon) swego czasu tworzył warstwę abstrakcji sprzętowej tak, aby standaryzować interfejs obsługi urządzeń tego samego typu różnych producentów. Obecnie funkcjonalność demona hald
przejął UDEV - nie ma go we współczesnych dystrybucjach.
Podstawowe interfejsy dysków twardych podłączanych do płyt głównych:
W zależności od typu kontrolera dyskowego nazwy plików dysków twardych przyjmują następujące nazwy:
/dev/hdX
/dev/sdX
/dev/sdX
/dev/stX
/dev/scdX
Urządzenia do komunikacji z CPU i powiadomienia go o tym, że potrzebują obsługi używają przerwań. Dawniej urządzenia trzeba było ręcznie przypisywać do określonego numeru przerwania IRQ (Interrupt Request).
Przykładowe podstawowe urządzenia i porty oraz przypisane do nich przerwania (przypisanie to stanowi standard):
Dawniej przypisanie linii przerwania do urządzeń realizowało się przez przestawienie na płycie głównej odpowiednich zworek (jumpers) zgodnie z instrukcją płyty głównej. Później wprowadzono możliwość programowej konfiguracji w interfejsie BIOS. Następnie, dzięki kontrolerowi APIC (Advanced Programmable Interrupt Controller) rozszerzono obsługę do 255 urządzeń jednocześnie (kiedyś tylko 16).
Aktualną listę przerwań wraz z liczbą wykonanych wywołań dla każdego procesora można obejrzeć wywołując poniższą komendę:
cat /proc/interrupts
Urządzenia wejścia/wyjścia (I/O) musza komunikować się z systemem oraz muszą czasami korzystać z pamięci. Do obsługi tej komunikacji wykorzystywane są porty I/O:
cat /proc/ioports
Zakres pamięci przydzielona każdemu z urządzeń można obejrzeć na mapie pamięci IO:
cat /proc/iomem
Przed erą Plug-and-Play zakres adresacji należało ustawiać w BIOS dla każdego urządzenia, aby nie współdzieliły tych samych adresów i nie pojawiły się konflikty.
Do wyświetlania listy podłączonych urządzeń do płyty głównej czy przez interfejs USB przydają się dwie poniższe komendy:
lspci [-v] lsusb [-v]
Kolejny katalog wirtualny /sys
(Sysfs - sys file system) jest kontenerem w systemie plików zawierającym reprezentantów urządzeń, sterowników oraz innych podsystemów jądra zarządzanych przez niego. W katalogu /sys
można znaleźć podziały na różne kategorie. Przykładowo /sys/fs
posiada wewnątrz podkatalogów podział na wykorzystywane obecnie systemy plików.
d-bus – interfejs komunikacji między programami, używany również jako interfejs do powiadamiania o podłączanych lub odłączanych urządzeniach
Urządzenia są reprezentowane przez unikalny identyfikator UUID (Universally Uniq Identificator). Można go odczytać za pomocą komendy
blkid DEVICE
Obecne kontrolery USB i nazwy modułów w nawiasach:
Jednym z głównych funkcjonalności jądra systemu jest obsługa urządzeń. Obsługa ta jest możliwa dzięki sterownikom, które mogą być wkompilowane na stałe w jądro systemu albo mogą być „ładowane” do jądra już w trakcie działania systemu. Te druga opcja jest o tyle wygodna, że samo jądro nie zajmuje wtedy dużo miejsca w pamięci, gdyż użyte są tylko te sterowniki, które rzeczywiście systemowi są potrzebne. Sama operacja ładowania modułów obecnie przeprowadzana jest automatycznie. Administrator ma jednak możliwość załadowania dodatkowego modułu (włączenia określonego sterownika)
modprobe MODUL
lub wyłączenia modułu z pamięci (wyłączenie sterownika):
rmmod MODUL
Listę załadowanych obecnie modułów wyświetla komenda
lsmod
DMA (Direct Memory Access) umożliwia bezpośrednie zapisywanie w pamięci danych przez urządzenie bez udziału CPU. Listę zarejestrowanych kanałów DMA można wyświetlić za pomocą:
cat /proc/dma
System Linux wspiera urządzenia obu typów:
D-Bus - system komunikacji między procesami - w systemie Linux stanowi zestaw podsystemów złożonych z bibliotek i demona, dzięki którym aplikacje mogę lepiej współpracować ze sobą. D-Bus zapewnia szynę wymiany informacji pomiędzy programami i może na przykład informację pochodzącą z jednej aplikacji przesłać do wielu innych aplikacji równolegle. Jest stosowany w GUI GNOME czy XFCE.
Przez wiele lat obsługę partycji w systemach plików oparta była o Master Boot Record (32-bitowe adresowanie). Charakterystycznymi cechami MBR jest:
Narzędzia do zakładania partycji z MBR: fdisk
, cfdisk
, parted
, graficzny gparted
GUID Partition Table to nowe, 64-bitowe adresowanie, które charakteryzuje się:
Narzędzia do zarządzania partycjami: gdisk
, parted
, graficzny gparted
kilobajt kB to 10^3 bajtów (1000^1) czyli 8000 bitów
kibibajt KiB to 2^10 bajtów (1024^1) czyli 8192 bitów
megabajt MB to 10^6 bajtów (1000^2) czyli 8000000 bitów
mebibajt MiB to 2^20 bajtów (1024^2) czyli 8388608 bitów