Types of computer software. Purpose and types of software Concept purpose and classification of software

Rice. 100.

Programs are ordered sequences of commands. The purpose of any computer program is to control hardware. The composition of the software (software) of a computer is called software configuration. Between programs, as well as between physical nodes and blocks, there is a relationship - many programs work based on other programs of a lower level, i.e., we can talk about interprogram interface. The software layers are a pyramidal structure (Figure 100). Each next level builds on the software of the previous levels.

Consider software layers.

A basic level of

The lowest level of software. It is responsible for interacting with the underlying hardware. Basic software is stored in ROM chips. Programs and data are written to ROM chips at the manufacturing stage. In cases where changing the basic software during operation is technically feasible, instead of ROM chips, reprogrammable read-only memory devices (EPROMs - English Erasable and Programmable Read Only Memory, EPROM) are used.

System level

The system level is transitional. Programs running at this level ensure the interaction of other programs of the computer system with the programs of the base level and directly with the hardware, i.e. performs "intermediary" functions. Specific programs responsible for interacting with specific devices are called device drivers- they are part of the system-level software.

Another class of system-level programs is responsible for user interaction. It is thanks to them that he gets the opportunity to enter data into the computer system, manage its work and get the result in a form convenient for him. These softwares are called means of providing a user interface.

The set of system-level software forms operating system kernel(OS) of the computer. The presence of an OS is an indispensable condition for the possible practical work of a person with a computer.

service level

This level of software interacts with both base-level programs and system-level programs. The main purpose of utility programs (they are called utilities) consists in automating the work of checking, adjusting and configuring a computer system. Some utility programs (maintenance programs) are initially included in the OS, for example, disk defragmenter, system restore, etc. (in Windows, these are programs that are in the Utilities category).

Application layer

The application level software is a set of application programs with the help of which specific tasks are performed at a given workplace.

To application software include:

  • - text editors- Designed for creating and editing text. Additional features are to automate the input and editing process. An example is the Notepad program (Notepad);
  • - word processors. The main difference between word processors and text editors is that they allow not only to enter and edit texts, but also to embed graphs, formulas, tables and other objects into it. The classic example of a word processor is Microsoft Word;
  • - graphic editor- designed to create or process graphic images.

There are: raster editors, vector editors and software tools for creating and processing three-dimensional graphics (3D-editors). The simplest example raster graphic editor, which is present on every computer - Paint. Raster images have several types of extensions: jpeg or jpg, png, gif, bmp, etc. The second example of a graphical bitmap editor is Adobe Photoshop. Photoshop has a huge functionality, support for a large number of plugins(software modules that are dynamically connected to the main program and designed to expand and / or use its capabilities) and tools. Allows you to work in different color models and with different file extensions.

Vector graphics editor CorelDRAW from the CorelDRAW Graphics Suite is a powerful professional product for creating various types of graphics and animations. Nevertheless, thanks to the built-in advanced system of training and help, the program is very easy to learn even for beginners in the field of vector graphics.

A second example of a vector graphics editor is the freeware Inkscape program. It has great potential for creating high-quality illustrations or drawing posters. This program is suitable for creating and processing vector graphics for both novice users and advanced users for serious work.

3D graphics editors serve to create films, computer games, graphic design, replete with animation, visual effects. Such programs are widely used in the field of mechanical engineering, architecture, consumer goods production, etc. An example is such software products as Autodesk Maya, Autodesk 3ds Max:

- database management systems (DBMS). The main functions of the DBMS are: creating an empty database structure, providing means for filling it or importing data from tables in another database, providing access to data, and such providing search and filtering tools.

It is customary to divide the DBMS into desktop and industrial. Examples of desktop DBMS are: Access, FoxPro. Industrial DBMS are focused on the creation of information systems that operate with a large amount of information with increased security requirements, for example: Oracle, MS SQL Server:

  • - spreadsheets- are a software tool designed to store various types of data and perform calculations on them. The most popular spreadsheet tool is Excel;
  • - computer-aided design (CAD) systems- designed to automate design work. They are used in mechanical engineering, instrument making, architecture.

The most common CAD system in the world is AutoCAD (Computer-Aided Design) - a two- and three-dimensional computer-aided design and drafting system. As an example of Russian CAD, we can cite the ADEM (Automated Design Engineering Manufacturing) system, designed to automate the design and technological preparation of production;

  • - desktop publishing systems- allow for electronic layout of a wide range of basic types of documents: newsletter, color brochure, catalogue, reference book. Examples of such programs are: Corel Ventura, Page Maker, QuarkXPress, Frame Maker, MS Publisher;
  • - expert systems- designed to analyze the data contained in the knowledge base and issue recommendations at the user's request.

Expert systems are able in a difficult situation (with a lack of time, information or experience) to give qualified advice (advice, hint) that helps a specialist or manager make an informed decision. The knowledge base of the expert system contains information about the subject area (medicine, law, etc.) and rules - a set of instructions that can be applied to known facts to obtain new facts. An example is a software expert system CLIPS(eng. With Language Integrated Production System);

  • - web editors (HTML editors)- allow you to create simple and complex, beautifully designed Web pages with minimal time. One of the most popular HTML editors in the world is Adobe Dreamweaver;
  • - browsers (browsers)- software designed to view websites. The most popular programs are Internet Explorer, Mozilla Firefox, Google Chrome, Opera;
  • - accounting systems (accounting automation systems)- designed to automate the preparation of accounting documents of the enterprise and their accounting, to prepare regular reports on the results of production, economic and financial activities.

Accounting in large enterprises is carried out using modern ERP (Enterprise Resource Planning System - enterprise resource planning system) - systems that automate not only accounting, but also production management. For these purposes, systems such as SAP, Oracle E-Business Suite, 1C:Enterprise, Microsoft Dynamics NAV (Navision), ERP Galaktika, etc. are usually used;

- financial analytical systems- designed to use already accumulated, verified, consolidated financial indicators. At the same time, several basic functionality of such programs can be distinguished: systematization of information, calculation of analytical indicators and coefficients, generation of reports of presentation quality.

Financial analytical systems include programs such as Project Expert, which allows you to solve the problems of developing a business plan, designing business development, analyzing investment projects for enterprises of any industry and scale of activity.

Audit Expert - a program for analyzing the financial condition of an enterprise based on its financial statements, allows you to perform temporary, structural, financial analysis, calculate various financial indicators, receive reports and conclusions based on the results of the analysis.

To utility software include:

- file managers (file managers)- with the help of programs of this class, most of the operations related to working with files are performed: copying, moving, renaming, deleting, searching for files.

Typical representatives of this class of programs are FAR Manager, Total Commander, FreeComander;

- data compression tools (archivers)- programs that compress data into a single archive file for easier transmission or compact storage.

Among the most popular programs are: ARJ, RKRAK, LHA, ICE, HYPER, ZIP, RAK, ZOO, RAR;

- diagnostic tools- designed to test a computer or individual components. They give detailed information about its condition, functionality and possible software and physical problems.

Diagnostics- a systematic way of troubleshooting with their subsequent elimination. Among the diagnostic programs, SiSoftware Sandra (System ANalyser, Diagnostic and Reporting Assistant) can be distinguished - this is an information and diagnostic program. It provides almost all information about computer hardware and software. Another program is 3DMark, which focuses solely on measuring the performance of a video system;

means of control (monitoring)- allow you to monitor the processes occurring in a computer system. In case of danger, it is possible to warn, turn off the computer, or change the mode of operation of some devices.

An example is the MB Probe program, with which you can take the temperature from several thermal sensors, determine the voltages of the processor core and motherboard, and keep the fan speed under control. The hard drive temperature, attributes of the internal S.M.A.R.T. diagnostic system, as well as the voltages of the motherboard fan speed sensors can be presented using the SpeedFan utility;

  • - means of communication (communication programs)- allow you to communicate in real time with people who are at a distance from you. Communication programs include ICQ, Skype, Yahoo massager, Google Talk, etc.;
  • - computer security tools- include antiviruses, firewalls (firewalls), programs for data encryption and antispyware.

Antivirus software in this category includes Kaspersky Virus Removal Tool, a program developed by Kaspersky Lab specialists to scan your computer for malware. Kaspersky A VP Tool finds and isolates: viruses, trojans, worms, spyware and adware, all types of rootkits and similar malware. Another popular Dr.Web Curelt! - free antivirus for scanning, detecting and removing (treating) computers running Windows.

An example of a firewall is a program such as Comodo Internet Security - a free package for comprehensive protection of your computer from viruses, trojans, other malware and hacker attacks. Its action is to block the installation of viruses, worms, spyware, modification of critical system files, in addition, the built-in task scheduler allows you to schedule scans, there is a daily automatic update of the virus database, etc.

SUPERAntiSpyware Free is a program for detecting and removing spyware, adware, malware, worms, rootkits (a program for hiding traces of the presence of an intruder or malware in the system) and other suspicious software. This antispyware allows you to carry out full, custom scans of hard drives, portable devices, memory, registry, individual folders and files.

Control questions and tasks

  • 1. What is called a program? Define the concept of "software configuration".
  • 2. Draw a software layer diagram.
  • 3. Describe the basic level of software.
  • 4. What is called a device driver? Describe the purpose of system-level programs.
  • 5. What is the purpose of utilities? Explain the purpose of system-level programs. Give examples of such programs.
  • 6. List the programs that belong to the application layer of software.
  • 7. What types of programs related to graphic editors do you know?
  • 8. Explain the main functions of database management systems. Give examples of programs of this class.
  • 9. What are the features of expert systems?
  • 10. Expand the purpose of financial analytical systems. Give examples of programs of this class.
  • 11. List the programs related to utility software.
  • 12. What class of programs allows you to perform basic operations on files? Give examples.
  • 13. What is the difference between programs designed to diagnose and monitor computer systems?
  • 14. What refers to the means of ensuring computer security? List and describe relevant programs.
  • 15. Develop a table that lists the types of software that you have installed on your computer.

Software (English) ssoftware) is a set of programs that ensure the functioning of computers and the solution of problems of subject areas with their help. Software (SW) is an integral part of a computer system, is a logical continuation of technical means and determines the scope of the computer.

The software of modern computers includes a wide variety of programs, which can be divided into three groups (Fig. 3.1):

1. System software (system programs);

2. Application software (application programs);

3. Tooling (tool systems).

System software (SW) are programs that control the operation of a computer and perform various auxiliary functions, for example, managing computer resources, creating copies of information, checking the performance of computer devices, issuing help information about a computer, etc. They are intended for all categories of users, are used for efficient work computer and user, as well as the efficient execution of application programs.

Operating systems occupy a central place among system programs. operating systems). Operating system (OS) is a set of programs designed to manage the loading, launch and execution of other user programs, as well as to plan and manage computer computing resources, i.e. control of the PC operation from the moment it is turned on until the moment the power is turned off. It loads automatically when the computer is turned on, conducts a dialogue with the user, manages the computer, its resources (RAM, disk space, etc.), launches other programs for execution, and provides the user and programs with a convenient way to communicate - interface - with computer devices. In other words, the operating system ensures the functioning and interconnection of all components of the computer, and also provides the user with access to its hardware capabilities.

The OS determines the performance of the system, the degree of data protection, the choice of programs with which you can work on a computer, and hardware requirements. Examples of OS are MS DOS, OS/2, Unix, Windows 9x, Windows XP.

Service systems expand the capabilities of the OS for system maintenance, provide user convenience. This category includes maintenance systems, software shells and OS environments, as well as utility programs.

Maintenance systems is a set of PC software and hardware tools that perform monitoring, testing and diagnostics and are used to check the functioning of computer devices and detect malfunctions during computer operation. They are a tool for specialists in the operation and repair of computer hardware.

To organize a more convenient and visual user interface with a computer, software shells operating systems - programs that allow the user to perform actions to manage computer resources other than those provided by the OS (more understandable and efficient). The most popular shells include the Norton Commander packages ( Symantec), FAR (File and Archive manager) ( E. Roshal).

Utilities (utilities, lat. utilitas- benefit) - these are auxiliary programs that provide the user with a number of additional services for the implementation of frequently performed work or increase the convenience and comfort of work. These include:

 Packers (archivers) that allow you to more densely record information on disks, as well as combine copies of several files into one, so-called archive file (archive);

 anti-virus programs designed to prevent infection with computer viruses and eliminate the consequences of infection;

 disk space optimization and quality control programs;

 programs for information recovery, formatting, data protection;

 programs for recording CDs;

 Drivers - programs that expand the capabilities of the operating system to manage input / output devices, RAM, etc. When you connect new devices to your computer, you need to install the appropriate drivers;

 communication programs that organize the exchange of information between computers, etc.

Some utilities are part of the operating system, and some are marketed as stand-alone software products, such as the multifunctional Norton Utilities utility package ( Symantec).

Application software (PPO) is designed to solve user problems. Its composition includes user applications and application packages (PPP) for various purposes .

application program user is any program that contributes to the solution of a problem within a given problem area. Application programs can be used either standalone or as part of software systems or packages.

Application packages (PPP) are specially organized software systems designed for general use in a specific problem area and supplemented by appropriate technical documentation. There are the following types of PPP:

General PPP- universal software products designed to automate a wide class of user tasks. These include:

Text editors(for example, MS Word, Word Perfect, Lexicon);

Table processors(for example, MS Excel, Lotus 1-2-3, Quattro Pro);

Dynamic Presentation Systems(for example, MS Power Point, FreelanceGraphics, Harvard Graphics);

Database management systems(for example, MS Access, Oracle, MS SQL Server, Informix);

Graphic editor(for example, Corel Draw, Adobe Photoshop);

Publishing systems(for example, Page Maker, Venture Publisher);

Design automation systems(for example, BPWin, ERWin);

Electronic dictionaries and translation systems(e.g. Prompt, Socrates, Lingvo , Context);

Text recognition systems(e.g. Fine Reader, Cunei Form).

General purpose systems are often integrated into multi-component packages for office automation - office packages – Microsoft Office, StarOffice, etc.

method-oriented RFP, which are based on the implementation of mathematical methods for solving problems. These include, for example, mathematical data processing systems (Mathematica, MathCad, Maple), statistical data processing systems (Statistica, Stat .);

problem-oriented RFP designed to solve a specific problem in a specific subject area. For example, information and legal systems YurExpert, YurInform; accounting and control packages 1C: Accounting, Galaxy, Angelica; in the field of marketing - Kasatka, Marketing Expert; banking system STBank;

integrated PPP are a set of several software products combined into a single tool. The most developed of them include a text editor, a personal manager (organizer), a spreadsheet, a database management system, e-mail support tools, a program for creating presentation graphics. The results obtained by individual subroutines can be combined into a final document containing tabular, graphical and textual material. These include, for example, MS Works. Integrated packages, as a rule, contain some kind of kernel, which provides the possibility of close interaction between components.

Typically, application software packages have customization tools that allow them to be adapted to the specifics of the subject area during operation.

To tool software include: programming systems for the development of new programs, for example, Pascal, BASIC. They usually include: editor texts, which provides the creation and editing of programs in the original programming language (source programs), translator, as well as routine libraries; instrumental environments for developing applications, for example, C ++, Delphi, Visual Basic, Java, which include visual programming tools; simulation systems , for example, the MatLab simulation system, BpWin business process modeling systems and ErWin databases, and others.

Translator (English) translator- translator) is a translator program that converts a program from a high-level language into a program consisting of machine instructions. Translators are implemented in the form compilers or interpreters, which differ significantly in terms of how they work.

Compiler(English) compiler- compiler, collector) reads the entire program entirely, translates it and creates a complete version of the program in machine language, which is then executed. Compiling produces an executable program that requires neither the source program nor a compiler to run.

Interpreter(English) interpreter– interpreter, interpreter) translates and executes the program line by line. The program processed by the interpreter must be re-translated into machine language each time it is run.

Compiled programs run faster, but interpreted programs are easier to fix and change.

Software (software, software) is a set of special programs that allow you to organize the processing of information using a PC.

Since without software, the PC cannot function inin principle, it is an integral part ofany PC and comes with its hardware(hardware).

Program- a complete and accurate description of the sequence of actions (instructions) of a computer for processing information, written in a language understandable to the computer.

Software (software) - a set of special programs that facilitate the process of preparing tasks for execution on a computer and organizing their passage through the machine, as well as procedures, descriptions, instructions and rules, together with all the documentation associated with these components, used in the operation of a computer system.

Process information, manage the computer programs, not devices.

Software innovations have long dominated new hardware developments. The software package is more expensive (sometimes several times) than the cost of a computer of an adequate class.

For the effective use of a computer, there must be a correspondence between the level of development of computer technology and software. On the one hand, software determines the functionality of a computer. On the other hand, the installation of specific software may be limited by the design features of the computer.

Purpose of software:

  • ensuring the health of the computer;
  • facilitating user interaction with the computer;
  • reduction of the cycle from setting the task to obtaining the result;
  • increasing the efficiency of using computer resources.

The software allows:

  • improve the organization of the computer system in order to maximize the use of its capabilities;
  • increase the productivity and quality of the user's work;
  • adapt user programs to the resources of a particular computing system;
  • expand the software of the computer system.

The maximum use of the capabilities of the computer system is achieved, First of all, by allocating to each user or task the minimum necessary resources for the timely and high-quality solution of its tasks, Secondly, by connecting to the resources of the computing system a large number of users (including remote ones), third, by redistributing resources between different users and tasks depending on the state of the system and processing requests.

Improving the productivity and quality of the work of users occurs due to the automation of the procedures of the calculation and design nature, implemented using a variety of programming tools (algorithmic language, application software packages) and convenient input-output devices.

The adaptability of user programs to the resources of a particular computing system is ensured by the fact that the operating system contains a means of servicing a wide range of machine configurations. In addition, the operating system allows you to create and easily customize existing programs for various I / O devices.

Expansion of existing software implies the following features:

  • creation by the user of his own programs and packages that implement both specific computational tasks and control processes for individual devices and the entire computing system as a whole;
  • supplementing existing software with programs that allow you to expand the capabilities of the operating system, work with new types of external devices, new computing systems (computers), in new areas of application.

Software is focused on the use of computing systems in various fields of activity and should provide a timely and adequate solution to the tasks. This necessitates a number of requirements when developing software components , the main ones being:

  • modularity;
  • scalability and development;
  • reliability;
  • predictability;
  • convenience and ergonomics;
  • flexibility;
  • efficiency;
  • compatibility.

Basic principles of modern software development:

  • parametric versatility;
  • functional redundancy;
  • functional selectivity.

Programs can be installed on a computer in two ways:

  • Installing from a distribution
  • By simple copying

First (lowest) level hierarchy is occupied by the internal software of the PC, stored in its permanent memory. With its help, the PC performs the basic functions determined by the hardware structure. Firmware programs work directly with the hardware modules of the computer. As a result, they are functionally related to them, and when a certain hardware module is replaced, it is also necessary to replace the internal software program designed to work with it.

Programs that maintain hardware modules are called driver programs or drivers. They allow, when replacing or connecting a new hardware module, not to make changes in other PC programs, but only to change the driver of the corresponding hardware module.

Internal software is a software interface that provides the interconnection of the computer with all other programs. Access to the firmware programs is made only through the software interrupt system.

The internal software performs the following main functions:

  • manages a wide range of peripheral devices;
  • carries out a quick check of the operability of the PC when it is turned on;
  • resets individual hardware modules;
  • loads OS programs.

The main elements of the internal software are I/O drivers, self-test program, and boot program. The internal software interacts, on the one hand, with the functional modules of the PC, and, on the other hand, implements the program interface of the operating system.

Self test program designed to test the functional modules of the PC, i.e. setting computer circuits to the initial state by loading program registers with the necessary information. When checking individual functional modules of the PC, malfunctions may be detected in them. The self-test program informs the user of detected faults using on-screen messages and/or an audible signal.

If an error is found, the computer scan can be continued using diagnostic programs that are loaded from a floppy disk. If the error does not disrupt the operability of the PC, then at the request of the user it can be neglected. If a new functional module is included in the PC, then the self-test program of this module is added to the general self-test program.

Upon successful completion of the self-test, the PC is ready for operation. Control via software interrupt is transferred to the bootstrap program. This program is designed to read other components of the operating system into RAM. If this operation is successful, control is transferred to the program just read.

I/O drivers are used to service PC peripherals. These programs work directly with the corresponding controllers, which allows the user not to know the physical organization of a particular device and work only with driver commands that implement its maintenance.

Drivers have the following features:

  • an open structure that allows you to add new drivers to the system;
  • the flexibility of organizing access to drivers through software interrupts, which allows you not to fix them in strictly defined areas of memory, to quickly and easily replace them;
  • a custom structure that directs driver programs to a certain class of peripheral devices, the parameters of which are placed in special tables. Drivers are configured for specific peripherals by changing the values ​​in these tables;
  • resident location in RAM, allowing you to use the driver at any time from any program.

The main driver programs include: hard disk driver, video adapter driver, keyboard driver, printer driver, system drivers (setting a timer, checking computer configuration, determining RAM capacity), additional drivers (communication driver, etc.).

The operating system takes second (middle) level software hierarchy. It manages the resources of a computer system, which include RAM and external memory, I/O devices, and user programs. The OS interacts with the computer through the internal software interface. This makes it possible for PCs with hardware differences to work with the same operating system.

OS is a set of PC control programs.

The composition of the software is determined by the range of tasks that the user intends to solve using a computer.

By appointment, i.e. Depending on the class of tasks to be solved, software is usually divided into two main groups: General (basic) and applied.

Classification of software by functional purpose

Software general classification scheme

- a set of programs that ensure the operability of a computer; a set of programs that organize the computing process and manage computer resources.

- a set of software tools that allow you to develop programs.

- a set of programs designed to solve problems from various spheres of human activity.

What is software

The capabilities of a modern PC are so great that an increasing number of people are using it in their work, study, and everyday life. The most important quality of a modern computer is its "friendliness" in relation to the user. Communication between a person and a computer has become simple, clear, and understandable. The computer itself tells the user what to do in a given situation, helps to get out of difficult situations. This is possible thanks to computer software.

Let's use the analogy between a computer and a human again. A newborn person does not know anything and does not know how. He acquires knowledge and skills in the process of development, learning, accumulating information in his memory. The computer, which was assembled at the factory from chips, wires, boards, and other things, is like a newborn person. We can say that loading software into the memory of a computer is similar to the process of teaching a child. Software is created by programmers.

The entire set of programs stored on all long-term memory devices of a computer is its software (SW).

Computer software is constantly updated, developed, improved. The cost of installed programs on a modern PC often exceeds the cost of its technical devices. The development of modern software requires very high qualifications from programmers.

Software types

There is a necessary part in the computer software, without which nothing can be done on it. It is called system software. The customer is purchasing a computer that is equipped with system software that is as important to the operation of the computer as memory or a processor. In addition to system software, computer software also includes application programs and programming systems.

Computer software is divided into:

System software;
- application software;
- programming systems.
System software and programming systems will be discussed later. And now let's get acquainted with the application software.
Application software composition
Programs with the help of which the user can solve his information problems without resorting to programming are called application programs.

As a rule, all users prefer to have a set of application programs that almost everyone needs. They are called general purpose programs. These include:

Text and graphic editors with which you can prepare various texts, create drawings, build drawings; in other words, write, draw, draw;

Database management systems (DBMS), which allow turning a computer into a reference book on any topic;

Tabular processors that allow organizing tabular calculations that are very common in practice;

Communication (network) programs designed to exchange information with other computers connected with data in a computer network.

A very popular type of application software are computer games. Most users start their communication with the computer with them.

In addition, there are a large number of application programs for special purposes for professional activities. They are often referred to as application packages. These are, for example, accounting programs that perform payroll and other calculations that are made in accounting departments; computer-aided design systems that help designers develop designs for various technical devices; packages that allow solving complex mathematical problems without programming; educational programs in various school subjects and much more.

System software

System software is a set of programs that provide effective control of computer system components, such as a processor, RAM, I / O devices, network equipment, acting as an “interlayer interface”, on one side of which is the hardware, and on the other - user applications . Unlike application software, system software does not solve specific application problems, but only ensures the operation of other programs, manages the hardware resources of a computer system, etc.

Operating Systems

An operating system is a set of system programs that expands the capabilities of a computing system, as well as providing management of its resources, loading and executing application programs, and interacting with users. In most computing systems, the OS is the main, most important (and sometimes the only) part of the system software.
OS features
Main functions(simple OS):
Load applications into RAM and execute them.
Standardized access to peripherals (I/O devices).
RAM management (allocation between processes, virtual memory).
Controlling access to data on non-volatile media (such as a hard disk, CD, etc.) organized in a particular file system. User interface.
Network operations, protocol stack support.

Additional functions:
Parallel or pseudo-parallel execution of tasks (multitasking).
Interaction between processes: data exchange, mutual synchronization.
Protection of the system itself, as well as user data and programs, from the actions of users (malicious or unknowingly) or applications.
Differentiation of access rights and multi-user mode of operation (authentication, authorization).
== The concept of the operating system
==

There are two groups of OS definitions: "a set of programs that control hardware" and "a set of programs that control other programs." Both of them have their exact technical meaning, which, however, becomes clear only upon closer examination of the question of why operating systems are needed at all.
There are computing applications for which an OS is redundant. For example, embedded microcomputers are found today in many household appliances, cars (sometimes a dozen each), cell phones, etc. Often, such a computer constantly executes only one program that starts when it is turned on. And simple game consoles - also representing specialized microcomputers - can do without an OS, launching, when turned on, a program recorded on a “cartridge” or a CD inserted into the device. However, some microcomputers and game consoles still run their own proprietary operating systems. In most cases, these are UNIX-like systems (the latter is especially true for programmable switching equipment: firewalls, routers).

Basic OS ideas

The predecessor of the OS should be considered utility programs (loaders and monitors), as well as libraries of frequently used subroutines that began to be developed with the advent of 1st generation mainframe computers (late 1940s). Utility programs minimized the physical manipulations of the operator with the equipment, and libraries made it possible to avoid repeated programming of the same actions (performing I / O operations, calculating mathematical functions, etc.).

In the 1950s and 60s, the main ideas that determined the functionality of the OS were formed and implemented: batch mode, time sharing and multitasking, separation of powers, real time, file structures and file systems.

Built-in programs

Embedded programs or firmware are programs that are "hardwired" into digital electronic devices. In some cases (for example, the BIOS of IBM-PC compatible computers) are in fact part of the operating system stored in permanent memory. In fairly simple devices, the entire operating system can be embedded. Many devices of modern computers have their own "firmware" that controls these devices and simplifies interaction with them.

Utilities

Utilities (English utility or tool) - programs designed to solve a narrow range of auxiliary tasks. Utilities are sometimes referred to as utility software Utilities are used to
Monitoring of indicators of sensors and equipment performance - monitoring of temperatures of the processor, video adapter; reading S.M.A.R.T. hard drives;
Control of equipment parameters - limiting the maximum speed of rotation of the CD-drive; changing the fan speed.
Indicators control - referential integrity check; correct recording of data.
Enhancements - formatting and / or re-partitioning the disk with data preservation, deletion without the possibility of recovery.

Utility types

Disk Utilities
Defragmenters
Check disk - search for files and sections of the disk that were incorrectly recorded or damaged in various ways and their subsequent deletion for efficient use of disk space.
Disk Cleanup - delete temporary files, unnecessary files, empty the "recycle bin".
Disk partitioning - dividing a disk into logical disks, which can have different file systems and are perceived by the operating system as several different disks.
Backup - creating backup copies of entire disks and individual files, as well as restoring from these copies.
Disk compression - compresses information on disks to increase the capacity of hard disks. Registry utilities
Hardware Monitoring Utilities
Equipment Tests

Application software

Application program or application - a program designed to perform certain user tasks and is designed for direct interaction with the user. In most operating systems, application programs cannot access computer resources directly, but interact with hardware and so on. through the operating system. Also in plain language - auxiliary programs.
Classification

Type
general purpose software
Text editors
Computer layout systems
Graphic editor
DBMS
special purpose software
Expert systems
Multimedia applications (Media players, programs for creating / editing video, sound, Text-To-Speech, etc.)
Hypertext systems (Electronic dictionaries, encyclopedias, reference systems)
Content Management Systems
professional level software
CAD
workstation
ACS
APCS
ASNI
Geoinformation systems
Billing systems
CRM
By scope
Application software for enterprises and organizations. For example, financial management, a system of relations with consumers, a supply chain. This type also includes departmental software of small businesses, as well as software of individual departments within a large enterprise. (Examples: Transport Cost Management, IT Help Desk)
The software provides user access to computer devices.
Enterprise infrastructure software. Provides general capabilities to support enterprise software. These are database management systems, email servers, network and security management.
Information worker software. Serves the needs of individual users in creating and managing information. These are typically time management, resource management, documentation such as word processors, spreadsheets, email and blog clients, personal information systems, and media editors.
Content Access Software. Used to access certain programs or resources without editing them (however, it may also include the editing function). Designed for groups or individual users of digital content. These are, for example, media players, web browsers, auxiliary browsers, etc.
Educational software is similar in content to software for media and entertainment, but unlike it, it has clear requirements for testing user knowledge and tracking progress in learning a particular material. Many educational programs include sharing and multi-stakeholder collaboration features.
simulation software. Used to simulate physical or abstract systems for research, education, or entertainment purposes.
Tool software in the field of media. Serve the needs of users who produce print or electronic media resources for other consumers, on a commercial or educational basis. These are printing processing, layout, multimedia processing programs, HTML editors, digital animation editors, digital sound editors, etc.
Applied programs for design and construction. Used in the development of hardware ("Hardware") and software. They cover computer aided design (CAD), computer aided engineering (CAE), editing and compiling programming languages, Integrated Development Environments, Application Programmer Interfaces.
Links to used resources

And program documents necessary for the operation of these programs.

Also - a set of programs, procedures and rules, as well as documentation related to the operation data processing systems.

Software is one of the types of software computing system, along with technical (hardware), mathematical, informational, linguistic, organizational and methodological support

Software classification

Software classification

The software is usually divided into systemic , applied andinstrumental, but by the method of distribution and use onnon-free/closed, open and free . Free software can be distributed, installed and used on any computer at home, in offices, schools, universities, and commercial and government institutions without restrictions.

System softwareis a set of programs that provide effective management of componentscomputer system, such as CPU , RAM, I/O devices, network hardware, acting as an "interlayer interface", on one side of which is the equipment, and on the other - user applications. Unlikeapplication software, the system does not solve specific applied problems, but only ensures the operation of other programs, manages the hardware resources of the computing system, etc.


Operating Systems

Operating system- a set of system programs that expands the capabilities of a computing system, as well as providing management of its resources, loading and executing application programs, and interacting with users. In most computing systems, the OS is the main, most important (and sometimes the only) part of the system software.

The concept of the operating system

There are two groups of OS definitions: "a set of programs that control hardware" and "a set of programs that control other programs." Both of them have their exact technical meaning, which, however, becomes clear only upon closer examination of the question of why operating systems are needed at all.

There are computing applications for which an OS is redundant. For example, built-inmicrocomputersfound today in many household appliances, cars (sometimes a dozen each), cell phones, etc. Often, such a computer constantly executes only one program that starts when it is turned on. And simple game consoles - also representing specialized microcomputers - can do without an OS, launching, when turned on, a program recorded on a “cartridge” inserted into the device or CD . However, some microcomputers and game consoles still run their own proprietary operating systems. In most cases, these are UNIX-like systems (the latter is especially true for programmable switching equipment: firewalls, routers).

Basic OS ideas

The predecessor of the OS should be considered utility programs ( loaders and monitors), as well as libraries of commonly used subroutines , which began to be developed with the advent of universal1st generation computers(late 1940s ). Utility programs minimized the physical manipulations of the operator with the equipment, and libraries made it possible to avoid repeated programming of the same actions (performing operations I/O , calculations of mathematical functions, etc.).

In the 1950s - 60s the main ideas that define the functionality of the OS were formed and implemented: batch mode, time sharing and multitasking, separation of powers, real time scale, file structures andfile systems.

OS features

Main functions (the simplest OS):

§ Load applications into RAM and execute them.

§ Standardized access to peripherals (I/O devices).

§ RAM management (distribution between processes,virtual memory).

§ Controlling access to data on non-volatile media (such as hard disk, CD etc.), organized in one or anotherfile system.

§ User interface.

§ Network operations, protocol stack support.

Additional functions:

§ Parallel or pseudo-parallel execution of tasks (multitasking).

§ Interaction between processes: data exchange, mutual synchronization.


§ Protection of the system itself, as well as user data and programs, from the actions of users (malicious or unknowingly) or applications.

§ Differentiation of access rights and multi-user mode of operation ( authentication, authorization).

Built-in programs

Built-in programs or firmware - these are programs "hardwired" into digital electronic devices.

Utilities

Utilities utility or tool) - programs designed to solve a narrow range of auxiliary tasks.

Sometimes utilities are classified asservice software.

Utilities are used for:

§ Monitoring of indicators of sensors and equipment performance - monitoring of temperatures of the processor, video adapter; reading S.M.A. R.T. hard drives;

§ Control of equipment parameters - limiting the maximum speed of rotation of the CD-drive; changing the fan speed .

§ Indicators control - referential integrity check; correct recording of data.

§ Enhancements - formatting and / or re-partitioning the disk with data preservation, deletion without the possibility of recovery.

Utility types

§ Disk Utilities

¨ Defragmenters

¨ Check disk - search for incorrectly recorded or damaged in various ways files and sections of the disk and their subsequent removal for efficient use of disk space.

¨ Disk Cleanup - delete temporary files, unnecessary files, empty the "recycle bin".

¨ Disk partitioning - dividing a disk into logical disks, which can have different file systems and are perceived by the operating system as several different disks.

¨ Backup- creating backup copies of entire disks and individual files, as well as restoring from these copies.

¨ Disk compression - compresses information on disks to increase the capacity of hard disks.

§ Registry utilities

§ Hardware Monitoring Utilities

§ Equipment Tests

§ assemblers - computer programs that convert the program in the form of source text intoassembly language in machine instructions in the form of object code.

§ translators - programs or technical means that perform the broadcast of the program.

§ compilers - Programs that translate the text of a program in a high-level language into an equivalent program in machine language.

§ interpreters - Programs (sometimes hardware) that parse instructions or program statements and immediately execute them

§ linkers (link editors) - programs that perform linking - take one or more object modules as input and assemble an executable module from them.

§ preprocessors source codes are computer programs that take input and return data intended for input by another program, such as a compiler, for example.

§ A debugger is a development environment module or a separate application designed to find errors in a program.

§ text editors- computer programs designed to create and modify text files, as well as view them on the screen, print, search for text fragments, etc.

§ specializedsource editors- text editors for creating and editing program source code. A specialized source editor can be a standalone application, or it can be built into an integrated development environment (IDE).

§ routine libraries- collections of routines or objects used for software development.

§ GUI editors

Database management systems

A database management system (DBMS) is a specialized program (usually a set of programs) designed to organize and maintain a database.

Since database management systems are not a mandatory component of a computer system, they are often not classified as system software. Often, DBMS perform only a service function when other types of programs (web servers, application servers) are running, so they cannot always be attributed to application software. Therefore, a DBMS is sometimes referred to as middleware ( middleware)

Main functions of the DBMS

§ data management in external memory (on disks);

§ data management inrandom access memoryusing disk cache;

§ change logging, backup and database recovery after failures;

§ support for database languages ​​(data definition language, data manipulation language).

Classification of DBMS according to the method of accessing the database

§ File-server

In file-server DBMSs, data files are located centrally on file server . The DBMS kernel resides on each client computer. The data is accessed via the local network. Synchronization of reads and updates is carried out by means of file locks. The advantage of this architecture is the low CPU load of the server, and the disadvantage is the high load on the local network.

At the moment, file-server DBMS are considered obsolete.

Examples : Microsoft Access, Paradox , dBase .

§ Client-server

Such DBMS consist of a client part (which is part of the application program) and a server

Examples: Firebird, Interbase, IBM DB2, MS SQL Server, Sybase, Oracle, PostgreSQL, MySQL, Linter, MDBS.

§ Embedded

Embedded DBMS - library , which allows you to store large amounts of data on a local machine in a unified way.

Examples: OpenEdge , SQLite , BerkeleyDB , one of the options firebird , one of the options MySQL , Sav Zigzag , Microsoft SQL Server Compact , Linter .

application programorAppendix - program , designed to perform certain user tasks and designed for direct interaction with the user. Mostoperating systemsapplication programs cannot access resources computer directly, but interact with the equipment and so on. through the operating system. Also in plain language - auxiliary programs.

Application software includescomputer programs, written for users or by the users themselves, to give the computer a specific job. Programs for processing orders or creating mailing lists are an example of application software. Programmers who write application software are called application programmers.

Classification

Type

§ general purpose software

§ Text editors

§ Systems computer layout

§ Graphic editor

§ DBMS

§ special purpose software

§ Expert systems

§ Multimedia applications (Media players , programs for creating / editing video, sound, Text-To-Speech, etc.)

§ Hypertext systems ( Electronic dictionaries, encyclopedias, reference systems)

§ Content Management Systems

§ professional level software

§ CAD

§ AWP

§ ACS

§ APCS

§ ASNI

§ Geoinformation systems

§ Billing systems

§ CRM

By scope

§ Application software for enterprises and organizations. For example, financial management, a system of relations with consumers, a supply chain. This type also includes departmental software of small businesses, as well as software of individual departments within a large enterprise. (Examples: Transport Cost Management, IT Help Desk)

§ The software provides user access to computer devices.

§ Enterprise infrastructure software. Provides general capabilities to support enterprise software. These are database management systems, email servers, network and security management.

§ Information worker software. Serves the needs of individual users in creating and managing information. This is usually the management of time, resources, documentation, for example,text editors, spreadsheets, client programs forEmailand blogs, personal information systems and media editors.

§ Content Access Software. Used to access certain programs or resources without editing them (however, it may also include the editing function). Designed for groups or individual users of digital content. This, for example, media players, web browsers , auxiliary browsers, etc.

§ Educational software is similar in content to software for media and entertainment, but unlike it, it has clear requirements for testing user knowledge and tracking progress in learning a particular material. Many educational programs include sharing and multi-stakeholder collaboration features.

§ simulation software. Used to simulate physical or abstract systems for research, education, or entertainment purposes.

§ Tool software in the field of media. Serve the needs of users who produce print or electronic media resources for other consumers, on a commercial or educational basis. These are printing programs typesetting , multimedia processing, HTML editors , editors for digital animation, digital audio, etc.

§ Applied programs for design and construction. Used in the development of hardware ("Hardware") and software. coverautomated design(computer aided design - CAD), computer-aided design (computer aided engineering - CAE), editing and compiling programming languages, programsintegrated(Integrated Development Environments), interfaces for application programming (Application Programmer Interfaces).

Proprietary software( English proprietary software; fromproprietary - private, proprietary, proprietary http://ru. wikipedia. org/wiki/%D0%9F%D1%80%D0%BE%D0%BF%D1%80%D0%B8%D0%B5%D1%82%D0%B0%D1%80%D0%BD%D0 %BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_ %D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 - cite_note-slov-0 andsoftware - software) -software, which is the private property of the authors or copyright holders and does not satisfyfree software criteria(availabilityopen source codenot enough).Copyright holderproprietary software reserves monopoly to its use, copying and modification, in whole or in material terms. It is common to refer to proprietary software as any non-free software, including semi-free.

Proprietary software that allows virtually unlimited use, distribution, and modification (including redistribution of modified versions) of the software for non-commercial purposes.

Free Software

Free Software (Free Software)- a wide range software solutions, in which User rights("freedom") to unlimited installation, launch, as well as free use, study, distribution and modification(improvement) http://ru. wikipedia. org/wiki/%D0%A1%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0 %BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81 %D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 - cite_note-gnu. org-0 programs are legally protectedcopyright with help free licenses. Free software is usually available without any payment, but may have a price, for example in the form of charging for CDs or other media. In order for redistributable software to be free software, its source codes, from which executable files can be obtained, must be available to recipients, with the appropriate licenses.

The SPO movement was born in 1983 when Richard Stallman formed the idea of ​​the need to give software freedom ( English softwarefreedom) to users. In 1985, Stallman foundedFree Software Foundationto provide an organizational structure to promote your idea.

Free software business models are typically based on the principle of empowerment, such as new applications, training, integration, customization, or certification. At the same time, some business models that work with proprietary software are not compatible with free software, especially those that force users to pay for a license in order to legally use the software product.

§ The program can be freely used for any purpose (" zero freedom»).

§ You can study how the program works and adapt it for your purposes (" first freedom"). The condition for this is the availability of the source code of the program.

§ You can freely distribute copies of the program - to help a friend (" second freedom»).

§ You can freely improve the program and publish your improved version - in order to benefit the entire community (" third freedom"). The condition of this third freedom is the availability of the source code of the program and the possibility of making modifications and corrections to it.

The ability to fix bugs and improve programs is the most important feature of free and open source software, which is simply impossible for users of closed proprietary programs, even if bugs and defects are found in them, the number of which is usually unknown to anyone.

Only a program that satisfies all four of the listed principles can be considered free software, that is, guaranteed to be open and available for upgrading and fixing errors and defects, and having no restrictions on use and distribution. It should be emphasized that these principles only stipulate availability source codes of programs for general use, criticism and improvement, and the rights of the user who received the executable or source code of the program, but do not stipulate in any way monetary relations associated with the distribution of programs, including do not offer free. In English texts, confusion often arises here, since the word “free” in English means not only “free”, but also “free”, and is often used in relation tofree software, which is distributed free of charge for use, but is not available for modification by the community because its source code has not been published. Such free software is not free at all. On the contrary, free software can be distributed (and is distributed) for a fee, but at the same time observing the criteria of freedom: each user is given the right to receive the source code of programs at no additional cost (except for the price of the medium), modify them and distribute further. Any software whose users are not given this right is non-free software, regardless of any other terms.

Open source software is a key feature of free software, so the later proposedEric Raymondthe term “open source software” seems to some to be even more appropriate to refer to this phenomenon than the one originally proposed Stallman free software. Stallman insists on the difference between these two concepts, since the words "open source" indicate only the presence of one, not the most important (although necessary for the implementation of two of the four freedoms), in his opinion, from the properties inherent in free software - the ability to see the source the code.

open source software( English open source software) - softwareopen source code . The source code of such programs is available for viewing, studying and changing, which allows the user to take part in the finalization of theopen program , use the code to create new programs and correct errors in them - through borrowing the source code, if license compatibility allows, or through studying the algorithms, data structures, technologies, techniques and interfaces used (since the source code can significantly supplement the documentation, and in the absence such itself serves as documentation).

Term open source(English) open source software) was created along with the definition in 1998 Eric Raymond and Bruce Perens, who argued that the term free software (free software ) is ambiguous in English and confuses many commercial entrepreneurs.

Overwhelming majority open programs is at the same time free. The definitions of open source and free software do not exactly match each other, but they are close, and most licenses match both.

The difference between the open source and free software movements lies mainly in priorities. Supporters of the term "open source" emphasize the effectiveness of open source as a method of developing, modernizing and maintaining programs. Proponents of the term "free software" believe that it is the rights to freely distribute, modify and study programs that are the main advantage of free open source software.

There are programs that are open source but are not free, such as UnRAR, a RAR unpacker. Its source code is in the public domain, but the license prohibits using it to create RAR-compatible archivers. There is also a whole class of programs called commercial open source software or Open Core, which use the term "Open Source" in relation to non-free software.

Source codes for open source programs are released either as public domain, or under the terms of "free" licenses - such as the GNU General Public License or BSD License. Free license allows you to use the source code of the program for your needs with minimal restrictions that do not contradict the definition of OpenSource. org. Such a restriction may be a requirement to refer to previous creators or a requirement to maintain the property of openness when further distributing the same or modified open source program (copyleft). In some cases (for example, Apache or FreeBSD) these restrictions are very small, in others (for example, GNU General Public License) it is enough to distribute the software along with the source code and license text without changing it.


Top