Operating Systems

_images/Operating_system_placement.png

Computer systems are basically hardware which needs softwares to perform various tasks. However addditional level of control is needed to manage wide variety of softwares that are comminucating with the hardware. This additiona layer is the operating system. Operating systems basically manage the softwares and facilitate access to resources between computer programs and hardwares.

As you can see in the diagram, the Operating system facilitates the computer programs to access the required hardwares resources, so that the applications can perform what the user has requested it to do.

Some of the main features that a Operating System provides to computer programs/softwares and hardware are:

  1. Process Management

    Process management is most vital and crital feature in most of the latest operating systems. This features allocates the required resources to the processes which have been started. Also it allows to give and take information among the processes, so that the computer resources are not wasted in computing the same data. Basically one of the process could compute basic information and other processes could take this information for their computation needs. However one process should not intervene with the resources used by another process. And maintain synchronization between the running processes. To facilitate these features and maintain balance among the process, the Operating System devices a data structure for each running process, which provides information on the state of the process and its ownership of resources. Hence process management is able to maintain control over each process.

  2. Interrupts

    Interrupts provide an efficiency mechanism for the Operating system to react according to the situation. Primarily interrupts are used to execute a certain set of computer programs/instruction when a event occurs. The events could include but not limited to H/W overheating, software crash, time module, hardware detection, etc. So when an event occurs an interrupt signal is sent to the hardware which will susupend the currently running process and execute the defined softwware program/instruction associated with the interrupt.

  3. Memory Management

    Memory is required by the all the software programs. And again certain parts of the memory is reserved for certain programs, while certain section of the memory is shared among the programs. And some are reserved for various other activities. So the operating system controls which programs can access the various parts of the memory, so that no program can interfere with the memory of another program.

  4. File System

    Humans are very comfortable with names, rather than numbers. In a computing system, the data is stored in locations which are referenced using numbers. The File System organizes these numbers into names which are human friendly and the data can be retreived using these names which are called as a “File”. The mechanism used to manage these information and their names is called a “File System”.

  5. Devices Drivers

    Each hardware in the computer system needs a Device Driver. A Device Driver is a computer program which has the capability to communicate and control the hardware that is attached to the computer system. This software (device driver) provides an software interface to the attached hardware, so that the operating system, other programs and processes can make use of the hardware resources without the need to know the complete details of the attached hardware.

  6. Networking

    Networking is the mechanism used to communicate between one computer system to another computer system. This is acheived by the Operating System by adding networking modules and devices which allows the computer to transmit and receive information from other computer devices. Using networking modules a computer system can also communicate with the other hardwares using the same networking modules like: printers, scanners, security devices, mobile devices, networking devices, etc,.

  7. Security

    An operating system can be used for wide variety of services. So it becomes crucial to make sure that only authenticated and authorized personnel and services can make requests for resources. So inorder to authenticate against the operating system, user accounts are created along with their password for authentication. Also these user accounts are associated with services and resources, so that the operating system authorizes the user to gain access to the resource.

  8. I/O

    Input/Output is the communication between a computer system and its user. Mostly the users are humans, however other computer system can also act as a user. So a user provides the necessary input to the computer to perform a task. Now when the computer has completed the computation, it needs to give back the result of the task to the requesting user. This result is given back to the user through a output device. Typically humans use input devices such as keyboard, mouse, joystick, etc. And output devices such as printers, monitors, etc. The computers on the other side uses modems, networking cards, etc, for input and output of computation needs.

