Modular Operating System - ModulOS / News: Recent posts

New stable version in the cvs

There is a new stable version in the cvs.

This new stable version brings:

* a new module called HandleManager which takes care of all handles used by a task;
* remake of FSManager, FileSystem and BlockBuffer interfaces;
* bug fix in the fdcontroller module to work with bochs 2.2.5

I did not release .tgz files this time. You can get the source from the cvs if you want.

I will be working in the MemManager and TaskManager interface so they can use Set/GetLastErrors functions too.

Posted by Luiz Henrique Shigunov 2006-02-05

New release

After a long pause I'm back with a new ModulOS release.

In all this time ModulOS evolved slowly, but did not stop! A lot of changes were done.

Some of these changes are: a new error reporting architecture using Get/SetLastError functions from TaskManager interface, better synchronizers in TaskManager, some interfaces changes to fix type-punned warning using gcc, IDE disk support, partition support, etc.... read more

Posted by Luiz Henrique Shigunov 2005-07-09

Resuming after a long pause

A new year is starting and I want to resume the development of ModulOS.

I will try to write more docs/specification before implementing something.

Next steps are: plan a new error code checking and IDE support.

Posted by Luiz Henrique Shigunov 2005-01-07

Run Linux binaries

Finally it is possible to execute simple Linux binaries, for instance /lib/ld-2.2.5.so.

The boot disk has this program and also a simple "Hello world" program that does not work because the syscalls used by it are not implemented.

Very few syscalls were implemented, just the ones needed to execute ld-2.2.5.so.

Another interesting change it is the possibility of functions that return pointers to returns error codes too using a new scheme of the ErrorManager interface.... read more

Posted by Luiz Henrique Shigunov 2003-08-18

Its now possible to load Linux binaries

After a lot of changes, it is now possible to load Linux programs. Only load because any system call will kill the program.

To be possible to load Linux programs, a new interface was created. The UserSpaceManager, which is responsable for user memory space management and program execution.

Some functions that were in the UserModManager interface have moved to the UserSpaceManager.

Besides this new interface, ModulOS now has the ExecLoader which is responsable for loading an executable.... read more

Posted by Luiz Henrique Shigunov 2003-05-10

Some changes for user programs

In the last months I've made some changes that are visible to user modules (programs).

I've changed the way libs used by an executable module are started. Now the loading of lib modules is done by UserModManager, but starting and stoping of libs must be done by executable modules.

Besides that, libs don't need to start their own used libs. Only the executable module need to do it.

Another big change was made on the way programs use the input/output interface. Now the InterManager interface doesn't has functions specific to input or output devices. A program must get them direct from the input/output module.... read more

Posted by Luiz Henrique Shigunov 2003-01-21

New boot process

After too long without a release, finally I've finished the new boot process of ModulOS.

This new boot process is much better. It's easier to install and update modules. But it's a little bit slower.

All that horrible stuff of generating the startfile, copy it to disk, know the inode number, etc, is gone. Now one just needs some simple steps to create a boot disk.

Was hard work, but it worth the job. As I said before, the development is slower, but it won't stop!... read more

Posted by Luiz Henrique Shigunov 2002-09-30

More bugfix

A lot of bug fixed, mainly one that caused a reset on some machines. On some computers the code that enabled memory line A20 caused the computer to reset. Now ModulOS uses Linux code to do that and I hope I've solved the problem.

Beside bug fix, new features were implemented like not implemented functions in an interface, stack size of an executable module defined in the executable module file, support for Alt Gr key translations, and more.... read more

Posted by Luiz Henrique Shigunov 2002-05-19

New memory manager

A new memory manager was done. I've merged somethings that were in the UserModManager and now we have everything related to memory management in the same place. Much better!

Besides merging the memory manager, new functions were added. Now ModulOS has support for shared memory and the module that implements UserModManager interface already uses this to execute modules. Much simpler!

Another thing that changed was the InterManager interface. The event scheme now can send system events to programs too. The UserModManager interface, for instance, sends an event to the father of a destroyed task. Very similar to Unix signals.... read more

Posted by Luiz Henrique Shigunov 2002-04-20

Bug fix

Some bugs of the last release were fixed and now I'm publishing a floppy bootdisk image that one can use to boot ModulOS. You can use this bootdisk with Bochs (bochs.sourceforge.net). I use it for my tests.

This bootdisk has a VERY simple shell that only supports cd and ls, but it's a beginning!

Besides that, some docs were updated and enhanced.

I'll be working on the InterManager interface now. I've some ideas to implement.

Posted by Luiz Henrique Shigunov 2002-02-26

More libs

More user libs are ready. With these libs a simple shell is closer.

Important changes were made in UserModManager interface to support allocation of memory pages and to implement a memory manager lib for user modules.

