UNIX Operating System

Lord AbiollaghLord Abiollagh
5 min read

UNIX is an operating system developed in the 1970s by Ken Thompson, Dennis Ritchie, and many others at AT&T Bells Laboratories. It is the backbone of many modern operating systems, such as Ubuntu, Solaris, Kali Linux, Arch Linux, etc.

It is an operating system originally designed for developers, and for this reason, played an important role in the development and creation of software and computing environments. It was later distributed to governments and institutions which led to its widespread adoption across various types of hardware components.


Brief History of UNIX

  • 1969: The first version of the UNIX operating system was developed by Ken Thompson, Dennis Ritchie, and many others at AT&T Bells Laboratories.

  • 1973: The UNIX operating system was written in the C programming language making it portable to different hardware platforms.

  • Late 1970s – 1980s: The UNIX operating system was adopted by institutions such as universities and big corporate companies, leading to the development of its multiple variants.

  • 1990s – Present: The UNIX operating system influenced the development of modern operating systems like Linux, macOS, and BSD variants(macOS, FreeBSD, OpenBSD, and NetBSD), BSD means Berkeley Software Distribution.


UNIX Architecture

The UNIX architecture embodies what’s referred to as the Unix philosophy”, which is a set of norms and philosophical approaches to minimalist, modular software development.

The UNIX operating system consists of several components as listed below;

  1. Kernel

    The kernel is the computer program at the core of the operating system that controls everything in the system.

    It is the core of the operating system that manages hardware resources (CPU, memory disk, etc), process management, file system management, and device control.

  2. Shell

    Shell is a special program that provides an interface for the user to use the operating system by accepting human-readable commands from the user and converting them into instructions that the kernel can understand and execute.

    Some common examples of shell include; Bash (Bourne again shell), C shell (csh), Korn shell (ksh), Z shell (zsh), etc.

  3. File System

    The file system governs how files are organized in a computer system.

    UNIX arranges files in a hierarchical directory structure.

    Everything in UNIX is treated as a file including devices.

    Common directories include;

    / (Root directory)

    /home (User home directory)

    /bin (Essential binaries)

    /etc (System configuration files)

    /var (Logs and variable data)

    /dev (Device files)

  4. Utilities & commands

    The UNIX operating system provides numerous command-line tools for file management, networking, process control, and system administration.


Basic UNIX commands

  1. File and Directory Management

CommandDescription
lsList directory contents
pwdShow current directory
cd [directory]Change directory
mkdir [dir]Create a new directory
rmdir [dir]Remove an empty directory
rm [file]Delete a file
cp [source] [destination]Copy a file or directory
mv [source] [destination]Move or rename a file
  1. File Content commands

CommandDescription
cat [file]Display file content
more [file]View file content page by page
less [file]Similar to more, but with backward navigation
head [file]Show the first 10 lines of a file
tail [file]Show the last 10 lines of a file
  1. Process Management

CommandDescription
psDisplay active processes
topShow real-time process usage
kill [PID]Terminate a process by ID
killall [process_name]Kill all processes with the specified name
  1. User and Permission Management

CommandDescription
whoamiDisplay current user
whoShow logged-in users
chmod [permissions] [file]Change file permission
chown [owner] [file]Change file ownership
passwdChange user password

UNIX File System Structure

UNIX file system is hierarchical, the file system starts with the root (/) directory and branches into various subdirectories.

File permission determines who can read, write, or execute files and directories.

Advantages of UNIX

  1. Stability: UNIX is highly reliable with long uptime.

  2. Security: It has strong user permissions and access control.

  3. Flexibility: UNIX can run on various hardware architectures.

  4. Multitasking and Multiuser Support: UNIX can handle multiple users and processes efficiently.

  5. Scripting and Automation: UNIX supports shell scripting which allows tasks to be automated.

Applications of UNIX

  1. Servers: Web, Database, and Enterprise servers run UNIX-based operating systems.

  2. Networking: UNIX is used in routers, switches, and internet infrastructure.

  3. Software development: Many programming environments rely on UNIX systems.

  4. Embedded Systems: UNIX is used in smartphones, smart devices, and IoT.

  5. Cloud computing: UNIX and Linux-based servers power cloud services.

UNIX vs. Linux

FeatureUNIXLinux
Source codeProprietary (except BSD variants)Open source
VariantsAIX, Solaris, BSD, macOSUbuntu, Debian, CentOS, Arch Linux
CostUsually commercialMostly free
UsageEnterprise and legacy systemsServers, desktops, and embedded devices.

Conclusion

In conclusion, UNIX remains to be the most influential operating system with many modern operating systems, including Linux and macOS, being UNIX-based or inspired by its design and architecture.

The fact that it is more secure, robust, and efficient makes it a better choice for systems like servers, for software development and networking.


0
Subscribe to my newsletter

Read articles from Lord Abiollagh directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Lord Abiollagh
Lord Abiollagh

My name is Abiollagh, and I'm a passionate software engineering student who enjoys exploring new technologies and developing software solutions. In addition to my academic pursuits, I have a few hobbies that keep me busy in my free time. I love to play chess, travel, and, of course, write code! As a chess player, I find the game to be a great way to exercise my mind and improve my problem-solving skills. It's also a fun and social activity that I enjoy sharing with friends and family. In my studies, I have learned various programming languages and frameworks, including C, Python, and React. I have also gained experience in software development methodologies such as Agile. I believe that continuous learning is essential in this field, and I'm always looking for new opportunities to enhance my knowledge and skills. I hope you enjoy exploring my website and learning more about my interests and experiences. If you have any questions or would like to discuss a project, please feel free to contact me. Thank you for visiting!