This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
computer is made of different components, just as: cpu, memory (i.e. volatile or non-volatile), some secondary storage devices, and etc. but these are nothing unless we do not add some interface that can accomplish our tasks, that is for what we are using it. Thus an operating system is an interface between the 'hardware' and user. common functions of allocating and controlling the resources are brought together into one piece of software; which is called 'Operating System'. Thus:
An operating system is interface between computer hardware and user.
It manages the resources of computer.
It allocates resources to different tasks.
Some of services provided by an operating system:
Protection and security
An operating system is one which runs all the time on the computer; this running program is called 'kernel'. When we power-on the computer, it needs to have an initial program to run, which is called initial program or 'bootstrap program', typically is stored in ROM or EPROM, generally known as 'firmware' within the computer hardware. It initializes all aspects of a system; that is from register allocation to memory startup. The bootstrap program must know that how to load operating system, thus to accomplish this task the bootstraps program must locate and load the operating system kernel in main memory, the operating system then starts executing its first program such as 'init' and waits for further processing.
Executing a program involves the creation of a process by the operating system. The kernel creates a process by assigning memory and other resources, establishing a priority for the process (in multi-tasking systems), loading program code into memory, and executing the program. The program then interacts with the user and/or other devices and performs its intended function.
An interrupt is just like a signal to operating system, that tells operating system that some task should be performed, it seems like operating system is invited by outer sources, it is not necessary that an interrupt must be from outer source, but it can be internal also.
File system support in modern operating systems
Some operating systems:
Linux is a generic term referring to UNIX -LIKE computer Operating systems based on the Linux Kernel. Their development is one of the most prominent examples of free and open source software.
The name "Linux" comes from the Linux kernel, originally written in 1991 by LINUS Torvalds. The contribution of a supporting userland in the form of system tools and libraries from the GNU Project (announced in 1983 by Richard Stallman) is the basis for the Free Software Foundation's preferred name GNU/Linux
Typically Linux is packaged in a format known as a Linux distribution for desktop and server use. Linux distributions include the Linux kernel and all of the supporting software required to run a complete system, such as
Utilities and libraries
X window system
KDE desktop environment
Apache http server
Commonly-used applications with desktop Linux systems include the Mozilla Ffirefox web-browser and the OpenOffice.org office application suite.Linux can be installed on a wide variety of computer hardware, ranging from embedded devices such as mobile phones and wristwatches] to mainframes and supercomputers. Linux is predominantly known for its use in servers.
The Unix operating system was conceived and implemented in 1969 at AT&T's Bell Laboratories in the US by Ken Thompson, Dennis Ritchie, Douglas McIlroy, and Joe Ossanna. It was first released in 1971 and was initially entirely written in ASSEEMBLY LANGUAGE, a common practice at the time. Later, in a key pioneering approach in 1973, Unix was re-written in the programming language C by Dennis Ritchie, (with exceptions to the kernel and I/O). The availability of an operating system written in a high-level language allowed easier portability to different computer platforms and Unix became widely adopted by academic institutions and businesses.
The GNU Project, started in 1983 by Richard Stallman, had the goal of creating a "complete Unix-compatible software system" composed entirely of free software. Work began in 1984. Later, in 1985, Stallman created the Free Software Foundation and wrote the GNU General Public License (GNU GPL) in 1989. By the early 1990s, many of the programs required in an operating system (such as libraries, compilers, text editors, a Unix shell, and a windowing system) were completed, although low-level elements such as device drivers, daemons, and the kernel were stalled and incomplete. Linus Torvalds has said that if the GNU kernel had been available at the time (1991), he would not have decided to write his own.
Andrew S. Tanenbaum, author of the MINIX operating system
MINIX was an inexpensive minimal to UNIX -LIKE operating system, designed for education in computer science, written by Andrew S. Tanenbaum (now MINIX is free and redesigned also for "serious" use).
In 1991 while attending the University of Helsinki, Torvalds began to work on a non-commercial replacement for MINIX, which would eventually become the Linux kernel.
Torvalds began the development of Linux on MINIX and applications written for MINIX were also used under Linux. Later Linux matured and it became possible for Linux to be developed under itself. Also GNU applications replaced all MINIX ones because, with code from the GNU system freely available, it was advantageous if this could be used with the fledgling OS.
A Linux-based system is a modular Unix-like operating system. It derives much of its basic design from principles established in Unix during the 1970s and 1980s. Such a system uses a monolithic kernel, the Linux kernel, which handles process control, networking, and peripheral and file system access. Device drivers are integrated directly with the kernel.
Separate projects that interface with the kernel provide much of the system's higher-level functionality. The GNU userland is an important part of most Linux-based systems, providing the most common implementation of the C library, a popular shell, and many of the common Unix tools which carry out many basic operating system tasks. The graphical user interface (or GUI) used by most Linux systems is based on the X Window System
Users can control a Linux-based system through a command line interface (or CLI), a graphical user interface (or GUI), or through controls attached to the associated hardware (this is common for embedded systems). For desktop systems, the default mode is usually graphical user interface, where the CLI is available through terminal emulator windows or on a separate virtual console.
A Linux system typically provides a CLI through a shell, which is the traditional way of interacting with a Unix system. A Linux distribution specialized for servers may use the CLI as its only interface. A headless system that runs without even a monitor can be controlled by the command line via a remote-control protocol such as SSH or telnet.
Most low-level Linux components, including the GNU userland, use the CLI exclusively. The CLI is particularly suited for automation of repetitive or delayed tasks, and provides very simple inter-process communication. A graphical terminal emulator program is often used to access the CLI from a Linux desktop.
Programming on Linux
Most Linux distributions support dozens of programming languages. The most common collection of utilities for building both Linux applications and operating system programs is found within the GNU toolchain, which includes the GNU Compiler Collection (GCC) and the GNU build system. Amongst others, GCC provides compilers for Ada, C, C++, Java, and Fortran. The Linux kernel itself is written to be compiled with GCC. Proprietary compilers for Linux include the Intel C++ Compiler, Sun Studio, and IBM XL C/C++ Compiler. BASIC is supported in such forms as Gambas, FreeBASIC, and XBasic.
Most distributions also include support for PHP, Perl, Ruby, Python and other dynamic languages. While not as common, Linux also supports C# via the Mono project, sponsored by Novell, and Scheme. A number of Java Virtual Machines and development kits run on Linux, including the original Sun Microsystems JVM (HotSpot), and IBM's J2SE RE, as well as many open-source projects like Kaffe.
Symbian is an operating system (OS) designed for mobile devices and smartphones, with associated libraries, user interface, frameworks and reference implementations of common tools, originally developed by Symbian Ltd. It was a descendant of Psion's EPOC and runs exclusively on ARM processors, although an unreleased x86 port existed.
In 2008 the former Symbian Software Limited was acquired by Nokia and a new independent non-profit organisation called the Symbian Foundation was established. Symbian OS and its associated user interfaces S60, UIQ and MOAP(S) were contributed by their owners to the foundation with the objective of creating the Symbian platform as a royalty-free, open source software. The resulting Symbian platform has been designated as the successor to Symbian OS, following the official launch of the Symbian Foundation in April 2009. The process of publishing the source code under the Eclipse Public License (EPL) was slated for completion in 2010.
Symbian is the world's most popular mobile operating system, accounting for 45% of smartphone sales.
Symbian features pre-emptive multitasking and memory protection, like other operating systems (especially those created for use on desktop computers). EPOC's approach to multitasking was inspired by VMS and is based on asynchronous server-based events.
Logical Volume Management allows for spanning a file system across multiple devices for the purpose of adding redundancy, capacity, and/or throughput. Solaris includes Solaris Volume Manager. Solaris is one of many operating systems supported by Veritas Volume Manager. Modern Solaris based operating systems eclipse the need for volume management through leveraging virtual storage pools in ZFS. Kernel extensions were added to Solaris to allow for bootable Veritas VxFS operation. Logging or journaling was added to UFS in Solaris 7. Releases of Solaris 10, Solaris Express, OpenSolaris, and other open source variants of Solaris later supported bootable ZFS.
Symbian OS was created with three systems design principles in mind:
the integrity and security of user data is paramount,
user time must not be wasted, and
all resources are scarce.
To best follow these principles, Symbian uses a microkernel, has a request-and-callback approach to services, and maintains separation between user interface and engine. The OS is optimised for low-power battery-based devices and for ROM-based systems (e.g. features like XIP and re-entrancy in shared libraries). Applications, and the OS itself, follow an object-oriented design: Model-view-controller (MVC).
Later OS iterations diluted this approach in response to market demands, notably with the introduction of a real-time kernel and a platform security model in versions 8 and 9.
There is a strong emphasis on conserving resources which is exemplified by Symbian-specific programming idioms such as descriptors and a cleanup stack. There are similar techniques for conserving disk space (though the disks on Symbian devices are usually flash memory). Furthermore, all Symbian programming is event-based, and the CPU is switched into a low power mode when applications are not directly dealing with an event. This is achieved through a programming idiom called active objects. Similarly the Symbian approach to threads and processes is driven by reducing overheads.
The Symbian kernel (EKA2) supports sufficiently-fast real-time response to build a single-core phone around it-that is, a phone in which a single processor core executes both the user applications and the signalling stack. This is a feature which is not available in Linux. This has allowed Symbian EKA2 phones to become smaller, cheaper and more power efficient than their predecessors.
Developing on Symbian OS
The native language of Symbian is C++, although it is not a standard implementation. There were multiple platforms based upon Symbian OS that provided SDKs for application developers wishing to target Symbian OS devices - the main ones being UIQ and S60. Individual phone products, or families, often had SDKs or SDK extensions downloadable from the manufacturer's website too. With the various UI platforms unified in the Symbian platform there should be less diversity between manufacturer's SDKs from 2010 onwards.
The SDKs contain documentation, the header files and library files required to build Symbian OS software, and a Windows-based emulator ("WINS"). Up until Symbian OS version 8, the SDKs also included a version of the GCC compiler (a cross-compiler) required to build software to work on the device.
Symbian OS 9 and the Symbian platform use a new ABI and require a different compiler - a choice of compilers is available including a newer version of GCC (see external links below).
Unfortunately, Symbian C++ programming has a steep learning curve, as Symbian requires the use of special techniques such as descriptors and the cleanup stack. This can make even relatively simple programs harder to implement than in other environments. Moreover, it is questionable whether Symbian's techniques, such as the memory management paradigm, are actually beneficial. It is possible that the techniques, developed for the much more restricted mobile hardware of the 1990s, simply cause unnecessary complexity in source code because programmers are required to concentrate on low-level routines instead of more application-specific features. It seems difficult, however, to make a move towards a more high-level and modern programming paradigm.
Symbian's flavour of C++ is very specialised. However, Symbian devices can also be programmed using Python, Java ME, Flash Lite, Ruby, .NET, Web Runtime (WRT) Widgets and Standard C/C++..
Visual Basic programmers can use NS Basic to develop apps for S60 3rd Edition and UIQ 3 devices.
In the past, Visual Basic, VB.NET, and C# development for Symbian were possible through AppForge Crossfire, a plugin for Microsoft Visual Studio. On 13 March 2007 AppForge ceased operations; Oracle purchased the intellectual property, but announced that they did not plan to sell or provide support for former AppForge products. Net60, a .NET compact framework for Symbian, which is developed by redFIVElabs, is sold as a commercial product. With Net60, VB.NET and C# (and other) source code is compiled into an intermediate language (IL) which is executed within the Symbian OS using a just-in-time compiler. (As of 18/1/10 RedFiveLabs has ceased development of Net60 with this announcement on their landing page: At this stage we are pursuing some options to sell the IP so that Net60 may continue to have a future.
Windows CE is an operating system developed by Microsoft for minimalistic computers and embedded systems. Windows CE is a distinctly different operating system and kernel, rather than a trimmed-down version of desktop Windows. It is not to be confused with Windows XP Embedded which is NT-based. Windows CE is supported on Intel x86 and compatibles, MIPS, ARM, and Hitachi SuperH processors
Windows CE is ideal for devices that have least storage-a Windows CE kernel may run in under a megabyte of memory. Devices are mostly checked without disk storage, and may be configured as a "closed" system that does not allow for end-user extension. Windows CE is ideal for real-time operating system, with deterministic interrupt latency. From version 3 and onward, the system supports 256 priority levels and uses priority inheritance for dealing with priority inversion. The fundamental unit of execution is the thread. This helps to simplify the interface and improve execution time. Microsoft has stated that the 'CE' is not an intentional initialism, but many people believe CE stands for 'Consumer Electronics' or 'Compact Edition'. Microsoft says it implies a number of Windows CE design precepts, including "Compact, Connectable, Compatible, Companion, and Efficient. The first version, known during development under the code "Pegasus", featured a Windows-like GUI and a number of Microsoft's popular applications, all trimmed down for smaller storage, memory, and speed of the palmtops of the day.
Windows CE has evolved into a component-based, embedded, real-time operating system. It is no longer targeted solely at hand-held computers. Many industrial devices and embedded systems. Windows CE even powered select games for the Dreamcast, was the operating system of the Gizmondo handheld, and can partially run on modified Xbox game consoles.
A distinctive feature of Windows CE compared to other Microsoft operating systems is that large parts of it are offered in source code form. First, source code was offered to several vendors, so they could adjust it to their hardware. Then products like Platform Builder (an integrated environment for Windows CE OS image creation and integration, or customized operating system designs based on CE) offered several components in source code form to the general public. However, a number of core components that do not need adaptation to specific hardware environments (other than the CPU family) are still distributed in binary only form.
Late versions of Microsoft Visual Studio support projects for Windows CE / Windows Mobile, producing executable programs and platform images either as an emulator or attached by cable to an actual mobile device. A mobile device is not necessary to develop a CE program. The .NET Compact Framework supports a subset of the .NET Framework with projects in C#, and VB.NET, but not Managed C++.
Free Pascal and Lazarus
Free Pascal introduced the Windows CE port in version 2.2.0, targeting ARM and x86 architectures. Later the Windows CE header files were translated for use with Lazarus, an RAD software package based on Free Pascal. Windows CE applications are designed and coded in the Lazarus IDE and compiled with an appropriate cross compiler.
Embedded Visual C++ (eVC).
Windows Mobile is a compact mobile operating system developed by Microsoft, and designed for use in smartphones and mobile devices.
It is based on Windows CE 5.2, and features a suite of basic applications developed using the Microsoft Windows API. It is designed to be somewhat similar to desktop versions of Windows, feature-wise and aesthetically. Additionally, third-party software development is available for Windows Mobile, and software can be purchased via the Windows Marketplace for Mobile.
Originally appearing as the Pocket PC 2000 operating system, most Windows Mobile phones come with a stylus pen, which is used to enter commands by tapping it on the screen. Windows Mobile has been updated multiple times, with the current version being Windows Mobile 6.5. The next major revision, Windows Mobile 7.0, is expected to be released in Q4 2010 , and is also expected to make Windows Mobile a much more serious competitor to today's other mobile platforms.
Today Screen shows the current date, owner information, upcoming appointments, e-mail messages, and tasks.
The taskbar shows the current time and the volume.
Office Mobile a suite of Mobile versions of Microsoft Office applications
Outlook Mobile comes with Windows Mobile.
Internet Explorer Mobile is an Internet browser developed by Microsoft for Pocket PC and Handheld PC that comes loaded by default with Windows Mobile and Windows CE for Handheld PC.
Windows Media Player for Windows Mobile.
Client for PPTP VPNs.
Internet Connection Sharing (ICS) which in mobile phones allows attached computers to share internet connections via USB and Bluetooth.
Coherent file system similar to that of Windows 9/Windows NT and support for many of the same file types.
Ability to multitask.
Window phone (pocket Pc )
The 'Windows Phone' became the next hardware platform after the Pocket PC to run Windows Mobile, and debuted with the release of Pocket PC 2002. Although in the broad sense of the term "Smartphone", both Pocket PC phones and Microsoft branded Smartphones each fit into this category, it should be noted that Microsoft's use of the term "Smartphone" includes only more specific hardware devices that differ from Pocket PC phones. Such Smartphones were originally designed without touch screens, intended to be operated more efficiently with only one hand, and typically had lower display resolution than Pocket PCs. Microsoft's focus for the Smartphone platform was to create a device that functioned well as a phone and data device in a more integrated manner.
is a UNIX-based operating system introduced by Sun Microsystems in 1992 as the successor to SunOS.
Solaris is known for its scalability, especially on SPARC systems, and for originating many innovative features such as DTrace and ZFS. Solaris supports SPARC-based and x86-based workstations and servers from Sun and other vendors, with efforts underway to port to additional platforms.
The Solaris Operating System uses UFS as its primary file system. Additional features include Veritas (Journaling) VxFS\, QFS from Sun Microsystems, enhancements to UFS including multiterabyte support and UFS volume management included as part of the OS, and ZFS (open source, poolable, 128-bit, compressible, and error-correcting).
Logical Volume Management allows for spanning a file system across multiple devices for the purpose of adding redundancy, capacity, and/or throughput. Solaris includes Solaris Volume Manager.
Solaris is certified against the Single Unix Specification. Although it was historically developed as proprietary software, it is supported on systems manufactured by all major server vendors, and the majority of its codebase is now open source software via the OpenSolaris project