Major Operating Systems and historical evolution

The four major players in the Market are Windows, Mac OS, UNIX and Linux. While UNIX and Linux are open collaborative projects, Windows and Mac OS are closed proprietary systems. UNIX is primarily aimed at servers and doesn’t support the range of applications that most users need on a desktop. Three groups worldwide control and coordinate its development. It’s mature, stable and highly secure. Mac OS, which drives Apple Macs, actually runs on an underlying UNIX engine, with a user-friendly graphical interface on top. The UNIX base makes it very secure and stable, and it’s known for its ease of use. However, in this notes we are not deal with Mac OS because our current infrastructure does not contains any Apple hardware. Linux can be seen as a recreation of UNIX but its got several differences. There’s no central control and its development driven by literally millions of programmers. This is both its greatest strength and its greatest weakness. It’s more popular than UNIX for workstations because it can run on almost any hardware and it supports a huge range of software. Companies like RedHat and Novell package up Linux and sell support, but the OS itself is free. Windows is currently the market leader, overwhelmingly for workstations, and by a slight margin for servers. Nevertheless, a major portion of the Windows installations are illegal. Windows has its own proprietary internal software on both platform. It’s relatively easy to use and relatively stable nowadays. Information about operating system share is difficult to obtain, since in most of the categories are no reliable primary sources or methodology for its collection. One estimation can be the variety of Web clients based on W3Counter's statistic which shows a strong Microsoft domination around 78% and Apple as the second one with 16% and finally Linux based systems around 5%. The remaining 1% is holding all the other operating systems which are can not be measured. One of it is the first operating systems which appeared in the beginning of the 1980's: DOS. The next section describes DOS while its command line interface and its commands are still present in all Windows editions.

Disc Operating System (DOS)

The "Disk Operating System" or DOS is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or more precisely until about 2000 including the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition. In 2013 the following DOS systems are available: FreeDOS, OpenDOS ( a.k.a DR-DOS from Digital Research, and Novell-DOS after purchased by Novell), GNU/DOS and RxDOS. Some computer manufacturers, including Dell and HP, sell computers with FreeDOS as the OEM operating system.

The most widely used one was Microsoft's DOS version: MS-DOS which appeared in 1981 and discontinued in 2000. At this time eight major releases was created. When IBM introduced the IBM PC, built with the Intel 8088 microprocessor, they needed an operating system. At first turn IBM wished to sell Digital Research's CP/M operating system but the meeting was unsuccessful and finally they made an agreement with Microsoft's CEO Bill Gates. While Microsoft used the MS-DOS name and licensed their system to multiple computer companies, IBM continued to develop their version, PC DOS, for the IBM PC.

