70 likes | 87 Views
This course provides a comprehensive understanding of operating systems, covering topics such as processes, threads, synchronization, scheduling, and file systems. Students will gain hands-on experience by working with a real operating system (Linux) and learn how to read, modify, and debug complex systems. Prerequisites include good knowledge of C, Unix programming, and computer organization. The course is 3 units and is highly recommended for students interested in large software systems.
E N D
W4118 Operating Systems Junfeng Yang
What this course is about • Fundamental OS concepts • OS: one of the most crucial, almost everything thru OS • What? Functionality? How? • Processes, threads, synchronization, scheduling, file systems … • Many concepts wide use • broad picture: how everything works together, hardware, programming language, algorithms … • Hands on experience learning and hacking a real OS (Linux) • Skills + concepts • Probably your first course dealing with large software • how to read, know, filter, modify, debug complex systems • Team work
Basic Info • Course webpage: google W4118 + yang • http://www.cs.columbia.edu/~junfeng/09sp-w4118/ • 3 units, heavy, but worth it • “ most useful after graduating” • Pre-requisite: good C, some Unix programming, computer organization • W3137 Data Structures and Algorithms • W3157 Advanced Programming • W3827 Fundamentals of Computer Systems
Basic Info (cont.) • Materials • Operating System Concepts, 8th Edition • Understanding the Linux Kernel, 3rd Edition • Additional materials will be made available online • You need a CS account; all programming assignments must compile on CLIC or VM. Apply ASAP • Discussions, grades, homework submissions: • https://courseworks.columbia.edu/ • Staff mailing list: w4118spr09@lists.cs
Staff • Instructor: Junfeng Yang, 460 CSB, office hours TR 5:30-6:30, start next week • Main research area: OS, reliability, bug-finding • Hacked Linux and Windows, found some of the worst bugs. (e.g. all your files gone!) • Cool projects available for project students • TAs • Supreeth Subramanya • Yunling Wang • We’re getting one more
Format • Lectures: alternate between concepts and Linux case studies • Six assignments: best five, 50% of grades, • Each assignment: written + programming • First programming assignment: warm up • The other five: Linux kernel hacking • Start early! • Two exam • Midterm: 20% • Final: cumulative, 30%
Policies • Homework • No extension, late = 0 • Submit electronically through CourseWorks • Multiple submission okay (timestamped), last counts • Partially complete homework okay • Grading • Follow the procedure • Programming • Code must compile and run on CLIC or VM • Collaboration/Copy • Encourage collaboration • Copying code is strictly prohibited: report to school