Thursday, 9 June 2011

OPERATING SYSTEM INTERFACE DESIGN

I was fascinated by computers right from the moment I got an opportunity to lay my hands on one. I learned BASIC programming in school when I was in grade eight. Those were the days of the 80286 with BASICA on MS-DOS. I went on to complete my degree in Medicine. After completion my interest in computers returned as I got the opportunity of developing a small database system for the hospital I was working. I went on to learn C++, Visual Basic, and ultimately Assembler. I always had a fantasy of developing my own operating system and started reading more and more about that. I ultimately set down to develop a small operating system, which will help me understand the PC better. I then realised the difficulties I underwent to get the needed help and so decided to write the OS as a tutorial as well. I am not sure if the OS will ultimately be completed. But I am sure the reader will be able to complete his/her own version as he/she works with it. Developing the system (which is still under process) was great fun and I am sure the reader will enjoy developing his/her own system.
Pre-requisites
 
 A basic/working knowledge of Assembler with an unrelenting desire to explore and know more and to develop something new will be needed to start the project. My own knowledge of the PC is derived from books ('Under the IBM PC' by Peter Norton is an excellent text and I would suggest readers to get a copy of it and read it cover to cover) as a result of which the project will be very much limited in expertise. A copy of the excellent and free NASM (Netwide assembler) is needed for developing the system. You can download your free copy at NASM. All development is done on the Windows operating system. It is also possible to do the same under Unix/Linux system. Differences will be hinted whenever needed.
Design considerations JOSH, as I named it to signify a sense of excitement/satisfaction, will be a real-mode operating system to make learning faster and easier (and my own understanding of the protected mode has only just started). Like MS-DOS it will be interrupt driven. JOSH will be a single tasking operating system.
From, say, 1956 to 1966, I was involved in aspects of what would now be called the design of "operating systems." At the time, those years were exciting, in retrospect they were interesting. They were exciting because we were faced with all sorts of challenges of which we did not know whether they could be met at all: sometimes we succeeded, sometimes we failed. And it is now interesting to see how long it took for some key concepts to emerge and how separable (and eventually separated) problems remained for many years intertwined, solely because they had presented themselves together. (For many years, for instance, nondeterminacy and concurrency were always closely linked: the one was never considered without the other.)
 
In what follows, I shall try to provide my recollections with all the background information needed to understand the story.The source of the problems
In Amsterdam, at the Mathematical Centre, I started programming for binary machines for which an electric typewriter with electromagnets under the keys was the primary output device. The first machine could operate 16 keys of the typewriter: the 10 decimal digits, plus, minus, period, space, tabulate and NLCR (= New Line Carriage Return), the second one had access to the entire keyboard. The type instruction pulled the key identified by the 4 (6) least significant digits of the A-register (= main Accumulator); these bits were chosen because that was the place where the conversion process from binary to decimal representation would produce each time the binary representation of the next digit to be typed.A Graphical User Interface (GUI for short) allows users to interact with the computer hardware in a user friendly way.Over the years a range of GUI’s have been developed for different operating systems such as OS/2, Macintosh, Windowsamiga, Linux, Symbian OS, and more.We’ll be taking a look at the evolution of the interface designs of the major operating systems since the 80′s.I should mention that this article showcases only the significant advances in GUI design (not operating system advances) and also not all of the graphical user interfaces and operating systems existing today.

0 comments:

Post a Comment

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Online Project management