Płyta główna

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:

Katalog /proc

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:

Forma 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, UDEV, HAL

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.

Interfejsy dysków twardych

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:

IRQ - przerwania

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

Adresacja I/O

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.

Lista urządzeń

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]

Katalog /sys

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

UUID

Urządzenia są reprezentowane przez unikalny identyfikator UUID (Universally Uniq Identificator). Można go odczytać za pomocą komendy

blkid DEVICE

Kontrolery USB

Obecne kontrolery USB i nazwy modułów w nawiasach:

Moduły jądra

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

Inne

DMA

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

Coldplug and hotplug devices

System Linux wspiera urządzenia obu typów:

D-Bus

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.

MBR (BIOS) vs GPT (UEFI)

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: fdiskcfdiskparted, graficzny gparted

GUID Partition Table to nowe, 64-bitowe adresowanie, które charakteryzuje się:

Narzędzia do zarządzania partycjami: gdiskparted, graficzny gparted

Nazewnictwo prefiksów binarnych i dziesiętnych

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

Orders of magnitude