| Overview | Syllabus | Homework | Labs |
CSC 262 - Operating Systems
Instructor: Trek Palmer
Meeting Time: Tuesdays/Thursdays (final period ~3:00-4:50)
Text: 'Operating Systems: Internals and Design Principles' by William
Stalling
The Operating System is the name given to the pieces of software seperating your application code from the nitty gritty details of the bare hardware. The function of an Operating System is to abstract away as many hardware details as possible and to present users and application programmers with a consistent interface to the computer system. Specific details about memory, hard disks, network cards, video hardware, etc. are all abstracted away so that a programmer need only think about abstractions like files and network sockets. However, to be effective, the operating system must do all this as transparently, fairly, and as efficiently as possible. These requirements are what make OS design and implementation a serious engineering challenge. This course will serve as an introduction to Operating Systems and systems programming in general. The course will cover the basics of OS design including: filesystems, processes, threads, and virtual memory. Lectures will cover both theoretical issues as well as implementation. Homework will be assigned to reinforce topics covered in the lectures. Like any good systems course, lab work will be an important part of the learning process. The labs run the gamut from installing a clean linux system to extending the kernel with their own modules. In the end, the students will have a good working knowledge of basic OS principles and general systems programming.
After completing the course, students will:
Unlike previous incarnations, this edition of CSC 262 will have no separate lab section. The lecture period is long enough to accommodate a lab period. Some classes will consist solely of a lecture, while others will have a short lecture followed by a lab session. Homework will be assigned almost every week and will cover the most recent lecture material. Lab work will involve coding and hacking around with an actual Linux system. Labs will take a fair amount of work and may span multiple weeks (in systems work, nothing teaches quite so much as actually getting in the trenches and writing some code). The homework and labs together will account for 60% of the final grade. The remaining 40% will come from 3 exams (2 mid-terms and a final exam).