The operating system (OS) [operating system] is a set of programs that provides management of computer resources and processes that use these resources in computing. A process is a sequence of actions prescribed by a program. A resource is any logical or hardware component of a computer. The main resources are CPU time and RAM. Resources may belong to one or more external computers that are accessed by the operating system using a computer network.
Resource management consists of two functions: facilitating access to a resource and allocating resources to competing processes. To solve the first problem, operating systems support user and programming interfaces . To solve the second, operating systems use different virtual memory and processor management algorithms.
Operating systems are characterized by the main features:
the number of users simultaneously served by the system (single-user and multi-user);
the number of simultaneously running processes (single-tasking and multitasking);
The type of computing system used (uniprocessor, multiprocessor, network, distributed).
Example. The Windows98 operating system is multitasking, Linux is multi-user, MS-DOS is single-tasking and therefore single-user. Windows NT and Linux operating systems can support multiprocessor computers. The Novell NetWare operating system is a network operating system; Windows NT and Linux also have built-in networking tools.
User and program interfaces. To simplify access to computer resources, operating systems support user and program interfaces. The user interface [user interface] is a set of commands and services that make it easier for the user to work with the computer. A program interface is a set of procedures that make it easier for a programmer to control a computer.
Rice. 1. Operating system interfaces
Example. Windows OS provides the user with a graphical interface, which is (from the user’s point of view) a set of rules for visual control of the computer. In addition to the main graphical interface, the user is also provided with a command interface, that is, a set of commands of a certain format. To do this, in the system menu there is an item “Run”. The set of system functions in Windows is called API (Application Programming Interface). This set contains more than a thousand procedures for solving various system problems. The Linux operating system also has two options for controlling the computer, but, as a rule, commands are preferred.
Processor time and memory organization. To organize a multitasking mode, the OS must somehow distribute the processor time between simultaneously running programs. The so-called preemptive multitasking mode is usually used. In preemptive mode, each program runs continuously for a strictly defined period of time (time slice), after which the processor switches to another program. Since the time quantum is very small, with sufficient processor performance, the illusion of simultaneous operation of all programs is created.
One of the main tasks of the operating system is memory management. When the main memory is low, all data that is not currently in use is written to a special paging file. The memory represented by the swap file is called external page storage. The combination of main and external page memory is called virtual memory [virtual memory]. However, to the programmer, virtual memory looks like a single entity, that is, it is considered as an unordered collection of bytes. In this case, we say that linear memory addressing is used.
Example. Windows and Linux operating systems use linear virtual memory addressing. The MS-DOS operating system used non-linear addressing of main memory. The main memory had a complex structure that had to be taken into account when programming. Swap files were not supported by MS-DOS.
operating system structure. Modern operating systems, as a rule, have a multi-level structure. The core of the operating system works directly with the hardware. The kernel [kernel] is a program or a set of related programs that use the hardware features of a computer. Thus, the kernel is a machine-dependent part of the operating system. The kernel defines the programming interface. At the second level are the standard operating system programs and the shell that work with the kernel and provide the user interface. They try to make second-level programs machine-independent. Ideally, replacing the kernel is equivalent to changing the version of the operating system.
Rice. 2. Levels of the Linux operating system
File system. Any data is stored in the external memory of the computer in the form of files. Files need to be managed: create, delete, copy, modify, etc. Such tools are provided to the user in the form of user and program interfaces by the OS. The way files are organized and managed is called a file system. The file system determines, for example, what characters can be used for a file name, what is the maximum file size, what is the name of the root directory, etc. The way files are organized affects the speed of access to the desired file, the security of storing files, etc.
The same OS can work simultaneously with several file systems. As a rule, the functions of the file system are implemented by means of the operating system kernel.
Example. There are several types of file systems used for PCs:
FAT16 [File Allocation Table] – used in Windows95, OS2, MS-DOS;
FAT32 and VFAT [Virtual FAT] – used in Windows95;
NTFS [NT File System] – used in Windows NT;
HPFS [High Performance File System] – used in OS2;
Linux Native, Linux Swap – used in Linux OS.
The FAT file system is the simplest. The name of the root directory is always of the form: A:, B:, C:, etc. The file name consists of three parts: the path, the actual name, and the extension. The path [path] is the name of the directory where the file is located. The [extension] extension indicates the file type. For example, the full name of the file is C:WindowsSystemgdi.exe, the path is C:WindowsSystem, the extension is exe, and the actual name is gdi. According to the FAT rules, the file name itself can contain from 1 to 8 characters, and the name extension, separated from the name by a dot, can contain up to 3 characters. When naming files, uppercase and lowercase letters are not distinguished. The full name of the file includes the name of the logical device on which the file is located and the name of the directory in which the file is located. The system stores information about the size of the file and the date it was created.
In terms of data organization, VFAT resembles FAT. However, it allows you to use long file names: names up to 255 characters, full names up to 260. The system also allows you to store the date of the last access to the file, which creates additional opportunities for fighting viruses.
The file system can be implemented as a driver, with which all programs that read or write information to external devices communicate through the operating system. The file system may include information storage security. For example, the NTFS file system has tools for automatically correcting errors and replacing bad sectors. A special mechanism monitors and records all actions performed on magnetic disks, so in the event of a failure, the integrity of the information is restored automatically. In addition, the file system may have means of protecting information from unauthorized access.
The client-server model. An important feature of modern operating systems is that the client-server model is the basis for the interaction between the application program and the OS. All calls of the user program (client) to the OS are processed by a special program (server). This uses a mechanism similar to calling a remote procedure, which makes it easy to move from interaction between processes within the same computer to a distributed system.
Plug and play technology. Plug and play (PnP technology) is a way of interaction between OS and external devices. The operating system polls all peripheral devices and must receive a specific response from each device, from which it can be determined which device is connected and which driver is required for its normal operation. The purpose of using this technology is to simplify the connection of new external devices. The user should be relieved of the complex work of setting up an external device, which requires high qualifications.
Service systems – a software product that changes and supplements the user and program interfaces of the OS. Service systems are divided into operating environments, shells, and utilities.
The operating environment is a system that changes and supplements both the user interface and the software interface. The operating environment creates for the user and application programs the illusion of working in a full-fledged OS. The appearance of an operating environment usually means that the operating system used does not fully meet the requirements of practice.
Rice. 3. The role of the operating environment
Information security is a very big problem. As part of the operation of the OS, information protection means mainly ensuring the integrity of information and protection against unauthorized access. Integrity is largely the responsibility of the file system, while tamper protection is the responsibility of the kernel. The usual mechanism for such protection is the use of passwords and privilege levels. For each user, the boundaries of access to files and the priority of its programs are determined. The system administrator has the highest priority.
Network facilities and distributed systems. An integral part of modern operating systems are tools that allow you to communicate through a computer network with applications running on other computers. To do this, the OS basically solves two problems: providing access to files on remote computers and the ability to run a program on a remote computer.
The first task is most naturally solved by using the so-called network file system [network file system – NFS], which organizes the user’s work with remote files as if these files were on the user’s own magnetic disk.
The second task is solved using the remote procedure call (RPC) mechanism, which is implemented by means of the kernel and also hides the difference between local and remote programs from the user.
The availability of resources for managing resources of remote computers is the basis for creating distributed computing systems. A distributed computer system is a collection of several connected computers that work independently but perform a common task. Such a system can be considered as a multiprocessor.
The shell [shell] is a system that changes the user interface. The shell creates an interface for the user that is different from that of the operating system itself. The task of the shell is to simplify some commonly used actions with the operating system. However, the shell will not replace the OS, and therefore the professional user must also learn the command interface of the OS itself.
Utilities [utilities] have a highly specialized purpose and each perform its own function. Utilities run in the environment of the corresponding shells and provide additional services to users (mainly disk and file maintenance). Most often it is:
• maintenance of disks (formatting, ensuring the safety of information, the possibility of its recovery in case of failure, etc.);
• maintenance of files and directories (search, viewing, etc.);
• creation and updating of archives;
• providing information about computer resources, disk space occupancy, distribution of RAM between programs;
• printing of text and other files in various modes and formats;
• protection against computer viruses.
Rice. 4. The role of the OS shell
Tool systems are a software product that provides the development of information and software. Tool systems include: programming systems, rapid application development systems and database management systems (DBMS).
A programming system is designed to develop application programs using some programming language. Its composition includes:
compiler and/or interpreter;
· development environment;
library of standard routines;
A compiler [compiler] is a program that converts a source program into an object module, that is, a file consisting of machine instructions. An interpreter is a program that directly executes the instructions of a programming language.
A linker [linker] is a program that assembles multiple object files into a single executable file.
Integrated development environment [IDE] – a set of programs that includes a text editor, software project file management tools, a program debugger, which automates the entire process of program development.
Standard library [standard library] – a set of object modules organized in special files that are provided by the manufacturer of the programming system. Such libraries usually contain text input-output routines, standard mathematical functions, and file management programs. Object modules from the standard library are usually automatically linked by the linker to custom object modules.
Rice. 5. Stages of program development
Rapid application development (RAD) systems are an evolution of conventional programming systems. In RAD systems, the programming process itself is largely automated. The programmer does not write the text of the program itself, but, with the help of some visual manipulations, indicates to the system which tasks should be performed by the program. After that, the RAD system itself generates the text of the program.
A database management system is a universal software tool designed to organize the storage and processing of logically interconnected data and provide quick access to them. One of the important capabilities of computers is the storage and processing of large amounts of information, and modern computers accumulate not only text and graphic documents (drawings, drawings, photographs, maps), but also Web pages of the global Internet, sound and video files. The creation of databases provides data integration and the ability to centrally manage them. Information is collected in databases, organized according to certain rules, which provide general principles for describing, storing and manipulating data so that various users and programs can work with them.
DBMS enable programmers and system analysts to rapidly develop better data processing software tools and enable end users to directly manage data. The DBMS should provide the user with data search, modification and storage, online access, protection of data integrity from hardware failures and software errors, differentiation of rights and protection against unauthorized access, support for the joint work of several users with data. There are universal database management systems used for various applications. When setting up universal DBMS for specific applications, they must have the appropriate tools. The process of customizing a DBMS for a specific application is called system generation. Universal DBMS include, for example, Microsoft Access, Microsoft Visual FoxPro, Borland dBase, Borland Paradox, Oracle.
Telecommunication technologies of data processing. An important feature of many operating systems is their ability to interact with each other through a network, which allows computers to interact with each other, both within local area networks (LANs) and on the global Internet.
Modern operating systems, both newly created and updated versions of existing ones, support a complete set of protocols for working in local and global computer networks. At the moment, the global computer industry is developing very rapidly. The performance of systems is increasing, and consequently, the possibilities of processing large amounts of data are increasing. Operating systems of the MS-DOS class can no longer cope with such a stream of data and cannot fully use the resources of modern computers. Therefore, it is not widely used anywhere else. Everyone is trying to move to more advanced operating systems, such as Unix, Windows, Linux or Mac OS.
If we define the OS in the words of the user, then the operating system can be called the most important program that is loaded first when the computer is turned on and thanks to which communication between the computer and the person becomes possible. The task of the OS is to provide the convenience of working with a computer for a human user. The OS controls all devices connected to the computer, providing access to them to other programs. In addition, the OS is a kind of buffer-transmitter between computer hardware and other programs, it takes over the command signals that other programs send, and “translates” them into a language understandable to the machine.
It turns out that each OS consists of at least three mandatory parts:
The first is the kernel , the command interpreter , the “translator” from the program language to the “iron”, the language of machine codes.
The second is specialized programs for controlling various devices that make up the computer. Such programs are called drivers – that is, “drivers”, managers. This also includes the so-called “system libraries” used both by the operating system itself and by the programs included in it.
And finally, the third part is a convenient shell with which the user communicates – interface . A kind of beautiful wrapper that packs a boring and not interesting core for the user. Comparison with packaging is also successful because it is what they pay attention to when choosing an operating system – the core, the main part of the OS, is remembered only later. Therefore, such an unstable and unreliable operating system from the point of view of the kernel, like Windows 98 / ME, enjoyed such a stunning success – thanks to a beautiful interface wrapper.
Today, a graphical interface is an invariable attribute of any operating system, whether it is Windows XP, Windows NT or Mac OS (the operating system for Apple Macintosh computers). The operating systems of the first generations did not have a graphical, but a text interface, that is, commands were given to the computer not by clicking on the pictogram, but by entering commands from the keyboard. For example, today, to launch the Microsoft Word text editing program, just click on the icon for this program on the Windows Desktop. And earlier, when working in the previous generation OS – DOS, it was necessary to enter a command like
OS are classified according to :
The number of simultaneously working users: single-user (designed to serve one client) and multi-user (designed to work with a group of users simultaneously at different terminals). An example of the first is Windows 95/98, and the second is Windows NT. For home use, you’ll need a single user OS, while for an office or enterprise LAN, you’ll need a multi-user OS;
The number of processes simultaneously running under the control of the system: single-tasking , multi- tasking. Single-tasking operating systems (DOS) can perform no more than one task at the same time, and multitasking OSs are able to support the parallel execution of several programs that exist within the same computing system, dividing the computer power between them. For example, a user may be typing text into a Word document while listening to music from their favorite CD while the computer is copying the file from the Internet at the same time. In principle, the number of tasks that your OS can perform is not limited by anything other than processor power and RAM capacity;
· the number of supported processors: uniprocessor , multiprocessor (they support the resource allocation mode of several processors for solving a particular task);
bitness of the operating system code:
Ø 16-bit (DOS, Windows 3.1),
Ø 32-bit (Windows 95 – Windows XP),
Ø 64-bit (Windows Vista);
The bitness of the OS cannot exceed the bitness of the processor;
interface type: command (text) and object-oriented
(as a rule, graphic);
type of user access to the computer:
Ø with batch processing – from the programs to be executed, a batch of tasks is formed, entered into the computer and executed in order of priority, with possible priority),
Ø time-sharing – provides simultaneous interactive (interactive) access to the computer of several users on different terminals, which are allocated machine resources in turn, which is coordinated by the OS in accordance with the specified service discipline),
Ø real time – provide a certain guaranteed response time of the machine to the user’s request with the control of any external events, processes or objects in relation to the computer. OS RT is mainly used in the automation of areas such as oil and gas production and transportation, process control in metallurgy and mechanical engineering, chemical process control, water supply, energy, robot control. Of these, the QNX RT OS stands out with its complete set of tools that the user is accustomed to when working with the UNIX family OS.
· type of resource usage: network, local . Network operating systems are designed to manage the resources of computers connected in a network for the purpose of sharing data, and provide powerful tools for restricting access to data in the framework of ensuring their integrity and safety, as well as many service options for using network resources. In most cases, network operating systems are installed on one or more sufficiently powerful server computers that are dedicated solely to maintaining the network and shared resources. All other operating systems will be considered local and can be used on any personal computer connected to the network as a workstation or client.
Finally, another division is specialization , the purpose of a particular OS. After all, no matter what individual leaders of a separate software corporation say, universal operating systems do not exist. One is more suitable for networking, the other will be chosen by programmers, the third by home users. As practice shows, knowledge of one OS in our time is by no means enough. In your professional work, you will probably have to deal with not only Windows, but also other operating systems – and you need to prepare for this in advance.
The machine-dependent properties of the OS are:
management of real memory;
management of virtual memory.
The machine-independent properties of the OS are:
· work with files;
methods of scheduling user jobs;
organization of parallel work of programs;
distribution of resources;
The main criteria for the approach when choosing an operating system. There are a large number of operating systems and the user must determine which operating system is better than others (according to certain criteria). To choose one or another OS, you need to know:
On what hardware platforms and at what speed the OS works;
What peripheral hardware does the OS support?
How fully does the OS satisfy the needs of the user, i.e. what are the functions of the system;
What is the way the OS interacts with the user, i.e. how visual, convenient, understandable and familiar to the user interface;
Are there informative tips, built-in reference books, etc.;
What is the reliability of the system, i.e. its resistance to user errors, equipment failures, etc.;
What opportunities does the OS provide for organizing networks;
Does the OS provide compatibility with other OSes?
What tools does the OS have for developing application programs;
Whether the OS supports various national languages;
What known application packages can be used when working with this system;
How information and the system itself are protected in the OS.