2008-05-26

Switch back to CMS project

OS presentation was successful. It was said that this OS is an "object oriented operating system that supports event mechanism' (is based on it to be precise). At the moment I have already a working Scheduler, Service Controller and Keyboard driver that supports nearly every key that has ever appeared on standart keyboard in history... My next tasks with OS would be optimising the Scheduler, testing, optimising and updating Service Controller and, of course, I will have to work with other OS components then.

Anyway, I am freezing this project for a while as there is another project waiting to be done and at this point is appears to be more important to me. That is CMS.

So, to sum up, I am switching to CMS project right now. This does not mean that OS project will die here. It will just have to wait for the right time to be continued (finished?).

2008-05-18

Service Controller half finished

The event part of the Service Controller is now finished. Of course, the possibility of bugs in it is still high, but at the moment it seems to be working fine.

When testing the event part of the Service Controller, I have tried to raise the keyboard interrupt and see what happens. This worked well:
1) Interrupt Controller has identified the interrupt and sent message to Scheduler to launch the code.
2) Service Controller, which is responsible for handling such messages, has caught the message and forwarded it to Scheduler.
3) Finally, Scheduler event code was launched.

I am now working on the main code part of Service Controller. It will Schedule sending messages from process to process. The main plan of it has already been developed.

These are my tasks for the nearest future:
1) Finish Service Controller
2) Create a test keyboard code
3) Create a test console output for displaying processes and their states

And this is just the beginning...

2008-05-17

Deadline is comming...

On the 23d of May, 2008 the first OS demonstration will occur. Operating system will not be fully finished by then, but its major functions will already be working.

Current task:
Service Controller.

What has been done since the last post:
- Logo has been created ( it will not be published until the final version of OS )
- Final OS name already exists ( at the moment OS is temporarily named LongWOO )
- Service Controller structure is designed
- Part of Service Controller event code is written

2008-05-09

Multitasking

The main code of Scheduler service has been finished.

Features:
* Priorities;
- Rare priority - run only when other processes are not running;
* Locking;
* Event code vs main code scheduling - supports processes that consist of these two parts;

At the moment this Scheduler is designed for single-processor computers, but its design allows to modify it to support multi-processor architectures rather simply.

The next job is going to be to write a Service controller. Service controller is the main process that implements sending messages between processes. It also supports dinamic libraries. I will discuss this later in my posts.

2008-05-07

Interrupt Controller is half finished

Interrupt Controller consists of two parts (same as every other service): main code and event code. Main code is responsible for handling interrupts and event code is responsible for forwarding new interrupts and handling messages.

Main code of Interrupt Controller is already finished. It does not yet send messages (this feature is temporarily disabled) as there is no Service Controller to handle them. The event code will be created just after Service Controller main code.

At this moment I am developing Scheduler main code for scheduling tasks.

2008-05-06

Boot-load finished!

The second stage bootloader has been finished. It is now able to load all system components from HD (using my own file system). Of course, it does not mean that I will not edit it any more. From time to time I do find some bugs there, but in overal - it works!

Now I am developing an Interrupt Controller. All system interrupts are forwarded to it and then it decides what to do with them. I expect to finish it in a few days. Then I will continue my work by starting writting a scheduler.