Wednesday, February 10, 2010

FREEWARE & OPEN SOURCE

FREEWARE :---

Freeware (from "free" and "software") is computer software that is available for use at no cost or for an optional fee.[1] Software that is not freeware is occasionally referred to as payware.


OPEN SOURCE :----

Open source describes practices in production and development that promote access to the end product's source materials—typically, their source code.[citation needed] Some consider open source a philosophy, others consider it a pragmatic methodology. Before the term open source became widely adopted, developers and producers used a variety of phrases to describe the concept; open source gained hold with the rise of a public, worldwide, computer-network system called the Internet, and the attendant need for massive retooling of the computing source code. Opening the source code enabled a self-enhancing diversity of production models, communication paths, and interactive communities. Subsequently, a new, three-word phrase "open source software" was born to describe the environment that the new copyright, licensing, domain, and consumer issues created.

The open source model includes the concept of concurrent yet different agendas and differing approaches in production, in contrast with more centralized models of development such as those typically used in commercial software companies. A main principle and practice of open source software development is peer production by bartering and collaboration, with the end-product (and source-material) available at no cost to the public. This is increasingly being applied in other fields of endeavor, such as biotechnology.

COMMAND LINE INTERFACE VERSUS GRAPHICAL USER INTERFACE

COMMAND LINE INTERFACE VERSUS GRAPHICAL USER INTERFACE :----


The interface is the method through which you interact with the data on your computer. There are two primary ways in which you can do this, using a command-based system or a graphically-based system.

A graphically-based system is known as a "graphical user interface" or "GUI" (pronounced gooey). This setup has icons, a desktop, taskbars and other visual elements that make it more friendly for new users.

The command-based system is called a "command line Interface" or CLI. The system presents you with a prompt in which you enter commands. Though the CLI has a steep learning curve, it is far more powerful once it is learned. More experienced users may use the command-line exclusively.

SYSTEM CALLS

INTRODUCTION :---


In computing, a system call is the mechanism used by an application program to request service from the operating system based on the monolithic kernel or to system servers on operating systems based on the microkernel-structure. Timings of requested service have to be strictly predictable for application in real time systems - those are most advanced and secure.

SHELL

INTRODUCTION :----


A shell is a piece of software that provides an interface for users. to an operating system shell which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web browsers and email clients that are "shells" for HTML rendering engines. The name shell originates from shells being an outer layer of interface between the user and the innards of the operating system (the kernel).

Operating system shells generally fall into one of two categories: command-line and graphical. Command-line shells provide a command-line interface (CLI) to the operating system, while graphical shells provide a graphical user interface (GUI). In either category the primary purpose of the shell is to invoke or "launch" another program; however, shells frequently have additional capabilities such as viewing the contents of directories.

The relative merits of CLI- and GUI-based shells are often debated. CLI proponents claim that certain operations can be performed much faster under CLI shells than under GUI shells (such as moving files, for example). However, GUI proponents advocate the comparative usability and simplicity of GUI shells. The best choice is often determined by the way in which a computer will be used. On a server mainly used for data transfers and processing with expert administration, a CLI is likely to be the best choice. On the other hand, a GUI would be more appropriate for a computer to be used for image or video editing and the development of the above data.

In expert systems, a shell is a piece of software that is an "empty" expert system without the knowledge base for any particular application.

Tuesday, February 9, 2010

LINUX VERSUS UNIX



LINUX VERSUS UNIX :---


Difference Between Linux and UNIX

by Vivek Gite · 30 comments

What is the difference between Linux and UNIX operating systems?

UNIX is copyrighted name only big companies are allowed to use the UNIX copyright and name, so IBM AIX and Sun Solaris and HP-UX all are UNIX operating systems. The Open Group holds the UNIX trademark in trust for the industry, and manages the UNIX trademark licensing program.

Most UNIX systems are commercial in nature.
Linux is a UNIX Clone

But if you consider Portable Operating System Interface (POSIX) standards then Linux can be considered as UNIX. To quote from Official Linux kernel README file:

Linux is a Unix clone written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Net. It aims towards POSIX compliance.

However, "Open Group" do not approve of the construction "Unix-like", and consider it misuse of their UNIX trademark.
Linux Is Just a Kernel

Linux is just a kernel. All Linux distributions includes GUI system + GNU utilities (such as cp, mv, ls,date, bash etc) + installation & management tools + GNU c/c++ Compilers + Editors (vi) + and various applications (such as OpenOffice, Firefox). However, most UNIX operating systems are considered as complete operating system as everything come from a single source or vendor.

As I said earlier Linux is just a kernel and Linux distribution makes it complete usable operating systems by adding various applications. Most UNIX oses comes with A-Z programs such as editor, compilers etc. For example FreeBSD comes with A-Z programs.
License and cost

Linux is Free (as in beer [freedom]). You can download it from the Internet or redistribute it under GNU licenses. You will see the best community support for Linux. Most UNIX like oses are not free (but this is changing fast, for example OpenSolaris UNIX). However, some Linux distributions such as Redhat / Novell provides additional Linux support, consultancy, bug fixing, and training for additional fees.
User-Friendly

Linux is considered as most user friendly UNIX like os. It makes it easy to install sound card, flash players, and other desktop goodies.
Security Firewall Software

Linux comes with open source netfilter/iptables based firewall tool to protect your server and desktop from the crackers and hackers. UNIX operating systems comes with its own firewall product (for example Solaris UNIX comes with ipfilter based firewall) or you need to purchase a 3rd party software such as Checkpoint UNIX firewall.
Backup and Recovery Software

UNIX and Linux comes with different set of tools for backing up data to tape and other backup media. However, both of them share some common tools such as tar, dump/restore, cpio etc.
End User Perspective

The differences are not that big for the average end user. They will use the same shell (e.g. bash or ksh) and other development tools such as Perl or Eclipse development tool.
System Administrator Perspective

Again, the differences are not that big for the system administrator. However, you may notice difference while performing the following operations:

1. Installation procedure
2. Hardware device names
3. Various admin commands or utilities
4. Software RAID device and mirroring
5. Logical volume management
6. Package management
7. Patch management

UNIX Operating System Names

A few popular names:

1. HP-UX
2. IBM AIX
3. Sun Solairs
4. Mac OS X
5. IRIX

Linux Distribution (Operating System) Names

A few popular names:

1. Redhat Enterprise Linux
2. Fedora Linux
3. Debian Linux
4. Suse Enterprise Linux
5. Ubuntu Linux

Common Things Between Linux & UNIX

Both share many common applications such as:

1. GUI, file, and windows managers (KDE, Gnome)
2. Shells (ksh, csh, bash)
3. Various office applications
4. Development tools (perl, php, c, c++)
5. Posix interface

A Sample UNIX Desktop Screenshot
UNIX Desktop - IRIX 6.5 Desktop

Fig.01: UNIX Desktop - IRIX 6.5 Desktop
A Sample Linux Desktop Screenshot
Linux KDE desktop environment

Fig.02: Linux KDE desktop environment

WINDOWS VERSUS LINUX

WINDOWS VERSUS LINUX :----


Both Linux and Windows are operating systems. An operating system is the most important program that runs on a computer. Every general-purpose computer must have an operating system to run other programs. Operating systems perform basic tasks, such as recognizing input from the keyboard, sending output to the display screen, keeping track of files and directories on the disk, and controlling peripheral devices such as disk drives and printers.

1. Reduces the risk of carpal tunnel syndrome

When linux is properly installed, there no longer a need to use the mouse. Chances of you using a mouse is close to zero.
2. Use the extra cash for rewards

Linux is 100% free while Windows Vista Ultimate costs $398.99 at the time of writing. Companies that pay a licensing annually could have used the money for other things like buying an additional server to reduce the load or even give a bigger bonus to its loyal employees.
3. Formats are free, freedom is preserved

Linux file formats can be accessed in a variety of ways because they are free. Windows on the other hand makes you lock your own data in secret formats that can only be accessed with tools leased to you at the vendor’s price. “What we will get with Microsoft is a three-year lease on a health record we need to keep for 100 years”
4. Zero risk in violating license agreements

Linux is open source so you are unlikely to violate any license agreement. All the software is happily yours. With MS Windows you likely already violate all kinds of licenses and you could be pronounced a computer pirate if only a smart lawyer was after you. The worldwide PC software piracy rate for 2004 is at 35%. Which means that 3 out of 10 people are likely to get into real trouble.
5. Transparent vs Proprietary

MS Windows is based on DOS, Linux is based on UNIX. MS Windows Graphical User Interface (GUI) is based on Microsoft-own marketing-driven specifications. Linux GUI is based on industry-standard network-transparent X-Windows.
6. Better network, processing capabilities

Linux beats Windows hands down on network features, as a development platform, in data processing capabilities, and as a scientific workstation. MS Windows desktop has a more polished appearance, simple general business applications, and many more games for kids (less intellectual games compared to linux’s).
7. Customizable

Linux is customizable in a way that Windows is not. For example, NASlite is a version of Linux that runs off a single floppy disk and converts an old computer into a file server. This ultra small edition of Linux is capable of networking, file sharing and being a web server.
8. Flexibility

Windows must boot from a primary partition. Linux can boot from either a primary partition or a logical partition inside an extended partition. Windows must boot from the first hard disk. Linux can boot from any hard disk in the computer.
9. Mobility

Windows allows programs to store user information (files and settings) anywhere. This makes it impossibly hard to backup user data files and settings and to switch to a new computer. In contrast, Linux stores all user data in the home directory making it much easier to migrate from an old computer to a new one. If home directories are segregated in their own partition, you can even upgrade from one version of Linux to another without having to migrate user data and settings.
10. Proven Security

Why isn’t Linux affected by viruses? Simply because its code has been open source for more than a decade, tested by people all around the world, and not by a single development team like in the case of Windows. This leads to a lightning fast finding and fixing for exploitable holes in Linux. So that my friends, proves Linux as having an extremely enhanced security and lesser chances of exploits compared to Windows.

STRUCTURE OF OPERATING SYSTEM

STRUCTURE OF OPERATING SYSTEM :---

Generic Operating System Structure
---Contents
--Simple view
--Kernel
--Distinguished applications
--Command interpreter




1) Simple view
An Operating System is the layer between the hardware and software, as in

An Operating System is responsible for the following functions

* Device management using device drivers
* Process management using processes and threads
* Inter-process communication
* Memory management
* File systems

In addition, all operating systems come with a set of standard utilities. The utilities allow common tasks to be performed such as

* being able to start and stop processes
* being able to organise the set of available applications
* organise files into sets such as directories
* view files and sets of files
* edit files
* rename, copy, delete files
* communicate between processes








2)Kernel
The kernel of an operating system is the part responsible for all other operations. When a computer boots up, it goes through some initialisation functions, such as checking memory. It then loads the kernel and switches control to it. The kernel then starts up all the processes needed to communiate with the user and the rest of the environment (e.g. the LAN)

The kernel is always loaded into memory, and kernel functions always run, handling processes, memory, files and devices.

The traditional structure of a kernel is a layered system, such as Unix. In this, all layers are part of the kernel, and each layer can talk to only a few other layers. Application programs and utilities live above the kernel.

The Unix kernel looks like Unix kernel

Most of the Operating Systems being built now use instead a micro kernel, which minimises the size of the kernel. Many traditional services are made into user level services. Communication being services is often by an explicit message passing mechanism.

The major micro-kernel Operating System is Mach. Many others use the concepts of Mach. Mach kernel

Sonme systems, such as Windows NT use a mixed approach NT kernel









3)Distinguished applications
An Operating System has been described as an ``application with no top'' (B. Meyer, ``Object-oriented Software Construction''). Other applications interact with it, through a large variety of entry points. In order to use an O/S, you need to be supplied with at least some applications that already use these entry points.

All Operating Systems come bundled with a set of ``utilities'' which do this. For example

* Windows95 has a shell that allows programs to be started from the Start button. There is a standard set of applications supplied
* MSDOS starts up with COMMAND.COM to supply a command line prompt, and a set of utilities
* Unix has a set of command line shells and a huge variety of command line utilities
* X-Windows supplies a login shell (xdm). Others supply file managers, session managers, etc which can be used to provide a variety of interfaces to the underlying Unix/POSIX system.









4)Command interpreter
When a user interacts with an Operating System they always do so through the intermediary of a command interpreter. This responds to user input in the following ways

* It starts applications
* It stops applications
* It allows the user to switch control between applications
* It may allow control over communication between an application and other applications or the user.

The command interpreter may be character-based, as in the MSDOS COMMAND.COM or the Unix shells. It may be a GUI shell, such as the Windows 3.1 Program Manager.

The interpreter may be simple, or can have the power of a full programming language. It may be imperative (as in the Unix shells), use message passing (as in AppleScript) or use visual programming metaphors such as drag-and-drop for object embedding (as in Microsoft's OLE).

It is important to distinguish between the command interpreter and the underlying Operating System. The command interpreter may only use a subset of the capabilities offered by the Operating System; it may offer them them in a clumsy or sophisticated way; it may require complex skills or be intended for novices

Monolithic & Microkernel OS

OPERATING SYSTEM SERVICES

OPERATING SYSTEM SERVICES :---

Following are the five services provided by an operating systems to the convenience of the users:-


1) Program Execution

The purpose of a computer systems is to allow the user to execute programs. So the operating systems provides an environment where the user can conveniently run programs. The user does not have to worry about the memory allocation or multitasking or anything. These things are taken care of by the operating systems.

Running a program involves the allocating and deallocating memory, CPU scheduling in case of multiprocess. These functions cannot be given to the user-level programs. So user-level programs cannot help the user to run programs independently without the help from operating systems.


2) I/O Operations

Each program requires an input and produces output. This involves the use of I/O. The operating systems hides the user the details of underlying hardware for the I/O. All the user sees is that the I/O has been performed without any details. So the operating systems by providing I/O makes it convenient for the users to run programs.

For efficiently and protection users cannot control I/O so this service cannot be provided by user-level programs.


3) File System Manipulation

The output of a program may need to be written into new files or input taken from some files. The operating systems provides this service. The user does not have to worry about secondary storage management. User gives a command for reading or writing to a file and sees his her task accomplished. Thus operating systems makes it easier for user programs to accomplished their task.

This service involves secondary storage management. The speed of I/O that depends on secondary storage management is critical to the speed of many programs and hence I think it is best relegated to the operating systems to manage it than giving individual users the control of it. It is not difficult for the user-level programs to provide these services but for above mentioned reasons it is best if this service s left with operating system.


4) Communications

There are instances where processes need to communicate with each other to exchange information. It may be between processes running on the same computer or running on the different computers. By providing this service the operating system relieves the user of the worry of passing messages between processes. In case where the messages need to be passed to processes on the other computers through a network it can be done by the user programs. The user program may be customized to the specifics of the hardware through which the message transits and provides the service interface to the operating system.


5) Error Detection

An error is one part of the system may cause malfunctioning of the complete system. To avoid such a situation the operating system constantly monitors the system for detecting the errors. This relieves the user of the worry of errors propagating to various part of the system and causing malfunctioning.

This service cannot allowed to be handled by user programs because it involves monitoring and in cases altering area of memory or deallocation of memory for a faulty process. Or may be relinquishing the CPU of a process that goes into an infinite loop. These tasks are too critical to be handed over to the user programs. A user program if given these privileges can interfere with the correct (normal) operation of the operating systems.

List Of Operating Systems

LIST OF OPERATING SYSTEMS :---

Acorn Computers

* Acorn MOS (on the BBC Micro and BBC Master)
* Arthur
* ARX
* RISC OS
* RISC iX (based on 4.3BSD)

Amiga Inc.

* AmigaOS
o AmigaOS 1.0-3.9 (68k)
o AmigaOS 4 (PowerPC)
* Amiga Unix (aka Amix)

Apollo Computer

* AEGIS
* Domain/OS One of the first network-based systems. Ran on Apollo/Domain hardware. Later bought by Hewlett-Packard.
* vikek OS

Apple Inc.

For Apple II

* Apple DOS
* UCSD Pascal
* ProDOS
* GS/OS

For Apple III

* SOS (Sophisticated Operating System)

For Apple Lisa

* Lisa OS

For Apple Newton

* Newton OS

Classic Mac OS

* System Software 1
* System Software 2
* System Software 3
* System Software 4
* System Software 5
* System 6
* System 7 (codenamed "Big Bang")
* Mac OS 8
* Mac OS 9

Unix-like operating systems

* A/UX
* MkLinux
* Mac OS X
o Mac OS X v10.0 (aka "Cheetah")
o Mac OS X v10.1 (aka "Puma")
o Mac OS X v10.2 (aka "Jaguar")
o Mac OS X v10.3 (aka "Panther")
o Mac OS X v10.4 (aka "Tiger")
o Mac OS X v10.5 (aka "Leopard")
o Mac OS X v10.6 (aka "Snow Leopard")
o Mac OS X Server
o iPhone OS

