We can use 8259A after initialization, I have attached the interrupt routine with it and enable the keyboard interrupt only. Therefore, you can see some reaction when you click any key on your keyboard from the screen. :)
I'm very glad to share that there's a simple process running in my so called Operating System. First, I created a struct which was called TSS and initialize the descriptor in GDT. Second, I made preparation for Process Table which holds processes' PCB (registers, LDT and other information ) and of course, there is one process in the process table now. Third, initialize the descriptor in the LDT and other register. Forth, use instruction iretd to acheive the transfer of ring0 to ring1 in restart function in kernel.asm. Finally, jump to the process and it runs.
Now there're two processes running in the OS. And of course, multi-processes have been supported.
A spelling mistake took me a lot of time to solve. Now the OS can add process more convenient than before and the source codes about these are more graceful than before.
Implement a simple system call (get_ticks counts how many times the clock interrupt occurs).Add a function call 'milli_delay' for delaying by programming the 8253 PIT in PC.
Each process holds 'priority' property, which means that bigger the priority is, more often will it be scheduled. Oh, a gitignore file is too late to commit.
forget some thing :(