Unix: Difference between revisions
imported>Russell Potter (adding info on file and permissions structure of UNIX) |
imported>Russell Potter (→File Structure: example of permissions) |
||
Line 16: | Line 16: | ||
==File Structure== | ==File Structure== | ||
One of the more influential aspects of UNIX and UNIX-like systems is their hierarchical file structure. Files are organized into directories, each of which contains further directories and files in a branching structure, with the slash character "/" used to mark directory nodes. Each directory | One of the more influential aspects of UNIX and UNIX-like systems is their hierarchical file structure. Files are organized into directories, each of which contains further directories and files in a branching structure, with the slash character "/" used to mark directory nodes. Each directory and file in UNIX also possesses a permissions string, with nine switches which can be set to allow (r)ead, (w)rite, and e(x)ecute permissions for (u)ser, (g)roup, and (others). A typical file might, for example, return the string | ||
<code><nowiki>drwxr-xr-x 6 jsmith jsmith 204 Nov 4 11:12 filename.xxx</nowiki></code> | |||
where the file "filename.xxx" is a dierctory, flagged for read, write and execute permission for its user, and read and execute only for its user's group, and others. | |||
This combination of hierarchical structure and permissions settings enables by far the most effective, secure, and flexible operating system environment currently available. User groups can be set to allow different access levels across one branch, or the entire tree, with minimal difficulty. The [[superuser]] known as "root" in UNIX automatically has access to all files and directories. | |||
==Unix Today== | ==Unix Today== |
Revision as of 08:06, 9 April 2007
Unix (officially trademarked as UNIX®) is a computer operating system originally conceived and developed by a team of computer scientists while working at Bell Laboratories: Ken Thompson and Dennis Ritchie.[1] The design and implementation of Unix has come to influence the subsequent design of most operating systems that followed it, in one way or another. The desire for more portability in operating systems inspired by Unix also led to the co-development by Dennis Ritchie of the C programming language .
During the late 1970s and early 1980s, Unix's influence in academic circles led to large-scale adoption (particularly of the BSD variant) of Unix by commercial startups, notably Sun Microsystems. Today, in addition to certified Unix systems, Unix-like operating systems such as Linux, Mac OS X and BSD derivatives have matured.
What's in a Name?
The name and origin of Unix share a common source: MULTICS ((Multiplexed Information and Computing Service). "Unix" (originally 'Unics') itself is a play on words, basically standing for "Uniplexed Infomation and Computing Service." The point of this naming was chiefly to underscore that its design would be a rejection of the complexity of Multics, favoring a more practical and more easily developed model.
The philosophy of Unix
Although there is quite a variety among Unix systems, one common theme is the so-called "small tools that do their job very well." That is, a Unix system has many programs, each of which specializes in a small task. The user can combine these tools (via scripting or piping) to accomplish higher level goals. Although this may make some tasks more difficult than common graphical user interfaces, it allows the user to perform complicated tasks that were not explicitly allowed for by the interface's designer.
For instance, suppose the user wanted to create an archive of all files which reference his vacation created between two and three month ago. Under Unix, this could be accomplished as a combination of tar (the archiving application), find (a file search application) and grep (a file pattern matching application). In a single command:
tar czf vacation.tar.gz `find . -ctime +60 -ctime -90 -exec grep -il vacation {} \;`
In contrast, a user in a typical graphical user interface would need to use the search application to find such files, wait for the search to complete, and then use an archiving application to create the archive.
File Structure
One of the more influential aspects of UNIX and UNIX-like systems is their hierarchical file structure. Files are organized into directories, each of which contains further directories and files in a branching structure, with the slash character "/" used to mark directory nodes. Each directory and file in UNIX also possesses a permissions string, with nine switches which can be set to allow (r)ead, (w)rite, and e(x)ecute permissions for (u)ser, (g)roup, and (others). A typical file might, for example, return the string
drwxr-xr-x 6 jsmith jsmith 204 Nov 4 11:12 filename.xxx
where the file "filename.xxx" is a dierctory, flagged for read, write and execute permission for its user, and read and execute only for its user's group, and others.
This combination of hierarchical structure and permissions settings enables by far the most effective, secure, and flexible operating system environment currently available. User groups can be set to allow different access levels across one branch, or the entire tree, with minimal difficulty. The superuser known as "root" in UNIX automatically has access to all files and directories.
Unix Today
Today Unix has a diverse and varied background, and various systems are split into branches of development, modified over time by AT&T as well as various commercial vendors and non-profit organizations (some of them drawing enough influence and inspiration from Unix that they are referred to as being Unix-like).
Copyright Owner
The present owner of the trademark UNIX® is The Open Group, an industry standards consortium. Only systems fully compliant with and certified to the Single UNIX Specification qualify as "UNIX®" (others are called "Unix system-like" or "Unix-like"). Similarly, POSIX defines a standard set of system calls, utilities and standard library functions for Unix-like systems.