Atari

* Atari DOS (for 8-bit computers)
* Atari TOS
* Atari MultiTOS

BAE Systems

* XTS-400

Be Inc.

* BeOS
o BeIA
o BeOS r5.1d0
+ magnussoft ZETA (based on BeOS r5.1d0 source code, developed by yellowTAB)
* Blue Eyed OS
* Cosmoe

Burroughs Corporation

* Burroughs MCP

Control Data Corporation

* COS (Chippewa Operating System)
o SIPROS (for Simultaneous Processing Operating System)
o SCOPE (Supervisory Control Of Program Execution)
o MACE (Mansfield and Cahlander Executive)
+ KRONOS (Kronographic OS)
# NOS (Network Operating System)
* NOS/BE NOS Batch Environment

Convergent Technologies

* Convergent Technologies Operating System (later acquired by Unisys)

Data General

* RDOS Real-time Disk Operating System, with variants: RTOS and DOS (not related to IBM PC DOS).
* AOS for 16-bit Data General Eclipse computers and AOS/VS for 32-bit (MV series) Eclipses, MP/AOS for microNOVA-based computers
* DG/UX

DataPoint

* CTOS Z-80 based, Cassette Tape Operating System for early desktop systems. Capable of up to 8 simultaneous users. Replaced by DataPoint DOS.
* DOS Intel 808x/80x86-based, Disk Operating Systems for desktop systems. Capable of up to 32 users per node. Supported a sophisticated network of nodes that were often purpose-built. The name DOS was used in these products login screens before it was popularized by IBM, Microsoft and others.

Digital Research Inc

* Control Program/Monitor (CP/M)
o CP/M-80 CP/M for Intel 8080/8085 and Zilog Z80
+ MP/M-80 Multi-user version of CP/M-80
o CP/M-86 CP/M for Intel 8088/86
+ MP/M-86 Multi-user version of CP/M-86
o CP/M-68k CP/M for Motorola 68000
o CP/M-8000 CP/M for Zilog Z8000
* DR-DOS (Digital Research's [later Novell, Caldera, ...] DOS variant, based on CP/M descendants)
o Concurrent DOS (Digital Research's first multiuser DOS variant)
o Multiuser DOS (Digital Research's [later CCI's. Real's/...] multiuser DOS variant)

Digital/Tandem Computers/Compaq/HP

* OS/8
* ITS (for the PDP-6 and PDP-10)
* Multi-Programming Executive (from HP)
* TOPS-10 (for the PDP-10)
* WAITS (for the PDP-6 and PDP-10)
* TENEX (from BBN, for the PDP-10)
* TOPS-20 (for the PDP-10)
* RSTS/E (multi-user time-sharing OS for PDP-11s)
* RSX-11 (multiuser, multitasking OS for PDP-11s)
* RT-11 (single user OS for PDP-11)
* VMS (originally by DEC, now by HP) for the VAX mini-computer range, Alpha and Intel Itanium 2; later renamed OpenVMS)
* Domain/OS (originally Aegis, from Apollo Computer who were bought by HP)
* RTE HP's Real Time Executive (ran on the HP 1000)
* TSB HP's Time Share Basic (yes, it was an operating system, ran on the HP 2000 series)
* Digital UNIX (derived from OSF/1, became HP's Tru64 UNIX)
* HP-UX
* Ultrix
* NonStop Kernel (Originally from Tandem Computers for their line of fault-tolerant platforms; originally called Guardian). It supports concurrent execution of:
o Guardian
o OSS (POSIX-compliant Open System Services)

Fujitsu

* Towns OS

Gould CSD (Computer System Division)

* UTX-32, Unix based OS

Green Hills Software

* INTEGRITY Reliable Operating system
* INTEGRITY-178B A DO-178B certified version of INTEGRITY.
* ยต-velOSity A lightweight microkernel.

Hewlett-Packard

* HP Real-Time Environment; ran on HP1000 series computers.
* HP Multi-Programming Executive; (MPE, MPE/XL, and MPE/iX) runs on HP 3000 and HP e3000 mini-computers.
* HP-UX; runs on HP9000 and Itanium servers - from small to mainframe-class computers.

Honeywell

* OLERT-E; Online Executive for Real Time. Ran on Honeywell DDP-516 computers.
* GCOS
* Multics

Intel Corporation

* iRMX; real-time operating system originally created to support the Intel 8080 and 8086 processor families in embedded applications.
* ISIS-II; "Intel Systems Implementation Supervisor" was THE environment for development of software within the Intel microprocessor family in the early 1980'ies on their Intellec Microcomputer Development System and clones. ISIS-II worked with 8 inch floppy disks and had an editor, cross-assemblers, a linker, an object locator, compilers for PLM (PL/I for microprocessors of the 8080/86 family), a BASIC interpreter, etc. and allowed file management through a console.

IBM

* OS/360 and successors on IBM mainframes
o OS/360 (First official OS targeted for the System/360 architecture, saw customer installations of the following variations:)
+ PCP (Primary Control Program, a kernel and a ground breaking automatic space allocating file system)
+ MFT (Multi-Programming Fixed Tasks, had 15 fixed size partitions defined at boot time)
+ MVT (Multi-Programming Variable Tasks, had up to 15 partitions defined dynamically)
o OS/VS (The official port of OS/360 targeted for the System/370 virtual memory architecture. "OS/370" is not correct name. Customer installations in the following variations:)
+ SVS (Single Virtual Storage (both VS1 & VS2 began as SVS systems))
+ OS/VS1 (Operating System/Virtual Storage 1, Virtual-memory version of OS/MFT)
+ OS/VS2 (Operating System/Virtual Storage 2, Virtual-memory version of OS/MVT)
# OS/VS2 R2 (called Multiple Virtual Storage, MVS, eliminated any need for VS1)
o MVS/SE
o MVS/SP (MVS System Package)
o MVS/XA (MVS/SP V2. MVS supported eXtended Architecture, 31bit addressing)
o MVS/ESA (MVS supported Enterprise System Architecture, horizontal addressing extensions: data only address spaces called Dataspaces)
o OS/390 (Upgrade from MVS, with an additional Unix-like environment.)
o z/OS (OS/390 supported z/Architecture, 64bit addressing.)

* DOS/360 and successors on IBM mainframes
o BOS/360 (Early interim version of DOS/360, briefly available at a few Alpha & Beta System 360 sites)
o TOS/360 (Similar to BOS above and more fleeting, able to boot and run from 2x00 series tape drives)
o DOS/360 (Disk Operating System (DOS). First commonly available OS for System/360 due to problems in the OS/360 Project. Multi-programming system with up to 3 partitions.)
+ DOS/360/RJE (DOS/360 with a control program extension that provided for the monitoring of Remote Job Entry hardware (Card Reader & Printer) connected by dedicated phone lines.)
o DOS/VS (First DOS offered on System/370 systems, provided Virtual Storage.)
o DOS/VSE (upgrade of DOS/VS. Still had fixed size processing partitions, but up to 14 partitions.)
o VSE/SP (renamed from DOS/VSE.)
o VSE/ESA (DOS/VSE extended virtual memory support to 32 bit addresses (Extended System Architecture)).
o z/VSE (Latest version of the four decades old DOS lineage. Now supports 64 bit addresses, Multiprocessing, Multiprogramming, SNA, TCP/IP, and some virtual machine features in support of Linux workloads. (All DOS ref. IBM website))

* CP/CMS and successors on IBM mainframes (Control Program / Cambridge Monitor System, Virtual Machine operating System, VM Line)
o CP-40/CMS (for System/360 Model 40)
o CP-67/CMS (for System/360 Model 67)
o VM/370 Virtual Machine / Conversational Monitor System, VM (operating system) for System/370 with Virtual Memory.
o VM/XA VM (operating system) eXtended Architecture for System/370 with extended Virtual Memory.
o VM/ESA Virtual Machine /Extended System Architecture, added 32 bit addressing to VM series.
o z/VM z/Architecture version of the VM OS (64 bit addressing).

* TPF Line on IBM mainframes (real-time operating system, largely used by airlines)
o ACP (Airline Control Program)
o TPF (Transaction Processing Facility)
o z/TPF (z/Architecture extension)

* Unix-like on IBM mainframes
o UTS
o AIX/370
o AIX/ESA
o Linux (Linux on System z, z/Linux)
o OpenSolaris (OpenSolaris for IBM System z)

* Others on IBM mainframes
o IBSYS (tape based operating system for IBM 7090 and IBM 7094)
o CTSS (The Compatible Time-Sharing System developed at MIT's Computation Center)
o RTOS/360 (Real Time Operating System, run on 5 NASA custom System/360/75s. A mash up by the Federal Systems Division of the MFT system management, PCP basic kernel and file system, with MVT task management and FSD custom real time kernel extensions and error management. The pinnacle of OS/360 development.)
o MTS (Michigan Terminal System for IBM System/360)
o TSS/360 (Time Sharing System for IBM System/360)
o MUSIC/SP (developed by McGill University for IBM System/370)
o IJMON (A Bootable serial I/O monitor for loading programs for IBM 1400 and IBM 1800.)

* IBM Series/1
o EDX (Event Driven Executive)
o RPS (Realtime Programming System)

* IBM 8100
o DPCX (Distributed Processing Control eXecutive)
o DPPX (Distributed Processing Programming Executive)

* IBM System/3
o DMS (Disk management system)

* IBM System/34, IBM System/36
o SSP (System Support Program)

* IBM System/38
o CPF (Control Program Facility)

* IBM System/88
o Stratus VOS (developed by Stratus, and used for IBM System/88, Original equipment manufacturer from Stratus.)

* AS/400, iSeries, System i, Power Systems i Edition
o OS/400 (descendant of System/38 CPF, include System/36 SSP environment.)
o i5/OS (extends OS/400 with significant interoperability features.)
o IBM i (extends i5/OS.)

* UNIX on IBM POWER
o AIX (Advanced Interactive eXecutive, a System V Unix version)
o AOS (a BSD Unix version), not related to Data General AOS

* IBM PC and successors on x86 architecture
o PC DOS / IBM DOS
+ PC DOS 1.x, 2.x, 3.x (developed jointly with Microsoft)
+ IBM DOS 4.x, 5.0 (developed jointly with Microsoft)
+ PC DOS 6.x, 7, 2000
o OS/2
+ OS/2 1.x (developed jointly with Microsoft)
+ OS/2 2.x
+ OS/2 Warp 3
+ OS/2 Warp 4
+ eComStation (Warp 4.5/Workspace on Demand, rebundled by Serenity Systems International)

* Others
o IBM Workplace OS (Microkernel based operating system, developed and canceled in 1990s)
o K42 (open-source research operating system on PowerPC or x86 based cache-coherent multiprocessor systems)
o Dynix (developed by Sequent, and used for IBM NUMA-Q too.)

International Computers Limited

* J and MultiJob for the System 4 series mainframes
* GEORGE 2/3/4 GEneral ORGanisational Environment, used by ICL 1900 series mainframes
* Executive, used on the 290x range of minicomputers
* TME, used on the ME29 minicomputer
* ICL VME, including early variants VME/B VME/K, appearing on the ICL 2900 Series and Series 39 mainframes

LynuxWorks (originally Lynx Real-time Systems)

* LynxOS

Micrium Inc.

* MicroC/OS-II (Small pre-emptive priority based multi-tasking kernel)

Microsoft

* Xenix (licensed version of Unix; licensed to SCO in 1987)
* MSX-DOS (developed by MS Japan for the MSX 8-bit computer)
* Windows Mad (developed in Scratch)
* MS-DOS (developed jointly with IBM, versions 1.0–6.22)
o Windows 1.0 (Windows 1 - Based on Visi-On)
o Windows 2.0 (Windows 2)
o Windows 3.0 (Windows 3 - Is the first version of Windows to make substantial commercial impact)
o Windows 3.1x (Windows 3.1)
o Windows 3.2 (Chinese-only release)
* Windows 9x
o Windows 95 (Windows 4) (codename: Chicago)
o Windows 98 (Windows 4.1) (codename: Memphis)
o Windows Millennium Edition (Windows Me - Windows 4.9)
* OS/2 (developed jointly with IBM)
* Windows NT
o Windows NT 3.1 (OS/2 3.0 - Windows 3.1)
o Windows NT 3.5 (Windows 3.5)
o Windows NT 3.51 (Windows 3.51)
o Windows NT 4.0 (Windows 4)
o Windows 2000 (Windows NT 5.0 - Windows 5)
o Windows XP (Windows NT 5.1 - Windows 5.1) (codename: Whistler)
o Windows Server 2003 (Windows NT 5.2 - Windows 5.2) (codename: Whistler Server)
o Windows Fundamentals for Legacy PCs
o Windows Vista (Windows NT 6.0 - Windows 6) (codename: Longhorn)
o Windows Home Server
o Windows Server 2008 (Windows NT 6.0 - Windows 6) (codename: Longhorn Server)
o Windows 7 (Windows 6.1 - previously codenamed Blackcomb, then Vienna)
o Windows Preinstallation Environment (WinPE)
* Windows CE (OS for handhelds, embedded devices, and real-time applications that is similar to other versions of Windows)
o Windows CE 3.0
o Windows CE 5.0
o Windows CE 6.0
o Windows Mobile (based on Windows CE, but for a smaller form factor)
* Singularity - A research operating system written mostly in managed code (C#)
* Midori - A managed code operating system

MontaVista Software

* MontaVista Linux
o MontaVista Professional Edition
o MontaVista Carrier Grade Edition
o MontaVista Mobilinux

NCR Corporation

* TMX - Transaction Management eXecutive

Novell

* NetWare network operating system providing high-performance network services. Has been superseded by Open Enterprise Server line, which can be based on NetWare or Linux to provide the same set of services.
* Open Enterprise Server, the successor to NetWare.
* OpenSUSE, SUSE operating system (formerly SuSe and s.u.s.e)

Scratch OSs

NOTE: A Scratch OS is not a real OS

* Oprix was made by Fire219. The latest version as of January 9, 2010 at this project.

Quadros Systems

* RTXC Quadros RTOS proprietary C-based RTOS used in embedded systems

QANTEL

* BEST - Business Executive System for Timesharing

RCA

* TSOS, first OS supporting virtual addressing of the main storage and support for both timeshare and batch interface

RoweBots

* Unison RTOS Ultra Tiny Embedded Linux Compatible RTOS
* DSPnano RTOS Ultra Tiny Embedded Linux Compatible RTOS
* Unison/Reliant V3 pSOS derivative RTOS

SCO / The SCO Group

* Xenix, Unix System III based distribution for the Intel 8086/8088 architecture
o Xenix 286, Unix System V Release 2 based distribution for the Intel 80286 architecture
o Xenix 386, Unix System V Release 2 based distribution for the Intel 80386 architecture
o SCO Unix, SCO UNIX System V/386 was the first volume commercial product licensed by AT&T to use the UNIX System trademark (1989). Derived from AT&T System V Release 3.2 with an infusion of Xenix device drivers and utilities plus most of the SVR4 features
+ SCO Open Desktop, the first 32-bit graphical user interface for UNIX Systems running on Intel processor-based computers. Based on SCO Unix
+ SCO OpenServer 5, AT&T UNIX System V Release 3 based
+ SCO OpenServer 6, SVR5 (UnixWare 7) based kernel with SCO OpenServer 5 application and binary compatibility, system administration, and user environments[1][2]
* UnixWare
o UnixWare 2.x, based on AT&T System V Release 4.2MP
o UnixWare 7, UnixWare 2 kernel plus parts of 3.2v5 (UnixWare 2 + OpenServer 5 = UnixWare 7). Referred to by SCO as SVR5

SDS (Scientific Data Systems)

* CP Control Program. SDS later acquired by Xerox, then Honeywell.

SEL (Systems Engineering Laboratories)

* Real Time Monitor (RTM)
* MPX-32

TmaxSoft

* Tmax Window

TRON Project

* TRON (open real-time operating system kernel)

Unicoi Systems

* Fusion RTOS highly prolific, license free Real-time operating system.
* DSPOS was the original project which would become the royalty free Fusion RTOS.

Unisys

* Unisys OS 2200 operating system

UNIVAC (later Unisys)

* EXEC I
* EXEC II
* EXEC 8 Ran on 1100 series.
* VS/9, successor to RCA TSOS

Wavecom

* Open AT OS

Wang Laboratories

* 2200T Wang BASIC based system for the multi-user, 2200T systems. Products included a system called Personal Computer before the term was made more popular with IBM products.
* 2200VP/MVP Wang BASIC based system for the higher performance, 2200VP/MVP multi-user systems. Contained sophisticated micro-code programming for high performance operation.
* WPS Wang Word Processing System. Micro-code based system. Very clever and productive system developed by Harold Kaplow while at Wang. Eventually phased out by the PC and Word Perfect.
* OIS Wang Office Information System. Successor to the WPS. Combined the WPS and VP/MVP systems. Harold Kaplow was its principal architect. Eventually phased out by the 2200VS.
* 2200VS IBM assembler instruction set microcode emulation. Supported the Wang 2200VS high-performance, multi-user systems. Designed to be a COBOL developers dream machine. Included some of the OIS operating system code. Eventually phased out by the UNIX operating system.

Wind River Systems

* VxWorks Small footprint, scalable, high-performance RTO

Other
Lisp-based

* Symbolics Genera written in a systems dialect of the Lisp programming language called ZetaLisp and Symbolics Common Lisp. Genera was ported to a virtual machine for the DEC Alpha line of computers.
* Texas Instruments' Explorer Lisp machine workstations also had systems code written in Lisp Machine Lisp.
* The Xerox 1100 series of Lisp machines ran an operating system written in Interlisp that was also ported to virtual machine called "Medley."
* Lisp Machines, Inc. also known as LMI, also ran an operating system based on MIT's Lisp Machine Lisp.

Non-standard language-based

* The Mesa programming language was used to implement the Pilot operating system, used in Xerox Star workstations.
* PERQ Operating System (POS) was written in PERQ Pascal.

Other proprietary non-Unix-like

* EOS; developed by ETA Systems for use in their ETA-10 line of supercomputers
* EMBOS; developed by Elxsi for use on their mini-supercomputers
* GCOS is a proprietary Operating System originally developed by General Electric
* PC-MOS/386; DOS-like, but multiuser/multitasking
* SINTRAN III; an operating system used with Norsk Data computers.
* THEOS
* TRS-DOS; A floppy-disk-oriented OS supplied by Tandy/Radio Shack for their Z80-based line of personal computers.
* NewDos/80; A third-party OS for Tandy's TRS-80 personal computers.
* TX990/TXDS, DX10 and DNOS; proprietary operating systems for TI-990 minicomputers
* MAI Basic Four; An OS implementing Business Basic from MAI Systems.
* Michigan Terminal System; Developed by a group of American universities for IBM 360 series mainframes
* MUSIC/SP; an operating system developed for the S/370, running normally under VM
* SkyOS; commercial desktop OS for PCs
* TSX-32; a 32-bit operating system for x86 platform.
* OS ES; an operating system for ES EVM
* Prolog-Dispatcher; used to control Soviet Buran space ship.

Other proprietary Unix-like and POSIX-compliant

* Aegis (Apollo Computer)
* Amiga Unix (Amiga ports of Unix System V release 3.2 with Amiga A2500UX and SVR4 with Amiga A3000UX. Started in 1989, last version was in 1992)
* Clix (Intergraph's System V implementation)
* Coherent (Unix-like OS from Mark Williams Co. for PC class computers)
* DC/OSx (DataCenter/OSx was an operating system for MIPS based systems developed by Pyramid Technology)
* DG/UX (Data General Corp)
* DNIX from DIAB
* DSPnano RTOS (POSIX nanokernel, DSP Optimized, Open Source)
* Idris workalike from Whitesmiths
* INTERACTIVE UNIX (a port of the UNIX System V operating system for Intel x86 by INTERACTIVE Systems Corporation)
* IRIX from SGI
* MeikOS
* NeXTSTEP (developed by NeXT; a Unix-based OS based on the Mach microkernel)
* OS-9 Unix-like RTOS. (OS from Microware for Motorola 6809 based microcomputers)
* OS9/68K Unix-like RTOS. (OS from Microware for Motorola 680x0 based microcomputers; based on OS-9)
* OS-9000 Unix-like RTOS. (OS from Microware for Intel x86 based microcomputers; based on OS-9, written in C)
* OSF/1 (developed into a commercial offering by Digital Equipment Corporation)
* OpenStep
* QNX (POSIX, microkernel OS; usually a real time embedded OS)
* Rhapsody (an early form of Mac OS X)
* RISC/os (a port by MIPS of 4.3BSD to the RISC MIPS architecture)
* RMX
* SCO UNIX (from SCO, bought by Caldera who renamed themselves SCO Group)
* SINIX (a port by SNI of Unix to the RISC MIPS architecture)
* Solaris (Sun's System V-based replacement for SunOS)
* SunOS (BSD-based Unix system used on early Sun hardware)
* SUPER-UX (a port of System V Release 4.2MP with features adopted from BSD and Linux for NEC SX architecture supercomputers)
* System V (a release of AT&T Unix, 'SVR4' was the 4th minor release)
* System V/AT, 386 (The first version of AT&T System V UNIX on the IBM 286 and 386 PCs, ported and sold by Microport)
* Trusted Solaris (Solaris with kernel and other enhancements to support multilevel security)
* UniFLEX (Unix-like OS from TSC for DMA-capable, extended addresses, Motorola 6809 based computers; e.g. SWTPC, GIMIX, …)
* Unicos (the version of Unix designed for Cray Supercomputers, mainly geared to vector calculations)
* Unison RTOS (Multicore RTOS with DSP Optimization)

Non-proprietary
Unix-like
Research Unix-like and other POSIX-compliant

* Minix (study OS developed by Andrew S. Tanenbaum in the Netherlands)
* Plan 9 (distributed OS developed at Bell Labs, based on original Unix design principles yet functionally different and going much further)
o Inferno (distributed OS derived from Plan 9, originally from Bell Labs)
o Plan B (distributed OS derived from Plan 9 and Off++ microkernel)
* Unix (OS developed at Bell Labs ca 1970 initially by Ken Thompson)
* Xinu, (Study OS developed by Douglas E. Comer in the USA)

Free/Open source Unix-like

* BSD (Berkeley Software Distribution, a variant of Unix for DEC VAX hardware)
o FreeBSD (one of the outgrowths of UC Regents' abandonment of CSRG's 'BSD Unix')
o NetBSD (one of the outgrowths of UC Regents' abandonment of CSRG's 'BSD Unix')
+ OpenBSD forked from NetBSD
* GNU
* Linux (GNU Free/Open Source Operating System Software combined with the Linux kernel).

See also: List of Linux distributions

* Darwin
* OpenSolaris, contains original Unix (SVR4) code
o AuroraUX, fork of OpenSolaris
* SSS-PC, developed at Tokyo University
* Syllable Desktop
* VSTa
o FMI/OS, successor of VSTa

Other Unix-like

* TUNIS (University of Toronto)

Non-Unix-like
Research non-Unix-like

* Amoeba (research OS by Andrew S. Tanenbaum)
* Croquet
* House Haskell User's Operating System and Environment, research OS written in Haskell and C.
* ILIOS Research OS designed for routing
* EROS microkernel, capability-based
o CapROS microkernel EROS successor.
o Coyotos microkernel EROS successor, goal: be first formally verified OS.
* L4 Second generation microkernel
* Mach (from OS kernel research at Carnegie Mellon University; see NeXTSTEP)
* MONADS, capability-based OS designed to support the MONADS hardware projects
o SPEEDOS (Secure Persistent Execution Environment for Distributed Object Systems) builds on MONADS ideas
* Nemesis Cambridge University research OS - detailed quality of service abilities.
* Spring (research OS from Sun Microsystems)
* V from Stanford, early 1980s [3]
* FreeNOS, a microkernel educational operating system

Free/Open source non-Unix-like

* FullPliant (programming language-based)
* FreeDOS (open source DOS variant)
* FreeVMS (open source VMS variant)
* Haiku (open source inspired by BeOS, under development)
* Kinetic (written in Haskell)
* MonaOS (written in C++)
* ReactOS (Windows NT-compatible OS, in early development since 2001)
* osFree (open source OS/2 implementation)
* OZONE (object-oriented)

Disk Operating Systems
Main article: DOS

* 86-DOS (developed at Seattle Computer Products by Tim Paterson for the new Intel 808x CPUs; licensed to Microsoft, became PC DOS/MS-DOS. Also known by its working title QDOS.)
o PC DOS (IBM's DOS variant, developed jointly with Microsoft, versions 1.0 – 7, 2000)
o MS-DOS (Microsoft's DOS variant for OEM, developed jointly with IBM, versions 1.x – 6. Microsoft's now abandoned DOS variant)
* FreeDOS (open source DOS variant)
* ProDOS (operating system for the Apple II series computers)
* PTS-DOS (DOS variant by Russian company Phystechsoft)
* RDOS by Leif Ekblad (not to be confused with Data General Corporation's "Real-time Disk Operating System" for Data General Nova and Data General Eclipse minicomputers).
* TurboDOS (Software 2000, Inc.) for Z80 and Intel 8086 processor-based systems
* Multi-tasking user interfaces and environments for DOS
o DESQview+ QEMM 386 multi-tasking user interface for DOS
o DESQView/X (X-windowing GUI for DOS)

Network
Main article: Network operating system

* Cambridge Ring
* CSIRONET by (CSIRO)
* CTOS (Convergent Technologies, later acquired by Unisys)
* Data ONTAP by NetApp
* SAN-OS by Cisco (now NX-OS)
* Enterprise OS by McDATA
* ExtremeWare by Extreme Networks
* ExtremeXOS by Extreme Networks
* Fabric OS by Brocade
* JUNOS (Juniper Networks)
* NetWare (networking OS by Novell)
* NOS (developed by CDC for use in their Cyber line of supercomputers)
* Novell Open Enterprise Server (Open Source networking OS by Novell. Can incorporate either SUSE Linux or Novell NetWare as its kernel).
* OliOS
* Plan 9 (distributed OS developed at Bell Labs, based on Unix design principles but not functionally identical)
o Inferno (distributed OS derived from Plan 9, originally from Bell Labs)
o Plan B (distributed OS derived from Plan 9 and Off++ microkernel)
* TurboDOS (Software 2000, Inc.)
* XPATH OS by Brocade

Web operating systems
Main article: Web operating system

* Chrome OS
* G.ho.st
* eyeOS
* DesktopTwo
* YouOS
* Browser OS
* Glide OS
* Lucid Desktop

Generic/commodity and other

* BLIS/COBOL
* Bluebottle also known as AOS (a concurrent and active object update to the Oberon operating system)
* BS1000 by Siemens AG
* BS2000 by Siemens AG, now BS2000/OSD from Fujitsu-Siemens Computers (formerly Siemens Nixdorf Informationssysteme)
* BS3000 by Siemens AG (functionally similar to OS-IV and MSP from Fujitsu)
* FLEX9 (by TSC for Motorola 6809 based machines; successor to FLEX, which was for Motorola 6800 CPUs)
* FutureOS (for Amstrad/Schneider CPC6128 and CPCPlus machines)
* GEM (windowing GUI for CP/M, DOS, and Atari TOS)
* GEOS (popular windowing GUI for PC, Commodore, Apple computers)
* JavaOS
* JNode JNode.org's OS written 99% in Java (native compiled), provides own JVM and JIT compiler. Based on GNU Classpath
* JX Java operating system that focuses on a flexible and robust operating system architecture developed as an open source system by the University of Erlangen.
* KERNAL (default OS on Commodore 64)
* MERLIN for the Corvus Concept
* MorphOS (Amiga compatible)
* MSP by Fujitsu (successor to OS-IV), now MSP/EX[4], also known as Extended System Architecture (EXA), for 31-bit mode
* nSystem by Luis Mateu at DCC, Universidad de Chile
* NetWare (networking OS by Novell)
* Oberon (operating system) (developed at ETH-Zรผrich by Niklaus Wirth et al.) for the Ceres and Chameleon workstation projects.
* OSD/XC by Fujitsu-Siemens (BS2000 ported to an emulation on a Sun SPARC platform)
* OS-IV by Fujitsu (based on early versions of IBM's MVS)
* Pick (often licensed and renamed)
* PRIMOS by Prime Computer (sometimes spelled PR1MOS and PR1ME)
* Sinclair QDOS (multitasking for the Sinclair QL computer)
* SSB-DOS (by TSC for Smoke Signal Broadcasting; a variant of FLEX in most respects)
* SymbOS (GUI based multitasking operating system for Z80 computers)
* Symobi (GUI based modern micro-kernel OS for x86, ARM and PowerPC processors, developed by Miray Software; used and developed further at Technical University of Munich)
* TraOS, kin to Darwin? Seems active late 2009
* TripOS, 1978
* TurboDOS (Software 2000, Inc.)
* UCSD p-System (portable complete programming environment/operating system/virtual machine developed by a long running student project at the Univ Calif/San Diego; directed by Prof Ken Bowles; written in Pascal)
* UMIX, made for the ICFP Programming Contest 2006.
* VOS by Stratus Technologies with strong influence from Multics
* VOS by Hitachi for its IBM-compatible mainframes, based on IBM's MVS
* VM2000 by Siemens AG
* VisiOn (first GUI for early PC machines; not commercially successful)
* VPS/VM (IBM based, main operating system at Boston University for over 10 years.)
* aceos under GPL
* Miraculix Russian OS, under unknown license.

For Elektronika BK

* ANDOS
* AO-DOS
* BASIS
* CSI-DOS
* DOSB10
* DX-DOS
* FA-DOS
* HC-DOS
* KMON
* MicroDOS
* MK-DOS
* NORD
* NORTON-BK
* RAMON
* PascalDOS
* RT-11
o ROM embedded
o RT-11SJ
o OS BK-11 (RT-11 version)
* Turbo-DOS
* BKUNIX
* OS/A WASP

Hobby

* AROS (AROS Research Operating System, formerly known as Amiga Research Operating System)
* AtheOS (branched to become Syllable Desktop)
o Syllable Desktop (a modern, independently originated OS; see AtheOS)
* DexOS, (Games console OS, for x86, written in FASM)
* DSPnano RTOS FREE
* EROS (Extremely Reliable Operating System)
* FAMOS (Foremost Advanced Memory Operating System)
* HelenOS, based on a preemptible microkernel design
* LoseThos, the stated goal is "programming as entertainment" - oriented toward video games
* LSE/OS
* MenuetOS (extremely compact OS with GUI, written entirely in FASM assembly language)
* Mรถbius (an open-source operating system for the IA-32 platform (Intel i386 and compatibles) [5])
* MikeOS
* NewOS
* Unison RTOS FREE
* Visopsys
* TajOS
* eSTORM

Embedded
Personal digital assistants (PDAs)

* iPhone OS (a subset of Mac OS X)
* Inferno (distributed OS originally from Bell Labs)
* Palm OS from Palm, Inc; now spun off as PalmSource
* webOS from Palm, Inc.
* Symbian OS
* Windows CE, from Microsoft
o Pocket PC from Microsoft, a variant of Windows CE.
o Windows Mobile from Microsoft, a variant of Windows CE.
* Embedded Linux
o OpenZaurus
o ร…ngstrรถm distribution
o Familiar Linux
o Maemo based on Debian deployed on Nokia's Nokia 770, N800 and N810 Internet Tablets.
* MS-DOS on Poqet PC
* Newton OS on Apple Newton Messagepad
* VT-OS for the Vtech Helio
* Magic Cap
* NetBSD
* Plan 9 from Bell Labs

Digital media players

* DSPnano RTOS
* ipodlinux
* Pixo
* RockBox
* iPhone OS (a subset of Mac OS X)
* iriver clix OS

Robots

* Robotic Operating System
* Dave's Robotic Operating System [6]

Smartphones

* BlackBerry OS
* Embedded Linux
o Access Linux Platform
o Android
o bada
o Openmoko Linux
o OPhone
o Maemo
o Mobilinux
o MotoMagx
o Qt Extended
o LiMo Platform
o webOS
* iPhone OS (a subset of Mac OS X)
* JavaFX Mobile
* Palm OS
* Symbian OS
* Windows Mobile

Routers

* AlliedWare by Allied Telesis (aka Allied Telesyn)
* AirOS by Ubiquiti Networks
* CatOS by Cisco Systems
* Cisco IOS (originally Internetwork Operating System) by Cisco Systems
* CyROS by Cyclades Corporation
* DD-WRT by NewMedia-NET
* Inferno (distributed OS originally from Bell Labs)
* IOS-XR by Cisco Systems
* IronWare by Foundry Networks
* JunOS by Juniper Networks
* RouterOS by Mikrotik
* ROX by Ruggedcom
* ScreenOS by Juniper Networks, originally from Netscreen
* Timos by Alcatel-Lucent
* Unison Operating System by RoweBots
* FTOS by Force10 Networks
* RTOS by Force10 Networks

Microcontrollers and real-time systems

* Atomthreads [7]
* A/ROSE
* BeRTOS
* ChibiOS/RT (GPL-licensed RTOS)
* ChorusOS
* CMX-RTX (RTOS for 8-/16-/32-bit ยตC/microprocessors. Has TCP/IP and USB support.)
* Contiki written in C
* DSPnano RTOS DSPnano RTOS (POSIX nanokernel, DSP Optimizations, Open Source)
* eCos
* embOS
* FreeOSEK
* FreeRTOS
* FunkOS
* Fusion RTOS
* iRMX (originally developed by Intel)
* Inferno (distributed OS originally from Bell Labs)
* INTEGRITY
* LUnix written in 6502
* LynxOS
* MenuetOS
* MicroC/OS-II
* MontaVista Linux
* Nucleus
* Open AT OS
* Operating System Embedded (OSE)
* OS-9 by Microware
* OSEK
* OS/RT
* Phoenix-RTOS
* Prex
* pSOS
* QNX
* RTAI
* RTEMS (Real-Time Executive for Multiprocessor Systems)
* RTLinux by Wind River Systems
* RTXC Quadros RTOS by Quadros Systems
* SCIOPTA RTOS
* ThreadX
* TRON Project and ITRON Project (related to BTRON, CTRON, MTRON, etc.)
* ยตClinux
* uKOS
* ยตOS++ (micro OS plus plus)
* Unison Operating System
* Versatile Real-Time Executive (VRTX)
* VxWorks by Wind River Systems
* XMK (eXtreme Minimal Kernel)
* Xenomai

Other embedded

* FreeBSD
* MINIX
* .NET Micro Framework
* polyBSD (embedded NetBSD)
* ROM-DOS
* TinyOS
* ยตTasker
* Windows Embedded
o Windows CE
o Windows Embedded Standard
o Windows Embedded Enterprise
o Windows Embedded POSReady

Capability-based
LEGO Mindstorms

* brickOS
* leJOS
* ChyanOS
* SOOS

Other capability-based

* KeyKOS nanokernel
o EROS microkernel
+ CapROS EROS successor
+ Coyotos EROS successor, goal: be first formally verified OS
* MONADS, designed to support the MONADS hardware projects.
o SPEEDOS builds on MONADS ideas
* V from Stanford, early 1980s [3]

Kernel

INTRODUCTION :---

In computing, the kernel is the central component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources (the communication between hardware and software components).[1] Usually as a basic component of an operating system, a kernel can provide the lowest-level abstraction layer for the resources (especially processors and I/O devices) that application software must control to perform its function. It typically makes these facilities available to application processes through inter-process communication mechanisms and system calls.

Operating system tasks are done differently by different kernels, depending on their design and implementation. While monolithic kernels will try to achieve these goals by executing all the operating system code in the same address space to increase the performance of the system, microkernels run most of the operating system services in user space as servers, aiming to improve maintainability and modularity of the operating system.[2] A range of possibilities exists between these two extremes.

Operating System

INTRODUCTION :---

An operating system (OS) is an interface between hardware and user which is responsible for the management and coordination of activities and the sharing of the resources of a computer, that acts as a host for computing applications run on the machine. As a host, one of the purposes of an operating system is to handle the resource allocation and access protection of the hardware. This relieves the application programmers from having to manage these details.

Operating systems offer a number of services to application programs and users. Applications access these services through application programming interfaces (APIs) or system calls. By invoking these interfaces, the application can request a service from the operating system, pass parameters, and receive the results of the operation. Users may also interact with the operating system with some kind of software user interface like typing commands by using command line interface (CLI) or using a graphical user interface. For hand-held and desktop computers, the user interface is generally considered part of the operating system. On large multi-user systems like Unix and Unix-like systems, the user interface is generally implemented as an application program that runs outside the operating system.

While servers generally run Unix or some Unix-like operating system, embedded system markets are split amongst several operating systems, although the Microsoft Windows line of operating systems has almost 90% of the client PC market.



OPERATING SYSTEM SERVICES :---

Operating systems are responsible for providing essential services within a computer system:

* Initial loading of programs and transfer of programs between secondary storage and main memory
* Supervision of the input/output devices
* File management
* Protection facilities

Web Applications

Definition:---



A web application is an application that is accessed via a web browser over a network such as the Internet or an intranet. The term may also mean a computer software application that is hosted in a browser-controlled environment (e.g. a Java applet)[citation needed] or coded in a browser-supported language (such as JavaScript, combined with a browser-rendered markup language like HTML) and reliant on a common web browser to render the application executable.



Benefits :--

Browser applications typically require little or no disk space on the client, upgrade automatically with new features, integrate easily into other web procedures, such as email and searching. They also provide cross-platform compatibility (i.e., Windows, Mac, Linux, etc.) because they operate within a web browser window.




Drawbacks :--

Standards compliance is an issue with any non-typical office document creator, which causes problems when file sharing and collaboration becomes critical. Also, browser applications rely on application files accessed on remote servers through the Internet. Therefore, when connection is interrupted, the application is no longer usable. Google Gears is a platform to ameliorate this issue and improve the usability of browser applications, it's use is being superseded by the introduction of HTML5 API's such as Web Workers and DOM Storage

The Java Database Connectivity (JDBC)

The Java Database Connectivity (JDBC)

The Java Database Connectivity (JDBC) API is the industry standard for database-independent connectivity between the Java programming language and a wide range of databases – SQL databases and other tabular data sources, such as spreadsheets or flat files. The JDBC API provides a call-level API for SQL-based database access.

JDBC technology allows you to use the Java programming language to exploit "Write Once, Run Anywhere" capabilities for applications that require access to enterprise data. With a JDBC technology-enabled driver, you can connect all corporate data even in a heterogeneous environment.

Java Swing

DEFINITION :---

Swing is a widget toolkit for Java. It is part of Sun Microsystems' Java Foundation Classes (JFC) — an API for providing a graphical user interface (GUI) for Java programs.

Swing was developed to provide a more sophisticated set of GUI components than the earlier Abstract Window Toolkit. Swing provides a native look and feel that emulates the look and feel of several platforms, and also supports a pluggable look and feel that allows applications to have a look and feel unrelated to the underlying platform.

Java Server Pages (JSP)

DEFINITION :-


Java Server Pages (JSP) is a server side Java technology that allows software developers to create dynamically generated web pages, with HTML, XML, or other document types, in response to a Web client request to a Java Web Application container (server). Architecturally, JSP may be viewed as a high-level abstraction of Java servlets. JSP pages are loaded in the server and operated from a structured special installed Java server packet called a J2EE Web Application often packaged as a .war or .ear file archive.

Java Servlet

DEFINITION :--


A Servlet is a Java class which conforms to the Java Servlet API, a protocol by which a Java class may respond to http requests. Thus, a software developer may use a servlet to add dynamic content to a Web server using the Java platform. The generated content is commonly HTML, but may be other data such as XML. Servlets are the Java counterpart to non-Java dynamic Web content technologies such as CGI and ASP.NET. Servlets can maintain state across many server transactions by using HTTP cookies, session variables or URL rewriting.

A Servlet is an object that receives a request and generates a response based on that request. The basic servlet package defines Java objects to represent servlet requests and responses, as well as objects to reflect the servlet's configuration parameters and execution environment. The package javax.servlet.http defines HTTP-specific subclasses of the generic servlet elements, including session management objects that track multiple requests and responses between the Web server and a client. Servlets may be packaged in a WAR file as a Web application.

Java Script

DEFINITION :---

JavaScript is an object-oriented[2] scripting language used to enable programmatic access to objects within both the client application and other applications. It is primarily used in the form of client-side JavaScript, implemented as an integrated component of the web browser, allowing the development of enhanced user interfaces and dynamic websites. JavaScript is a dialect of the ECMAScript standard and is characterized as a dynamic, weakly typed, prototype-based language with first-class functions. JavaScript was influenced by many languages and was designed to look like Java, but to be easier for non-programmers to work with.

Remote Method Invocation (RMI)

DEFINITION :---


Java Remote Method Invocation (Java RMI) enables the programmer to create distributed Java technology-based to Java technology-based applications, in which the methods of remote Java objects can be invoked from other Java virtual machines*, possibly on different hosts. RMI uses object serialization to marshal and unmarshal parameters and does not truncate types, supporting true object-oriented polymorphism

OR


The Java Remote Method Invocation API, or Java RMI, is a Java application programming interface that performs the object-oriented equivalent of remote procedure calls (RPC).

1. The original implementation depends on Java Virtual Machine (JVM) class representation mechanisms and it thus only supports making calls from one JVM to another. The protocol underlying this Java-only implementation is known as Java Remote Method Protocol (JRMP).
2. In order to support code running in a non-JVM context, a CORBA version was later developed.

Java Applets

DEFINITION :---

An applet is any small application that performs one specific task; sometimes running within the context a larger program perhaps as a plugin. However, the term typically also refers to programs written in the Java programming language which are included in an HTML page. The word Applet originally comes from the application AppleScript.

A Java applet is an applet delivered to the users in the form of Java bytecode. Java applets can run in a Web browser using a Java Virtual Machine (JVM), or in Sun's AppletViewer, a stand-alone tool for testing applets. Java applets were introduced in the first version of the Java language in 1995. Java applets are usually written in the Java programming language but they can also be written in other languages that compile to Java bytecode such as Jython,Ruby, or Eiffel.

HTML

DEFINITION :-


HTML, which stands for Hyper Text Markup Language, is the predominant markup language for web pages. It provides a means to create structured documents by denoting structural semantics for text such as headings, paragraphs, lists etc as well as for links, quotes, and other items. It allows images and objects to be embedded and can be used to create interactive forms. It is written in the form of HTML elements consisting of "tags" surrounded by angle brackets within the web page content. It can include or can load scripts in languages such as JavaScript which affect the behavior of HTML processors like Web browsers; and Cascading Style Sheets (CSS) to define the appearance and layout of text and other material. The W3C, maintainer of both HTML and CSS standards, encourages the use of CSS over explicit presentational markup.

Frontend ,Middleware , & Backend Tiers

Front-end tier -> User Interface layer usually consisting of a mix of HTML, Javascript, CSS, Flash, and various server-side code like ASP.Net, classic ASP, PHP, etc. Think of this as being closest to the user in terms of code.

Middleware, middle-tier -> One tier back, generally referred to as the "plumbing" part of a system. Java and C# are common languages for writing this part that could be viewed as the glue between the UI and the data and can be webservices or WCF components or other SOA components possibly.

Back-end tier -> Databases and other data stores are generally at this level. Oracle, MS-SQL, MySQL, SAP, and various off-the-shelf pieces of software come to mind for this piece of software that is the final processing of the data.

Overlap can exist between any of these as you could have everything poured into one layer like an ASP.Net website that uses the built-in AJAX functionality that generates Javascript while the code behind may contain database commands making the code behind contain both middle and back-end tiers. Alternatively, one could use VBScript to act as all the layers using ADO objects and merging all three tiers into one.

FRONT END , BACKEND OF APPLICATION SERVER

FRONT END , BACKEND OF APPLICATION SERVER :---



In software architecture there are many layers between the hardware and end-user. Each can be spoken of as having a front- and back-end. The "front" is an abstraction, simplifying the underlying component by providing a user-friendly interface.

In software design, the Model-view-controller for example, provides front- and back-ends for the database, the user, and the data processing components. The separation of software systems into "front-ends" and "back-ends" simplifies development and separates maintenance.

For major computer subsystems, a graphical file manager is a front-end to the computer's file system, and a shell interfaces the operating system — the front-end faces the user and the back-end launches the programs of the operating system in response.

Using the CLI ( command-line interface ) feature requires the acquisition of special terminology and the memorization of the commands, and so a GUI ( graphical user interface ) acts as a front-end desktop environment instead. In the Unix environment, ncurses is a simpler, semi-graphical front-end to the CLI. At the level of the Unix CLI itself, most commands are filters — standalone commands that can also serve as front-end and back-end to other commands. (They function by piping data between themselves, mostly for text processing. For example: CLI-prompt> cmd1 | cmd2 | cmd3 | cmd4 )

In network computing "front-end" can refer to any hardware that optimizes or protects network traffic. It is called application front-end hardware because it is placed on the network's out-facing front-end or boundary. Network traffic passes through the "application's front-end hardware" before entering the network.

In compilers, the front-end translates a computer programming source language into an intermediate representation, and the back-end works with the internal representation to produce code in a computer output language. The back-end usually optimizes to produce code that runs faster. The front-end/back-end distinction can separate the parser section that deals with source code and the back-end that does code generation and optimization; some designs (such as GCC) offer the choice between multiple front-ends (parsing different source languages) and/or multiple back-ends (generating code for different target processors).

In speech synthesis, the front-end refers to the part of the synthesis system that converts the input text into a symbolic phonetic representation, and the back-end converts the symbolic phonetic representation into actual sounds.

In the context of WWW applications, a mediator is a service that functions simultaneously as a server on its front end and as a client on its back end

Desktop Versus Web Applications

Desktop Versus Web Applications :----


What Defines a Web Application Vs a Desktop Application?
A web application is an application delivered to users from a web server like the Internet. Some businesses run web applications on an intranet, as well. Web applications are becoming more popular due to the widespread use of the web browser as a client.

Some applications are better suited and more likely to become successful as web applications. Web applications designed specifically for search engine optimization, have become increasingly popular. It is easy to understand why web applications that relate to the Internet would prosper, while business applications may have less appeal in a web environment.

A desktop application is a self-contained program that performs a defined set of tasks under the user control. Desktop applications run from a local drive and do not require a network or connectivity to operate or function properly, though if attached to a network desktop applications might use the resources of the network.


Pros and Cons to Desktop and Web Applications:

Easily Accessible
Web applications can be easily accessed from any computer or location that has Internet access. Travelers especially benefit from the accessibility. This often means that if a traveler has access to a computer, phone or handheld with Internet connectivity they can utilize the web application.


Low Maintenance & Forced Upgrades
Desktop applications need to be individually installed on each computer, while web applications require a single installation.
Many web applications are hosted by a 3rd party and the maintenance fall under the applications hosts responsibility. The ability to update and maintain web applications without distributing and installing software on potentially thousands of client computers is a key reason for the popularity of web based applications. This can be a blessing and a curse as users of web applications on hosted systems are at the mercy of the host, if an upgrade does not go well, or the individual user doesn't want or need the new features the upgrade will still go forward.

Increased Security Risks
There are always risks involved when dealing with working online, regardless of how secure a host might say a web application is, that fact of the matter stands that the security risk of running an application of the Internet is more significant than when running an application on a standalone desktop computer. Some applications require more security than others, playing Sudoku on a web application would cause little concern, but dealing with sensitive corporate formulas or accounting details in a web environment might be determined risky.



Cost
Over the life of the software use, web applications are typically significantly more expensive over time. Desktop applications are purchased outright and rarely is their a recurring fee for the software use. Some desktop applications do have maintenance fees or fee based upgrades associated with them, but rarely is there a subscription fee associated with the software's ongoing use.

Many corporate web applications use a different model, users typically are charged monthly service fee to operate the software. Fees are considered "subscription fees". If you fail to renew your subscription you may be unable to access the data stored in the web application.


Connectivity
Web applications rely on persistent and unmanaged connectivity. If you do not have an Internet connection or if your host does not have Internet connectivity you cannot access the information. Critical applications or businesses that are time sensitive cannot risk denial of service attacks or power outages to interrupt their operations and access data that is sensitive.


Slower
Web applications that rely on the Internet to transfer data rather than a computer's local hard drive, may operate slower. The speed may also vary based on number of users accessing the application.

Backups & Ownership.
Regardless of the platform, companies need to be sure that their data is appropriately backed up. When using a web application that are hosted by a third party, companies should clearly determine who owns the data housed in the application, and be sure that privacy policies prevent that data from being used by the web host.


Ultimately the accessibility of web based applications make them very desirable. Web applications have some fundamental limitations in their functionality, and are better suited for specific tasks. Understanding the pro's and con's to each business model, will help users determine whether a desktop application or web application will better suit their needs.

Cascading Style Sheets (CSS)

DEFINITION -

Cascading Style Sheets (CSS) is a style sheet language used to describe the presentation semantics (that is, the look and formatting) of a document written in a markup language. Its most common application is to style web pages written in HTML and XHTML, but the language can be applied to any kind of XML document, including SVG and XUL.

Desktop Applications

DEFINITION:--

1) Typical computer programs used on office desktops, including e-mail, word-processing and spreadsheets.

2) Query and analysis tools that access the source database or data warehouse across a network using an appropriate database interface.

3) An application that runs in a desktop or laptop computer. The term is used either to contrast such "local" applications with Web-based applications that also run in the same computer, or to contrast personal computer applications with mobile phone applications.