Building a Computer with Nexys4 DDR [2]: Operating System
This computer needs a small operating system to complete its tasks.
Index
This project consists of multiple parts, so this may not be the first article you read.
- Overview
- Hardware
- Operating System
- Applications
Goals
- Near-term goal: implement a tiny operating system with interrupt handling, written in a mix of assembly and C.
- Medium-term goal: port Snake to this tiny system.
- Long-term goal: implement an operating system with interrupt handling, process management, memory management, file system, and device management, and compile it with my own compiler.
Current Progress
- Referred to the μC/OS-II material in Write Your Own CPU and the author’s own SimpleOS, and started implementing the near-term goal.
- Started trying to change SimpleOS into a mixed assembly-and-C model.
- The mixed assembly-and-C model worked.
- The tiny system was completed.
- Started trying to port Snake.
- Snake was successfully ported.
- Started learning the xv6 operating system.
- Preparing to port the xv6 operating system.
MIT 6.828 / 6.S081 study notes
Reference Books
[1] Andrew S. Tanenbaum. Operating Systems: Design and Implementation. Publishing House of Electronics Industry, Beijing, 2007: 1-453.
Links
Developing a system kernel with C and assembly
Operating Systems, Tsinghua University, XuetangX