KISS
KISS (Keep It Simple Stupid) is a principle of designing systems that are simple, straightforward and avoids unnecessary complexity.
OS, BIOS and hardware vendors goes in the opposite direction. It's hard to find any clean system today.
Operating systems use DLL (Dynamic Link Libraries) to reduce memory usage. As the dynamic linking mechanism is implemented by the same bloated principle as the rest of the code there is no actual reduction of memory usage. It's also a bad idea, as applications are not self contained. A Linux application for example has a lot of external dependencies, so installing a singel application often requires a chain of additional components to install.
With static link libraries the application is self contained. You can simply copy the application file(s) to a folder on the drive. For that reason I used static libraries for PDOS. Applications doing the same work are much smaller in PDOS than on other operating systems.
The operating system main functionality is to support applications I/O. Nothing has really changed from my point of view since Unix. The basics are the same. You need support for hardware like keyboard, mouse, graphics, usb, discs and file systems. Even though an operating system kernel should assist the applications with services it can't do, they keep getting fatter and fatter.
My application platform consist of a BIOS, OS, drivers and applications. They was all written by me for a purpose. I was tired of bloated and slow operating systems. As I often found myself "reinventing the wheel" when developing embedded systems, I decided to write my own OS. That resulted in an OS that was starting in less than 1 second.
At that time Intel was working with a fast boot BIOS. As my OS was booting in less than a second and the best result for Intel BIOS was 8 seconds, I had to write my own. The end result for my BIOS from power on to OS boot loader was about half a second.
Writing my own BIOS was not a big step for me, as I had some experience in writing expansion BIOS for the PC architecture.
The first expansion BIOS I wrote was for Stockholm Stock Exchange system SIX. They needed color terminals for their system. I also developed the entire system that was composed of an 8 MHz PC as a server, a PC expansion board with its own OS and one or more UART PC expansion boards.
So I developed the expansion boards based on my own idea. In my mind I was sure that the 8 MHz PC would be able to serve up to 24 terminals in real time, something everybody thought would be impossible. I developed the server software of course and all the firmware/software in the CPU board.
As the color terminals was so expensive, I got the idea to use a mini PC with the size of the foot of a color monitor. I developed an ISA bus expansion board with just an expansion BIOS that did the color terminal emulation. The end result was a color terminal for less than one forth of a real one. That included the mini PC, monitor and keyboard.
I managed production by local help for assembling and I did the logistics by myself. I was sort of a one man factory and the systems was installed all over Europe and never went down.
Recommended by LinkedIn
The next expansion BIOS I did was for a product I called AUTOCARD.
I sold everyone of those but kept one for nostalgia. At this time it was a mess with collisions with UART, printer and game ports. The expansion BIOS on this board automatically assigned the 2 UARTs, printer port and game port on the board to non conflicting base addresses.
I did another version of this board where I used and EEPROM instead. At that time there was a problem with hard drives not matching the internal table for disk geometrics. So I added INT 0x13 support along with software to set user configurable disk. One day a company called First International Computer (FIC) was visiting JET Computer in Sweden where I was an employe at the time. I demonstrated the SMARTCARD user configure disk invention for them. FIC had Phoenix BIOS in their PCs. About 2 months later Phoenix came with user configurable disk in type 46 and 47. The geometrics was stored in the CMOS ram. Hmmm. I wonder where they got this idea from?
Nevertheless, I'm typically a problem solver and I'm used to do things my way. The platform I developed is ideal for embedded systems. The best target is encapsulated systems where the OS will not matter, but the input and output does.
I have started with development of a Cyber Security product. As I have developed the Swedish defence security system for portable and stationary computers and as usual have some ideas of my own, I think it will be a great product. The Swedish defence security system was also invented by me by the way. My idea won over several heavy security companies, so thank you FMV for giving me the opportunity.
The application platform is useful for most embedded projects. I will include a PDF describing the platform for those that are interested.
Best regards,
Berth-Olof Bergman