The Core Systems curriculum within OSSU Computer Science provides foundational knowledge in computer architecture, operating systems, and networking. This curriculum covers four required courses that build a complete understanding of how software and hardware interact across multiple abstraction levels.
For information about systems programming languages covered in the curriculum, see Core Programming. For advanced systems courses and specialization, see Advanced Systems.
The Core Systems curriculum introduces students to the fundamental concepts underlying modern computer systems. Students progress from building basic digital circuits to understanding complex operating system internals and network protocols. This progression is designed to provide a comprehensive understanding of how software and hardware interact at multiple levels of abstraction.
Core Learning Objectives:
Sources: README.md193-216
The Core Systems curriculum follows a carefully structured progression that builds knowledge incrementally:
Sources: README.md193-216
The hardware foundation courses build a complete computer system from basic logic gates:
| Course Component | Duration | Focus Areas | Key Deliverables |
|---|---|---|---|
| Part I: Hardware | 6 weeks | Boolean algebra, gate logic, memory, computer architecture | Working computer simulation |
| Part II: Software | 6 weeks | Virtual machines, high-level languages, compilers | Complete software stack |
Topics Covered:
procedural programmingmanual memory managementboolean algebragate logicmemorycomputer architectureassemblymachine languagevirtual machineshigh-level languagescompilersSources: README.md213-214
The OSTEP course offers two distinct learning paths to accommodate different career goals:
Base Approach Requirements:
Extended Approach Prerequisites:
malloc, free, pointers) coursepages/ostep/README.md49-52Sources: coursepages/ostep/README.md1-65
The extended approach focuses on implementing system components in C and modifying the xv6 kernel.
System Programming Entities and Functions
The following diagram maps conceptual system tasks to specific C functions and project entities encountered in the processes-shell and initial-utilities projects.
Key Project Components:
initial-utilities: C programming assessment using basic file I/O coursepages/ostep/README.md73processes-shell: Unix shell implementation supporting interactive mode, batch mode, redirection, and parallel commands coursepages/ostep/Project-2A-processes-shell.md4-10xv6 kernel projects: Direct kernel modifications for scheduling, memory management, and concurrency using the mit-pdos/xv6-public repository coursepages/ostep/README.md63-64ostep-homework: Simulation exercises using the remzi-arpacidusseau/ostep-homework repository coursepages/ostep/README.md15Sources: coursepages/ostep/README.md63-133 coursepages/ostep/Project-2A-processes-shell.md1-46
The networking component covers protocol implementation and network architecture:
Topics Covered:
network protocolsTCP/IP stack implementationrouting algorithmsnetwork security fundamentalsdistributed systems conceptsPractical Components:
Sources: README.md216
The Core Systems curriculum has strict prerequisite requirements:
| Prerequisite Area | Required Knowledge | Validation Method |
|---|---|---|
| Programming | C-like programming language | Nand2Tetris Part I |
| Mathematics | Algebra, probability, basic CS | Computer Networking |
| Tools | Command line, version control | CS Tools completion |
| Extended Path | Advanced C, x86 assembly | initial-utilities project |
Hardware/Software Abstraction Mapping This diagram maps curriculum levels to the specific software entities and repositories used for validation.
Sources: README.md213-216 coursepages/ostep/README.md49-54 coursepages/ostep/README.md61-64
Core Systems serves as a foundation for multiple advanced areas:
Sequential Dependencies:
Parallel Learning Opportunities:
Sources: README.md64-67 README.md95-98
Students validate their systems knowledge through:
Time Investment:
Refresh this wiki