====== ae4b33oss — Operating systems and networks ====== ==== Lectures ==== Contact: Petr Stepan, [[stepan@fel.cvut.cz?Subject=[33OSS]|stepan@fel.cvut.cz ]], room no. KN:E-129 ^ week ^ date ^ topic ^ material ^ | 1 | 4.10. | Introduction | {{:courses:ae4b33oss:lecture-1-2014.pdf|lecture1.pdf}} | | 2 | 11.10. | System calls | {{:courses:ae4b33oss:lecture-2-2014.pdf|lecture2.pdf}} {{:courses:ae4b33oss:lecture2.tgz|lecture2.tgz}}| | 3 | 18.10. | CPU scheduling | {{:courses:ae4b33oss:lecture-3-2014.pdf|lecture3.pdf}} {{:courses:ae4b33oss:lecture3.tgz|lecture3.tgz}}| | 4 | 25.10. | Process synchronization | {{:courses:ae4b33oss:lecture-4-2014.pdf|lecture4.pdf}} {{:courses:ae4b33oss:lecture4.tgz|lecture4.tgz}}| | 5 | 1.11. | Deadlock detection | {{:courses:ae4b33oss:lecture-5-2014.pdf|lecture5.pdf}} {{:courses:ae4b33oss:lecture5.tgz|lecture5.tgz}} | | 6 | 8.11. | Memory management | {{:courses:ae4b33oss:lecture-6-2014.pdf|lecture6.pdf}} | | 7 | 15.11. | Virtual Memory | {{:courses:ae4b33oss:lecture-7-2014.pdf|lecture7.pdf}} | | 8 | 22.11. | Virtual Memory | {{:courses:ae4b33oss:nova-oss.tgz|nova-oss.tgz}} | | 9 | 29.11. | File system | {{:courses:ae4b33oss:lecture-8-2014.pdf|lecture8.pdf}} | | 10 | 6.12. | Linking and Loading | {{:courses:ae4b33oss:lecture-9-2014.pdf|lecture9.pdf}} | | 11 | 13.12. | Networking | {{:courses:ae4b33oss:lecture-11-2014.pdf|lecture10.pdf}} | | 12 | 20.12. | IP routing | {{:courses:ae4b33oss:lecture-12-2014.pdf|lecture11.pdf}} | | 13 | 27.12. ^ Winter holiday ^ | 14 | 3.1. | Transportation layer, Network application | {{:courses:ae4b33oss:lecture-13-2014.pdf|lecture12.pdf}} | | 15 | 10.1. | New trends in OS | | === Examination === The examination has two parts: Quiz and 2 Exercises. For quiz you cannot use any material, you select correct answer from suggested answers (a,b,c,d). For exercise you can use any printed or elctronic materials, you can use laptops, tablets, mobile phones. You cannot consult the exercise with other students, no chat, skype etc. Topic for the exercise: Scheduling {{:courses:ae4b33oss:scheduling.pdf|scheduling.pdf}} Deadlock {{:courses:ae4b33oss:deadlock.pdf|deadlock.pdf}} Memory {{:courses:ae4b33oss:memory.pdf|memory.pdf}} File Systems {{:courses:ae4b33oss:fs.pdf|files.pdf}} TCP/IP {{:courses:ae4b33oss:ip.pdf|ip.pdf}} ==== Practical course information ==== Contact: Miroslav Bursa, [[bursam@ciirc.cvut.cz?Subject=[33OSS]|miroslav.bursa@cvut.cz ]]((Please use the string ''33OSS'' in the e-mail subject)), room no. KN:E-224,[[https://www.ciirc.cvut.cz/research/beat/|BEAT Research Group]] **Note**: //The following schedule is informational and **will** be updated when needed.// ^ week# ^ date (2016/17)^ Theme ^ After the course you're expected to know((if not, practice at home)) ^ | 1 | 4. 10. | General introduction, OS introduction | edit a file using ''vi'', remote access (''ssh'', ''scp'') | | 2 | 11. 10. | Basic GNU/Linux commands | create and run a BASH script | | 3 | 18. 10. | BASH introduction | use conditions and loops in BASH | | 4 | 25. 10. | System information | | 5 | 1. 11. | BASH | | 6 | 8. 11. | BASH, Regular expressions (''grep'', ''awk'', ''sed'', ...) | use ''grep'' and ''awk'' with RegExp ; solve B task | | 7 | 15. 11. | Compilation in Unix environment, libraries (''gcc'', ''make'') | write a ''Makefile'', compile a C program; solve C task | | 8 | 22. 11. | POSIX network communication (implementation) | | 9 | 29. 11. | Network protocols **B TASK deadline** | | 10 | 6. 12. | Individual work, consultation, **C1 TASK deadline** | | 11 | 13. 12. | Individual work, consultation | | 12 | 20. 12. | Individual work, consultation, **C2 TASK deadline** | | -- ^ 27. 12. ^ ☆☆☆ Christmas holidays ☆☆☆ | | 13 | 3. 01. | D task evaluation, **D task deadline** | | 14 | 10. 01. | Presentations, Assessment | === Requirements === In order to obtain (practical) course credit (assessment, //zapocet//[CZ]) you have to fulfill **all** the following points: - Implement the B task (BASH) [[courses:ae4b33oss:prj_b|Specification]] (Task reservation obligatory) [3 pts] - Implement both the C(1,2) tasks [[courses:ae4b33oss:prj_c|Specification]] (C, Makefile) [2+2 pts] - Implement and personally present (show) the D task [[courses:ae4b33oss:prj_d|Specification]] (Network communication) (Task reservation obligatory) [3 pts] All the tasks (B, C(1,2) and D) must be uploaded via the [[http://cw.felk.cvut.cz/upload|Upload system]]. You have to present working (error-free) solution even in case the project is worth 0 (or less) pts (usually in case of late upload). The points go with you to the exam. In case of any doubts you might be asked to explain/demonstrate the knowledge you should have gained from the practical course((i.e. if I find out that you do not know the basic commands and/or the commands you have used in your tasks, you can be deducted points achieved. In severe cases this might lead to the denial of the assessment.)). === Remote access === You can access the home directories via the ''k333stu1'' server (IP: ''147.32.84.128''). In order to remotely debug your programs you can connect to the computers in the lab: these do not have public IP. You can connect to them via the ''k333stu1'' server -- use a name in the form ''e132-xx'' (xx is the PC number, 01--21), ev. ''e220-01'' -- ''e220-09'', i.e.: ''ssh e132-01'' Please do not execute anything on the ''k333stu1'' server. It's higher load would have a negative impact on the function of the whole lab. === Other === == Get certified! == If you are serious about learning Linux, you should get trained by some acknowledged authority. Linux Foundation has published an online course for free (via edX.org): [[https://www.edx.org/course/linuxfoundationx/linuxfoundationx-lfs101x-introduction-1621|linuxfoundationx-lfs101x-introduction-1621]]. The course is self-paced and ends with a **free certificate** (a verified version is available for a fee). Or, check out the [[https://www.maketecheasier.com/online-resources-for-learning-the-command-line/|Top 3 Online Resources for Learning the Command Line (For Linux and OS X)]]. **You should give it a try at least!** == Shell checker == There is a script (BASH) checker available [[http://www.shellcheck.net/|shellcheck.net]] online. You might try to use it to improve your scripting skills. == Sample projects == An interesting game implemented in BASH: [[http://bruxy.regnet.cz/web/linux/EN/housenka-bash-game|Housenka BASH game]] Another interesting game implemented in BASH: [[http://www.dhampir.no/stuff/bash/shellshock.bash|ShellShock]] (not related to the recently disclosed [[http://en.wikipedia.org/wiki/Shellshock_(software_bug)|Shellshock vulnerability]]), [[http://blog.dhampir.no/content/shellshock-a-bash-3-bash-4-spaceshooter|Announcement]] === IMPORTANT WARNING === The [[http://cw.felk.cvut.cz/upload|Upload system]] is equipped with automated advanced plagiarism detection feature. The plagiarism is reported automatically and can be a reason for ending your study. Make sure your work is original. You can take a look in [[help:common:plagiarism_cheating|general rules]]. However, my rule is to negate (change a sign) the maximum points for the assignment.