Unix was developed in the 1970s to be an operating system for minicomputers that were being used simultaneously by several different people. Many of the features of the Unix environment can be traced back to this intended deployment environment.
In the three decades that have followed, Unix has been repurposed to many different kinds of deployment environments. One of the reasons for the operating system's success is that the design necessary to satisfy the original deployment requirements provided the operating system with great flexibility.
Today Unix is widely used in at least five different deployment environments:
This is the original Unix deployment environment?a single computer that is simultaneously shared by several people. Shared systems are still common in universities, in some businesses, and among some Internet service providers. Thin-client Unix systems such as Sun Microsystems' SunRay systems make use of a shared system driving multiple client displays.
The key difference between the shared systems of the 1970s and the shared systems of today is merely size. In the 1970s, the typical shared Unix system had 32 or 64 KB of RAM, had a disk pack of perhaps 5 MB of storage, and comfortably supported between 3 and 5 simultaneous users. Today's typical multiuser systems have between 64 MB and 4 GB of RAM, hundreds of GBs of disk storage, and multiple cooperating CPUs, and can comfortably support between 3 and 500 simultaneous users. Larger servers may have more than 40 GB of RAM, disk storage in terabytes, and over 100 processors.
Unix workstations for the individual user were popularized in the 1980s by Sun Microsystems and Digital Equipment Corporation (now part of Hewlett-Packard). These workstations typically had large bitmapped displays running the X Window system, allowing a single person to open several windows for shell sessions or other processes. A one-user system could be entirely self-contained, or it can access resources such as disks and printers over the network.
Today, the vast majority of Unix and Unix-like systems are one-user workstations. These include most of the computers running the Mac OS X operating system, as well as numerous Intel-based laptop and desktop systems running the Linux and FreeBSD operating systems. HP, Sun, IBM, and SGI are all vendors making one-user Unix workstations of various kinds.
Unix servers are typically powerful computers on the Internet that provide information services to other computers. Unix servers can provide many kinds of service, including email service, web service, domain name service, file service, and so on. In contrast to other operating systems, in Unix it is common to use a single Unix server to provide many different services simultaneously.
The Unix heritage of multiuser design makes it well-suited to providing Internet services in a secure and reliable fashion. Unlike other operating systems, which may run all network servers from a single privileged account, it is common on Unix systems to configure a virtual user for each service that will be provided. Because Unix was designed to prevent individual users from interfering with other users or disrupting the operating system, if one of these virtual users is compromised or fails, the extent of damage can be limited.
Although there are fewer Unix servers than Unix workstations, many more people use Unix servers on a daily basis than they do Unix workstations. This is because many of the Internet's most popular sites are run on Unix systems.
Although laptops and even some desktops frequently move around, today the term "mobile Unix" is generally reserved for handheld systems with occasional wireless connectivity that are designed to run a small number of applications. A typical mobile Unix system of 2003 is a handheld computer with 64 MB of RAM and a StrongARM microprocessor running a stripped-down Linux distribution.
Although mobile Unix systems seem puny by today's standards, it is important to realize that these computers are more powerful than most workstations and multiuser servers were in the early 1990s. Mobile Unix systems can have a GB or more of storage and support network connections of 11 Mbps or faster, potentially making them formidable attack platforms as well as useful personal systems.
The term "embedded Unix" is typically used to describe a Unix system that is deployed on a single-purpose computer or "appliance." Although the appliance application itself might be managed, the embedded Unix operating system is designed to be management-free. Typical embedded Unix systems are firewall appliances, home routers, and computers designed for automobiles.
The key differences between these deployment environments are the policies and the amount of auditing that is provided. The underlying principles of Unix security are largely the same for all of these systems.