2: Linux og C Flashcards
Unix / Linux
Linux útfærsla á Unix
Hvar hófst Unix ?
Hófst í Bell Labs, Multics (1964-1969)
Hver skrifaði Unics (1969)
Ken Thompson
Hver skrifaði Unix í C ?
Dennis Ritchie skrifaði C-þýðanda og Unix í C
Minix [1987]
Andy Tanenbaum skrifaði Minix [1987] – Fylgdi með kennslubók í stýrikerfum
Linux [1991]
Linus Torvalds skrifaði Linux [1991]
– Upphaflega aðallega kjarninn, en síðan var GNU hugbúnaðartólunum bætt við GNU/Linux
Nær allar sýndarvélar keyra ?
Linux
Áhrif Unix í dag
Notað í um 70% af öllum vefþjónum
• Notað í öllum öflugustu tölvum heims
Nær allar sýndarvélar keyra Linux
– TOP 500 (www.top500.org) [allar með Linux]
Margar mismunandi útgáfur:
– Linux (ýmsar dreifingar)
– Fyrirtækjaútgáfur af Unix (Solaris, AIX, …) – Android og iOS byggja á Unix
Innan við 10% notkun í notendatölvum (client) Mest af því er vegna MacOS
Hugmyndafræði Unix
Hvert forrit gerir einn hlut og gerir hann vel – Auðveldara að skeyta þeim saman
Nota hreinar textaskrár
– Hefur komið aftur með XML
Flytjanleiki (portability) er mikilvægur Einfalt viðmót forrita
– Notendur forrita eru ekki alltaf fólk
Nota stigveldi (hierarchy)
Linux stýrikerfið byggt í lögum :
Notendaforrit -ritvinnsla, vafrari, leikir, …
Skel - ls, cd, mkdir, gcc, …
Kjarni - opna skrár, hefja verk, …
Vélbúnaður
stigveldi (abstraction layers)
Tölvunarfræðin notar oft stigveldi (abstraction layers) til að auðvelda lausn flókinna verkefna
Skipulag kjarna
Skráarkerfi
Ferlavinnsla (process management)
Minnisstýring (memory management)
Skráarkerfi
Sér um að búa til skrár, opna skrár, loka skrám
Ferlavinnsla (process management)
Ferlar eru keyrslueiningar
Úthlutar ferlum aðgangi að örgjörva
Samskipti milli ferla
Minnisstýring (memory management)
Deilir minni tölvunnar upp á milli ferla
Skel (shell)
Viðmót notandans að stýrikerfinu
– Leyfir notanda að keyra forrit
– Vinna með skrár
Skel er forrit
– Hefur keyrslu þegar notandi skráir sig inn
Skráarkerfi (file system)
Skilgreint sem stigveldi (hierarchy)
Rótin er
/
– Aðeins ein rót
Slóð getur verið bein (absolute)
/home/hh/tof/verk1.txt
Slóð getur verið afstæð (relative)
tof/verk2.txt
.
er núverandi skráarsafn
..
er skráarsafnið fyrir ofan í stigveldinu
~
er heimasvæði notandans
ls
Sýna innihald skráarsafns (list)
cd
Breyta núverandi skráarsafni (change directory)
pwd
Sýna núverandi skráarsafnsslóð (print working directory)
cp
Afrita skrá (copy)
mv
Flytja skrá (move)
rm
Eyða skrá (remove)
mkdir
Búa til nýtt skráarsafn (make directory)
rmdir
Eyða skráarsafni (remove directory)
cat
Sýna innihald skrár (concatenate)
more
Sýna innihald skrá eina síðu í einu
less
Svipað og more, en fleiri möguleikar
man
Birta hjálp um skipun (manual page)
exit
Hættir í skelinni og lokar skipanaglugga
Skipanaviðföng (options)
Flestar skipanir hafa valkosti sem stýra hegðun
Skipunin ls hefur marga mögulega valkosti:
ls –l gefur ítarlegri upplýsingar (long)
ls –a sýnir allar skrár (líka þær sem byrja á .) ls –t sýnir skrárnar í tímaröð
ls –r snýr við úttaksröð (reverse)
ls –1 sýnir skrárnar í einum dálki
Skrár í Unix eru ?
Runa bæta
Hvað eru skráarsöfn ?
Skráarsöfn (möppur) eru sérstakar skrár sem innihalda upplýsingar um skrár
Á hverju er C byggt?
Byggt á forritunarmálinu B, en undir áhrifum frá Algol
C er notað í ?
Ráðandi í Unix/Linux forritun
Líka mikið notað í ívafsforritun (embedded programming)
Af hverju C?
C er mun nær vélbúnaðinum en flest önnur æðri forritunarmál
Mikið notað til að skrifa kerfishugbúnað
Að kunna C mun gera ykkur að betri Java/Python forriturum
Eitt mest notaða forritunarmálið
Þýðing á C forriti
Forvinnsla (preprocessing): – Setja inn innfluttar skrár
– Útvíkka fjölva (macro)
Smali (assembler)
– Býr til vélarmálskóða sem hægt
er að tengja við forritasöfn
Við keyrum keyrsluskránna hello með:
./hello
Þurfum að gefa upp slóðina á núverandi möppu