Spring 2010 -- Junfeng Yang

  • Location: 717 Hamilton Hall
  • Time: TR 4:10pm-5:25pm
  • Credits: 3 units
  • TA #1: Jingyue Wu
  • Office Hours: W 4-6pm
  • Address: 463 CSB
  • TA #3: Chia-Yu Hsu (uni: ch2710)
  • Office Hours: F 10am-12pm
  • Address: MUDD 122A (TA room)
  • Instructor: Junfeng Yang
  • Office Hours: TR 5:30pm-6:30pm
  • Address: 460 CSB
  • TA #2: Chia-Che Tsai (uni: ct2459)
  • Office Hours: M 2pm-4pm
  • Address: MUDD 122A (TA room)
  • Staff Mailing List: w4118os at lists.cs. This is the best way to reach us.
  • Discussions: through CourseWorks

Course Description

Design and implementation of operating systems. Topics include process synchronization and interprocess communication, processor scheduling, memory management, virtual memory, interrupt handling, device management, I/O, and file systems. Hands-on study of Linux operating system design and kernel internals. Experience with commercial virtualization tools and open source software.


COMS W3137 Data Structures and Algorithms, COMS W3157 Advanced Programming (or good working knowledge of C), and COMS W3827 Fundamentals of Computer Systems.

The other requirement is that students be able to send and receive email, access courseworks.columbia.edu, access the class web page, download and print pdf files from the class web page, have a computer to install either VMware Fusion for Mac or VMware Workstation for Windows or Linux, and download the class VM image. A CS account will provide access to VMware licenses and software at no additional cost.


The Spring 2010 enrollment for this class will be limited. Please register early if you plan to take this class in Spring 2010. If the class is full and you would like to take the class, please email the instructor and come to the first day of class.


Required Text: Modern Operating Systems, 3rd Edition, Andrew S. Tanenbaum, Prentice Hall, Upper Saddle River, NJ, 2007 (available from Amazon.com and Columbia University Bookstore).

Required Linux Reference: Understanding the Linux Kernel (3rd Edition), Daniel P. Bovet, Marco Cesati, O'Reilly & Associates, Sebastopol, CA, 2005 (available from Amazon.com and Columbia University Bookstore). See also Errata. See also Google Book Search.

Additional materials will be made available online at the course Syllabus page.


50%: Homework Assignments: There will be six homework assignments. Your lowest homework assignment grade will be dropped in calculating your grade. Each assignment will have both non-programming and programming problems. The programming problems will involve kernel-level programming in the Linux operating system.
20%: Midterm: The midterm is one class period, open book, closed mobile devices, and calculator permitted. The midterm will cover all material discussed in the course up to the week before the exam.
30%: Final: The final exam is scheduled at the normal final exam time for this class period. The final is open book, closed mobile devices, and calculator permitted. The final is cumulative and will cover all material discussed in the course.
0%: No "extra credit" work.