« November 2005 | Main | Januar 2006 »
21.12.05
Script Info I-AG 10. 12. 2005 (Milan)
Theorie:
BIOS
Das BIOS übergibt die Kontrolle an ein weiteres Programm. Dieses wird je nach Einstellung im BIOS gesucht aufCD -> ???
Diskette -> Bootsektor
Festplatte -> MBR
MBR
Der MBR enthält den Bootloader, welcher dafür zuständig ist, das Betriebssystem zu laden. Um Linux zu laden, wird i. d. R. LILO oder GRUB verwendet. GRUB (LILO vermutlich auch) sind auch im Stande, an Stelle von Linux ein Windows zu laden. Wenn sich also Linux und Windows in verschiedenen Partitionen auf einer Festplatte befinden, kann man wenn der Bootloader vom BIOS gestartet wurde auswählen, welches gestartet wurde. Ebenso ist es möglich, verschiedene Linux-Betriebssysteme auf ein und dem selben Rechner zu installieren, und beim Start eines davon auszuwählen.Der Kernel
Wurde der Linux-Kernel vom Bootloader gestartet, untersucht dieser die im System vorhandene Hardware. Ist die Festplatte gefunden, versucht der Kernel den Init-Prozess von einer ihm vom Bootloader angegebenen Partition geladen. Schlägt dies fehl (z. B. weil die falsche Partition angegeben wurde) gibt es einen sog. kernel panic, was zum völligen Stop aller Systemaktivitäten (und damit zum Abbruch des Startvorgangs) führt.INIT
INIT startet alle Systemprozesse und fungiert darüber hinaus als Elternprozess für alle anderen Prozesse. Um flexibel festzulegen, welche Systemprozesse gestartet werden sollen, gibt es sog. runlevel.Runlevel 0
Wenn das System schon läuft, kann in runlevel 0 gewechselt werden, um das System herunterzufahren.Runlevel 1, 2, 3
Stehen in der Regel für Einzelbenutzermodus, Mehrbenutzermodus (beide ohne Netzwerk) und Mehrbenutzermodus mit Netzwerk. Können insgesamt als eingeschränktes System bezeichnet werden.Runlevel 4
Wird in der Regel nicht benutzt. Kann bei Bedarf natürlich verwendet werden.Runlevel 5
Wenn in Runlevel 5 gewechselt wird, wird normalerweise das komplette System mit grafischer Oberfläche etc etc gestartet.Runlevel 6
Gleich wie Runlevel 0, nur das am Ende der Rechner nicht ausgeschaltet, sondern neu gestartet wird.Praxis:
Der Kernel:
Die Binärdatei, die den lauffähigen Kernel enthält, die vom Bootloader geladen wird, findet sich normalerweise in /boot.Nützliche Befehle im Zusammenhang mit dem Kernel:
lsmod =
Steht für list modules. Listet alle im Kernel geladenen Kernel-Module auf. Kann z. B. verwendet werden, um zu überprüfen, ob ein bestimmtes Treibermodul geladen ist.
modprobe / insmod =
lädt ein Kernelmodul im laufenden Betrieb. Kernelmodule befinden sich i. d. R. in /lib/modules/Kernelversion
uname -r =
Gibt die Version des momentan laufenden Kernels aus
ps -e
= Zeigt alle laufenden Prozesse im System.
top =
Zeigt eine laufend aktualisierte Liste aller laufenden Prozesse, sortiert nach ihrer momentanenen Beanspruchung der CPU
INIT:
/etc/inittab =
Legt grundlegende Einstellung für den Init-Prozess fest, z. B. den Standardrunlevel, der beim Systemstart aufgerufen werden soll. Die Datei ist normalerweise mit vielen Kommentaren geschmückt, im Zweifelsfall hilft auch man inittab
/etc/init.d =
Enthält die sog. Init-Skrpiten, die vom Init-Prozess je nach Konfiguration aufgerufen werden, und verschiedene Prozesse, wie z. B. einen Apache-Webserver oder den X-Server für die grafische Oberfläche auf dem Bildschirm. Die Init-Skripten sind i. d. R. in der Skript- und Shell-Sprache Bash geschrieben.
Wenn z. B. das Skript /etc/init.d/apache2 zum Apache-Webserver (Version 2) gehört, kann dieser mit /etc/init.d/apache2 start gestartet, mit /etc/init.d/apache2 restart / stop neugestartet oder beendet werden.
/etc/rc[0123456].d (/etc/rc0.d, /etc/rc1.d, ...) =
Diese Verzeichnisse enthalten Verweise auf die Dateien aus /etc/init.d, die im entsprechenden Runlevel gestartet werden sollen. (Ein Verweisname von S20apache2 heißt, dass der Apache-Webserver gestartet, K30apache2 dass er im diesem Runlevel gestopt werden soll. Die Nummer legt die Reihenfolge fest.) (dieses Schema wird oft Sys-V init scripts genannt.)
Auf manchen Systemen funktioniert das ganze allerdings ein wenig anders; dort werden zunächst alle Skripte in /etc/init.d aufgerufen, und danach ggf. weitere aus /etc/rc[0123456].d.
Auf wieder anderen Systemen (z. B. gentoo) werden zu startende Systemprozesse auch über Verweise in /etc/runlevels festgelegt. (gentoo-style init scripts)
Links:
Linuxfibel - BootenPosted by e0 at 16:41 | TrackBack
Script Info I-AG 12. 11. 2005 (Martin)
Zunächst hörten wir uns verschiedene Referate der Teilnehmer zu grafischen Programmen, die unter KDE laufen, an. Der Konqueror wurde uns als Datei- und als Webbrowser vorgestellt. Seine Besonderheit, unterschiedliche Dateiformate direkt anzuzeigen oder abzuspielen, wurde demonstriert. So lassen sich beispielsweise pdf-Dateien oder Bilddateien ohne ein unmittelbar sichtbares externes Programm anzeigen. Weiterhin wurde das Grafikprogramm GIMP vorgestellt. Da es sehr mächtig ist, mussten wir uns auf wenige Funtionen, wie das Ebenenkonzept, beschränken. Diese wurden in Abgrenzung zum Programm Photoshop erläutert. Es wurde deutlich, dass es immer mehr als einen Lösungsweg für ein Problem gibt. Zuletzt wurde das Office-Paket OpenOffice anhand dessen Textverarbeitungsprogramms vorgestellt. Der Formeleditor wurde dabei
ebenfalls behandelt.
Im Anschluss wurde der berühmt berüchtigte Texteditor vi eingeführt. Folgendes ist bei seiner Benutzung zu beachten: Es gibt mehrere Modi, in denen sich der Editor befinden kann:
Im Kommandomodus, der durch den Doppelpunkt gestartet wird, sind folgende Kommandos relevant:
:q - Beendet den vi
:w - Speichert die Datei
:q! - Beendet, auch wenn nicht gespeichert wurde.
Diese Kommandos lassen sich auch kombinieren, so beendet ":wq" den Editor und speichert das aktuelle Dokument. Der Kommandomodus wird verlassen, indem ein Kommando mit "Enter" ausgeführt wird, oder das Kommando mit "Esc" abgebrochen wird.
Im Standardmodus gelten folgende Kommandos:
k - Cursor nach oben
j - Cursor nach unten
h - Cursor nach links
l - Cursor nach rechts
w - Cursor ein Wort weiter
/ - vorwärts suchen
? - rückwärts suchen
x - löscht ein Zeichen
dd - löscht eine Zeile
dw - löscht ein Wort
u - letzte Aktion widerrufen
yy - kopiert eine Zeile
p - fügt ein
Durch i, I, a, A, o oder O wechselt man in den Eigabemodus, der mit "Esc" wieder beendet wird.
i - vor dem aktuellen Zeichen schreiben
a - nach dem aktuellen Zeichen schreiben
I - am Zeilenanfang schreiben
A - am Zeilenende schreiben
o - neue Zeile nach der aktuellen einfügen und darin schreiben
O - dito nur vor der aktuellen Zeile
Posted by e0 at 16:38 | TrackBack
10.12.05
Script InfoI-AG 15. 10. 2005 (Milan)
Übersicht:
- Dateisystem
- Übersicht über einige Gerätedateien
- Die Wichtigsten Shell-Kommandos
- Dateizugriffsberechtigungen
Dateisystem:
/proc Systemzustände, z. B. Akkustand bei einem Notebook
/root Homeverzeichnis von root
/home Homeverzeichnisse der Benutzer
/boot Kernel, Boot-Loader (GRUB, LILO)
/etc Systemweite Konfigurationsdateien
/dev Verbindung zu den Geräten (werden zum mounten benötigt)
/bin (Meistens) zum Booten benötigte Programme
/sbin (Meistens) zum Booten benötigte Programme für root (s -> super user)
/usr Programme, Programmdateien, Programmbibliotheken (steht afaik für Unix System Resource)
/lib (Meistens) zum booten benötigte Programmbibliotheken
/mnt Einhängbare Geräte
Übersicht über Gerätedateien:
hda Erstes IDE-Gerät (Primary Master)
hdb, hdc, hdd, ... Weitere IDE-Geräte (Primary Slave, Secondary Master, Secondary Slave, ...)
hda1, hda2, ... (hdb1, ...) Partition auf hda, wenn auf hda (hdb) eine lesbare Partitionstabelle gefunden wurde
sda Erstes SCSI-Gerät (USB-Sticks sind in der Regel SCSI-Geräte!)
zero Liefert beim Lesen Nullen (binäre nullen, nicht ASCII-Nullen)
null Liefert beim Lesen EOF und verwirft geschriebene Daten
Wichtige Befehle:
bash
- Kommandozeile / Shell / DOS-Eingabeaufforderung (*wee* ^^)
ls
- Dateilisting des aktuellen Verzeichnisses
ls /root
- Dateilisting von /root
ls -alh /root
- Dateilisting von /root, versteckte Dateien anzeigen (a -> all), ausführliche Auflistung (l -> long), Dateigrößen in MByte / GByte / ... (h -> human readable units)
cd verzeichnis
- Verzeichnis zu verzeichnis wechseln (change directory)
pwd
- aktuelles Verzeichnis anzeigen
cd ..
- ein Verzeichnis nach oben wechseln
rm datei
- datei löschen (remove)
rm -r verzeichnis
- verzeichnis rekursiv löschen
rm -rf verzeichnis
- verzeichnis rekursiv ohne Nachfrage löschen (Nachts um zwei ausführen ^^)
rmdir verzeichnis
- (leeres) Verzeichnis namens verzeichnis löschen (remove directory)
touch datei
- leere Datei namens datei anlegen
cat datei
- Inhalt von datei anzeigen
hexdump -C datei
- Hex-Listing von datei anzeigen (nützlich für Binärdateien)
hexdump -C /dev/hda
- Hex-Listing (sehr wahrscheinlich) der ersten Festplatte anzeigen ^^
less datei
- Inhalt von datei scrollbar anzeigen (Beenden mit q)
cp datei datei-kopie
- datei nach datei-kopie kopieren
mv datei neuername
- datei nach neuername verschieben
mount
- momentan eingehängte Dateisysteme anzeigen
mount /dev/hda2 /mnt/daten
- Dateisystem auf /dev/hda2 in /mnt/daten einhängen
chmod 755 datei
- Berechtigungen von datei auf 755 ändern
chown benutzer:gruppe datei
- Besitzer von datei auf benutzer und gruppe ändern
Dateizugriffsberechtigungen
Für eine Datei kann jeweils für den Besitzer, für Benutzer, die der der Datei zugordneten Gruppe angehören, und für alle übrigen Benutzer festgelegt werden, welche Operationen erlaubt sind. Mögliche Operationon sind r (read, Datei lesen), w (write, Datei schreiben) und x (execute, Datei ausführen).
ls -l gibt die Zugriffsberechtigungen z. B. in der Form rw-r--r-- oder rwxr-xr-x aus. Dabei stehen jeweils drei Zeichen für das erlauben (r, w, x) oder Verweigern (-) der Aktion für Benutzer, Gruppe und Rest (in dieser Reihenfolge.
Beispiel: rwx-rw-r-x heißt, dass der Besitzer lesen, schreiben und ausführen, die Benutzer der Gruppe der Datei lesen und schreiben (aber nicht ausführen) und alle anderen lesen und ausführen (aber nicht schreiben) dürfen.
Für Verzeichnisse heißt r, das die Namen der im Verzeichnis enthaltenen Dateien und Verzeichnisse aufgerufen werden dürfen, und x heißt, dass Zugriff auf beliebige Dateien und Verzeichnisse unterhalb dieses Verzeichnisses gestattet ist, wenn dies die Berechtigung der Datei selbst ebenfalls erlauben. Wenn ein Benutzer auf einem Verzeichnis kein x darf, darf er auf keine der enthaltenen Dateien und Verzeichnisse zugreifen, auch wenn es die Berechtigungen der Datei selbst gestatten würden.
User Group World
r w x r w x r w x
4 2 1 4 2 1 4 2 1
Beispiel: rwxr-xr-x -> 4+2+1=7, 4+1=5, also 755; rw-rw-r-- -> 4+2=6, sowie 4, also 664.
Posted by e0 at 07:38 | Comments (1) | TrackBack
09.12.05
Info-AG I am kommenden Samstag den 10.12.05
Am nächsten Samstag den 10.12.05 ist wieder Info-AG am üblichen Ort. Thema soll diesmal der Startprozess eines Linux-Systems sein. Ich hoffe Ihr habt "vi" gut verdaut und seit bis Samstag einigermaßen fit darin. Schaut euch Euren Aufschrieb am Besten noch mal an. Wir werden außerdem das Jahr 2005 gemütlich mit ein paar Lebkuchen ausklingeln lassen. Ich setze auf euer zahlreiches Erscheinen (Hab keine Lust das ganze Zeug wieder heimzuschleppen :) ).Posted by e0 at 00:21 | TrackBack
02.12.05
Nächste Informatik-AG II: Morgen, Samstag 3.12.
Die nächste Informatik-AG II findet am morgigen Samstag, 3.12., ab 10:00 Uhr statt. Wir treffen uns mit den Teilnehmern der Elektrotechnik-AG von Jochen Kaiser im LEU. Dabei werden wir einen oder mehrere Berichte über die Inhalte seiner AG verfassen.