Why do we need a new OS?


Understandably the most frequent question with regards to the 3L Project is why do we need a new OS? The answer lies in the history of the mini and micro computer and the momentum behind supporting legacy software.

When mini and micro computers were built in the 60's, 70's, and 80's memory was limited to kilobytes or a few megabytes and processors ran slower than snail speed compared to today. When the first operating systems were being developed for low resource computers they had to be as lightweight as possible. So OSes were written in assembly or C and were more a collection of libraries than a manager of resources and scheduling of programs, out of necessity. As computer memory and processor speeds increased OSes grew to handle more common tasks but budget computers still required a fast, lightweight OS to be practical. By the time budget computers became powerful enough to handle a more heavy-weight and comprehensive OS we were locked into old architectures because of the momentum built over time when computing resources where limited. Windows, Linux, Mac OS X, and the BSDs we have today are still built using the architecture developed when computing resources were limited even though it is no longer technically necessary.

Another change since the original OSes were initially being built is the need for security, both from hostile entities over a network and a separation of programs running together on the same machine. As security became more important features were tacked on to the OSes to combat the problem (along with hardware features like the MMU). But fundamentally the way in which programs ran and were developed is the same. The security features that were added still relied heavily on the kernel and application developers doing the right thing and not making mistakes.

One of the most significant changes in the past couple decades has been the networking of computers. Whereas before programs were assumed benevolent and trustworthy we now have to deal with many cases where we must assume programs are not trustworthy. Unfortunately little power has been given to users to control what a program can and cannot do.

Another development has been in Computer Science research done in the last few decades, notably in this case when it comes to improved security measures. We now know of many ways to improve computer security that we didn't know when OSes were first being developed but the momentum from the past and desire to support legacy software has prevented much of this research from being incorporated.

Another area of research has been in the way of compiler design and capabilities. Compilers initially served as a way of making code more portable but now they are increasingly used to perform analysis of the code and improve the speed at which it runs. This enables the usage of languages and paradigms that previously were too slow to be practical on machines with limited resources. Rarely though has the OS taken full advantage of these advances by allowing developers a more friendly environment for OS and application development.

Taken together all of these advances allow us to create a significantly better OS than we now have and an OS designed to address the challenges we face today. Unfortunately, taken as a whole, they are too far from the way programs have been developed for decades to make adapting current OSes to take advantage of and address the concerns of today. Attempting to retro-fit a current OS would result in the requirement that nearly every program would have to be rewritten. Since this is the case it makes little sense to spend the time and effort required to adapt a massive piece of software when it would take less effort and time to build something from the ground up.

In the future do we really want to continue to be tied to the past? Building an OS is a massive undertaking but it is a worthwhile investment. As more of our lives and more money moves on to computers and relies on networking it is only going to become more and more important to develop strong security mechanisms and it makes little sense to be hampered by the past. If we can do significantly better we should. Just like building new infrastructure in a country requires a massive upfront investment we know it pays off in the long run.