EX version 0.1pre is released
The EX operating system is a project
developed by me, Kipras.
For any information about the project see
To get EX go to Download
section. Current version is v0.1pre.
To see EX screenshots and videos go to
To contact me see Contacts.
And if you want to discuss the project or if you have any
ideas or suggestions please see EX Forum.
[2007 08 09]
IT WORKS! :)
[2007 08 09]
I modified the task switching mechanism, which should work now with paging. I've also implemented it, and it does what it's supposed to do: it switches tasks ok, but there still are problems. Stack addresses get screwed up. I will try to fix this tomorrow.
[2007 08 07]
So, today i'm still fixing existing problems of my kernel. Namely, right now i have a big problem with task switching. Task switching worked fine when processes used a unified flat memory space. But it does not work now, when we're not just switching process states, but also switching memory spaces. I get a page fault during the task switch process. I have identified the problem, thought about it, and have came to a conclusion, that the current task switching mechanism won't work with paging.
So i will now try to fix the problems of the current task switching schema, or come up with a new one, that will work with virtual memory.
Hopefully it will take a day or two to come up with the concept, and then a few days more to implement it.
[2007 08 07]
So, i was working with some other people on a new OS project for about a month or so. We developed the core ideas & concepts of the OS. Those concepts were really revolutionary. Although some of them are used in other OS'es, but the architecture & design of the project really differs from the popular systems of today and is much more advanced. Sadly, after some time of persuading other people to start writing stuff, i realized that the project won't go anywhere, because they are probably good just for talking but not for implementing. I now understand how i'm the only one of them that has a kernel implemented, even though they are as good as programmers as myself or better. They talk about the most advanced concepts ever, but are too lazy to actually implement those concepts. This project is vaporware.
That said, i abandoned the project and now return to my kernel. The good part of developing the concepts of that project is that i now realize what is wrong with my kernel, and what can be improved in the kernel architecture. Because i agree with the people of that project: i don't want just a YAHOS (Yet Another Hobby OS). I want it to be as good and advanced as possible. And why wouldn't i? I have nothing to lose!
So i will now continue to develop the kernel as a hobby project over time, but having certain more advanced concepts in mind, and hopefully i will effectively implement those concepts over time.
These concepts include:
-Modularized nano-kernel (only HAL (Hardware Abstraction Layer) running in kernel mode, other modules and software running in user mode)
-Light-code system, where everything is an object. No monolithic applications no more, just many objects and libraries, that can be loaded and tied together, replaced with others, inspected and so on. These objects can be related, tied together, be sorted in trees and so on.
-A programmable shell. This means a shell like the ruby shell, where you can do everything from it: load libraries, inspect & modify running code and so on.
-JIT (Just In Time) compilation. This means, that most of the system software will be in source code form, and will be compiled at first launch or after modification. This allows to use unified code & APIs, no matter what language they were written in, as long as they compile to the same JIT format.
-Object Storage System. Last, but definitely not least, we will NOT use a file system. Files & directories is an old & obsolete concept. Instead, since everything in the system is represented by objects, we will save these objects in an Object Storage System. This storage technique will be closely tied with the system. This means that you won't need to open files, you just use objects and they get saved to disk periodically and during system shutdown.
Many difficult concepts, huh.. I will try to accomplish all of them, over time.. Good luck for me.. :)
[2007 05 25]
Well, i haven't completed all the work i had to do, but still yesterday i came back for a bit to developing KOS and i did the same today.
The result: i fixed a very stupid bug that caused me roughly several hours of headaches and frustration. The problem was in paging, but now its fixed.
KOS can now launch one program from disk, since right now i don't have certain things that should deal with memory virtualization. I will probably work on that in the coming days and ill inform on the progress.
[2007 04 30]
So i paused KOS developpement a few days ago.
I have some other work to do, which will probably take a month, or a couple of months. I'm hoping to continue the developement of KOS after that.
I made my system work with paging, but that's it for now. System works, but it doesn't make full use of paging and that means that it still cant properly launch programs from disk. This will be my first goal, when i get back to it. With that done, all the main pieces of v0.1 will be put together and i will release it after some polishing. These are the plans..
Good bye & good luck for now..
[2007 04 18]
I've decided today to put news, regarding the developement of KOS more often, so the project would not seem dead. Im going to inform about smaller or bigger achievements of mine, on the way to the v0.1 release.
What i have now:
- Block device support (only floppy for now - reading & writing)
- Block device cache system
- KFS support in kernel (though KFS is still in its infancy..)
- Dynamic memory allocation (developing this was fun, in the WORST sense of the word and if i had started pasting these news while i was developing it, it would be worth a whole book (with just a little over-exaggeration))
- Application support & multitasking
- Makefiles and a full working buildsystem for kernel, application library and applications, which allows me to update the system by running just one script
So yesterday i cleared a bug in my libkos makefile, which didn't allow programs to be properly linked against that library.
Im trying to make paging work, and this will be my main goal for the next days (i hope, couse it will probably be weeks :/).
Btw, what's nice about KFS support is that i was able to make kernel and the program, which copies kernel, kernel loader, applications and other files to the floppy image, which i use to emulate KOS, use the same source files. That means, if i find a bug or update the KFS support source, i only need to do it once, which is nice. The KFS source used in kernel and in that program have only minimal differences and i excluded them to other source files, which makes KFS source very nicely updatable.
[2006 04 14]
Yeeeees, finally! KOS is released! Go to Download section to get it and also see KOS Media. In order to run it you will need to write the floppy image to a floppy and reboot your computer from it, or you can use PC emulating software, like VMware Workstation to run it. For more information see Download section.
[2005 12 03]
So after some huge problems, due to that evil, which we call assembly language and intel processors instruction caching, i have ported KOS kernel, to boot up under KFS. Not only that, i decided to play with it a little and created a simple form of software multitasking. I added a screenshot of KOS, running on software multitasking in debug mode. Soon i will add a KOS package to download, which will probably include a few programs, built in to the kernel and running simultaneously. Be patient...
[2005 09 14]
Today i've finally developed KFS v0.0 far enough, it can now store files. I've also changed the design of the web page a little.
I will now try to import KFS code to KOS kernel. Hopefully it will not take longer than a few weeks(some assembly and hardware code must be done, which usually takes a long time :/), if i will have enough spare time from my studies.