RAMOS
Ruijs Automation Modular Operating System
What is RAMOS? Consider the following question: With which operating system do I want to work? So many people, so many wishes, but nevertheless there are some intelligent people who consider the computer as a potential useful tool. In the past, it was easy, a computer was not that powerful and not much could be expected. But now, the computer is very powerful and it is logical to have certain wishes about speed and/or complexity. The hardware has been improved tremendously but the quality of the software has been declining at almost the same pace, such that certain programs run even slower nowadays! Positive exceptions to this are some computergames. Of course it looks neat to have a lot of lines on your screen that resemble something like a window, it even looks better to have a sand-glass between those neat lines and a nice flickering led of the harddrive. What more could you wish from your powerful and expensive hardware? If you are someone who is pleased with it all, please do not read any further. You then are probably an expert in expanded-, extended-, upper-, and high-memory, hooked on the beautiful flickering led of the harddrive and pleased with the ever appearing sand-glass indicating that something useful is happening.
What about people who consider the computer as a hobby? Nowadays the operating systems are so complex that a very huge harddisk, the newest and largest compiler and a large collection of books are needed to write even one useful line of code! If one can accomplish this simple but yet tremendous task it is abolutely not known how it all precisely works. Potential programmers are discouraged by continuous rattling harddrives and the seemingly busy computer signalling that it does not like to compile all that code. The following text is intended for those people who want to know what the computer is doing at all times. The text is also intended for people who have the idea that the computer is mostly entertaining itself by performing unnecessary tasks and the user is someone who is occasionally granted to use the computer resources albeit with a certain delay. I compare some systems with an intelligent hammer which has a mind of its own and grants a wish to hit the nail and sometimes with a delay. Non-carpenters might accept such a hammer, but real carpenters certainly not! Even worse, non-carpenters never become real carpenters with such a hammer.
Consider the following simple wish: I want an easy to use programming language to program anything I can think of and this as fast as possible. Because I like to know every ins and outs of the computer and want to be the total controller of the system, the choice is easy. Assembly language is still the basis for every good computer programmer. The argument against this language that it is highly machine-dependent is true, but the language has hardly been changed since the first microprocessors, this however can not be said about all the compiler-variants of C and Pascal! Assembly language therefore is the first choice, but this imposes a few problems. Firstly the language needs to cooperate with a certain operating system and the ease of programming higly depends on that system. Secondly the language is very obscure for non highly-gifted people and it is sometimes very cumbersome for certain programming tasks. A higher programming language is therefore absolutely needed. But which language? Important for me is that the interface between the higher language and assembly language must be bidirectional and the interface itself may not pose any awkward problems. Furthermore it is essential that code once written will almost automatically be usable for other programs for a long time to come.
What about C? This choice has certain disadvantages:
Why these complaints? It are not just complaints it are the thoughts that led to the development of RAMOS (Ruijs Automation Modular Operating System) and RAP (Ruijs Automation Pascal). The philosophy behind them is clear:
The system is easy to explain; The operating system only consists of libraries, within them the routines/declarations/constants/variables and structures which can be used in any programming language. The system is memory-based, this means that the complete system will reside in memory. The only task to start up RAMOS is to load the system in memory and open all the libraries. For the PC RAMOS.COM is the small program that loads the libs into memory, but a loader could also reside in ROM or on a bootdisk. Up until the only necessary library SYSTEM.LIB is loaded and opened, the system is not defined. The files for the first (simple) version of RAMOS are:
One can see that the complete system can reside in only one directory. This is not to say that certain directories will not be needed in the RAMOS-directory because I know that probably some directories will be needed in the future (FONTS for example), but it shows that the base of the system is very clear and easy to understand and this is essential for a stable and easy to use operating system. Because a large part of RAMOS still relies on good old DOS it cannot be expected that the system will outperform other operating systems immediately. The first version of RAMOS will be an initial step and gradually all the libraries will be DOS-independent. Later a version for protected mode will be developed.
More information will follow in the near future...