Announcements & Updates
- Slides are posted on the schedule.
- HOWTO: Debian on VirtualBox
- HOWTO: Git
- Please read the Academic Integrity Statement
- Please read the syllabus for more information about the course.
- Welcome to CMSC 421! We will post assignments here. We will post grades and announcements on blackboard.
Assignments
- Homework 3 due April 25
- Project 2 due May 4
- Homework 2 due April 15
- Install Debian 6.0 in your VirtualBox VM and complete the steps for Project 1. Submission instructions are on the projet page. Due Date: March 8.
- Complete the two small programs for Homework 1.
Submission instructions are on the homework page. Due Date: March 4
Sample Solutions: HW1.tar.xz - Fix the BSS bug in mem_sequence.c and recalculate the order and address of the sections for your operating system. Store the changes and result in "program-layout/" inside your git repository. Due Date: 2/13
- Submit the "README.2nd" file with your full name using the Git system. Due 2/9.
Course Materials
Schedule
Always, always subject to changeDate | Topic | Readings | Handouts & Links | Assignments/Notes |
---|---|---|---|---|
1/30 | Administrative Information, Introduction |
|
None. | |
2/1 | Basic Operating System Structures and System Calls | OSC: Ch. 2 | Submit the "README.2nd" file with your full name using the Git system. Due Date: 2/8. | |
2/6 | Processes and Interprocess Communication | OSC: Ch. 3 | Fix the BSS bug in mem_sequence.c and recalculate the order and address of the sections for your operating system. Store the changes and result in "program-layout/" inside your git repository. Due Date: 2/13 | |
2/8 | Inter-Process Communication (cont) and Threads | OSC: Ch. 4 | Git Repo test is due. | |
2/13 | Guest Lecture: Steve Donald (KEYW Corporation) Windows-Related | None. | None. | mem_sequence.c changes are due. |
2/15 | Guest Lecture: Gabriel Parmer (GWU) The Composite Operating System | Composite Web Page | Composite Slides | None. |
2/20 | CPU Scheduling | OSC: Ch. 5 | Project 1 will be assigned ASAP. Due Date: 3/8 | |
2/20 | CPU Scheduling (Cont.) | None. | None. |
|
2/27 | Process Synchronization | OSC: Ch. 6 | None. | |
2/29 | Process Synchronization | OSC: Ch. 6 | None. | |
3/5 | Deadlocks | OSC: Ch. 7 | None. | |
3/7 | Memory Management: Main Memory | OSC: Ch. 8 | None. | |
3/12 | Memory Management: Main Memory (cont) | None. |
|
None. |
3/14 | Midterm Exam | Taking Tests and Quizzes on Blackboard | None. | None. |
3/19 | Spring Break | |||
3/21 | ||||
3/26 | Midterm Exam Review | OSC: Ch. 9 | None. | None. |
3/28 | Memory Management: Virtual Memory | None. | None. | |
4/2 | Memory Management: Virtual Memory | None | None. | None. |
4/4 | File systems | OSC: Ch. 10 | Project 1 and HW 2 assigned. | |
4/9 | File system Implementations | OSC: Ch. 11 |
|
None. |
4/11 | Mass Storage Systems | Ch. 12 | None. | |
4/16 | I/O Systems | OSC: Ch. 13 | HW2 Due. | |
4/18 | Networking and Communication Stacks | OSC: Ch. 16 | None. | |
4/23 | Protection | OSC: Ch. 14 | None. | |
4/25 | Security | OSC: Ch. 15 | None. | |
4/30 | Guest Lecture: Lawrence Sebald KallistiOS: An Embedded OS for Video Game Consoles |
KallistiOS Web Site | None. | |
5/2 | Understanding Linux Kernel Vulnerabilities | None. | Project 2 Due. | |
5/7 | NTFS Forensics | None. | None. | |
5/9 | Review Day | None. | None. | None. |
5/14 | Final Exam 6:00pm—8:00pm | None. | None. | None. |
Websites
- Linux Weekly News
- Linux News
- Linux Kernel Newbies
- OSDev Wiki
- Real World Tech
- OK Labs GeekTV
- Center for Information Security and Assurance at UMBC
- CSEE Website
Blogs that should be in your RSS Feed
Tools
- Linux Cross Reference (Source Code Browser)
- Diff Utils
- Valgrind Analysis Tools
- Filesystem in Userspace Kernel Driver
- LLVM Compiler
- Dynamic Instrumentation Tool (Edit code while in Execution)
- SQL Lite - Embeddable SQL Database Engine Library
- Lua - Embeddable Scripting Language (Used by World of Warcraft and many others)
- Daikon - Analyzes programs to find Invariants (parts of your program which are always true each time you run it).
- Diablo - a rewriting linker, allowing you to make the program smaller (binary compaction) as well as optimize for things like power consumption and speed.
ASM Resources
- WEBSTER - The place on the Internet to Learn Assembly
- Linux Assembly Tutorial
- Linux Assembly HOWTO
- PCASM Book
- Intel Software Developer Manuals
- AMD Developer Guides and Manuals
Related Courses (at other schools)
- Gabriel Parmer's Operating Systems Course (GWU)
- Matt Bishop's Operating Systems Course (UC Davis)
- UPenn Operating Systems Class
- UMBC Operating Systems Class
- Berkely Operating Systems Course
- MIT Operating Systems Course
- Microkernel Based Operating Systems—University of Dresden
- Microkernel Construction—University of Dresden
- WPI Operating Systems Course
Staff Contact Information
Instructor: Dr. Richard T. Carback III
Professor, Computer Science and Electrical Engineering
Office: ITE 201C or ITE 228 (the CDL),
GL Username: carback1
Office Hours: After class and sometimes before (by request only).
Teaching Assistant: Mr. Lawrence Sebald
Office: ITE 240 or ITE 368 (the Nerds Lab)
GL Username: lsebald1
Office Hours: Monday 3:00 PM - 5:00 PM,
Tuesday 9:00 AM - 10:00 AM and 1:00 PM - 2:00 PM
Statement of Values for Student Academic Integrity at UMBC
From the Undergraduate Council Motion on Statement of Values for Student Academic Integrity.By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong. Academic misconduct could result in disciplinary action that may include, but is not limited to, suspension or dismissal. Read the full Student Academic Conduct Policy, or consult the UMBC Student Handbook, the Faculty Handbook, or the Policy and Procedures for Student Conduct.