====== LPI 1 - Aantekeningen ====== ===== Integrated devices: ===== Te vinden in /dev (alles is een file) en te beheren als modules (wat de stuurprogramma's zijn die in de kernel geladen worden). Tools om modules te beheren: lsmod; om in te voegen: insmod ===== Removable devices: ===== Worden onderverdeeld in hotplug (usb, sata raid soms) en non-hotplug (interne hdd's). Tools: lsusb, usb-devices (uitgebreide info) lspci, dmesg (lspci geeft bv ook info over GPU type) ==== procfs: ==== Virtual directory in ///proc//. Zoals devices een file zijn, zo zijn processen dat ook in de ///proc// directory. De processen krijgen een directory met //PID// nummer die allerlei informatie bevat. Omdat dit een handig systeem bleek te zijn werd de directory steeds meer misbruikt voor andere zaken zoals device en kernel informatie (cpuinfo en partitions bv). Wordt nog steeds gebruikt maar vanaf __**kernel 2.5**__ wordt //sysfs// geintroduceerd speciaal om systeeminformatie te bevatten. ==== sysfs: ==== Een virtuele directory in ///sysfs//. Het bevat informatie over blockdevices, firmware, filesystems, kernel, modules, etc. Op dit moment worden beiden gebruikt, ///proc voor alles//, ///sys voor// systeeminformatie. De verschillen: sysfs is nieuwer en erg strak gestructureerd. ==== udev: ==== Wordt geintroduceerd in __**kernel 2.6**__. //Udev// vult de ///dev// directory en doet dat veel beter dan eerder vanwege de structuur van //sysfs// die gebruikt wordt. ==== dbus ==== Als gevolg van deze ontwikkelingen ontstaat //dbus//: omdat met de komst van ///sys// (//sysfs//) en //udev// de ///dev// directory eenduidig gestructureerd wordt kan hier gebruik van gemaakt worden. Dit is de functie van //dbus//: op basis van (de informatie uit) de ///dev// directory vertelt het de software hoe om te gaan met de devices. Hierdoor hoeft niet alle software ontwikkeld te worden om te kunnen praten met hardware maar praat het met deze virtuele tussenlaag. //dbus// is een "signaling" system; het vertelt OS/Desktop applicaties actief over nieuwe hardware (denk aan USB stick). //dmesg// is de service die het signaal geeft. === Voorbeeld werking sysfs, udev, en dbus: === Wanneer een USB stick in een systeem wordt gestopt gebeurt het volgende: - //sysfs// voegt de USB stick toe aan de ///sys// directory - //udev// leest de ///sys// directory en voegt de USB stick toe aan de ///dev// directory - //dbus// ziet een nieuw device in ///dev// en vertelt de desktopomgeving hierover Het gevolg is dat de automatisch een venster wordt geopend met de inhoud van de USB stick Test utils package: Process text streams using filters (weight 3) cat: concatenate (aaneenschakelen) cut: remove sections from each line of files (op bv karakter(positie), komma, tab etc. Hoe je dit doet regel je met de switches); cut -c 2,3,4 file.txt haalt karakters 2, 3, en 4 uit iedere regel uit file.txt. expand: converts tabs to spaces; als een tab uit 3 spaces bestaat worden er dus 3 spaces neergezet. Het is dus niet zo dat elke tab 1 space wordt! Hierdoor blijft de lay-out hetzelfde. Op het oog verandert er niks aan de afstand tussen de woorden. De uitlijning blijft het zelfde. fmt: simple optimal text formatter; haalt alle rare tekens (bv word-doc/html) uit bestand. Haalt ook enters uit een bestand dus alle karakters (inclusief spaties en leestekens als punt en komma) worden achter elkaar gezet. fmt -w 5 file.txt haalt alle nietnormale karakters uit file.txt en zet het op regels van maximaal 5 karakters wijd. head: laat begin van file zien. head -n 10 file.txt laat 1e 10 regels zien. head -f laat bestand open staan om te monitoren. od: join: nl: paste: pr: sed: sort: split: tail: tr: unexpand: uniq: wc: