Operating system development
Encyclopedia
Operating system development is one of the more involved and technical options for a computer hobbyist.
A hobby operating system is classified as one with little or no support from other developers.

Development
Software developer
A software developer is a person concerned with facets of the software development process. Their work includes researching, designing, developing, and testing software. A software developer may take part in design, computer programming, or software project management...

 begins with an existing operating system. The development platform may be a bare hardware machine
Bare machine
Bare Machine, in computer parlance, means a computer without its operating system. Modern operating systems evolved through various stages, from elementary to the present day complex, highly sensitive real-time systems. In the very first stage of computing there was nothing like an Operating System...

, which is the nature of an operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

, but it can be developed and tested on a virtual machine.
Because the hobbyist must claim more ownership for adapting a complex system to the ever changing needs of the technical terrain, zeal and enthusiasm is common amongst the many different groups attracted to operating system development.

Development

Elements of traditional PC based operating systems include:
  • Kernel:
    • Bootstrapping
    • Memory management
      Memory management
      Memory management is the act of managing computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and freeing it for reuse when no longer needed. This is critical to the computer system.Several...

    • Process management
      Process management (computing)
      Process management is an integral part of any modern day operating system . The OS must allocate resources to processes, enable processes to share and exchange information, protect the resources of each process from other processes and enable synchronisation among processes...

       and scheduling
      Scheduling (computing)
      In computer science, a scheduling is the method by which threads, processes or data flows are given access to system resources . This is usually done to load balance a system effectively or achieve a target quality of service...

    • Device driver
      Device driver
      In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....

       management


Traditionally, kernel developers have commonly used the C programming language
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

 and Assembly
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

. C remains popular for OS developers, as it provides low-level pointer manipulation and requires no run-time support (as opposed to some elements of C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

, such as the new and delete operators).

External references

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK