Wuhan University's operating system design course homework: Reproducing an operating system kernel
Reference: 30-day homemade operating system
All the processes of this experiment and the problems encountered in the middle, the principles and solutions are recorded here. The tasks and code content of each day are updated in the corresponding folder. The corresponding directory is only the final code file that was completed on the day.
Each folder content can be run directly without any additional installation, and run under the Windows operating system
Run the program on day {DAY}
make -C day{DAY}For example, run on day 10
make -C day10Clear the generated file
make -C day{DAY} cleanQEMU will have errors in some operating system status simulation in my computer, and there will be an exception interruption on day10 and day11 to exit.
The input of the day7 keyboard is stuck, and the input of the letters in day14 and later is repeated and cannot be interrupted. This is due to the Chinese input method. Switching to the English input method when entering can solve it, but this situation does not occur on my roommate and classmate's computer. It does not appear in the WIN10 operating system of my VMWARE virtual machine, so this error cannot be reproduced. If you encounter this error, you can compile the img floppy disk image file and import the VMWARE virtual machine. See the blog of day1 for related usage methods.
Please switch to English input method when entering the keyboard, otherwise abnormal situations will occur.
day1
Basic startup area
day10
Input and output buffer, GDT IDT, interrupt processing, memory management, graphics drawing, mouse input, overlay processing
day20
Window optimization, timer, interrupt processing optimization, multi-task process scheduling, command line window, keyboard input optimization, application execution, API
Support dir mem type cls hello directive
day30
Basic use
Command line related commands
dir : View directory file
mem: View memory and remaining
cls: Clear console content
ncst : Use ncst + the following command to run the program without affecting the input of the current console
star1: Draw a little (star)
stars: draw a bunch of dots
walk: Move the cursor (up, down, left and right)
color, color2: two color discs
notrec: a non-rec window
bball: a circle drawn by a line
invader: an alien masturbation app
langmode + {MODE} : Language mode switching, langmode 0 is English mode, 1 is Japanese mode, and 2 is Japanese EUC mode
type + {FILENAME} : View the file content (note that langmode, langmode will appear in garbled code if it is incorrect, and don’t try to view some strange format pictures)
tview + {FILENAME} : Create a new text box to view the file content
mmmlplay + {FILENAME} : Open the music player
mmlplay daigo.mmlgview + {FILENAME} : Preview the picture
gview night.bmp
gview fujisan.jpgcalc + {FORMAT} : Calculator
My own keyboard input seems to be a little problem, a bit strange
The following figure is a demonstration of some functions
Course experiment related information