There are a lot of really good Operating Systems out there. From those that cater for the mainstream market (such as Linux), to those targetting more niche markets (such as RISC OS), Operating Systems can be seen to come in all shapes and sizes.
A number of these Operating Systems have their source code openly available. The developers who maintain these are typically happy for new developers to get involved: to help fix bugs, build and test new features, and generally get involved with the Operating System community. This is a good thing.
Unfortunately, the learning curve of Operating Systems can be very steep, particularly for those who might feel inexperienced, technically overwhelmed, or somehow unworthy of dabbling in such things.
It is important to recognise that Operating System projects such as Linux and RISC OS are – quite naturally – both large and (necessarily) technical. They can be fairly mature (20+ years) in terms of age. They can run to millions of lines of code, with thousands of source files, targetting innumerable combinations of hardware. Substantial portions of them may be written at quite a low level. Relevant documentation may be missing, incomplete, inconsistent or simply impenetrable. Putting the code to one side, even understanding the development ethos and overarching culture of the project itself can be an awful lot to get to grips with.
And any combination of these things, or even just one of them, may result in the loss or alienation of somebody who might just have become a useful contributor.
This is why IMP OS exists.
IMP OS exists, more than anything else, as a documented journey into the beginnings of an extremely simple Operating System. It is an open-source project, so the code will always be readily available. And in conjunction with the resources available through this site, it is the aim of IMP OS to at least try and illustrate more clearly how a simple Operating System can be brought to life. It is intended to serve as a potential stepping stone – that maybe bridges the gulf for some – between reading about Operating Systems, and actually working with one.