Besides that, now system interfaces have a different name space than user ones. This way there's no problem with a user interface having the same name of a system interface and vice versa.... read more

Posted by Luiz Henrique Shigunov 2002-02-15

First library

The first user library is done! It's the Exception, which makes exception handling simple.

It's a simple library, but necessary. Cause, with this library, executable modules (programs) don't need to use assembly to setup the stack, etc.

I'll be working on the next user library: UMemManager.

Posted by Luiz Henrique Shigunov 2001-12-20

New keyboard and video

Keyboard module was improved and now it supports different keyboard layouts! To support keyboards layouts interface KbdLayout was created.

Another module that has changed was the video. Interface VideoController doesn't exist anymore. It was replaced by interface TextVideo and GraphicVideo. One for text mode and the other for graphic.

To support these new interfaces, module InterManager has changed too. But it isn't very good. It needs improvements.... read more

Posted by Luiz Henrique Shigunov 2001-12-17

New file system manager

After 2 months of hard work, I've finished the new design of the file system layer. Now we have something much better.

This new file system layer comes with a lot of new things. Such as: directory entry's name cache, block cache, inode cache, new functions - including for user modules, etc

Besides that, SysModManager, UserModManager and TaskManager interfaces changed. New functions were added and some of them have new syntax.... read more

Posted by Luiz Henrique Shigunov 2001-11-11

Exceptions and arguments passing

Exception handling has been greatly improved. And now user modules can handle their exceptions.

With this new interface was easy to implement dynamic user stack growth.

Another big change was in arguments passing from user modules to system modules. Now ModulOS uses something like FreeBSD and Windows NT arguments passing scheme. Each function that can be called by user modules has an attribute with the number of arguments to copy from user stack into system stack.... read more

Posted by Luiz Henrique Shigunov 2001-08-29

Some improvements

In the last days I've improved task manager, implementing a new schecule algorithm. It's a simple round-robin where priority defines quantum size.

I've improved usermodmanager too, including new functions to copy data from/to user memory space and finish a program. Now usermodmanager frees an executable module's memory when it exits.

Now I'll work a little bit with argv and envv and dinamic grow of program stack.

Posted by Luiz Henrique Shigunov 2001-08-13

Executable and library modules

It's now possible to run programs in ModulOS, although there's no system module doing that.

Although it's possible to run modules, including using shared libraries, a lot must be done in UserModManager. Such as adding more features, stability and security. But I hope this will be done soon.

The system module that will run the first program is the InterManager, which on a multiuser system will do the login and on a single user system will run a shell.... read more

Posted by Luiz Henrique Shigunov 2001-07-29

Dynamic start and load

Finally ModulOS supports dynamic start and load of modules, allowing read of modules from disk without the need of a new startfile.

To make this possible a new approach to modules load was developed. In previous version, modules were loaded only when a page fault exception occured.

Now, each module must start all its used modules through StartModule function from SysModManager interface.

Next step is to run programs.

Posted by Luiz Henrique Shigunov 2001-07-13

File systems support

Now ModulOS has support for file systems, floppy controller and ext2 file system used on Linux.

They're simple implementations that don't handle all errors, but they work.

I'm making available mkext2boot program too, that makes a file with ext2 file system boot ModulOS. Now it's possible to create a floppy disk to boot ModulOS or, what I do, create a file that Bochs (http://bochs.sourceforge.net) uses as floppy disk. ... read more

Posted by Luiz Henrique Shigunov 2001-07-01

How to develop a system module

A paper explaining how to develop a system module is available now.

It briefly presents the development process of a system module.

Posted by Luiz Henrique Shigunov 2001-06-26

Interfaces FSManager, FileSystem and BlockDev

FSManager, FileSystem and BlockDev interfaces are available.

These interfaces are necessary to have access to file systems and block devices such as: floppy disks, HD.

I already have a FSManager interface implementation, a FileSystem implementation for Ext2fs and a BlockDev implementation for floppy disk controller.

Soon I will make them available.

Now I'm doing an article explaining how to develop modules for ModulOS.

Posted by Luiz Henrique Shigunov 2001-06-25

First public version

The first public version of ModulOS is out.

There isn't much in this version, but it shows how ModulOS is made and it makes possible to other people help develop ModulOS.

There's a lot of things to do such as: file systems, make it possible to execute user programs, user interface, drivers, etc.

But I believe that with ModulOS model (an extremely modular one) the development of new modules will be easier. ... read more

Posted by Luiz Henrique Shigunov 2001-06-17

ModulOS is now public

I'm making the ModulOS project public.

I hope that in a few weeks I'll put in the site everything I already have.

I already have +- 15 classes specifications and +- 12 implemented modules. Actually, I've already boot ModulOS!

Wait and you'll see.

Posted by Luiz Henrique Shigunov 2001-03-23