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 details of the operation of the
hardware. This relieves application programs from having to manage these details and makes it easier to write applications. Almost all computers (including
handheld computers,
desktop computers,
supercomputers,
video game consoles) as well as some
robots, domestic appliances (dishwashers, washing machines), and
portable media players use an operating system of some type.
[1] Some of the oldest models may, however, use an
embedded operating system that may be contained on a
data storage device.
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 (GUI, commonly pronounced “gooey”). 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. (Whether the user interface should be included as part of the operating system is a point of contention.)
While the most common operating systems are now found in cellphones and automobiles, other contemporary operating systems include
BSD,
Darwin (Mac OS X),
Linux,
SunOS (Solaris/OpenSolaris), and
Windows NT (XP/Vista/7). While servers generally run Unix or some Unix-like operating system, embedded system markets are split amongst several operating systems,
[2][3] although the
Microsoft Windows line of operating systems has almost 90% of the client PC market.
Example: Microsoft Windows
While the
Windows 9x series offered the option of having profiles for multiple users, they had no concept of
access privileges, and did not allow concurrent access; and so were not true
multi-user operating systems. In addition, they implemented only partial
memory protection. They were accordingly widely criticised for lack of security.
The
Windows NT series of operating systems, by contrast, are true multi-user, and implement absolute memory protection. However, a lot of the advantages of being a true multi-user operating system were nullified by the fact that, prior to
Windows Vista, the first user account created during the setup process was an
administrator account, which was also the default for new accounts. Though
Windows XP did have limited accounts, the majority of home users did not change to an account type with fewer rights – partially due to the number of programs which unnecessarily required administrator rights – and so most home users ran as administrator all the time.
Windows Vista changes this
[5] by introducing a privilege elevation system called
User Account Control. When logging in as a standard user, a logon session is created and a
token containing only the most basic privileges is assigned. In this way, the new logon session is incapable of making changes that would affect the entire system. When logging in as a user in the Administrators group, two separate tokens are assigned. The first token contains all privileges typically awarded to an administrator, and the second is a restricted token similar to what a standard user would receive. User applications, including the
Windows Shell, are then started with the restricted token, resulting in a reduced privilege environment even under an Administrator account. When an application requests higher privileges or "Run as administrator" is clicked, UAC will prompt for confirmation and, if consent is given (including administrator credentials if the account requesting the elevation is not a member of the administrators group), start the process using the unrestricted token.
[6][
edit] Example: Linux
Linux (and Unix) have a multi-tier security that permits user
root any system-wide changes. Regular users can be limited: where they can save files, what hardware they can access, their memory usage, applications, disk usage (
quota), and the range of
priority settings they can apply, can all be specified. This still provides the user with plenty of. Should a user have to install software outside of his
home directory or make system-wide changes, they must become root. (See
su or
sudo). There are also group accounts management, and file and directory permissions.
Linux security software examples include for:
Authentication modules,
PAM and
OPIE;
System logging,
Syslog;
Network services, TCP wrappers, port mappers, and
xinetd;
The shell,
ssh.
Security auditing,
Crack,
Tiger and
Tripwire;
Cryptographic software, TCFS;
Packet filtering,
ipchains.
Most Linux software applications are
open standard and
open source. For example any application may extend it's own authentication, configuration and logging over to PAM or Syslog.
For more information on the differences between the Linux su/sudo approach and Vista's
User Account Control, see
Comparison of privilege authorization features.
[
edit] File system support in modern operating systems
Support for file systems is highly varied among modern operating systems although there are several common file systems which almost all operating systems include support and drivers for.
[
edit] Mac OS X
Mac OS X supports
HFS+ with journaling as its primary file system. It is derived from the
Hierarchical File System of the earlier
Mac OS. Mac OS X has facilities to read and write FAT, NTFS (read-only, although an open-source cross platform implementation known as
NTFS 3G provides read-write support to Microsoft Windows NTFS file system for Mac OS X users), UDF, and other file systems, but cannot be installed to them. Due to its UNIX heritage
Mac OS X now supports virtually all the file systems supported by the UNIX VFS..
[
edit] Solaris
The
Solaris Operating System uses
UFS as its primary file system. Prior to 1998, Solaris UFS did not have logging/journaling capabilities, but over time the OS has gained this and other new data management capabilities.
Additional features include
Veritas (Journaling)
VxFS,
QFS from
Sun Microsystems, enhancements to UFS including multiterabyte support and UFS volume management included as part of the OS, and
ZFS (open source, poolable, 128-bit, compressible, and error-correcting).
Kernel extensions were added to Solaris to allow for bootable Veritas VxFS operation. Logging or
journaling was added to UFS in
Solaris 7. Releases of
Solaris 10, Solaris Express,
OpenSolaris, and other open source variants of Solaris later supported bootable ZFS.
Logical Volume Management allows for spanning a file system across multiple devices for the purpose of adding redundancy, capacity, and/or throughput. Solaris includes
Solaris Volume Manager (formerly known as Solstice DiskSuite.) Solaris is one of many operating systems supported by
Veritas Volume Manager. Modern Solaris based operating systems eclipse the need for volume management through leveraging virtual storage pools in ZFS.
[
edit] Linux
Many
Linux distributions support some or all of
ext2,
ext3,
ext4,
ReiserFS,
Reiser4,
JFS ,
XFS ,
GFS,
GFS2,
OCFS,
OCFS2, and
NILFS. The ext file systems, namely ext2, ext3 and ext4 are based on the original Linux file system. Others have been developed by companies to meet their specific needs, hobbyists, or adapted from UNIX, Microsoft Windows, and other operating systems. Linux has full support for
XFS and
JFS, along with
FAT (the
MS-DOS file system), and
HFS which is the primary file system for the
Macintosh.
In recent years support for Microsoft
Windows NT's
NTFS file system has appeared in
Linux, and is now comparable to the support available for other native
UNIX file systems.
ISO 9660 and
Universal Disk Format (UDF) are supported which are standard file systems used on CDs, DVDs, and BluRay discs. It is possible to install Linux on the majority of these file systems. Unlike other operating systems, Linux and UNIX allow any file system to be used regardless of the media it is stored in, whether it is a hard drive, a disc (CD,DVD...), an USB key, or even contained within a file located on another file system.
[
edit] Microsoft Windows
Microsoft Windows currently supports NTFS and
FAT file systems, along with
network file systems shared from other computers, and the ISO 9660 and UDF filesystems used for
CDs,
DVDs, and other optical discs such as
Blu-ray. Under Windows each file system is usually limited in application to certain media, for example CDs must use ISO 9660 or UDF, and as of
Windows Vista,
NTFS is the only file system which the operating system can be installed on.
Windows Embedded CE 6.0, Windows Vista Service Pack 1, and
Windows Server 2008 support
ExFAT, a file system more suitable for
flash drives.