Scientific Operating SystemThe project I developed from the ground up to bring different perspectives to the concept of operating systems. It will be an evolutionary, system adaptive and dynamic operating system and the features that are essential to an operating system will be included as well. It is an experimental project and aims to carry out scientific calculations. I will also share my methodologies on my website. I am developing the kernel from scratch. It does not relate to any other projects like Linux, etc.
If I summarize the project itself;
The operating system aims to efficiently carry out scientific calculations with the existing equipment and aims to make it easier for researchers to work with functionality, portability and flexibility. The main purpose is to approach the operating system concept from a different perspective.
I’m planning to create a portable, lightweight, easy-to-use system and I'm trying to generalize the non-critical features as much as possible. So, I will use the standard VGA for graphics output. But, I will take advantage of processor specific features like Intel's Streaming SIMD Extensions as well. The file system is RAW for now. The subject I'm working on needs CPU power and RAM. However, since I am going to use physical address extension with the paging mechanism, I am thinking of a proper file system. So, swap can be done, efficiently. The scheduler of the operating system will be evolutionary. It will tend to improve itself when the system is idle. After passing through some performance measuring stages, it will change.
I have written the bootloader, memory management system, graphics driver and io management parts of the operating system for the x86_64 architecture. The essential parts are mostly completed. The calculation library is a separate project and it is completed and waiting to be combined with this project. It works successfully for now and performing the desired operation in a record time. At this stage, I am working on a special method on paging. Since the operating system is specialized on scientific calculations, it must be optimized as much as possible. At the same time, the other subject, TLB misses, must be as little as possible and multiprocessing is also considered.
APIs are provided for the accessing the mathematical functions. The programmer will calculate the result when calling these APIs from the program in accordance with any formula. Since these APIs use efficient mathematical methods, this work will be done much faster than the classical methods. Massive astronomical calculations can be made.
However, as stated, the main goal is not only to produce a product, it is also interrogating the operating system concepts. It is then likely to be adapted to general purposes as well. I’m working on this project in my free times and I don't want to rush to complete it. It is an experimental project and I will write academic papers on new methodologies.
Edit (2019): I am rewriting the kernel for UEFI and leaving legacy mode. |