An operating system (OS) is one of the most basic software in a computer system.
To learn a computer science deeply, it is a good method to dive into OS and struggle with codes.
In this class, students learn components of a recent computer based on x86-64 and construct an OS for it by their hand.
Students gain an understanding of components for a recent computer system.
They also gain an experience of adding and modifying features for a sample operating system.
Operating system, x86-64
|Specialist skills||Intercultural skills||✔ Communication skills||✔ Critical thinking skills||✔ Practical and/or problem-solving skills|
Lecture and work.
Students will write codes for a sample OS provided in this course.
|Course schedule||Required learning|
|Class 1||Operating systems||to know the concepts of an OS|
|Class 2||UEFI and 64 bits environment||to know boot sequence|
|Class 3||Screen drawing and fonts||to know how to draw on a screen|
|Class 4||PS/2 and USB mouse||to know how to input using USB devices|
|Class 5||APIC and interrupts||to know interrupt handling|
|Class 6||Memory management||to know concepts and methods of memory management|
|Class 7||Timers||to know how to measure times|
|Class 8||Multi tasking||to know how to run tasks concurrently|
|Class 9||File systems||to know concepts of file systems|
|Class 10||Applications||to know how to run an application contained in a separated file|
|Class 11||Address translation||to know concepts of address translation|
|Class 12||System calls||to know how to implement system calls|
|Class 13||File access from an application||to know how to implement file descriptors|
|Class 14||Memory management in an application||to know concepts of demand paging|
To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.
To be specified in class
Students must submit codes (including modification to a sample OS) with reports describing the codes.
Impressiveness of the modifications and reports is assessed.
It is preferable to be able to use Linux terminal commands.