CSNB 334 Advanced Operating Systems Course Introduction Lecturer
CSNB 334 Advanced Operating Systems Course Introduction Lecturer: Abdul Rahim Ahmad
Basic Information �Lecturer : Abdul Rahim Ahmad �Room : Deputy Dean, Level 6. � Phone : 03 -8921 -2345 � Web : http: //metalab. uniten. edu. my/~abdrahim
Basic Information �Credit : ◦ 4 (3 hours lecture/tutorial, 2 hours lab) �Prerequisite(s) : ◦ CSNB 224/CCSB 234 (Operating Systems Concepts) �Assessment Methods : ◦ Lab work 30% ◦ Mid Term Progress Test 20% ◦ Final Examination 50%
Course Objectives �At the end of the course, the students should be able to: ◦ Use Linux operatings systems for advanced study of operating system concepts. ◦ Write codes to implement and modify some advanced concepts in operating systems using Linux.
Learning Outcomes � The course objectives ensure the development of students applied skills in operating systems related areas. Students will ◦ Gain the ability to install and customize Linux operating systems. ◦ Gain knowledge in writing software routines, modules or patches for the operating systems, using respective system calls to implement, debug or tailor device drivers and interrupt handlers. ◦ Be confident in presenting short talks regarding the operating systems internals and various operating system issues. .
Course Synopsis � The theory part of this course focuses on design issues of the Linux operating system. � The course uses theoretical knowledge learned in the prerequisite course CSNB 224/CCSB 234 Operating System Concepts. � The practical part of the course ◦ Will take you on the programming tasks of writing codes to adapt, modify or add modules to the existing kernels of the operating systems. ◦ Provide hands on knowledge in system programming which will be valuable to further enhance your general programming ability.
What is this Course About �Comparison to CSNB 224 ◦ CSNB 224: concepts and principles of an OS ◦ CSNB 334: an example of how they are actually done �Linux Kernel Programming ◦ How to work in an example modern OS kernel ◦ This is the advanced practical component of OS curriculum in the Computer Science undergraduate ◦ Taken after Introduction to OS
Linux – What we’ll Learn? � Understanding linux kernel structure ◦ Know how the kernel works ◦ Know how to customize kernel � Writing kernel code ◦ Experience developing code for OS kernel � System programming skill ◦ Ability to deal with large, complex systems. ◦ Very different from application programming (e. g. , using Java) � New s/w development model: open community
Linux – What we’ll NOT learn? � How to use Linux? ◦ You should have known by now ◦ If not, there are lots of books and online resources ◦ Still no? there are dummy books and training courses � How to program in Linux ◦ See above � To obtain Linux certificates ◦ Those are for technicians ◦ You are a graduate, those are not for you, though it is good to have.
Linux - Why Linux? � Linux is increasingly important ◦ It is a good skill to have. ◦ Can become a system programmer. ◦ To further study at graduate level and do systems research.
Linux - Course contents �Linux ◦ ◦ ◦ Operating System History of Linux Kernel organization Process and resource management Memory Management Device management File management
Linux Labs � To choose during the semester as time might not permit ◦ ◦ ◦ Observing Linux behaviour Shell Program Kernel timers Kernel modules System Calls Shared memory Virtual memory Synchronization mechanism The scheduler Device drivers File system File I/O
Group Divisions – Labs/Presentations �Groups of 2. �Do your work individually and use the group for first level discussions. �All lab solutions need to be demonstrated in the lab. No marks will be given if a lab solution is submitted without giving a demo.
Materials �Daniel P. Bovet & Marco Cesati: Understanding The Linux Kernel, 3 rd Edition, O’Reilly, 2005. �Gary Nutt: Kernel Projects for Linux, Addison-Wesley, 2001. �William Stallings: Operating Systems, 5 th Edition, Prentice Hall, 2005.
- Slides: 14