Dieser Computer verfgt mglicherweise ber zu wenig Arbeitsspeicher, um das Bild zu ffnen, oder das Bild ist beschdigt. Starten Sie den Computer neu, und ffnen Sie dann erneut die Datei. Wenn weiterhin das rote x angezeigt wird, mssen Sie das Bild mglicherweise lschen und dann erneut einfgen.
EinfhrunginUNIX
182.711BetriebssystemeUE
Armin Wasicek
SS 2012
Inhalt
-
UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos
07.03.12
EinfhrunginUNIX
(CPU, Speicher)
Peripheriegerte
(zur Eingabe, Ausgabe)
Software
Betriebsystem
(Kernel + Gertetreiber)
Benutzerprogramme
(Shell, Compiler, Browser, etc.)
07.03.12
EinfhrunginUNIX
UNIXuntersttztdie
gemeinsameBenutzung
derBetriebsmiAeldurch
mehrereBenutzer
07.03.12
EinfhrunginUNIX
S ignalhandling
V irtualmemory
P roces s /T hread
creation/termination
P agingpage
replacement
C P US cheduling
P agecache
IO andnetworking c omponent
V irtualfiles ys tem
T erminals
line
dis cipline
P roc es s
manag ement
c omponent
C haracter
devices
drivers
F iles ys tems
G eneric
blocklayer
IO s cheduler
B lockdevice
drivers
Interrupts
07.03.12
S ockets
Network
s tacks
Network
device
drivers
D is patcher
EinfhrunginUNIX
Bereitstellen von
Schnittstellen und
APIs fr Applikationen
(Systemcall Interface)
07.03.12
b) Ressourcen Manager
Aufteilen (Multiplexen)
und verwalten von
Ressourcen
ber Zeit: Rechenzeit,
Netzwerkzugriff
ber Raum: Speicher,
Ein-/Ausgabegerte
(z.B. Fenster am
Monitor)
EinfhrunginUNIX
AGerSilbermann,2006
07.03.12
EinfhrunginUNIX
07.03.12
EinfhrunginUNIX
Source: http://de.wikipedia.org/wiki/Geschichte_von_Unix
See also: hAp://www.levenez.com/unix/
8
Inhalt
UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos
07.03.12
EinfhrunginUNIX
Login
Was passiert beim login?
Anmeldung am System
Authentifizierung des Benutzers durch
- Benutzernamen
z.B. s0725845
- Passwort
****
(geheim)
Benutzer ist anwesend
Sitzung beginnt, erstes Programm (Shell) startet
07.03.12
EinfhrunginUNIX
10
Schlechte Passwrter
Kein Passwort
Kurze Passwrter (ich)
Leicht zu erratende Begriffe (sysprog)
Namen z.B. den eigenen, von Freunde, Bekannten
(Schauspieler), Verwandten, Feinden
EinfhrunginUNIX
11
EinfhrunginUNIX
12
Gute Passwrter
Verwenden:
Gro- und Kleinbuchstaben, Sonderzeichen, Ziffern
Sinnlose aber leicht zu merkende Zeichenfolgen
mindestens 8 Zeichen
Wie merke ich mir das?
Zb.: Akronyme:
AmE:sadS: (Alle meine Entchen :schwimmen auf dem See: )
Self Assessment: http://www.passwordmeter.com/
07.03.12
EinfhrunginUNIX
13
Shell
Nach dem Einloggen wird als erster Proze eine
Shell gestartet.
Die Shell liest und interpretiert Befehle.
Befehle haben folgende Form:
$ Befehl [Optionen] [Files] ...
$ ls l test.c a.out
$ cd /tmp
$ pwd
07.03.12
EinfhrunginUNIX
14
Inhalt
UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos
07.03.12
EinfhrunginUNIX
15
Prozesse
Ein Prozess ist der Ablauf eines Programms:
Speicherabbild des Programms
Speicher fr Programmdaten
Kontext (Betriebssystem, Prozessor, Ressourcen)
In einem UNIX System laufen viele Prozesse parallel ab
Prozesszustnde:
07.03.12
EinfhrunginUNIX
16
Prozesshierachien (pstree)
initacpid
ahc_dv_0
ahc_dv_1
bash
clock-applet
crond
cups-config-dae
cupsd
2*[dbus-daemon-1]
dbus-launch
dhcpd
gdm-binarygdm-binaryX
gdmgreeter
gdm-binarygnome-sessionssh-agent
2*[sendmail]
sesam_serversesam_server
sesam_server9*[sesam_server]
smbd5*[smbd]
sshdsshdsshdbashpine-secure.shpine
sshdsshdbashpine
3*[sshdsshdbash]
sshdsshdbashxtermbashpstree
17
Windows: Systemdienste
07.03.12
18
Task Liste
Der Kernel hat eine Liste
von aktiven Prozessen,
die Task List .
[armin@apps1 ~]$ ps
PID TTY
TIME CMD
7232 pts/0 00:00:00 bsp1
7233 pts/0 00:00:00 bsp2
7277 pts/0 00:00:00 ps
31297 pts/0 00:00:00 bash
EinfhrunginUNIX
19
DatenstrukturenzurProzessverwaltung
ProzesstabelleinLinux
bestehtausEintrgender
task_structStruktur
TabellehateinenEintrag
prolaufendemProzess
Immerresident
VerkeAetProzessein
- Queues(z.B.runqueue)
- ElternKindHierachien
07.03.12
structtask_struct{
volatilelongstate;/*1unrunnable,
...
0runnable,>0stopped*/
structlist_headrun_list;
structtask_struct*next_task,*prev_task;
...
/*taskstate*/
intexit_code,exit_signal;
pid_tpid;
...
/*pointersto(original)parentprocess,etc.*/
structtask_struct*p_opptr,*p_pptr,
...
*p_cptr,*p_ysptr,*p_osptr;
/*openfileinformation*/
structfiles_struct*files;
...
/*signalhandlers*/
structsignal_struct*sig;
}
EinfhrunginUNIX
20
EinfhrunginUNIX
21
Scheduling
Wenn sich mehrere Prozesse eine CPU teilen,
whlt das Betriebssystem den auszufhrenden
Prozess fr die nchste Zeitscheibe aus.
EinfhrunginUNIX
22
$ emacs &
[1] 20847
$ ps
PID TTY
1820 pts/6
20847 pts/6
20848 pts/6
EinfhrunginUNIX
TIME CMD
00:00:00 bash
00:00:00 emacs
00:00:00 ps
23
Terminals
Der Kernel enthlt
eine Menge an
physischen und
virtuellen Terminals.
07.03.12
EinfhrunginUNIX
24
Standard Ein-/Ausgabe
Standardeingabe (stdin, 0) blicherweise mit der
Tastatur verbunden; Umleitung mit <
stdin
Prozess
stderr
stdout
ls > outfile
cat < infile
gcc 2> errorfile
ls >> append_to_outfile
Unnamed Pipes
Verbinden Prozesse mit einem
unidirektionalen FIFO Kanal
Inhalt
UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos
07.03.12
EinfhrunginUNIX
28
Signale
Signale sind asynchrone Ereignisse und bewirken eine
Unterbrechung auf des Programmablaufs.
Signale (kill l)
Signaltyp Bedeutung
S Anwendung
R
SIGKILL
T DientzumProzessabbruch(z.B.abKommandozeile
mitBefehlkill).NurStandardreakbonmglich!
uncatchable
terminabon
SIGTERM catchable
terminabon
Nr
9
T WieSIGKILL,jedochsindauchandereReakbonen
alsdieStandardreakbonzulssig.
15
brokenpipe
SIGCHLD childstopped
or
terminated
11
T Wirderzeugt,wenninPipegeschriebenwird,deren 13
Ausganggeschlossenist(keineLeservorhanden)
I Wirderzeugt,wenneinKindprozessterminiertoder 17
gestopptwird(gehtanElternprozess)
SR=Standardreakbon:CfrTerminierungmitCoreDump,T
frTerminierungohneCoreDump,IfrIgnorierendesSignals
30
EinfhrunginUNIX
31
Inhalt
UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos
07.03.12
EinfhrunginUNIX
33
oder .exe)
Directories baumfrmig organisiert
Root Directory heit /
Filenamen sind durch / getrennt (nicht \)
Directory Eintrge zeigen auf sogenannte I-Nodes
I-Nodes enthalten alle Information ber das File,
auer dem Namen
07.03.12
EinfhrunginUNIX
34
vonDateien
VerschiedensteDateitypen
ineinergemeinsamen
Verzeichnisstruktur:
everythingisale
-
-
-
-
-
-
/bin
commands
/dev
devices
/lib
/etc
/usr
/var
startupand
congurabon
les
/man
/local
plainles(streamofcharacters)
directories(InterpretabondurchdasOS)
character,blockspecialles(Gerte;z.B.Terminal,FestplaAe)
namedpipes
sockets(z.B.TCP/IPsockets,UNIXdomainsockets)
symboliclinks(Verweise)
07.03.12
EinfhrunginUNIX
35
MountenvonDateisystemen
ZusammenfassenmehrererFileSystemeineinerVerzeichnisstruktur
EingebundenesDateisystemistentweder:
- lokalverfgbar(z.B.untersch.
ParbbonoderFestplaAe,
Wechseldatentrger),
- verfgbarviaNetzwerk
(z.B.berNFS),
- oderbendetsichselbst
ineinemFile(z.B.loopdevice
frISOImages)
Vorteil:untersch.Filesysteme
gleichzeibgverwendbar
07.03.12
EinfhrunginUNIX
36
VirtuellesFilesystem(VFS)
>15physikalischeDateisystemeunterLinuxinVerwendung
- KompabbilittzuanderenSystemen
(z.B.NTFS,FAT)
- Sicherheit,ZuverlssigkeitderDaten
(z.B.Ext3,ReiserFS)
- Performance(z.B.XFS)
EinfhrungeinerzustzlichenAbstrakbonsebene
- einheitlicheSchniAstelle(superblock,inode,Verzeichnisse,Dateien)
- transparentesMountenverschiedenerphysikalischerDateisysteme(Parbbonen)ineine
DirectoryStruktur
07.03.12
EinfhrunginUNIX
37
StruktureinerParbbon
DerSuperblockenthltdiegrundlegenden
InformabonenzumDateisystem.
JedeParAAon(FestplaAe)enthlteinDateisystem,
diesesDateisystemwiederumenthlteineArt
Inhaltsverzeichnis,dieInodeListe.
DieeinzelnenElementederInodeListesinddie
Dateikpfe,alsodieseStrukturenenthalten
DateiaGribute,Greusw.gespeichertsind.
DieeinzelnenInodesverweisendirektbzw.indirekt
aufdieSpeicherblckeimDatenbereich.
07.03.12
EinfhrunginUNIX
38
Inodesundstat
DerSystemcallstatruGden
InodeinformaboneinerDateiab
(man[1|2]stat)
structinode{
structsuper_block*i_sb;
structlist_headi_list;
structfile_operations*i_fop;
unsignedlongi_ino;
umode_ti_mode;
unsignedinti_nlink
uid_ti_uid;
gid_ti_gid;
...
}
DieStruktur(struct structstat{
stat)enthltnur
einenTeildes
Inodes(struct
inode)
Aufrufder
InodeNummer:
lsi
07.03.12
dev_tst_dev;/*device*/
ino_tst_ino;/*inode*/
mode_tst_mode;/*protection*/
nlink_tst_nlink;/*numberofhardlinks*/
uid_tst_uid;/*userIDofowner*/
gid_tst_gid;/*groupIDofowner*/
dev_tst_rdev;/*devicetype(ifinodedevice)*/
off_tst_size;/*totalsize,inbytes*/
blksize_tst_blksize;/*blocksizeforfilesystemI/O*/
blkcnt_tst_blocks;/*numberofblocksallocated*/
time_tst_atime;/*timeoflastaccess*/
time_tst_mtime;/*timeoflastmodification*/
time_tst_ctime;/*timeoflaststatuschange*/
};
EinfhrunginUNIX
39
Beispiel:Ext2Inode
hnlicheInformabonwieinVFSinodes(Zugrisrechte,Gre,)
zustzlichZeigeraufDatenblckederDatei
direkteZeiger,
indirekteZeigerund
zweifachindirekteZeiger
07.03.12
EinfhrunginUNIX
40
EinfhrunginUNIX
41
Filenamen
Absolute
Relative
Dateinamen
beginnen mit / und
beziehen sich auf
das Root Directory
Dateinamen
beginnen nicht mit /
und beziehen sich
auf das aktuelle
Directory
$ more /etc/printcap
$ cat /etc/profile
$ more test.c
$ cat ../../tmp/tmp00
EinfhrunginUNIX
42
Zugriffskontrolle (1)
3 Klassen von
Personen
- Besitzer (Erzeuger)
- Lesen
(read)
- Schreiben
(write)
- Ausfhren
(execute)
(user)
- Gruppe
(group)
- Andere
(other)
EinfhrunginUNIX
43
Zugriffskontrolle (2)
Zugriffsmatrix:
d
Directory
rwx
User
rwx
Group
$ ls l Makefile
-rw-r--r-- 1 s0126123 sys00
$ ls l /bin/rm
-rwxr-xr-x 2 bin
bin
rwx
Others
$ ls ld privat
drwx------ 1 s0126123 sys00 2804 Feb
07.03.12
EinfhrunginUNIX
1999 /bin/rm
1 17:15 privat
44
Zugriffkontrolle (3)
ndern der Permissions mit chmod:
$
$
$
$
$
$
chmod
chmod
chmod
chmod
chmod
chmod
4 2 1
r w x
EinfhrunginUNIX
45
Zugriffskontrolle (4)
Bedeutung rwx bei Directories:
EinfhrunginUNIX
46
Zugriffskontrolle (5)
Sticky bit (t). Historisch: ausfhrbare Programme bleiben im
Speicher und mssen nicht bei jedem Aufruf neu geladen werden
setuid (set user id): Programm wird mit Rechten des Eigentmers
und nicht des Aufrufers ausgefhrt
setgid (set group id) bit: Programm wird mit Rechten der Gruppe
und nicht des Aufrufers ausgefhrt
Ein Prozess unter dem User oder der Gruppe der aufgerufenen
Programmdatei ausgefhrt
07.03.12
EinfhrunginUNIX
47
Wildcards (1)
Wildcards sind Platzhalter fr andere Zeichen, z.B.
*
steht fr eine beliebige Zeichenfolge (auch
die leere Zeichenfolge)
?
steht fr ein beliebiges Einzelzeichen
[xyz]
steht entweder fr x oder y oder z
[a-i]
steht fr ein Zeichen aus {a, b, ..., i}
Die Interpretation der Metazeichen erfolgt durch die Shell
Metazeichen knnen als normale Zeichen verwendet werden, wenn
man sie in einfache oder doppelte Anfhrungszeichen stellt oder
einen Backslash \ davorstellt
07.03.12
EinfhrunginUNIX
48
Wildcards (2)
$ ls
Hugo hugo2 proG.c prog.c prog t1
t2
t3
t4
test1 test1.c
*
t*
t?
pr*.c
t[12]
*[1-4].c
07.03.12
wird expandiert zu
(alle obigen files)
t1 t2 t3 t4 test test.c
t1 t2 t3 t4
proG.c prog.c
t1 t2
test1.c
EinfhrunginUNIX
49
Shellvariablen
Es gibt nur den Typ String
Werden durch die erste Zuweisung erzeugt
export FILE=/tmp/dummy.txt
FILE=/tmp/dummy.txt
$$ export
[Kein Leerzeichen vor und nach =]
$$ ls
ls /tmp
/tmp
dummy.txt dummy.txt.bak
dummy.txt.bak
dummy.txt
rm $FILE
$FILE ${FILE}.bak
${FILE}.bak
$$ rm
EinfhrunginUNIX
50
Systemvariablen
$HOME
$PATH
$PS1
$PS2
$USER
$$
$?
Homedir
Suchpfad fr Programme
Prompt (meist $)
zweiter Prompt (meist >)
Benutzername
Prozenummer (fr temp files)
Status des letzten Kommandos
EinfhrunginUNIX
51
Inhalt
UNIX Systeme
Login
Prozesse
Signale
Files & Directories
Shell Kommandos
07.03.12
EinfhrunginUNIX
52
Shell Befehle
Program Typicaluse
Program Typicaluse
cat
Concatenatelestostdout
make
Manageseveralsoureles
chmod
Changeleprotecbonmode
mkdir
Makeadirectory
cp
Copyles
ps
Listrunningprocesses
grep
SearchleforsomepaAern
pstree
Listrunningprocessesinatree
ls
Listdirectory
rm
Removeale
gcc
Compilelestobuildabinary
rmdir
Removeadirectory
ipcs
ProvideinformabononIPC
sort
Sortaleoflines
07.03.12
EinfhrunginUNIX
53
Online Manual
Manualseiten gibt es auch online!
$ man 3 printf
$ man 3 intro
$ apropos editor
Sections:
1.
2.
3.
4.
Commands
System Calls
Library Functions
Special Files (kaum
wichtig)
5.
6.
7.
8.
File Formats
Spiele (leider) nicht installiert
Miscellaneous information
System maintenance
Mit man n intro bekommt man eine bersicht ber die Section n.
07.03.12
EinfhrunginUNIX
54
mv und cp
Mit mv Files und
$ ls
PROGS a.out test.c
$ mv a.out PROGS/test
$ mv test.c PROGS
$ ls
PROGS
$ ls PROGS
test test.c
$ ls
PROGS
$ ls PROGS
test test.c
$ cp PROGS/test.c .
$ ls
PROGS test.c
directories umbenennen
bzw. verschieben.
07.03.12
kopieren.
EinfhrunginUNIX
55
ln und ls
Mit ln wird ein link auf ein
$ ln quelle ziel
$ ls
PROGS a.txt
$ ln a.txt b.txt
$ ln s PROGS P
$ ls
P PROGS a.txt b.txt
07.03.12
$ ls a
.
..
P
Progs a.txt b.txt
$ ls ld PROGS
drwxr-x--- 3 s0126123 700
8192 Jan 30 12:43 PROGS
EinfhrunginUNIX
56
$ mkdir dirname
$ ls
PROGS a.txt
$ mkdir MeineCProgs
$ ls
MeineCProgs PROGS a.txt
07.03.12
$ ls
MeineCProgs PROGS a.txt
$ rmdir PROGS
rmdir: File exists
$ rmdir MeineCProgs
$ ls
PROGS a.txt
EinfhrunginUNIX
57
rm und cat
Mit rm wird ein File
gelscht
$ ls
PROGS a.txt
$ rm a.txt
$ ls
PROGS
Vorsicht!
$ rm ${VAR}*
07.03.12
$ ls
Gemuese.txt Obst.txt
$ cat Obst.txt
Apfel; Birne; Kirsche;
Scrollen mit | more
oder | less.
EinfhrunginUNIX
58
Editoren
emacs
Emacs benutzt Metataste (strg, esc) um
Kommandos auszufhren:
C-X C-c # close down emacs [C=Strg]
vi [vim]
Editor Modus und Kommando Modus:
i # start editing
59
Zusammenfassung
Wie ist ein UNIX System aufgebaut?
Was passiert beim Login?
Was ist eine Shell?
Wie funktioniert die Zugriffskontrolle?
Wie kann ich einem Prozess Befehle geben?
Wie arbeite ich beim Entwickeln eines Programms?
Welches ist der bessere Editor, vi oder emacs?
07.03.12
EinfhrunginUNIX
60
ENDE
Danke fr die
Aufmerksamkeit!
07.03.12
EinfhrunginUNIX
61