Introduction to Operating System Development
This is like the basics of the basics. Here I talk about "how" and "why" today's systems came into the public. Most of the people would already know about this. So you may click next and go to the next topic. Operating System is a control program that initialize a hardware system and provide a manageable user interface to run and control User programs. This is just my version of the definition. In the early days, when the first computer (today's worst of the worst calculators) came to the world, there wasn't anything to do on that because of the fact that the whole system took few rooms to do less than today's four-function calculator. Later (much later), companies like IBM, Intel, Xerox and others came up with systems that are complex and compact and they began to look for better user interface to sell their machines to the public. The PCs weren't around that period. Then, simpler form of current PCs (much simpler) came in but, the user interface was much smaller. Then computer guys who were interested in programming these hardware began to make operating systems with better user interface to sell the company's product and the result was that the Intel coming up with the x86 architecture for advanced functions. This didn't happen until the SSI (Small Scale Integration), LSI (Large Scale Integration) and VLSI (Very Large Scale Integration) technology came in. With the arrival of Intel's advanced system, came in the necessity to make an interface that would use the full potential of the system. x86 architecture was inefficient in a lot of ways. First of all the registers were limited to 16-bit registers; hardly any use to graphical applications. When the Multimedia industry came into the world, they began to use systems to the full extend and wasn't satisfied with Intel's limitations. Then 286 and 386 came up with better functions. Let me tell you this first. If you think Intel came up with 386 because the programmers felt the limitations, you are wrong. The PCs began to sell like crazy when multimedia industry grew and began to publish games on them. Most of all, this was a period of prosperity in America when people had money to buy PCs for home-work and other office use. However, for their use, 16-bit was more than enough. But, when games and small animations became so popular among the middle-class PC owners, multimedia industries began to push the limits, and the result was the Intel coming up with the 386 architecture. The same thing is happening now. Games like Final Fantasy (from Squaresoft) uses animations which cannot be run even with the fastest graphic card without breaking the 32-bit limit of today's systems. Although MMX and SSE (Streaming SIMD [Single Instruction and Multiple Data] Instructions) came up with a lot of new registers in the Pentiums, the actual program have to use 32-bit limit for user interface. And with few GPRs (General Purpose Registers) to do mathematical calculations to bring up the interface, we need to waste clock cycles by saving those registers before overwriting them. That is why Intel and AMD was forced to come up with 64-bit system. If it was for Office use or to use MS WORD, then 32-bit was more than enough. If you look at MIPS systems (used in Sony Playstation 1/2), they already had 64-bit system long time ago to support rich multimedia instructions.
Let me tell you this. Not even all operating systems currently available don't use the full potential of the Pentium or AMD 586 architecture. Although DOS came in, it never use the floating point system available at that time. Guess what? the 386 came to market in the mid-80s and Microsoft didn't use the full potential of Protected Mode systems available in 386 until 1995. When the competition in the market increased with the server systems, so did the need to improve existing Operating Systems. When Unix became so popular in Security and Server programs, the software giant Microsoft had to make a full-fledged Server extension to their system that would be at least as useful as the Unix systems. That is when they came up with the NT technology.
In this web-page I have made many documents that are necessary to make a basic fully-functional operating system. If you want to make an operating system, don't think everything I tell you is enough. If you think so, you will make just another useless operating system. Most of you guys/girls who plan to make one, might think why bother going for 32-bit system, when the Intel's Itanium is going to be around. That is a false point of view. Itanium and AMD 64 uses the same technique they used in 32-bit with some difference. Although the way things are handled is different, the algorithms you make in 32-bit would still work in 64-bit environment with minor changes. For example, the paging in 64-bit mode in AMD is different, but the algorithms (LRU algorithm for page swapping, FIFO buffers, Keyboard Handlers, Networking, Multimedia) are the same. Some instructions that are used in 32-bit is illegal in 64-bit. However, you could use their counterpart to solve that problem. Basically half the work in making a 64-bit system is simply a "cut and copy" programming.
Enough with the theory, move on to the next topic.