The time line:

  • PC DOS 1.0 – 1981. August – First release with IBM PC

  • PC DOS 1.1 – 1982. May

  • MS-DOS 1.25 – 1982. May – The first version not related to IBM hardware only.

  • MS-DOS 2.0 – 1983. March – Several UNIX-like functionality, like subdirectory, file handle, Input/Output redirection, pipelines. One important difference introduced in the interpretation of the path. While Unix uses the / (slash) character to separate the entries in the path, Microsoft choose the \ (backslash) character because the slash is used for switches in the command line used by CP/M and most of the DOS editions.

  • PC DOS 2.1 – 1983. October

  • MS-DOS 2.11 – 1984. March

  • MS-DOS 3.0 – 1984. August

  • MS-DOS 3.1 – 1984. November

  • MS-DOS 3.2 – 1986. January – Support of two partition with the size 32 MB. One primary partition and one logical drive on the extended partition.

  • PC DOS 3.3 – 1987. April

  • MS-DOS 3.3 – 1987. August – Support for more than one logical drive.

  • MS-DOS 4.0 – 1988. June – derived form the IBM version

  • PC DOS 4.0 – 1988. July – Introduction of the DOS Shell, graphical menu, support for hard drives greater than 32 MB in the form of Compaq DOS 3.31. Contains several bugs!

  • MS-DOS 4.01 – 1988. November – Bug-fix edition

  • MS-DOS 5.0 – 1991. June – Reflecting to DR-DOS version 5.0, new features appeared: memeory handling, full screen editor, QBASIC programming language, help system, task switcher in the DOS Shell

  • MS-DOS 6.0 – 1993. March - Reflecting to DR-DOS version 6.0: DoubleSpace drive compressor (Stacker's code inside)

  • MS-DOS 6.2 – 1993. November – Bug-fix edition

  • MS-DOS 6.21 – 1994. February – DoubleSpace removed by the legal steps forced by Stacker

  • PC DOS 6.3 – 1994. April

  • MS-DOS 6.22 – 1994. June – The last independent version. DoubleSpace technology replaced by the new and clean DriveSpace program

  • PC DOS 7.0 – 1995. April – DriveSpace replaced by Stacker

  • MS-DOS 7.0 – 1995. August – The DOS version contained by Windows 95

  • MS-DOS 7.1 – 1996. August – Updated version for Windows 95 OSR2 (Windows 95B) and Windows 98. Supports the newly appeared FAT32 file system

  • MS-DOS 8.0 – 2000. September 14. – The last MS-DOS version, included in Windows Me. The SYS command is removed, can not started in pure command line mode and several other functionality is missing too.

  • PC DOS 2000 – Y2K compatible version with minor features. The MS-DOS family's last member

DOS was designed from its origin as a single-user, single-tasking operating system with basic kernel functions that are non-reentrant: only one program at a time can use them and DOS itself has no functionality to allow more than one program to execute at a time. The DOS kernel is a monolith kernel and provides various functions for programs (an application program interface - API), like character I/O, file management, memory management, program loading and termination.

Primarily DOS was developed for the Intel 8086/8088 processor and therefore could only directly access a maximum of 1 MB of RAM. Due to PC architecture only a maximum of 640 KB (known as conventional memory) is available as the upper 384 KB is reserved. Specifications were developed to allow access to additional memory. The first was the Expanded Memory Specification (EMS), the second specification was the Extended Memory Specification (XMS). Starting with DOS 5, DOS could directly take advantage of the upper memory area by loading its kernel code and disk buffers there via the DOS=HIGH statement in CONFIG.SYS.

As DOS was designed for single-tasking and not for multi-tasking operating system, initially there were not tools to make it possible. However, DOS tried to fight against this handicap by providing a Terminate and Stay Resident (TSR) function which allowed programs to remain resident in memory. These programs could hook the system timer and/or keyboard interrupts to allow themselves to run tasks in the background or to be invoked at any time preempting the current running program effectively implementing a simple form of multitasking on a program-specific basis. Terminate and Stay Resident programs were used to provide additional features not available by default. Typical examples were pop-up applications and device drives like the Microsoft CD-ROM Extensions (MSCDEX) driver which provided access to files on CD-ROM disks. Programs like DOSKey provided command line editing facilities beyond what was natively available in COMMAND.COM. Moreover, several manufacturers used this technique to emulate multi-tasking.

Traditionally, DOS was designed as a pure command-line environment with batch scripting capabilities. Its command line interpreter is designed to be replaceable in a very easy manner. Graphical interface was not developed but in a broader manner the early Windows editions till Windows ME (independent form the NT branch) could be treated as a graphical interface because they are all based on MS-DOS environment. According to Microsoft, MS-DOS served two purposes in the Windows 9x branch: as the boot loader, and as the 16-bit legacy device driver layer. The operating systems started with MS-DOS, processed CONFIG.SYS, launched COMMAND.COM, ran AUTOEXEC.BAT and finally ran WIN.COM. The WIN.COM program used MS-DOS to load the virtual machine manager, read SYSTEM.INI, load the virtual device drivers, and then turn off any running copies of EMM386 and switch into protected mode. Newer Windows editions became independent from MS-DOS but hold most of the code, so the MS-DOS environment became available as a virtualization or Virtual DOS Machine. (However, a fully functional DOS box also available in the Linux world but its importance is much more lower.)

Windows

Microsoft Windows is a series of operating systems developed, marketed, and sold by Microsoft. Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces (GUIs). Windows is not meaning only a graphical interface, it's a complete operating system which is adopted not only in the PC's market but the mobile platform as well. The "Windows" word and logo is a trade mark of Microsoft. Windows makes a computer system user-friendly by providing a graphical display and organizing information so that it can be easily accessed. The operating system utilizes icons and tools that simplify the complex operations performed by computers. Estimates suggest that 90% of personal computers use the Windows operating system. Microsoft introduced the operating system in 1985 and it has continued to be widely used despite competition from Apple's Macintosh operating system, which had been introduced in 1984. The most recent client version of Windows is Windows 8; the most recent mobile client version is Windows Phone 8; the most recent server version is Windows Server 2012.

Originally, the company had the name "Micro-Soft" and established on April 4, 1975 by Paul Allen and Bill Gates. Initially, Microsoft was established to develop and sell BASIC interpreters for the Altair 8800. Microsoft entered the OS business in 1980 with its own version of Unix, called Xenix. However, it was MS-DOS that solidified the company's dominance. It rose to dominate the personal computer operating system market with MS-DOS in the mid-1980s, followed by the Microsoft Windows line of operating systems. The company also produces a wide range of other software for desktops and servers, and is active in areas including internet search (with Bing), the video game industry (with the Xbox and Xbox 360 consoles), the digital services market (through MSN), and mobile phones (via the Windows Phone OS).

The first version of the Windows operating system was released on November 1985. The idea based on Apple's windowing mechanism. Windows 1.0 lacked a degree of functionality, achieved little popularity and was to compete with Apple's own operating system. Windows 1.0 is not a complete operating system; rather, it extends MS-DOS. Its first significant version was the 3.0 release appeared in 1990. These initial 16 bit versions were focus on comfort and performance and lack security aspects. There was no complex permission system. They were developed on the "Everything which is not forbidden is allowed" principle against the Unix world where the principle says: "which is not allowed is forbidden". This resulted a system where the applications can modify everything inside the operating system and moreover, inside the computer.

The Windows 9x line

The changes brought by Windows 95 to the desktop were revolutionary and evolutionary. Windows 95 was released on August 24, 1995, featuring a new object oriented user interface, support for long file names of up to 255 characters, support for networks, True Type fonts, wide multimedia capabilities, the ability to automatically detect and configure installed hardware (plug and play) and last but not least preemptive multitasking. It could natively run 32-bit applications, and featured several technological improvements that increased its stability over Windows 3.1 but it still based on MS-DOS.

Next in the consumer line was Microsoft Windows 98 (inheriting most of Windows 95) released on June 25, 1998. It was followed with the release of Windows 98 Second Edition in May 1999 which was one of the best Windows series and after 6 years of its closed support it is still alive. The next version was the Windows Millenium Edition (ME) released in September 2000. Windows ME updated the core from Windows 98, but adopted some aspects of Windows 2000 and removed the "boot in DOS mode" option. Windows ME implemented a number of new technologies (like System Restore). Windows ME was heavily criticized due to slowness, freezes and hardware problems and has been said to be one of the worst operating systems Microsoft ever released. Microsoft realized those problems and tried to focus on Windows 2000 in order to combine the Windows 9x line with the (more robust and secure) Windows NT family.

The Windows NT family

In July 1993, Microsoft released Windows NT based on a new kernel. The abbreviation NT comes from a buzz word for marketing purposes meaning "New Technology" and does not carry any specific meaning. The NT family of Windows systems was fashioned and marketed for higher reliability business use as a professional OS. Its main goal was to become a portable operating system featuring the POSIX standard and supporting core multiprocessing. It was a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix. It was independent from the DOS-based line from the beginning. Security was one of the most important factor during the design of this operating system and this resulted a secure environment where Access Control Lists (ACLs) are governing everything (like processes, threads, drivers, shared memory and the file system also). Windows NT also introduced its own driver model which is inherited all the major successors of the NT line (XP, Vista, 7, 8). ( It means that an XP driver may be useable in the Vista system. ) The last NT-based Windows release was Windows 2000 in February 2000.

Windows XP, Vista, 7 and 8

With Windows XP (released on October 25, 2001) Microsoft moved to combine their consumer and business operating systems. The two major editions are Windows XP Home Edition, designed for home users, and Windows XP Professional, designed for business and power users. Windows XP featured a new task-based Graphical user interface. The Start menu and taskbar were updated and many visual effects were added. Windows XP was criticized by some users for security vulnerabilities, tight integration of applications such as Internet Explorer 6 and Windows Media Player, and for aspects of its default user interface. Service Pack 2, Service Pack 3, and Internet Explorer 8 addressed some of these concerns. In SP3 (released on May 6, 2008) total of 1,174 fixes have been included and several new features are debates. One to mention from these was the NX APIs for application developers to enable Data Execution Prevention for their code. It has not got enough focus till Windows 8 natively requires this processor feature to work. Execute Disable Bit (or NX bit for shorten) is a hardware-based security feature that can reduce exposure to viruses and malicious-code attacks and prevent harmful software from executing and propagating on the server or network.

After a lengthy development process, Windows Vista (codename Longhorn) was released on January 30, 2007 for consumers. It contains a number of new features, from a redesigned shell and user interface to significant technical changes, with a particular focus on security features. New features of Windows Vista include an updated graphical user interface and visual style dubbed Aero, a new search component called Windows Search, redesigned networking, audio, print and display sub-systems, and new multimedia tools. While these new features and security improvements have garnered positive reviews, Vista has also been the target of much criticism and negative press. Criticism of Windows Vista has targeted its high system requirements, its more restrictive licensing terms, the inclusion of a number of new digital rights management technologies, lack of compatibility with some pre-Vista hardware and software, and the number of authorization prompts for User Account Control (UAC). As a result of these and other issues, Windows Vista had seen initial adoption and satisfaction rates lower than Windows XP. While Windows XP had an approximately 63% market share, Vista can not reach approximately 20% market share. Microsoft decided to release its next version as soon as possible.

Windows 7 was released on October 22, 2009. It was intended to be a more focused, incremental upgrade to the Windows line, with the goal of being compatible with applications and hardware with which Windows Vista was already compatible. ( Windows 7 reached a 4% market share in less than three weeks. In comparison, it took Windows Vista seven months to reach the same mark. ) Windows 7 includes a number of new features, such as advances in touch and handwriting recognition, support for virtual hard disks, improved performance on multi-core processors, improved boot performance, improved media features, the XPS Essentials Pack, Windows PowerShell and kernel improvements. The default setting for User Account Control in Windows 7 has been also criticized for allowing untrusted software to be launched with elevated privileges without a prompt by exploiting a trusted application. However, the user is still the most weakest point in the security.

Windows 8, the successor to Windows 7, was released to the market on 26 October 2012. Windows 8 has been designed to be used on both tablets and the conventional PC. Windows 8 introduces significant changes to the operating system's platform, primarily focused towards improving its user experience on mobile devices such as tablets. For the first time since Windows 95, the Start button is no longer available on the taskbar. It has been replaced with the Start screen and can be triggered by clicking the bottom-left corner of the screen and by clicking Start in the Charms or by pressing the Windows key on the keyboard. Windows 8 also adds native support for USB 3.0 devices, which allow for faster data transfers and improved power management with compatible devices, and 4Kn Advanced Format support, as well as support for near field communication to facilitate sharing and communication between devices. Windows 8 supports a feature of the UEFI specification known as "Secure boot", which uses a public-key infrastructure to verify the integrity of the operating system and prevent unauthorized programs such as bootkits from infecting the device.

Future, can not be predicted. Microsoft - parallel with Windows - also started to develop a new operating system (codename Midori) which is independent from the NT-line; instead, its original roots can be traced back to Singularity, a Microsoft-Research developed microkernel operating system. Basically, Singularity’s ace up its sleeve was the fact that absolutely all apps, drivers and the kernel itself were written in managed code. They choose C# as the implementation language to became type- and memory-safe. At its heart, it is believed that Midori is a distributed, concurrent OS. It’s not all Microsoft’s research will be launched to the public in the form of products. But look at the time that Microsoft to work on Midori, could this operating system will be launched in the future.

UNIX and the GNU/Linux

Unix  (officially trademarked as  UNIX) is a  multitasking,  multi-user computer operating system originally developed in 1969 by a group of  AT&T employees at Bell Labs. The Unix operating system was first developed in assembly language, but by 1973 had been almost entirely recoded in C, greatly facilitating its further development and porting to other hardware. Today's Unix system evolution is split into various branches, universities, research institutes, government bodies and computer companies all began using the UNIX system to develop many of the technologies which today are part of a UNIX system.

Initially AT&T made available the Unix source code without fee for American Universities, so that within a few year, hundreds of thousands of Unix operating systems had been appeared. However, the rapid spread had a drawback: there was no unified control of anyone on the source code and regulations on the system as a whole unit. Many (local changes based) version developed, but the two most important are the Berkeley developed BSD UNIX and the AT&T's official version of System V (System Five) release. In addition to these major versions there are several subversions are still in circulation today and the Unix-like systems are become diversified. This can be seen on the next Figure, showing the evolution of the Unix operating systems.

Standards, recommendations and variants

As Unix began to become more and more popular in commercial sector, more and more companies recognize a single standard Unix importance. Several unifying, standardizing committee and group began to work on it. Companies rallied around the UNIX Systems Laboratories (USL - At&T's version) are lined behind the System V (Release 4) branch, while companies related to the BDS branch are supported the recommendation of the OSF (Open Systems Foundation) and their release of OSF/1.

In 1984, several companies established the X/Open consortium with the goal of creating an open system specification based on UNIX. Regrettably, the standardization effort collapsed into the "Unix wars", with various companies forming rival standardization groups. The most successful Unix-related standard turned out to be the IEEE's POSIX specification, designed as a compromise API readily implemented on both BSD and System V platforms, published in 1988.

In the beginning of the 1990s, most commercial vendors had changed their variants of Unix to be based on System V with many BSD features added. The creation of the Common Open Software Environment (COSE) initiative that year by the major players in Unix marked the end of the most notorious phase of the Unix wars. Shortly after UNIX System V Release 4 was produced, AT&T sold all its rights to UNIX to Novell. Novell decided to transfer the UNIX trademark and certification rights to the X/Open Consortium. In 1996, X/Open merged with OSF, creating the Open Group. Now the Open Group, an industry standards consortium, owns the UNIX trademark. Only systems fully compliant with and certified according to the Single UNIX Specification are qualified to use the trademark. Others might be called Unix system-like or Unix-like. However, the term Unix is often used informally to denote any operating system that closely resembles the trademarked system.

Starting in 1998, the Open Group and IEEE started the Austin Common Standards Revision Group, to provide a common definition of POSIX and the Single UNIX Specification. The new set of specifications is simultaneously ISO/IEC/IEEE 9945, and forms the core of the Single UNIX Specification Version 3. The last (and current) version appeared in 2009. The IEEE formerly designated this standard as 1003.1-2008 or POSIX.1-2008.

In 1999, in an effort towards compatibility, several Unix system vendors agreed on SVR4's Executable and Linkable Format (ELF) as the standard for binary and object code files. The common format allows substantial binary compatibility among Unix systems operating on the same CPU architecture.

The last step in the standardizing process was to create the Filesystem Hierarchy Standard (FHS - discussed later) to provide a reference directory layout for Unix-like operating systems.

Interestingly, these steps not only made effect on the UNIX era, rather then they influenced the whole operating system market. Several other vendors started to develop POSIX compliant layers in their operating system. Maybe the most surprising one was the appearance of Microsoft but it is not without limitations. Microsoft Windows implements only the first version of the POSIX standards, namely POSIX.1. Because only the first version of POSIX (POSIX.1) is implemented, a POSIX application cannot create a thread or window, nor can it use RPC or sockets. Instead of implementing the later versions of POSIX, Microsoft offers Windows Services for UNIX. In Windows Server 2008 and high-end versions of both Windows Vista and Windows 7 (Enterprise and Ultimate), a minimal service layer is included, but most of the utilities must be downloaded from Microsoft's web site. However, if we want a full POSIX compatible environment in our Windows system we can use Cygwin. Cygwin was originally developed by Cygnus Solutions, which was later acquired by Red Hat. It is free and open source software, released under the GNU General Public License version 3. ( But as an alternative we can MinGW [Minimalist GNU for Windows] - forked form the 1.3.3 branch - as a less POSIX compliant subsystem supporting Visual C programs as well.)

GNU/Linux

When we use the Linux word its meaning is highly depends on the context. The "Linux" word in a strict environment means the kernel itself and nothing more. Its development was started by Linus Torvalds in 1991. However, in a vernacular meaning it used to reference the whole Unix-like operating system using the Linux kernel and the base GNU programs from the GNU project - started by Richard Matthew Stallman in 1983. The proper name after all is GNU/Linux.

The Linux word is used as an indicator for the distributions as well. A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Since the kernel is replaceable, it is important to show the used kernel too. These operating systems consist of the Linux kernel and, usually, a set of libraries and utilities from the GNU Project, with graphics support from the X Window System. Distributions optimized for size may not contain X and tend to use more compact alternatives to the GNU utilities. There are currently over six hundred Linux distributions. Over three hundred of those are in active development, constantly being revised and improved. One can distinguish between commercially backed distributions, such as Fedora (Red Hat), openSUSE (SUSE), Ubuntu (Canonical Ltd.), and entirely community-driven distributions, such as Debian and Gentoo.

However, we can find typical Hungarian distributions as well:

  • blackPanther OS

  • UHU-Linux

  • Frugalware

  • Kiwi

  • Suli

Some dominant distributions:

  • Debian

  • Fedora, Red Hat Linux

  • Gentoo

  • Arch Linux

  • Mandriva (a.k.a. Mandrake)

  • Slackware

  • SuSE

  • Ubuntu Linux

Another important difference between the distributions based on the used package management. Distributions are normally segmented into packages and each package contains a specific application or service. The package is typically provided as compiled code, with installation and removal of packages handled by a package management system (PMS) rather than a simple file archiver. The difference lies on the used PMS. The two commonly used one are the RPM (RedHat Package Manager from Red Hat ) and the APT ( Advanced Packaging Tool from the Debian distribution).

The biggest boost in Linux's evolution its open source code. Everybody can download, compile, modify and extend it without fixity. This is why it is included in the Free Software Foundation's (FSF's) software library and serves as a base of the GNU's ( " GNU's not Unix " ) Unix-like operating system. The  Free Software Foundation ( FSF ) is a non-profit organization founded by Richard Stallman on 4 October 1985 to support the free software movement. This promotes the universal freedom to create, distribute and modify computer software with the organization's preference for software being distributed under copyleft ("share alike") terms such as with its own GNU General Public License. This licence is the most widely used software license, which guarantees end users (individuals, organizations, companies) the freedoms to use, study, share (copy), and modify the software. The GPL grants the recipients of a computer program the rights of the Free Software Definition and uses copyleft to ensure the freedoms are preserved whenever the work is distributed, even when the work is changed or added to.

However, there was a problem with the GNU project. It has not got its own reliable and free (from USL or BSD copyrighted parts) kernel. GNU started to develop its own micro kernel named Hurd which development has proceeded slowly. Despite an optimistic announcement by Stallman in 2002 predicting a release of GNU/Hurd later that year, the Hurd is still not considered suitable for production environments.

This was the point when Linux comes into picture. It fulfills most of the requirements to work together with GNU software to form a working operating system. This is why we use the GNU/Linux naming controversy. However, Linux is not a micro kernel, rather than a monolithic kernel and been criticised by Andrew S. Tanenbaum (the author of one of the most important book about Operating Systems and MINIX, the minimalist UNIX-like operating system for educational purposes). Its schematic structure can be seen on the following figure.