Types of Operating Systems:

  1. Real Time Operating System

    Real time operating systems are primarily used in devices which are responsible to process the application requests as and when the requests are made. To be more specific, they need to have the least buffering delays to perform the request processing.

    Some of those Operating Systems are Lynx OS, OSE, QNX, RTLinux, VxWorks, Windows CE, Free RTOS.

    Some of the salient features are:
    1. Consistency
    2. Reliability
    3. Predictability
    4. Performance
    5. Scalability
    Primary functions and it’s uses:
    1. Task Management

      Creates and deletes task (task is refered to as process which occupies system memory and takes appropriate time to execute). Controls how and when the tasks should be executed. Sometimes the tasks can get queued as well. Collects the task data and returns the same to the user/requester, once the task is completed.

    2. Scheduling

      Since RTOS is more predictable system better algorithms are devised so that the tasks are scheduled and executed at the right intervals. Also provides information related to number of tasks, resources required to execute the tasks, release time, execution time and deadline of the task. Some of the algorithms which schedules tasks are: Clock Driven Scheduling, Weighted Round Robin Scheduling, Priority Scheduling

    3. Resource Allocation

      RTOS Systems mostly run with low resources. Hence Resources Allocation becomes necessary, so that the system does not come under heavy load. Mostly the resources are allocated based on the algorithms: Weighted Round Robin and Priority based.

    4. Interrupt Handling

      Some times certain signals are sent to the RTOS, so that it stops current operations/tasks and starts to execute the code which responds to the signal. This signal is basically called as Interrupt signals whose main purpose is to inform the RTOS to start processing a task immediately. Hence Interrupt handlers are avialble, so that the expected task is started to execute immediately, when required.

    Almost all the modern systems, including but not limited to telecommunications, Defence, Satellite systems, etc, use RTOS.

  2. Single User, Single Task Operating System

    Single User, Single Task operating systems are used on devices where there are only single tasks and are primarily run by one user. One such example is an operating system running in mobile phones, palmtops, etc. These devices are only operated by one user at any given point of time. Again only one application is being executed at given point of time.

    Some of the operating systems which are Single User, Single Task are: Symbian, Palm OS, webOS, Maemo, MeeGo, LiMo

    Some of the salient features are:
    1. Simple, single-tasking environment
    2. Capable to run on low-power battery based devices and ROM devices
    3. Strict resource conservation
    4. Multimedia
    Primary functions and it’s uses:
    1. Interpret users commands:

      Directly interprets the inputs from the user and perform the requested task. Works more like the interrupts in RTOS.

    2. File Management

      Maintaince the location of files which are on the storage device of the computer. Basically all the information regarding files (stored on devices like flash drive, MicroSD, MicroSDHC, miniSD, etc.,) are updated in the File Allocation Table. This table has the information regarding the exact location of the block where the file is stored. This helps users to identify and locate the data in the form of files and folders structure which are actually physical block on the storage device. File management also helps the input/output manager to oraganize data transfer from and to storage devices or networked locations.

    3. Memory Management

      The memory manager controls and facilitates access to memory locations for the programs and resident data in ssytem memory (basically RAM and ROM). This is also responsible for allocation and de-allocation of memory locations to programs which need to store data while performing certain computation. The memory manager also maintains the account for used memory and available memory from the total memory. This ensures that if any program requests for more memory than that is currently available, then the operating system can hold/puase/terminate the programs which do need to run at that moment. Providing memory to the programs which actually need them.

    4. Input/Output Management

      The input/output system is the program which works closely with the peripharals attached along with the device to facilitate data transfer. They have the capability to communicate directly with the system components like processor, memory, user display, etc,. Since they have direct contact with these devices, they coordinate the flow of data between the peripharals which intern controls the data buffers between CPU and system components. Also they manage the errors that occur while transmitting the data using the status signals available in the device interfaces.

    5. Process Management

      Controls the execution of the programs and handles interrupts. Also since multiple process are execute, only one process is allowed to run or make use of the processor at any given point time. So the process manager manager which and what program will make use of the processor time. It also coordinates what programs or processes are needed to run a specific task. For example, clicking on a http link should start the web browser or web download program.

    6. Resource Allocation

      The resource manager is responsible for facilitating the resources (like networked computer, internet, printer, scanner, camera, etc.,) to programs which need them and also to share these resources as and when required amoung multiple processes. Some times the resource manager needs to pause the low priority programs access to certain resource when a high priority program is requesting for the same resource.

    7. Process Interaction

      One example of complicated task is where a user clicks on a file and then drags the same over to a web browser. Here the process interaction function needs to identify the file location from the File management program and then initiate a web browser using the process manager and then load the file over the web browser. The process interaction programs coordinates and manages the tasks which call for other programs.

  1. Single User, Multi Task Operating System

    Single User, Multi task operating systems can execute multi/different tasks at the same time, however the number of users using the computer system will only be one at any given time. Some of the devices which have the single user, multi task operating system are laptops, desktops, android phones, iPhones, small military devices, remote controlled devices, etc. All these devices are used by a single user at given time, but multiple tasks are executed parallely. For example: A user browsing the internet over a phone may also perform screen capturing task parallely.

    Some of the operating systems which are Single user, Multi Task are: Linux Desktop Operating Systems, Mac OS X, Windows Destop Operating System, etc.

    Some of the salient features are:
    1. Flexible Graphical User Interface.
    2. Capability for Multi Boot OS.
    3. Supports for latest hardware.
    4. Various application softwares can be installed.
    Primary functions and it’s uses:
    1. Scheduling

      Since this is a multi tasking operating, more number of processes may be launched by the user. So these processes needs CPU processing cycles in order to complete their task. Hence the scheduling feature makes sure that the at any given point of time, only process is using the CPU processing Cycles. And rest of the processes are paused during that time.

    2. Memory Management

      Most of the Modern Single User, Multi Task operating systems share memory regions so that shared programs are accessible amoung the processes. However one process should not interfere with the unshared memory region of another program. Hence memory management feature makes sure that each process access only the permitted regions of the memory and prevents interference among the other process.

    3. Allocation of resources

      These operating systems are loaded onto hardwares and network resources which are also used by other computer hardwares. For example a DVD ROM may be accessed a image burner program, while the filesystem browser may use the DVD ROM to view the contents of the same. However both the programs cannot access the device at the same time. So the resource allocation features provides the resource to various programs one at a time.

    4. Data and User Security

      Due to the flexibility in usage of these operating systems, more and more theft of data and resources have been occuring. In order to avoid these incidents, the resource and the data belonging to the users needs to be secured. Hence security features are added in to these operating systems, so that the data is secured.

    5. Availability of network resources

      These operating systems have hardware devices which allow them to connect to the resources on the network, such as printers, scanners, etc. In order for them to access these devices, some additional software programs called drivers needs to be installed along these operating systems.

    6. Managing Input and Output Systems

      In todays world the number of input and output devices have grown to an large extent. For example a user may connect a mobile device to a computer or the same mobile device could be connected to a television system. Some times they are also connected to direct network line which allow them to receive and transmit any kind of data. So these operating systems are also loaded with devices and software programs which allow them to connect to various kinds of input and output systems.

  2. Multi User, Multi Task Operating System

    Multi User Multi Task operating systems is very much similar to the Single User, Multi Task Operating System. The major difference is that the capability to allow multiple users to connect to the operating system at the same time and make use of its resources simultaneously. Primarily this operating system is used in environments where in multiple users needs to use the same resouorces at the same time. For example: A webserver, print server, remote terminal server, FTP servers, etc. In all these cases various users connect to the server and makes use of its resources simultaneously.

    Some of the operating systems which are Multi User, Multi Task Operating Systems are: Red Hat Enterprise Linux Operating Systems, Ubuntu Server, Windows Server Operating System, etc.

    Some of the salient features are:
    1. Server Capabilities
    2. Networked Applications
    3. Hardware Detection
    4. Graphical User Interface
    5. Time Sharing
    Primary functions and it’s uses:
    1. Memory Sharing

      Each process running in the operating system occupies certain portion of the memory and uses the data stored in that region to run the program. Also it is important to understand that each process runs independantly and the memory region needs to be protected from other processes. However when another process starts to use certain other regions of memory, it should be made sure that the memory region of earlier process, should be secured and not shared with the current process. Also in certain cases, there are memory regions which are shared by the process itself, so that other programs can make use of the same.

    2. Resource Sharing

      The operating system is capable of utilizing various hardware and networking resources. Some of these resources are available to all the processes. However some resources can be utilized by only one process at a time. So the process which is using the resource, allocated a flag called as semaphore, indicating that the resource is in use and cannot be used by another process. Once the resource utilization is completed, the process resets the semaphore flag, so that other processes can make use of the resource.

    3. Time Sharing

      This is one of the features which make the Multi User Multi Tasking Operating Systems very famous. This feature allows the operating system to share the processing time between different users and programs connected to various processes and resources. This allows multiple users to connect to a single computer/server running multi tasking operating system to make use of its single processor. This feature combined with multi tasking capabilities, allows users to execute/run multiple programs on a sigle computer.

    4. Multi Tasking

      Multi tasking is the capability of a computer to execute/run multiple process which makes use of multiple cores available within a single processor. With this each process is attached to a specific core in a processor. Again multiple processes may be attached to individual cores on the same processor.

    5. Multi User

      Multi user primarily indicates that at a given point of time more than one user can connect to the computer and execute programs on the same while other users are also connected and executing their own set of programs. Meanwhile the operating system makes sure that each of those process does not interfere with processes launched/executed by other users.

CentOS

_images/centos.png

CentOS is one of the famous alternative for Red Hat Enterprise Linux Server since the packages/softwares with Centos are derived from the sources of Red Hat Enterprise Linux (RHEL). It is also abbreviated as Community Enterprise Operating System. This platform only provides support via the community comprising but not limited to system administrators, network administrators, managers, core Linux contributors, and Linux enthusiasts from around the world. Currently CentOS 7 onwards, only the X86-64 architecture is supported.

Following are the important repositories provided the CentOS project for software packages and updates.
  1. CentOS Extras
  2. CentOSPlus
  3. CentOS-Testing
  4. CentOS-Fasttrack
  5. CR(Continuous Release)
  6. debuginfo
  7. contrib