Designing Operating Systems For Small Computer Systems Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.


An ambient computing environment coordinates a variety of computing and network-enabled devices to present a seamless, customizable and invisible interface to the user. The idea of the meta-operating system applies the qualities of traditional operating systems to this environment. This allows devices and applications to be created and integrated much like they are in traditional operating systems. The meta-operating system also allows personalization, permissions, and location specificity to be offered in a natural way.


Operating system:-

For a computer to be able to operate a computer programme sometimes known as application or software, the machine must be able to perform a certain number of preparatory operations to ensure exchange between the processor, the memory and the physical resources.

The operating system is responsible for creating the link between the material resources, the user and the applications such as word processor, video game, etc. When a program wants to access a material resource, it does not need to send specific information to the peripheral device but it simply sends the information to the operating system, which conveys it to the relevant peripheral via its driver. If there are no drivers, each program has to recognize and take into account the communication with each type of peripheral.

Roles of the operating system

The operating system has various roles:

Management of the processor: - the operating system is responsible for managing allocation of the processor between the different programmes using a scheduling algorithm. The type of scheduler is totally dependent on the operating system, according to the desired objective.

Management of the random access memory: - the operating system is responsible for managing the memory space allocated to each application and, where relevant, to each user. If there is insufficient physical memory, the operating system can create a memory zone on the hard drive, known as "virtual memory". The virtual memory lets you run applications requiring more memory than there is available RAM on the system. However, this memory is a great deal slower.

Management of input/output: - the operating system allows unification and control of access of programmes to material resources via drivers (also known as peripheral administrators or input/output administrators).

Management of execution of applications: - the operating system is responsible for smooth execution of applications by allocating the resources required for them to operate. This means an application that is not responding correctly can be "killed".

Management of authorizations: - the operating system is responsible for security relating to execution of programmes by guaranteeing that the resources are used only by programmes and users with the relevant authorizations.

File management: - the operating system manages reading and writing in the file system and the user and application file access authorizations.

Information management: - the operating system provides a certain number of indicators that can be used to diagnose the correct operation of the machine.

Components of the operating system:-

The operating system comprises a set of software packages that can be used to manage interactions with the hardware. The following elements are generally included in this set of software:

Kernel: - which represents the operating system's basic functions such as management of memory, processes, files, main inputs/outputs and communication functionalities.

Shell: - allowing communication with the operating system via a control language, letting the user control the peripherals without knowing the characteristics of the hardware used, management of physical addresses, etc.

File system:-, allowing files to be recorded in a tree structure.

Operating system can be classified as:-

Multi-threaded systems: - An operating system is known as multi-threaded when several "tasks" may be run at the same time.The applications consist of a sequence of instructions known as "threads". These threads will be alternately active, on standby, suspended or destroyed, according to the priority accorded to them or may be run simultaneously. It is also known as a shared time system when a time slice is allocated to each process by the scheduler. This is the case of multi-user systems which allow several users to use different or similar applications on the same machine at the same time.

Multi-processor systems: - Multi-processing is a technique that involves operating several processors in parallel to obtain a higher calculation power than that obtained using a high-end processor or to increase the availability of the system. The term SMP stands for Symmetric Multiprocessing or Symmetric Multiprocessor refers to an architecture in which all processors access the same shared memory. A multiprocessor system must be able to manage memory sharing between several processors but also to distribute the work load.

Embedded systems: - Embedded systems are operating systems designed to operate on small machines, such as PDAs which stands for personal digital assistants or autonomous electronic devices such as spatial probes, robot, on-board vehicle computer, etc. with reduced autonomy. Thus an essential feature of embedded systems is their advanced energy management and ability to operate with limited resources.

The main "general use" embedded systems for PDAs are as follows:


Windows CE / Windows Mobile / Window Smartphone

Real time systems: - Real time systems, used mainly in industry, are systems designed to operate in a time-constrained environment. A real time system must also operate reliably according to specific time constraints; in other words, it must be able to properly process information received at clearly-defined intervals.

Here are some examples of real time operating systems:


RTLinux (RealTime Linux);



Small computers:-

Small computers (high end personal computers) are in wide use today for variety of personal and business applications. These computers have advanced considerably during the last few years. A host of technological innovations including ultra fast processors, huge capacity primary and secondary storage and multimedia peripherals have enabled them to handle a number of demanding applications

Various operating systems for small computers:-.

Operating systems for small computers have evolved accordingly to take full advantage of the hardware capabilities, providing platforms for development of high performance advanced applications. Today's advanced operating system are quite user friendly and provide features such as multitasking ,multithreading, enhanced security, application data sharing and built in networking support etc.

Small computers can be classified into two main categories: 1) intelx86 based IBM personal computers and clones, commonly referred to as PCs and the Motorola 680x based apple computers, commonly known as Macintoshes. These two types are by far the most common and the majority of small computers are based o these architectures.

The most popular operating system for the PCs is disk operating system, also called DOS, MS-DOS or PC-DOS. Windows is a windowing environment for DOS which provides a GUI ad allows the user to run multiple DOS and windows-specific applications concurrently.

Several operating systems are also available for PCs. from among these, OS/2, Windows NT and Linux can be regarded as the most popular ones.

Macintosh system7.5 is the most popular operating system for Macintosh computers, marked by apple itself. It is also GUI based and provides several advanced features.

What Is Operating System Design: -

Operating system design is the creation of an operating system for a specific purpose and use. Operating systems control many different parts of modern electronics. Each of these systems was specifically designed to control the system on which it was installed. The most widely known operating systems are used on computers, but many other systems use operating programs as well. There are several different types of operating system design, each with its own functions and characteristics. An operating system is the program used to control the functions of a piece of electronics. Each operating system works with a specific type of hardware; uses on other hardware are generally impossible or highly unstable. This specificity requires designers to constantly update or modify their systems, resulting in a web of interconnected software.

There are three main types of operating systems. Each of the categories has specific functions and operating spheres; they are not interchangeable, and one is not better or worse than any other. Each class of operating system design contains many different programs.

The most well-known operating system design is in computers and is called a full-featured system. These systems are generally quite large and operate a general purpose computer. These operating systems have a lot of different functions they can use. They have several ways of interacting with users, platforms for writing any sort of software and functions that can be customized as the owner wishes. This type of system, due to its size and complexity, generally operates on the most types of hardware.

The second operating system design is the small operating system. These systems run interactive devices such as smart phones, media players and other advanced types of technology. These systems may be based on a full-featured system or may be unique to this layer of design. A small operating system generally takes up very little space and can operate a very specific piece of hardware. Programmers may generally create applications for these systems, but the tool set is much more limited than with a full-featured system.

The last type of operating system design is the most common. These operating systems are embedded into everyday objects such as car electronics, digital video disc (DVD) players and children's toys. These operating systems have a single purpose-programmers cannot make new applications for these systems, and any updates to the system come directly from the manufacturer. Even though they are so simple, they operate millions of different products and are common in modern homes.

How to make operating system:-

An Operating System tells the computer what to do. Whether the ones you have found don't measure up, or if you are a hobbyist wanting to have a creation to call your own, it can be a daunting to do this task and it may take years to get your own operating system to be of any use.

Steps: - following steps used for making operating system. These are:-

Decide what you want your OS to do. Whether it is a fully capable OS with a GUI or something a bit more minimalistic, you'll need to know what direction you are taking it before beginning

Target what processor platform your operating system will support. If you are not sure, your best bet is to target the X 86 (32 bit) processor platforms as most computers use X86 platform processors.

Decide if you would rather do it all yourself from the ground up, or if there is an existing kernel you would like to build on top of. Linux from Scratch is a project for those that would like to build their own Linux distro.

Decide if you're going to create your own boot loader or a pre-created one such as GRUB. While coding your own boot loader will give a lot of knowledge of the hardware and the BIOS, it may set you back on the programming of the actual kernel

While it is possible to create an operating system in a language such as Pascal or BASIC you will be better off using C or Assembly. Assembly is absolutely necessary as some vital parts of an operating system require it. C++ contains keyword that needs another fully built OS to run. Don't use it.

Start small. Begin with small things such as displaying text and interrupts before moving on to things such as memory management and multitasking.

Decide on your API. While this is a long way off it is a good idea to plan ahead. A good API to choose is POSIX, which is well documented. All UNIX have at least partial support for POSIX, so it would be trivial to port UNIX programs to your OS.

Decide on your design. There are monolithic kernels and microkernels. Monolithic kernels implement all the services in the kernel, while microkernels have a small kernel combined with user daemons implementing services. In general, monolithic kernels are faster, but microkernels have better fault isolation and reliability.

If you want an easy way. Consider Ubuntu remastersys, Fedora Revisor, Custom NimbleX, Puppy Remaster, PCLinuxOS mklivecd, SuSE Studio and SuSE KIWI. However, the operating system you create belongs to the company who started the service first. Although you have rights to distribute it freely, change it and run it however you like (under the GPL).

Warnings: - some warning always remembered while making operating system. These are:-

Having your operating system carelessly written to the hard drive can corrupt it completely. Be careful.

Be sure to implement security features as your top priority if you ever want to use it for anything.

If you do something really stupid, like write random bytes to random I/O ports, you will crash your OS, and (in theory) can fry your hardware. For a demonstration, execute 'cat /dev/port' on Linux as root. Your computer will crash.

Using your computer's physical drive is a BAD idea especially if you got 1 hard disk! You may damage your hard disk or destroy data that may be valuable to you.

Things you'll need: - for making operating system some points should be remembered.

A good computer

A CPU for the Architecture you will be developing

Enough memory (RAM) for a Virtual Machine

A 'Host' OS, used to develop the Assembler (and others) source code, also to build and package it, while it is in its early stages, eventually your own OS can be its host.

Syntax coloring code editor (use if you got no IDE)

Most importantly, you need a compiler.

Operating System Design Principles:-

Operating system design is a complex task. One of the driving forces behind software engineering was the complexity of OS design.

System design goals:

User interface: - should the interface be easy to learn by a novice user, or should it be designed for the convenience of an experienced user? (Multiple user interfaces?)

Efficient system resource management: - Unfortunately, the more complete the resource management, the more overhead.

Security: - Once again, the more secure a system is the less efficient it is.

Flexibility: - Most operating systems come preconfigured for many different devices. Part of the process of setting up a particular machine is to construct a version of the operating system that is tuned for the local installation. This tuning often involves setting certain limits, such as the maximum number of processes. It also involves specifying the attached hardware so that only the necessary drivers will be loaded. Some operating systems can load and unload drivers automatically at run-time.

Portability: - Will the operating system be portable to widely varying types of hardware, or just different models of a particular class of hardware?

Backwards compatibility and emulation: - Is it important that software that ran under previous operating system versions or under different operating systems be supported?

Layered design:-Operating system consists of multiple layers. Each layer depends on the on the layer(s) beneath it.


Improved security, since only layers close to hardware need to operate in kernel mode.

Improved portability since only small part of operating system interfaces with the hardware.

Makes maintenance of operating system code easier.


Deciding what functionality to put in each layer can be difficult. This is because there are some interdependencies that would violate the layering model. Decreased efficiency.

How to distinguish different operating systems?

For academic purposes, a good test of the differences between two operating systems is ease of porting software. If two operating systems are such that porting software from one to another is difficult because the concepts are different, then the OSes are relatively unalike. At the other extreme, if two platforms are such that no effort is required to "port" from one to another, then the two are relatively similar. Because there are legal reasons why we can't call two different products produced by different manufacturers the same, we call them Compatible.

Usually two systems that are compatible are so because they follow a single protocol called a standard. Organizations like IEEE, and ISO, publish these standards, and different companies can build their project to the standard even though they have proprietary elements at a lower level. For instance Linux and UNIX share the IEEE POSIX standard so they are compatible at the interface level that standard defines.

By this definition, many common operating systems can be lumped together and considered to be similar or compatible. OS/2 and Windows are similar. UNIX and BSD are Similar, Linux is Compatible.

The minimum distance between two distinct operating systems is probably that between Plan 9 and UNIX. Despite their differences, both were created by the same person to achieve the exact same goals. And despite the time interval between UNIX and Plan 9, it is obvious that the designers felt that many of the UNIX design decisions were still good. This all goes to show that Plan 9 and UNIX are as close as two operating systems can ever get while remaining distinct.

Note that this test of the distinctiveness of operating systems has an analog used in biology to establish the distinctness of species. Biology recognizes species as distinct when they can no longer freely interbreed. For our purposes, operating systems are distinct when they can no longer freely share code

Various operating systems for different computers:

Operating Systems for mini's and mainframe's

Major operating systems:

UNIX & variants

AIX for the IBM RS6000, PowerPC


HP-UX mips



NetBSD vax

Operating Systems for Microcomputers or Personal computers

  Major operating systems:

Apple OS

Apple OS X

Mac OS X for the PowerPC



Computer Program for Micro computers;-

DOS - Disk Operating System:-Most used names: MS-DOS - PC compatibles, PC-DOS - IBM and compatibles, TOS - Atari, DOS - Amiga and many others


GEOS:-introduced in 1986 by Berkeley Soft works

Unix & variants :- FreeBSD i386, Linux i386, sparc, PowerPC, alpha, Windows NT i386

MS Windows

OS/2 :-IBM's version of a graphic interface

Operating Systems for Supercomputers

Major operating systems:



Applications of operating system:-

These concepts can be applied to a variety of applications, including military and government systems.

The meta-operating system concept might be applied to tactical situations in which there are a large number of sensors deployed, only some of which are useful at a given time, or for which particular personnel are appropriately cleared. In this scenario, the meta-operating system, with components running on sensors and communications gateways, provides the infrastructure to write an application which allows certain personnel to see particular sensors based upon their clearances and perhaps location.

For example, a simple application might allow certain soldiers access to data from motion and audio sensors, but only intelligence officer's access to data from communications sensors.

Meta-operating systems can provide the infrastructure for building more complex applications that span multiple sensors and platforms. An example scenario might be the integration of chemical, biological, and radiographic sensors in homeland security applications.

The use of a meta-operating system allows rapid development and deployment of new event collection and filtering applications that can exploit new sensors and processing algorithms, while at the same time providing the appropriate customized views into the system by developers, investigators probing for particular incident types, and general security forces monitoring for attacks. Finally, ambient computing systems might be utilized in more mundane environments such as the residence, in order to enable the long-promised "smart home" scenario.