AI Summary
[DOCUMENT_TYPE: concept_preview]
**What This Document Is**
This is the kernel specification for Project 2 of Carnegie Mellon University’s Operating System Design and Implementation course (15-410). It details the expected behavior of student-developed kernels, serving as a contract between the instructors and the students regarding the functionality that must be implemented. The document focuses on *what* the kernel should do, not *how* to implement it.
**Why This Document Matters**
This specification is essential for students enrolled in 15-410 who are undertaking Project 2. It provides the definitive guide for building a functional kernel and thread library. Understanding this document is crucial for successful project completion and demonstrating mastery of operating system concepts. It’s also valuable for anyone interested in the design principles of a basic operating system, offering insight into the core components and their interactions.
**Common Limitations or Challenges**
This document is a specification, not a tutorial. It assumes a strong foundation in operating system principles and C programming. It does not provide implementation details or debugging assistance. Users will still need to consult course lectures, textbooks, and potentially external resources to successfully build a kernel that conforms to this specification. It also doesn’t cover all possible error conditions or edge cases – it focuses on core, required functionality.
**What This Document Provides**
The full document outlines the following key areas:
* **User Execution Environment:** Details on tasks, threads, and stack management.
* **Exception Handling:** Describes how the kernel should respond to various exceptions.
* **System Call Interface:** Defines the system calls available to user programs, including invocation, semantics, and a stub library.
* **System Call Specifications:** Comprehensive descriptions of each system call, covering task/thread IDs, lifecycle management, thread management, memory management, console I/O, and miscellaneous interactions.
This preview does *not* include the detailed specifications for each system call, the exact memory layout, or the precise exception handling procedures. It provides a high-level overview of the document’s scope and purpose.