Saturday, July 22, 2006

Long way to go OS

While I was searching on how to switch to graphics mode so I can support Arabic text in the console, I ran into the Linux Framebuffer project. It makes their console supports graphics and unicode - and evening basic windowing and events. I looked a little into the source, basically they implemented tens of times, each for a specific VGA vendor or so. The important thing is that they really have a biiig work to support text on that "console" - A whole folder. While there were hundreds of files in that project, I saw only two or three. Each one not less thant 3000 lines. Especially the fbcon.c :S. I checked what stuff they call in the kernel, they at last include 20 header files of linux kernel, so porting is not an option. They also call semaphores and other stuff. So I think it is still too early for this kind of work for this OS - at least to be such integral and perfect. Maybe basic support for arabic character will be much simpler - I hope!

It is - as I seen in the linux kernel - a long way for us, but we will never arrive there if we didn't move - even if a cm per year. By saying "oh, it too long way, I won't do it" we are going no where. I believe in that integration over a very tiny development produces a big piece of work, but if there is no tiny development -"continuously" by the book - it won't be integrable and nothing would be produced.

For now I am still working on the low-level allocator. I think we're past the phase just-do-something-that-just-works. Making such thing will make it harder to optimize and maintain. So I am taking the very slow careful way. Maybe even at times leaving it and returning to older parts of other modules. At this time I am seeking code consistency and maintainability. Making something that just works and returning to make it better later means that you *will* rewrite it, it is a fact. The only problem here is that we didn't make an OS before we don't know how maintainability needs at this level. We yet have to keep going till we know, which is bad thing. The only thing that can make that better is to go for new modules and return to older code, and so on for every new aspect of the system to insure integrity and consistency and expected behaiuor is really what is expected.

Do you think I should move all this OS stuff to a seperate blog ? I am thinking in it.

No comments: