The official definition of what Unix is in the plane of the registered trademark of The Open Group, a family of computer OS and tools. To apply the Unix trademark, the operating system vendor must pay a license fee and annual royalties. Officially licensed Unix operating systems include Apple, Oracle, AIX, IRIX (SGI), and Hewlett-Packard.
UNIX History
In order to explain what Unix is, you need to start with a development history. In the sixties, General Electric and Bell Labs at the Massachusetts Institute of Technology attempted to develop an interactive Multics system that would allow multiple users to simultaneously access the mainframe. Frustrated by the result, Bell Labs left the project, but computer experts Ken Thompson and Dennis Ritchie decided to continue work, which culminated in the development of Unix.
Thompson and Ritchie led a team of researchers to develop a hierarchical file system, a command line interpreter, some small utilities, and process concepts and device files.
A month later, Thompson deployed a self-contained OS with an assembler, editor, and shell called YEW-nihks, based on an earlier version of Multics. Unix was much smaller and was a single-tasking system.
Until 1973, it was written in assembler, but the fourth edition of Unix was rewritten in C. Then it was revolutionary, because the OS was considered too complicated to write in a high level language. This increased the portability of the Unix system to other computing platforms. In the early 80s, Unix gained popularity in the scientific community, after which commercial startups such as Solaris Technologies and Sequent began to use it on a larger scale.
In the late 1990s, a network of programmers jointly developed the Linux distributions and the Berkeley Software Distribution (BSD), which led to the growing popularity of Unix-like systems. Today, most modern computer and mobile devices use the Unix OS.
Modern Unix and the Single UNIX Specification interface are the property of The Open Group. The latest version of the UNIX V7 certification standard was the fourth modification published in 2013.
Features of OS concepts
To understand what Unix is, you need to consider its uniqueness in a set of operating system concepts. The main thing in it is that it uses simple text when storing data, hierarchical file systems and certain types of interaction between processors (IPC).
Unix users can bundle software tools and small programs together through the command line interpreter. This is a user level program. Developers can write their own shell and add new commands without changing the shell itself, since it uses the same language for interactive commands as for scripts.
Unix concepts are influential for a number of reasons. The Unix system has become the driving force behind the development of the Internet and the transformation of computers into a network tool. It treats all file types as simple byte arrays that represent a simplified file model compared to other operating systems.
Unix popularized a hierarchical file system with arbitrarily subdirectories. Previously, operating systems could divide the storage device into partitions with only a fixed number of levels.
The developers of this system deserve recognition for introducing modularity and reusability into the practice of software development and stimulating the movement of software tools. They also created a set of cultural rules for software development and developed a Unix philosophy that influenced the IT community.
UNIX Operating System Architecture
Unix architecture is a computer operating system that embodies the Unix philosophy. It adheres to standards such as the Single UNIX Specification (SUS) or the similar POSIX IEEE standard.
A detailed examination of what UNIX is in the family of operating systems begins with an explanation of the structural structure, which consists of three parts: the kernel, shell, and programs.
Some key features of the Unix architecture concept use the core of a centralized operating system, which controls the actions of the system and processes. All non-core software is organized into separate processes controlled by the kernel, which is the center of the operating system, allocates Unix time and memory to programs, processes file storage in response to system calls.
Unix systems have predominantly multitasking - several processes can be executed simultaneously or within short time intervals and almost simultaneously, and any process can be interrupted by the kernel and canceled from its execution. Files are stored on disk in a hierarchical file system, with one top location throughout the system (root, or "/"), with files, directories and subdirectories. With some exceptions, devices and some types of communication between processes are managed and displayed as files or pseudo-files in the file system hierarchy.
The UNIX operating system supports the following functions and features:
- Multitasking and multi-user interface.
- Programming interface.
- Using files as abstractions of devices and other objects.
- Built-in network (TCP / IP standard).
- Permanent system service processes called "daemons" and controlled by init or inet.
Files and processes
Everything on UNIX is either a file or a process. A process is an executable program identified by a unique PID process identifier. A Unix file is a dataset. They are created by users using text editors and working compilers.
Sample files:
- document (report, abstract, etc.);
- program text written in any high-level programming language;
- instructions that are directly understandable to the machine and incomprehensible to the average user, for example, a set of binary digits;
- A directory containing information about its contents, which may be a mixture of other directories (subdirectories) and regular files.
All Unix files are grouped in a directory structure. The file system is organized in a hierarchical structure similar to an inverted tree. The top of the hierarchy is traditionally called root, and is written as a slash ("/").
Text files can be displayed on the screen and edited. There are several text editing programs available for UNIX, the most notable of which are vi and Emacs. Many users use pico, a simple text editor that comes with the Pine email program. For example, to simply display the contents of a file, enter "$ pico" and then the name of the file to be created.
The editing functions in pico are invoked by pressing the keys simultaneously, for example, Ctrl and R.
Pico cut and paste function:
- Go to the desired line of text and press “^ K”. The whole line should disappear.
- Go to the end of the text and press “^ U”. This will insert a line of text in a new location.
- The spelling of words in the text is performed using "^ W".
- To save work without exiting, enter “^ O”.
- To exit, enter “^ X”. If there is any unchanged data, the user will be prompted to do this before exiting.
Pico does not have many advanced features that other editors have, such as vi and Emacs, but it is easy to use and certainly suitable for editing small files.
Unix-like systems
These include operating systems that behave like Unix systems and provide similar utilities, but not licensed by The Open Group. Usually they are called Unix-like. These are the various Linux distributions. For example, Red Hat Enterprise Linux, Ubuntu and CentOS, and several descendants of the Unix family of operating systems - Berkeley Software Distribution.
There is no clear definition of "Unix" -like software, but the term refers to an OS that behaves like Unix. This may apply to its free and open source code. Some software developers claim that there are three types. Genetically similar systems are associated with the original Bell Labs base, later AT&T, for example, with BSD, which researchers from the University of California worked on in the late 70s and early 80s.
Product brands and similar proprietary systems comply with the Unix Unified Specification. Functional systems, such as Unix, Linux, and Minix, behave approximately as specified in the specification. For example, they should have a program that manages login and command line sessions.
Unix's proprietary operating systems and similar options run on a wide range of digital architectures and are commonly used on web servers, mainframes, and supercomputers. In recent years, smartphones, tablets, and personal computers running versions or variants of Unix have become increasingly popular.
Key components
Unix native systems and their variants are characterized by several main components:
- Kernel - is the main operating system management program that manages memory, system calls, and other low-level functions common to most programs, and provides drivers for controlling the equipment.
- A shell is an interactive program that provides an interface between the user and the kernel. The shell interprets the commands entered by the user or provided by the shell script and passes them to the kernel for execution. Shells available for use on Unix and similar operating systems include sh (Bourne shell), bash (Bourne-again shell), csh (C shell), tcsh (TENEX C shell), ksh (Korn shell) and zsh (Z shell )
- The file system uses a hierarchical directory structure with a root directory ("/") at the top. The file system is mounted from the root directory of each system in / N, where the home directory of each user is located in / N / u /, and the files associated with the software are located in / N / soft. Use the mount command to determine which file systems are mounted on a Unix or Unix-like system. Most include tools and libraries for writing, compiling, and debugging C, C ++, and Fortran programs.
- The commands of Unix and Unix-like systems include a large core of standard utilities for editing text, writing, compiling and managing programs, processing, manipulating the user environment and obtaining information about the system and its users. Commands allow arguments known as options to change their default behavior. Users enter data on the command line, and then the shell interprets and passes it to the kernel for execution.
In Unix, the user has the ability to use either the command line (more control and flexibility), or the graphical interface (easier).
Assigning Shell Arguments
The user interacts with UNIX through a special program called the shell, which requests commands and sends them to the OS for execution after input. They consist of two parts: the command name and arguments. Certain arguments, called options, are usually entered with the “-” character, change the behavior of the command in a certain way, while other arguments indicate objects, for example, the names of files, computers, users.
In the following example: $ ls -l myfile “ls” is the name of the command, and “-l” and “myfile” are the arguments. “-L” is an option that changes the behavior of the “ls” command. Not all commands require parameters or arguments. Many have smart defaults when nothing is specified.
The Unix-system shell comes in two main versions: the Bourne shell, sh, and the C shell, csh. Other popular shells are obtained from them, for example, ksh, bash, tcsh. Each shell uses a specific character or character string to request a command from the user, which is called the default shell prompt for bash, the $ character. Unless otherwise specified, they will work equally well with most other shells.
Because UNIX supports multiple users at the same time, you need to identify yourself on the system before you start using it. This process is called login. When a user connects to a computer, they will be asked to provide two pieces of information for logging into the system - the login name of the system, which is the identification in it, and the password, which increases the likelihood that the incoming person is really what he calls himself.
Basic UNIX Commands
The tcsh shell has certain functions that help the user enter commands. To complete the file name, enter part of the command name, file or directory. After pressing the [Tab] key, the tcsh shell will automatically complete the rest of the name. If she finds more than one name starting with the letters entered by the user, she will beep, prompting you to enter a few more letters before pressing the tab key again. The shell stores a list of commands that you enter. If you need to repeat the command, use the cursor keys to scroll up and down the list or enter history for the list of previous commands.
Examples of basic UNIX commands include the following:
- ls: file list.
- ls –l: Lists files in a long format.
- cd ..: move to a directory higher than the current one.
- cp filename1 filename2: copies the file, file name.
- chmod: change read, write and execute permissions for files;
- mkdir: creates a directory.
Terminal application
This application works when the user sends commands directly to the computer, which returns the result directly to the user. To do this, there is an intermediate program known as a terminal or command line. What the user writes is transmitted to the terminal, which calculates which commands to execute and gives the command to execute. In English, the terminal is called a shell because it covers the operating system in order to hide some of its complexities and simplify interaction with it.
A terminal is a program with the ability to run other programs instead of performing the calculations themselves. The most popular Unix terminal is called Bash - from Bourne Again Shell, because it comes from a previous version written by Stephen Bourne. Bash is the default terminal in most modern Unix implementations and in most packages that provide tools similar to Unix for Windows. Using bash or any other terminal is sometimes more convenient to program.
Commands are short, often just a few characters long, their names are often cryptic, and their output is text strings, and not something visual, like graphics. On the other hand, with a few keys, the terminal allows you to combine existing tools into powerful pipelines and process large amounts of data automatically.
This automation not only makes the work more productive, but also increases the reproducibility of operations, since it allows you to repeat processes identically with a few simple commands. In addition, the command line is often the easiest way to interact with remote computers and supercomputers. Getting to know the terminal is practically necessary for using various specialized tools and resources, including high-performance computing systems.
Clusters and cloud computing systems are becoming increasingly popular for the analysis of scientific data, and the ability to interact with them is becoming a necessary skill. The user can take advantage of the skills that he will acquire on the command line to solve a wide range of scientific issues and custom computing tasks.
Creating New Directories
Now that the user has a general idea of the file system and how to handle it, you can begin to create your own files and directory and manage them. Directories are created using mkdir and deleted using rmdir.
For example, to create two new directories, write: $ mkdir test test2.Now to delete the second directory that has just been created: $ rmdir test2. In this case, rmdir will only delete empty directories. If the directory contains files, the user must first delete them before using rmdir. In addition, it can recursively delete the directory and its contents using the corresponding option with the rm command.
, cp.
, «» , . , :
- $ cd test;
- $ pwd ;
- /home//test.
Now you can copy some files to the test directory using cp:
- $ cp / etc / motd. $ cp / etc / hosts;
- $ cp / etc / group. $ ls.
The three cp commands above copy existing files from the “/ etc” directory to the current directory (followed by the “.” Symbol). Now delete the file using the rm command:
- $ rm group;
- $ ls;
- hosts motd.
Next, move one of the files using mv:
Since cp, mv, and rm can destroy data, they offer an interactive option that asks the user before continuing. This is invoked with the -i option. Typically, the system administrator sets up an account to use this option by default.
For cp and mv, two arguments are required: the existing location and destination of the file to be copied or moved. The destination may be another file or directory.
Benefits of an Online OS Leader
No type of operating system can offer universal answers to all user requirements. It is about choosing and making informed decisions. Nevertheless, Unix has so many advantages that it has rightfully become the most popular operating system.
Common benefits of Unix:
- More flexible and can be installed on many types of computers, including mainframes, supercomputers, and microcomputers.
- It is stable and does not fail as often as Win, and therefore requires less administration and maintenance.
- It has more built-in security features and permissions than Win.
- It has much more computing power than Win.
- It is a leader in the maintenance of the Internet. About 90% of Internet users use Unix-based operating systems running on Apache, the world's most widely used web server, which is free.
- Microsoft software updates often require the user to purchase new hardware or required software. This is not the case with Unix.
- Basically, free or low-cost open source Unix family operating systems, such as Linux and BSD, with their flexibility and control, are very attractive to novice computer masters.
- Many of the smartest programmers are developing state-of-the-art software for free for the fast-growing "open source movement."
- Unix also inspires new approaches to software development, such as problem solving by combining simpler tools instead of creating large, seamless applications.
Unix has seen a decrease in usage recently, mainly due to a switch from RISC platforms to x86-based alternatives that can perform many Unix workloads with higher performance at lower cost. Experts predict that many organizations will continue to use Unix for mission-critical environments, but will reduce their dependence on the system due to strategies for modernization and consolidation of IT.
However, Unix is still the preferred system for many use cases, such as scaling application software and security features, as evidenced by numerous reviews of Unix. Server sales are expected to fall in the future, but applications in the financial, government, and telecommunications sectors will continue to drive Unix.