140 likes | 273 Views
CSNB334 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 :
E N D
CSNB334 Advanced Operating SystemsCourse 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) : • CSNB224/CCSB234 (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 the theoretical knowledge learned in the prerequisite course CSNB224/CCSB234 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 CSNB224 • CSNB224: concepts and principles of an OS • CSNB334: 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, 3rd Edition, O’Reilly, 2005. • Gary Nutt: Kernel Projects for Linux, Addison-Wesley, 2001. • William Stallings: Operating Systems, 5th Edition, Prentice Hall, 2005.