The Origin of UNIX
UNIX originated (Glass, page 12) as a reaction to the MULTICS operating system (neither the first nor the last in a long series of puns for computer feature and application names). It was originally written in assembler by Ken Thompson, and was later translated into C with a small kernel in assembler.

UNIX has developed in two major dialect families

Other major development has occurred at IBM and at Apollo.

Changes have been in the direction of greater functionality, more multiprocessing, and more portability. UNIX has been very much an open system --- users are encouraged to develop utilities and provide documentation, and these often become part of the standard implementation.

The Nature of UNIX
UNIX is very much an experienced implementer's tool, rather than a system for novices. It uses short mnemonics with lots of options (flags). It encourages users to write scripts, combining several short commands into more powerful expressions. UNIX uses a powerful regular expression matcher for commands and file names, and also allows access to the past history of commands.

However, it is also tailorable. One can write aliases to use familiar or preferred names for commands, or to use various flags as a default in a command.

Many features of DOS and later operating systems, particularly directory manipulation, redirect operations (|, > , < , etc.), and multitasking, are based on UNIX commands. C-based UNIX is inherently multitasking and multiuser, and so has extensive features for file management across user file directories and even across file systems, and for file access protection. (How secure these features are is another issue.)

It is important to note that UNIX does not include an editor or mail facility, and does not even really have a tool of choice (although it still has the equivalent of a DOS copy con command), but interacts with numbers of editor and mail tools.

UNIX has a robust if cryptic set of error messages; since it is implemented in C, every UNIX call returns an integer value (which is usually discarded), 0 if execution prodeeded normally, or an error number otherwise. (This choice was made since 0 == false, non-0 == true in the C-UNIX world.)

Utilities
A key point of UNIX is the availability of utilities. Some are fairly simple, like sort or diff. Others allow maintenance of archives (tar) or compression of files (compress ).