development decisions
Posted: Fri Apr 24, 2009 8:56 am
I am planning to take up working on my OS again. I had to stop a bit for other obligations, but Im still stuck at where I left off. Right now, I have something allows interrupts in protected mode, and has paging enabled. Here is the problem.
I need to do more work on my memory manager to make it so that it can create tables for a process and allocate memory for them. The problem though is, in order to test it and confirm it works, I would need a way to create and switch to a new process, to show that indeed the tables have been allocated correctly and allow a process to run. In order to verify that a process is working, I will at least one system call so I can at least print something to verify the process can make calls to kernel space, and it can return to user space and continue its execution. I have an idea of how to do each of these things, but the big hurdle is that it seems like I will need to develop all three alongside each other, or at the very least process management with memory management. How have people handled this in the past? Im inclined to just go for it, but if something is not working right it will be very hard to tell what it is, but on the other hand, it seems that in order to test one piece, you will need other pieces working.
Also, I forgot to add, it seems that in order to run processes, you will need to be able to read some type of filesystem so you can read in the program, or am I wrong about this and for testing you can hardcode a simple process into the main kernel code?
I need to do more work on my memory manager to make it so that it can create tables for a process and allocate memory for them. The problem though is, in order to test it and confirm it works, I would need a way to create and switch to a new process, to show that indeed the tables have been allocated correctly and allow a process to run. In order to verify that a process is working, I will at least one system call so I can at least print something to verify the process can make calls to kernel space, and it can return to user space and continue its execution. I have an idea of how to do each of these things, but the big hurdle is that it seems like I will need to develop all three alongside each other, or at the very least process management with memory management. How have people handled this in the past? Im inclined to just go for it, but if something is not working right it will be very hard to tell what it is, but on the other hand, it seems that in order to test one piece, you will need other pieces working.
Also, I forgot to add, it seems that in order to run processes, you will need to be able to read some type of filesystem so you can read in the program, or am I wrong about this and for testing you can hardcode a simple process into the main kernel code?