4087
Comment:
|
4107
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from OperacneSystemy = Počítačové siete = |
= Operačné systémy = |
Line 4: | Line 3: |
2008/09 -- ZS | == Repozitár programov písaných na prednáškach == |
Line 6: | Line 5: |
== Vyučujúci == | https://github.com/gjenca/os2020 |
Line 8: | Line 7: |
## Doplň vyučujúcich | == Záznamy prednášok == |
Line 10: | Line 9: |
* Gejza Jenča gejza.jenca@stuba.sk | * [[https://drive.google.com/file/d/1gHvLco4zgIO-fxyj3_3X42f6fRl9xB81/view?usp=sharing | 29.9.2020 8:00 procesy, správa pamäti,fork]] * [[https://drive.google.com/file/d/1Qfel2bPsgBCeht-RFTPds_bbZYnjBdvD/view?usp=sharing | 29.9.2020 12:00 wait, execl, súborové popisovače, presmerovanie cez dup2]] * [[https://drive.google.com/file/d/1wrRLgwmWvYPI8Ngrd4XqIm5FExAre9LR/view?usp=sharing | 6.10.2020 8:00 komunikácia cez rúry]] * [[https://drive.google.com/file/d/1qmBbeLvis5RXdszfZW8OQCYiMj54Uapr/view?usp=sharing | 6.10.2020 12:00 bc ako príklad podriadeného procesu]] * [[https://drive.google.com/file/d/1R0BDf8gKI10lZF5ydPydvX0x-lQ_BQcH/view?usp=sharing | 13.10.2020 8:00 súbory, adresáre, symbolické linky]] * [[https://drive.google.com/file/d/1R6fwrTD2MuCEj2ndl__MFpc3YK0GBiy8/view?usp=sharing | 13.10.2020 12:00 elementy príkazového riadku]] * [[https://drive.google.com/file/d/1-ctZ4YU2-gZYClCJEwKgX8DnUHjlBr9Q/view?usp=sharing | 20.10.2020 8:00 užívatelia, skupiny, prístupové práva]] * [[https://drive.google.com/file/d/1q1K5odDHygaCy88tI9iGXHYXFPVuJxxE/view?usp=sharing | 20.10.2020 12:00 setgid na adresár, programy pre prácu so súbormi, head, tail]] * [[https://drive.google.com/file/d/1aT8yMqump_Z_rbpcMgsyF-rN9YxiKwxg/view?usp=sharing | 27.10.2020 8:00 cut, paste, sort, uniq, seq, stat, ...]] * [[https://drive.google.com/file/d/1xuYGuk5oLkzpJHqFc5cGQb9w2WvSDjy1/view?usp=sharing | 27.10.2020 12:00 skripty, základy programovania v shelli ]] |
Line 22: | Line 31: |
* Textový editor vim | |
Line 24: | Line 32: |
* Základy internetových protokolov * Protokol http * Základy HTML |
|
Line 28: | Line 33: |
== Domáce zadania == | == Výsledky == |
Line 30: | Line 35: |
=== Cvičenia pre prípravu na prvé skúšobné cvičenie === | ##[[/Vysledky]] |
Line 32: | Line 37: |
A) premenovanie obrázkov | == Ďalšie cvičenia == |
Line 34: | Line 39: |
Vytvorte v bashi skript {{{rename_pics}}}, ktorý premenuje všetky súbory v aktuálnom adresári, ktoré majú koncovku {{{JPG}}} na súbory s koncovkou {{{jpg}}}, napr. {{{obrazok1.JPG}}} premenuje na {{{obrazok1.jpg}}}. |
[[ /CviceniaZoShellu | Cvičenia zo shellu]] |
Line 38: | Line 41: |
Pomôcka: pre transformáciu mena môžete použiť takéto niečo: {{{ NOVE_MENO=`echo $STARE_MENO | sed '...'`}}} Dávajte si pozor na to, aby ste premenovali iba koncovky, reťazec {{{JPG}}} sa môže vyskytovať aj uprostred mena súboru. Môžete prepokladať, že mená súborov neobsahujú žiadne biele znaky, napr. medzery. B) upravte skript z A) tak, aby premenoval aj súbory ako {{{obrazok1.jPG}}} a podobne. C) Vytvorte v bashi skript {{{showsize}}}, ktorý sčíta dĺžky súborov v aktuálnom adresári a výsledok vypíše. Pomôcka: je niekoľko ciest ako to spraviť. Vyskúšajte prvú cestu a potom druhú: V prvom rade musíte nejako vyprodukovať stĺpec s dľžkami súborov. Buďto na to choďte cez {{{ ls | cut -c ... }}} alebo {{{ for FILE in *; do stat ... $FILE }}} (viď manuálová stránka {{{stat}}}) Teraz je viac ciest. 1. Naprogramujete to sčítanie v bashi sami, klasicky cez premenné s použitím bashovskej aritmetiky cez príkaz let. 2. Pomocou postupnosti príkazov prepojených do rúry vyrobíte z tých čísel výraz ako {{{12+1024+254}}} a ten potom pošlete na vstup príkazu bc cez rúru. Budete zrejme musieť nahradiť nové riadky plusom, to sa robí pomocou {{{ tr '\n' '+' }}} Kostra prvého spôsobu: {{{ SUM=0 for NUMBER in `... kód produkujúci zoznam dĺžok ...`; do ... sem prirátavanie NUMBER k SUM cez let ... done echo $SUM }}} Kostra druhého spôsobu: {{{ ... kód produkujúci zoznam dĺžok ... | tr '\n' '+' | bc }}} Poznamenávam, že tomu ešte niečo chýba, pretože ten {{{tr}}} vyrobí z posledného newline tiež plus, takže {{{bc}}} bude frfľať, že má nekorektný príkaz. Stačí však ešte jeden {{{sed 's...'}}} a je to; poraďte si sami. |
[[attachment:python_zadania.pdf | Cvičenia z Pythonu]] |
Line 83: | Line 45: |
* [[attachment:prva.pdf|pdf k prvej prednáške]] | |
Line 85: | Line 46: |
=== Pythonovské programy === * [[/Fork|fork(), wait(), SIGCHLD]] * [[/Pipe|pipe()]] * [[/Socket| UNIXové sockety]] === Skripty === |
* [[attachment:tahak_python.pdf|Ťahák - Python (komplexný)]] * [[http://www.yukoncollege.yk.ca/~ttopper/COMP118/rCheatSheet.html|Ťahák - Python (jednoduchší)]] |
Line 98: | Line 52: |
1. ''Začínáme programovat v jazyce Python'', Daryl Harms, Kenneth !McDonald; Computer Press, 2003 (nie je nutné, stačí dokumentácia v systéme) | 1. ''Začínáme programovat v jazyce Python'', Daryl Harms, Kenneth !McDonald; Computer Press, 2003 |
Line 105: | Line 59: |
1. ''A Byte of Python'', Swaroop C H, http://www.swaroopch.com/notes/Python 1. ''How to Think Like a Computer Scientist'', Jeffrey Elkner, Allen B. Downey and Chris Meyers, http://openbookproject.net//thinkCSpy/ |
|
Line 109: | Line 66: |
1. http://www.py.cz/ Český server venovaný Pythonu, obsahuje aj dokumentáciu k starším verziám Pythonu 1. Mercurial SCM, http://mercurial.selenic.com/ 1. Python documentation, http://docs.python.org/ 1. A Guide to Python's Magic Methods, http://www.rafekettler.com/magicmethods.html |
|
Line 112: | Line 74: |
20 bodov zo 40. Body sa budú udeľovať v rámci cvičení. | 15 bodov z 30. Body sa budú udeľovať v rámci cvičení. Budú 2 zápočtové cvičenia, jedno zo shell scriptov a jedno z Pythonu. |
Line 116: | Line 79: |
== Výsledky == | ## http://bitbucket.org/gjenca/csv2html2012 == Ostatné == ## http://bitbucket.org/gjenca/vimrc |
Operačné systémy
Repozitár programov písaných na prednáškach
https://github.com/gjenca/os2020
Záznamy prednášok
29.9.2020 12:00 wait, execl, súborové popisovače, presmerovanie cez dup2
20.10.2020 12:00 setgid na adresár, programy pre prácu so súbormi, head, tail
Stručná osnova predmetu
- Princípy OS Unix/Linux
- Základy práce so systémom
- Súborový systém
- Užívatelia a skupiny
- Procesy, rúry
- Prehľad základných utilít
- Programovanie v shelli, skripty
- Programovací jazyk Python
Výsledky
Ďalšie cvičenia
Materiály
Literatúra
Linux: Příručka českého uživatele, Vilém Vychodil; Computer Press 2003, Brno (je žiadúce, aby každý mal svoju kópiu)
Začínáme programovat v jazyce Python, Daryl Harms, Kenneth McDonald; Computer Press, 2003
The Art of Unix Programming, Eric S. Raymond, http://www.faqs.org/docs/artu/
Umění programování v Unixu, Eric S. Raymond, (český preklad horeuvedeného)
How To Ask Questions The Smart Way, Eric Steven Raymond, http://www.catb.org/~esr/faqs/smart-questions.html
Dive into Python, Mark Pilgrim, http://www.diveintopython.org/
Advanced Bash-Scripting Guide, Mendel Cooper, http://tldp.org/guides.html
GNU/Linux Command-Line Tools Summary, Gareth Anderson, http://tldp.org/guides.html
A Byte of Python, Swaroop C H, http://www.swaroopch.com/notes/Python
How to Think Like a Computer Scientist, Jeffrey Elkner, Allen B. Downey and Chris Meyers, http://openbookproject.net//thinkCSpy/
Webové stránky
http://www.root.cz/clanky/regularni-vyrazy-1/ seriál o regulárnych výrazoch od P. Satrapu
http://www.py.cz/ Český server venovaný Pythonu, obsahuje aj dokumentáciu k starším verziám Pythonu
Mercurial SCM, http://mercurial.selenic.com/
Python documentation, http://docs.python.org/
A Guide to Python's Magic Methods, http://www.rafekettler.com/magicmethods.html
Podmienky na zápočet
15 bodov z 30. Body sa budú udeľovať v rámci cvičení. Budú 2 zápočtové cvičenia, jedno zo shell scriptov a jedno z Pythonu.
Príklady a cvičenia