Welcome to the most active Linux Forum on the web.
Go Back > Blogs > hazel
User Name


Rating: 6 votes, 4.83 average.

So what is Unix?

Posted 09-02-2017 at 01:01 PM by hazel
Updated 07-29-2019 at 11:17 AM by hazel

People often ask "Is Linux the same thing as Unix?". And they are usually told that Linux is one of the Unix family of operating systems but that there are many others. This site, unusually for a Linux forum, has forums for some other Unixen as well. But what qualifies an operating system to be considered as Unix? Here are my on the properties an OS ought to have to qualify for this distinguished club. Additions are welcome.

1. All hardware and filesystem drivers are in the kernel. None run as separate programs.
2. All running programs other than the kernel are run by separate numbered processes. The kernel polices them and can crash any process that performs an illegal act. New processes are created by the kernel in response to a request from a current process. Initially both processes run the same program, but the child process can be instructed to load and execute a different program. The kernel swaps processes in and out of core and memory and tidies up after them when they die.
3. There is a program called the shell which provides a command line interface for the user. It interprets commands as the names of programs which it searches for in a specific set of directories known as the command path. If it finds a program with that name, it will run it; otherwise it reports an error. This means that the Unix command set is potentially infinite. In addition, the shell provides flow-of-control constructs which allow the writing of shell scripts that function like programs. They can run unsupervised, testing their environment and making their own decisions. Systems usually start up by running a collection of such scripts.
4. All Unixen provide a standard set of small programs called utilities. Each of these programs is designed to do only one thing and to do it well. Each utility has the same three channels connecting it to the world: standard input (defaults to the keyboard), standard output (defaults to the screen) and standard error (ditto). All three can be redirected. Directing the output of one utility into the input of another allows utilities to be assembled into pipelines, capable of carrying out complex data manipulations. Shell scripts make great use of utilities.
5. All configuration files are in plain text. There is no registry. System configuration files are stored in the /etc directory, personal ones in the user’s home directory.
6. Programs access hardware devices through device files in the /dev directory. These are pseudo-files that correspond to the hardware drivers in the kernel. The kernel carries out the requested operation but, as far as the program is concerned, it is reading from or writing to an ordinary file. Similarly pipes between programs are treated as files although they are actually channels through the kernel. Hence the saying: “In Unix, everything’s a file”.
7. Every file, folder, device and process has an owner. Every file, folder and device has a set of permissions attached to it, which the owner can vary. The permissions determine the access rights of the owner, members of the owning group, and the rest of the world. The right of a process to access any file or folder depends on these permissions and how they relate to the ownership of the process.
8. If a graphical user interface is provided, it is quite separate from the underlying system and in no way compulsory. Typically such an interface consists of an X-server, which draws the screen image and collects keystrokes and mouse clicks, and a separate window manager. More complicated desktops may contain additional programs.
Posted in Uncategorized
Views 890 Comments 4
« Prev     Main     Next »
Total Comments 4


  1. Old Comment
    I actually found this extremely helpful. It is a simple breakdown of Unix concepts but I feel I now understand how Linux operates much more clearly. Well done and thank you for sharing .
    Posted 08-28-2018 at 07:47 AM by Mulsimine Mulsimine is offline
  2. Old Comment
    In a word: "POSIX".

    That's what defines a UNIX. OS such as Solaris, HP-UX, AIX and macOS are certified UNIX.

    The 'BSDs, Illumos, MINIX3, etc are compliant for the most part.

    When it comes to Linux - much less so and depends largely on the distributions, really depends on how closely they adhere to LSB. Nowadays with most Linux distributions adopting systemd, they are certainly moving further away from this.
    Posted 12-09-2019 at 11:20 AM by cynwulf cynwulf is offline
  3. Old Comment
    Originally Posted by cynwulf View Comment
    Nowadays with most Linux distributions adopting systemd, they are certainly moving further away from this.
    Can you explain how systemd moves Linux further away?
    Posted 12-10-2019 at 02:39 AM by Mulsimine Mulsimine is offline
  4. Old Comment
    Originally Posted by Mulsimine View Comment
    Can you explain how systemd moves Linux further away?
    Systemd replaces plain text startup scripts with binary programs. It also provides a binary journal instead of plain text logs. This is very un-Unix-like, which is why a lot of people hate it to the point of obsession.

    One of the revolutionary things about the original UNIX was that the shell which the users used to launch commands was also used by the system to launch itself. That is no longer the case for Linux.
    Posted 02-27-2020 at 10:52 AM by hazel hazel is offline


All times are GMT -5. The time now is 03:13 AM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration