Computer Fundamental
 
Operating System
 
What is an Operating System?
The operating system is the core software component of your computer. It performs many functions and is, in very basic terms, an interface between your computer and the outside world. In the section about hardware, a computer is described as consisting of several component parts including your monitor, keyboard, mouse, and other parts. The operating system provides an interface to these parts using what is referred to as "drivers". This is why sometimes when you install a new printer or other piece of hardware, your system will ask you to install more software called a driver.
 
 
What Operating System does?
Basically an Operating System manages every activity of computer. It manages UI[User Interface], memory, security etc.
 
Task of Operating System
Process management
Every program running on a computer, be it background services or applications, is a process. Modern operating systems[Windows, Linux etc] enable concurrent execution of many processes at once via multitasking even with one CPU. Process Management is an operating system's way of dealing with running multiple processes. Since most computers contain one processor with one core, multitasking is done by simply switching processes quickly. Depending on the operating system, as more processes run, either each time slice will become smaller or there will be a longer delay before each process is given a chance to run. Process management involves computing and distributing CPU time as well as other resources. Most operating systems allow a process to be assigned a priority which affects its allocation of CPU time. Interactive operating systems also employ some level of feedback in which the task with which the user is working receives higher priority. Interrupt driven processes will normally run at a very high priority. In many systems there is a background process, such as the System Idle Process in Windows, which will run when no other process is waiting for the CPU.
 
 
Memory management
According to Parkinson's law, "Data expands to fill the space available for storage". Programmers prefer a memory of infinite size and infinite speed. Current computer architectures arrange the computer's memory in a hierarchical manner, starting from the fastest registers, CPU cache, RAM and disk storage. The memory manager in an OS coordinates the memories by tracking which one is available, which is to be allocated or deallocated and how to swap between the main memory and secondary memories. This activity, which is usually referred to as virtual memory management, increases the amount of memory available for each process by making the disk storage seem like main memory. There is a speed penalty associated with swapping RAM to disk or other slower storage, however. If running processes require significantly more RAM than is available the system may start thrashing. This can happen either because one process requires a large amount of RAM or because two or more processes compete for a larger amount of memory than is available. This then leads to constant swapping of each process to slower storage.
 
Another important part of memory management is managing virtual addresses. If multiple processes are in memory at once, they must be prevented from interfering with each other's memory (unless there is an explicit request to share a limited amount of memory, in controlled ways). This is achieved by having separate address spaces. Each process sees the whole virtual address space, typically from address 0 up to the maximum size of virtual memory, as uniquely assigned to it. The operating system maintains tables, so-called page tables that match virtual addresses to physical addresses.
 
The operating system can also write inactive memory pages to secondary storage. This process is called "paging".
 
The operating system tracks all memory used by each process so that when a process terminates, all memory used by that process can be made available for other processes.
 
 
Disk and File systems Management
Operating systems have a variety of native file systems. Linux has a greater range of native file systems. Windows, on the other hand, has limited file system support which only includes: FAT12, FAT16, FAT32, and NTFS. The NTFS file system is the most efficient and reliable of the four Windows systems. All the FAT systems are older than NTFS and have limitations on the partition and file size that can cause a variety of problems.
 
Most modern file systems are made up of similar directories and subdirectories. Along with the operating systems file system similarities, there are subtle differences. Microsoft separates its directories with a backslash and its file names are case insensitive whereas Unix/Linux-derived operating systems use the forward slash and their file names generally are case sensitive.
 
 
Networking
Most current operating systems are capable of using the TCP/IP networking protocols. This means that one system can appear on a network of the other and share resources such as files, printers, and scanners using either wired or wireless connections.
 
 
Security Management
Many operating systems include some level of security. Security is based on the two ideas that:
 
. The operating system provides access to a number of resources, directly or indirectly, such as files on a local disk, privileged system calls, personal information about users, and the services offered by the programs running on the system;
 
. The operating system is capable of distinguishing between some requesters of these resources who are authorized (allowed) to access the resource, and others who are not authorized (forbidden). While some systems may simply distinguish between "privileged" and "non-privileged", systems commonly have a form of requester identity, such as a user name. Requesters, in turn, divide into two categories:
 
1. Internal security: an already running program. On some systems, a program once it is running has no limitations, but commonly the program has an identity which it keeps and is used to check all of its requests for resources.
 
2. External security: a new request from outside the computer, such as a login at a connected console or some kind of network connection. To establish identity there may be a process of authentication. Often a username must be quoted, and each username may have a password. Other methods of authentication, such as magnetic cards or biometric data might be used instead. In some cases, especially connections from the network, resources may be accessed with no authentication at all.
 
In addition, to the allow/disallow model of security, a system with a high level of security will also offer auditing options. These would allow tracking of requests for access to resources (such as, "who has been reading this file?").
 
 
UI [User Interface] management
Today, most modern operating systems contain Graphical User Interfaces. More modern operating systems are modular, separating the graphics subsystem from the kernel (as is now done in Linux, and Mac OS X, and to a limited extent Windows).
 
GUIs tend to change with time. For example, Windows has modified its GUI every time a new major version of Windows is released and the Mac OS GUI changed dramatically with the introduction of Mac OS X.
 
 
Driver Management
A device driver is a specific type of computer software developed to allow interaction with hardware devices. Typically this constitutes an interface for communicating with the device, through the specific computer bus or communications subsystem that the hardware is connected to, providing commands to and/or receiving data from the device, and on the other end, the requisite interfaces to the operating system and software applications. It is a specialized hardware-dependent computer program which is also operating system specific that enables another program, typically an operating system or applications software package or computer program running under the operating system kernel, to interact transparently with a hardware device, and usually provides the requisite interrupt handling necessary for any necessary asynchronous time-dependent hardware interfacing needs.
 
 
Operating System Types
There are many types of operating systems. The most common is the Microsoft suite of operating systems. They include from most recent to the oldest:
. Windows XP Professional Edition - A version used by many businesses on workstations. It has the ability to become a member of a corporate domain.
 
. Windows XP Home Edition - A lower cost version of Windows XP which is for home use only and should not be used at a business.
 
. Windows 2000 - A better version of the Windows NT operating system which works well both at home and as a workstation at a business. It includes technologies which allow hardware to be automatically detected and other enhancements over Windows NT.
 
. Windows ME - A upgraded version from windows 98 but it has been historically plagued with programming errors which may be frustrating for home users.
 
. Windows 98 - This was produced in two main versions. The first Windows 98 version was plagued with programming errors but the Windows 98 Second Edition which came out later was much better with many errors resolved.
 
. Windows NT - A version of Windows made specifically for businesses offering better control over workstation capabilities to help network administrators.
 
. Windows 95 - The first version of Windows after the older Windows 3.x versions offering a better interface and better library functions for programs.
 
There are other worthwhile types of operating systems not made by Microsoft. The greatest problem with these operating systems lies in the fact that not as many application programs are written for them. However if you can get the type of application programs you are looking for, one of the systems listed below may be a good choice.
. UNIX - A system that has been around for many years and it is very stable. It is primary used to be a server rather than a workstation and should not be used by anyone who does not understand the system. It can be difficult to learn. UNIX must normally run a computer made by the same company that produces the software.
 
. Linux - Linux is similar to UNIX in operation but it is free. It also should not be used by anyone who does not understand the system and can be difficult to learn.
 
. Apple Macintosh - Most recent versions are based on UNIX but it has a good graphical interface so it is both stable (does not crash often or have as many software problems as other systems may have) and easy to learn. One drawback to this system is that it can only be run on Apple produced hardware.