3594
Comment:
|
3050
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
2007/08 -- ZS | == Repozitár programov písaných na prednáškach == |
Line 5: | Line 5: |
== Vyučujúci == | https://github.com/gjenca/os2020 |
Line 7: | Line 7: |
## Doplň vyučujúcich | == Záznamy prednášiek == |
Line 9: | Line 9: |
* Gejza Jenča gejza.jenca@stuba.sk * Jozef Martin Kollar jmkollar@penguin.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]] |
Line 21: | Line 25: |
* Textový editor vim | |
Line 23: | Line 26: |
* Základy internetových protokolov | |
Line 25: | Line 27: |
== Témy na skúšku == | == Výsledky == |
Line 27: | Line 29: |
1. Súborový systém, užívatelia a skupiny, prístupové práva 2. Procesy, signály, rúry. 3. Regulárne výrazy. 4. Náčrt riešenia jednoduchého problému v shelli. 5. Náčrt jednoduchého programu v Pythone. 6. Základy internetových protokolov IP, TCP, UDP, HTTP. |
##[[/Vysledky]] |
Line 34: | Line 31: |
== Komentáre ku skúške == | == Ďalšie cvičenia == |
Line 36: | Line 33: |
V prvom zadaní ste nevedeli zabezpečiť, aby nikto okrem vlastníka nevedel zmazať súbor. Treba dať súbor do osobitného adresára a revokovať zápisové práva pre skupinu a ostatných. Nevedeli ste (až na výnimku) význam setgid na adresár. umask malo byť 007. |
[[ /CviceniaZoShellu | Cvičenia zo shellu]] |
Line 40: | Line 35: |
Druhé zadanie dopadlo pomerne dobre, máte o tom správnu predstavu. Ale niektorí si myslíte, že sa forkuje ls, prípadne nepíšete čo sa forkuje. Forkuje sa shell. V treťom zadaní bol problém s tým, že väčsinou neviete spätné referencie -- to je nutné, ak chceme vybrať riadky s rovnakým prvým aj posledným znakom. Takto: {{{ '^\(.\).*\1$' }}} Toto vám výrazne komplikovalo život pri robení shellovského scriptu, ale poradili ste si. V skripte bolo najjednoduchšie použiť {{{ sed 's/.*BODY=\([0-9]*\).*/\1/ }}} na vystrihnutie bodov z každého riadku. Python nemal dobre snáď nikto, väčšinou ste sa vôbec netrápili s tým, že ak robíte novú maticu, musíte si ju najprv vytvoriť. Za skutočnú chybu som ale považoval, ak ste proste prebehli maticu a urobili {{{ A[i,j]=A[j,i] }}} toto predsa celú maticu zničí. Pre zaujímavosť prikladám mimoriadne expertné riešenie, využívajúce Python nadoraz: {{{ [list(x) for x in zip(*A)] }}} == Výsledky skúšky == == Domáce zadania == [:/Zadanie1: prvé] |
[[attachment:python_zadania.pdf | Cvičenia z Pythonu]] |
Line 86: | Line 39: |
* [attachment:prva.pdf pdf k prvej prednáške] === Pythonovské programy === * [:/Fork:fork(), wait(), SIGCHLD] * [:/Pipe:pipe()] * [:/Socket: UNIXové sockety] === Skripty === |
* [[attachment:tahak_unix.pdf|Ťahák - príkazy v UNIXe]] * [[attachment:tahak_python.pdf|Ťahák - Python (komplexný)]] * [[http://www.yukoncollege.yk.ca/~ttopper/COMP118/rCheatSheet.html|Ťahák - Python (jednoduchší)]] |
Line 101: | Line 46: |
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 108: | Line 53: |
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 112: | Line 60: |
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 115: | Line 68: |
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 119: | Line 73: |
== 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ášiek
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