Monday, September 28, 2009

Minix Startup

Just slogged through the OS startup process in The Minix Book. Could not understand some things in the first pass. I will have to re-read. In order to understand this section, I had to go back and revise assembler syntax and also how programs are laid out in memory. These topics led me to other related topics and I spent quite some time today reading all kinds of stuff. Ultimately I 'unwound the stack' and came back to The Minix Book but I am still not satisfied. I find the kernel initialization process quite tough to grasp. I have to keep reminding myself that since the system is not yet fully initialized, concepts like files and processes don't even exist. All we have is a processor with registers, memory and kernel data structures. It is getting really steep here. But this is probably the most important part of this book. I have to keep my focus and keep working through it.

Wednesday, September 16, 2009

Made some improvements to vish

I had forgotten to handle the possibility of no user input i.e. the user just pressing enter at the vish prompt. I took care of that today. I also found an issue that was being caused by not setting a pointer to NULL after freeing it. (The pointer variable was being reused in a loop.)

Finally, I had to make a minor change in order to account for some of the quirks in the behaviour of strtok().

I think vish is a lot more robust now. But it still does not handle cd, pwd, input and output redirection etc. Will get around to it later as I need to spend time studying the Minix kernel source.