Operētājsistēma UNIX


Pasniedzējs: Prof. Guntis Bārzdiņš

Līdzautori: Ģirts Folkmanis, Juris Krūmiņš, Kristaps Džonsons


Kredītpunkti: 4

Kursa kods: DatZ6007


Kursa anotācija

Kursā tiek aplūkotas UNIX grupas operētājsistēmu (Linux, BSD, Solaris, MacOS X, utt.) arhitektūra un efektīvas izmantošanas pamati. Tiek uzskatīts, ka studenti jau ir apguvoši operētājsistēmu un datortīklu teorētiskos pamatus. Līdz ar to te galvenā uzmanība veltīta šo zināšanu pielietošanai atvērtu un drošu augstas veiktspējas datorsistēmu izveidei. Programmā ietvertas padziļinātas sadaļas par lieljaudas aplikācijām, daudzprocesoru sistēmām, datoru klāsteriem, grid, un paralēlo programmēšanu.

Kursa prasības

Kursa rezultātā studentam jāvar orientēties visos kursā apskatītajos jautājumos, jāmāk instalēt un konfigurēt kāda no UNIX veida operētājsistēmām, jāsaprot tās sastāvdaļas. Tāpat jāmāk arī instalēt un konfigurēt populārākās aplikācijas (tīmekļa serveris, datubāzes vadības sistēma, desktop aplikācijas, utt.)

Kursa kredīta iegūšanai nepieciešams:
1. Savlaicīgi iesniegt kursa laikā uzdotos praktiskos (mājas) darbus.
2. Padziļināti izpētīt un prezentēt kādu ar kursu saistītu tēmu.
3. Eksāmena laikā sekmīgi atbildēt uz 3 nejauši izvēlētiem jautājumiem par tēmām, kas minētas kursa aprakstā, kā arī pasniedzēja papildjautājumiem.

Aptuvens kursa plāns

1.UNIX vēsture un paveidi (Linux, *BSD, Solaris, etc.)
2.UNIX operētājsistēmas kopējā arhitektūra, katalogu sistēmas hierarhija
3.Kernel funkcijas un uzbūve, atšķirības starp paveidiem
4.Instalācijas procesa soļi, atšķirības starp paveidiem, ditributīviem
5.Lietotāji, identifikatori, permīcijas
6.UNIX failu sistēmu paveidi, realizācija
7.Procesa jēdziens, prioritāte, darbības ar procesiem, fork-exec modelis
8.UNIX startēšanas procesa soļi un to funkcijas
9.Komandas, pipe, scripting. Shell paveidi
10.gcc kompilātors un tā iespējas
11.Aplikāciju instalācija: tarball, packages, ebuild, etc.
12.Kernel kompilācijas process
13.X Windows darbības pamati, windows manager
14.Tīkla konfigurācija, IP maršrutizācija UNIX vidē
15.TCP/IP aplikāciju aizsardzības metodes, iptables/pf
16.Web servera aplikāciju kopa (Apache, PHP, MySQL)
17.E-pasta aplikāciju kopa (SMTP, POP3) un DNS
18.Tīkla failu sistēmas (NFS, Samba, etc.)
19.HPC un HA klāsteri. Beowulf, Mosix, heartbeat arhitektūra. Grid komponentes. MPI un paralēlā programmēšana
20.32-bit un 64-bit UNIX atšķirības, savietojamība 

Ieteicamā Literatūra

1. A.S.Tanenbum, A.S.Woodhull., Operating Systems, Design and Implementation, Prentice Hall; Third Edition, 2006
2. K. Kopper., The Linux Enterprise Cluster, No Starch Press, 430p., 2005.
3. Nemeth E., Snyder G., Seebass S., Hein T.R., UNIX System Administration Handbook, Prentice Hall PTR; 3rd edition, 896p., 2000
4. Welsh M., Kaufman L., Dalheimer M.K, Dawson T., Running Linux, O'Reilly; 4th Edition, 692p., 2002

Praktiskie darbi

Brīdinājums! Praktiskie darbi būs diezgan apjomīgi. Iespējamie mājas darbi varētu būt aptuveni sekojoši, taču tie tiks precizēti vai nomainīti kursa gaitā:

1) Operētājsistēmas instalēšana (kāds no Linux/GNU distributīviem, vai cita operētājsistēma), kodola pārkompilēšana, uzstādīšana,
2) Mājas darbs, saistīts ar shell programmēšanu - skripti, "mazo" komandu izmantošana (grep, awk, utt.).
3) Noteiktu aplikāciju instalēšana izmantojot distributīva piedāvātās iespējas, kā arī "ar roku" - no .tar.gz failiem. Programmatūras Apache, PHP, MySQL instalēšana, konfigurēšana. Simbolisks mērķis - parādīt kā darbojas kāda web aplikācija, kas izmanto šīs komponentes.

Šie darbi pagaidām ir tikai paraugs un var mainīties vai tikt papildināti!

Emulators

Izmantojiet LU Linux centrā pieejamos eksperimentiem domātos datorus!

Studentiem, kam nav iespēju instalēt Linux/GNU vai citu *nix operētājsistēmu uz datora cietā diska, tiek ieteikts instalēt sistēmu izmantojot emulatoru. Ir pieejama  VMware Server bezmaksas emulatora versija.

Slaidi

1. lekcija - Ievads. Unix vēsture

2. lekcija - UNIX operētājsistēmas kopējā arhitektūra.

3. lekcija - Unix paveidi un to instalācija.Slaidi.  Noderīgi progr.fragmentu paraugi.

4. lekcija - Unix drošības pamati (1.daļa).

5. lekcija - Unix startesanas process. Papildslaidi par Runlevels.

6. lekcija - Shell scripting. Slaidi.

7. lekcija - Unix servera vide un Unix drošības pamati (2.daļa)

8. lekcija  - X11: Unix grafiskā lietotāja saskarne (GUI).


9. lekcija - Aplikāciju veidošana un instalēšana UNIX vidē. NFS un citas tīkla failu sistēmas.


10. lekcija - Populāru UNIX aplikāciju instalēšana. 


11. lekcija - 5.maijs - Uzdevumu izpilde Unix GRID vidē. Papildslaidi


12. lekcija - 12. maijs - Klasteri, grid, multiprocesoru sistemas. 


13. lekcija - 19. maijs - SMP, 64 bitu unix un kerneļa kompilēšana. 


Dzintara Lepeša Linux kernel moduļu slaidi. 


Jāņa Tragheima MPI slaidi.