October 16, 2021

Writing an operating system from scratch

 

Existing operating systems are described in a certain way. This affects how programmers think about the creation of new operating system. The interesting part is that an operating system can be reduced to the core functionality which is the file system. The DOS operating system was working with the fat12 and the FAT16 filesystem. That means the overall system contains of a hard drive device driver plus a command shell on top of the system .The same understanding is valid for Linux systems as well. Linux is contrast to the famous myth not a kernel but it is a combination of the ext4 file system plus some addons.
The reason why the main focus is on the harddrive but not on networking, the GUI or the ablity to run programs is because interacting with the harddrive is what most users are doing with their system. The typical MS DOS user has inserted floppy disks into the PC and then files were read and written. And the typical Linux user is accessing to the harddrive as well. All the the other features of an operation system are optional. They are nice to have gimmicks but they not essential operations.
Let us investigate what will happen if a computer has no harddrive and no floppy drive. Then the user isn't able to type in texts and he can't write computer programs. So it is not a computer but only a calculator. A pocket calculator has a builtin CPU and of course it has an operating system but a pocket calculator can't do anything.