Operating system
An operating system (OS) is the set of programs of a computer system that manages hardware resources and provides services to users. software application programs. These programs run in privileged mode with respect to the rest.
One of the purposes of the operating system that manages the middleman kernel is to manage the location resources and access protection of the hardware, which relieves application programmers of having to deal with them. details. Most electronic devices that use microprocessors to function have an operating system built into them (mobile phones, DVD players, computers, routers, etc.). In which case, they are handled by a graphical user interface, window manager, or desktop environment if mobile, by console or remote if DVD, and by command line or web browser if mobile. a router.
The dominant desktop operating system is Microsoft Windows with a market share of about 82.74%. Apple Inc.'s macOS is in second place (13.23%), and GNU/Linux varieties are collectively in third place (1.57%). In the mobile sector (including smartphones and tablets), the share of Android is up to 70% in the year 2017. Linux distributions are dominant in the server and supercomputing sectors. Other specialized classes of operating systems exist, such as embedded and real-time systems, for many applications.
Main functions
Some of the main functions of an operating system are as follows:
- Manage random access memory and run applications, designing the necessary resources.
- Manage the CPU thanks to a programming algorithm.
- Direct data inputs and outputs (through drivers) via input or output peripherals.
- Manage information for the good functioning of the PC.
- Direct the user authorizations.
- Manage files.
Background
Early systems (1945-1954) were large machines operated from the master console by programmers. During the following decade (1955-1965) advances were made in hardware: card readers, printers, magnetic tapes, etc. This in turn caused an advance in software: compilers, assemblers, loaders, device drivers, etc.
In the late 1980s, a Commodore Amiga computer equipped with a Video Toaster accelerator was capable of producing effects compared to dedicated systems costing three times as much. A Video Toaster together with Lightwave helped produce many television shows and movies, including Babylon 5, SeaQuest DSV, and Terminator 2.
Exploitation problems and initial solutions
The main problem of the first computers was their low utilization, the first solution was to hire a professional operator to manage it, thus eliminating reservation sheets, saving time and increasing speed.
To do this, jobs were manually grouped into batches using what is known as batch processing without automation.
Resident monitors
As the complexity of the programs progressed, it was necessary to implement solutions that automate the organization of tasks without the need for an operator. Because of this, resident monitors were created: programs that resided in memory and managed the execution of a job queue.
A resident monitor was composed of a loader, a command interpreter and a controller (drivers) for input/output handling.
Systems with temporary I/O storage
Advances in hardware created interrupt support, and later a more advanced solution attempt was made: overlapping the I/O of a job with its own calculations, thus created the buffer system with the following operation:
- A program writes its output in a memory area (buff 1).
- The resident monitor starts the exit from buffer and the application program calculates by depositing the output in the buffer 2.
- The exit from the buffer 1 ends and the new calculation also.
- The exit starts from the buffer 2 and another new calculation directs its exit to buffer 1.
- The process can be repeated again.
Problems arise if there are many more compute than I/O (CPU-limited) or if there are many more I/O than compute (I/O-limited).
Spoolers
The magnetic disk makes its appearance, bringing new solutions to performance problems. Magnetic tapes for data pre-dumping of slow devices are eliminated and replaced with disks (one disk can simulate multiple tapes). Due to the overlapping of the calculation of a job with the I/O of another job, tables are created on the disk for different tasks, which is known as Spool (Simultaneous Peripheral Operation On-Line).
Multiprogrammed Operating Systems
A new breakthrough emerges: hardware with memory protection, offering new solutions to performance problems:
- The calculation of works is overlapped with the entry/output of other works.
- Several programs can be kept in memory.
- The use of the CPU is assigned to the different programs in memory.
With the previous changes, the resident monitor must address new tasks, giving rise to multiprogrammed Operating Systems with the following functions:
- Manage memory.
- Manage the use of CPU (planning).
- Manage the use of E/S devices.
When performing these tasks, the resident monitor becomes a multiprogrammed operating system.
System calls
Each OS implements its own set of system calls. That set of calls is the OS interface to the applications. They constitute the language that applications must use to communicate with the OS. For this reason, if we change the OS, and open a program designed to work on top of the previous one, in general the program will not work, unless the new OS has the same interface. For it:
- The corresponding calls must have the same format.
- Each call to the new SO has to give the same results as the corresponding of the previous one.
Execution modes on a CPU
Applications must not be able to use all the instructions of the CPU. However, the Operating System must be able to use the entire instruction set of the CPU. Therefore, a CPU must have (at least) two different modes of operation:
- User mode: the CPU can execute only the instructions of the restricted game of applications.
- Supervisor mode: the CPU must be able to run the full set of instructions.
System Calls
An application normally does not know where the calling service routine is located. So if this is coded as a function call, any change to the S.O. would cause the application to be rebuilt.
But the most important thing is that a function call does not change the execution mode of the CPU. With what it is necessary to be able to call the service routine, without having to know its location, and make it force a change of operation mode of the CPU in the call (and the recovery of the previous mode in the return).
This is done using machine instructions specifically designed for this purpose, other than those used for function calls.
System Call Interface Libraries
System calls do not always have a simple expression in high-level languages, so interface libraries are created, which are libraries of functions that can be used to make system calls. They exist for different programming languages.
The application calls a function from the interface library (using a normal call), and that function actually makes the system call.
Interrupts and Exceptions
The OS occupies an intermediate position between application programs and hardware. It is not limited to using the hardware at the request of the applications since there are situations in which it is the hardware that needs the OS code to execute. In such situations the hardware must be able to call the system, these calls may be due to two conditions:
- Some E/S device needs attention.
- There has been an error situation when attempting to execute a program instruction (usually from the application).
In both cases, the action performed is not ordered by the application program, that is, it does not appear in the program.
According to the two previous cases we have interruptions and exceptions:
- Interruption: signal that sends an E/S device to the CPU to indicate that the operation it was dealing with is already over.
- Exception: an error situation detected by the CPU while performing an instruction, which requires treatment by the SO.
Handling Interruptions
An interrupt is handled in any case, after finishing the execution of the current instruction.
The treatment depends on which I/O device caused the interrupt, before which it must be able to identify the device that caused it.
The advantage of this procedure is that you don't have to waste time continually executing routines to query the status of the peripheral. The drawback is that the device must have the necessary electronic circuitry to access the computer's interrupt system.
Importance of Interruptions
The interrupt handling mechanism allows the operating system to use the CPU serving one application while another application waits for an operation on an I/O device to complete.
The hardware takes care of notifying the OS when the I/O device has finished and the OS can then intervene, if appropriate, to make the program that was waiting for the device, continue to run.
At certain time intervals it may be convenient not to accept interrupt signals. For this reason, interrupts can be inhibited by program (although they should not be able to do this).
An example of interrupt synchronization is storing characters entered via the keyboard. When a character is entered, it is encoded in the device's data register and a bit of the status register is also set which creates an interrupt in the hardware. The processor temporarily stops the task it was completing and executes the corresponding interrupt service routine. The keyboard stores the character in the buffer vector (also called buffer) associated with the keyboard and wakes up the process that was in the wait state for the input/output operation.
Exceptions
When the CPU tries to execute an incorrectly constructed instruction, the control unit throws an exception to allow the OS to do the proper processing. Unlike an interrupt, the current instruction is aborted. Exceptions as well as interruptions must be identified.
Exception classes
Program instructions can be poorly constructed for various reasons:
- The operating code can be incorrect.
- Some undefined operation is attempted, such as dividing by zero.
- The instruction may not be permitted in the current mode of execution.
- The address of any operator may be incorrect or attempts to violate any of your use permits.
Importance of exceptions
The exception handling mechanism is essential to prevent, along with CPU execution modes and memory protection mechanisms, applications from performing operations they are not allowed to do. In either case, the specific handling of an exception is performed by the OS.
As in the case of interrupts, the hardware is limited to leaving control to the OS, and it is the OS that deals with the situation as it sees fit.
It is quite common that the handling of an exception does not return to the program that was running when the exception occurred, but the OS aborts the execution of that program. This factor depends on the programmer's expertise in handling the exception appropriately.
Components
All the components of an operating system exist to make the different parts of a computer work together. All user software must go through the operating system in order to use any piece of hardware, whether it is as simple as a mouse or keyboard or as complex as an Internet component.
Core
In computer, a core or kernel (from the german root) Kern, core, bone) is a software which constitutes a fundamental part of the operating system, and is defined as the part that is executed in privileged mode (also known as a core mode). It is the primary responsibility of providing the various programmes with secure access to hardware of the computer or in a basic way, it is responsible for managing resources, through calling services to the system. As there are many programs and access to hardware is limited, it is also responsible for deciding which program you can use a hardware device and for how long, which is known as multiprogramming. Accessing hardware directly can be really complex, so cores typically implement a series of hardware abstractions. This allows you to hide the complexity, and provide a clean and even interface to the underlying hardware, which facilitates your use of the programmer.
In some operating systems, there is no core as such (something common in embedded systems), because in certain architectures there are no different modes of execution.Device Drivers
A device driver or device handler (in English: device driveror simply driver) is a computer program that allows the operating system to interact with a peripheral, making a hardware abstraction and providing a (possibly standardized) interface to use the device.
It is an essential part of the software, and in particular the core of an operating system, without which the hardware would be unusable.Process management
A process is simply a running program that needs resources to perform its task: CPU time, memory, files, and I/O devices. The OS is responsible for the following:
- Create and destroy processes.
- Stop and resume processes.
- Provide mechanisms for processes to communicate and synchronize.
Process management could be similar to office work. You can have a list of tasks to perform and set priorities for them: high, medium, low, for example. We must start doing the high priority tasks first and when they are finished continue with the medium priority ones and then the low priority ones. Once the task is done, it is crossed out.
This can lead to a problem that low priority tasks may never get executed and remain in the list forever. To work around this, older tasks can be assigned high priority.
Memory management
Memory management or memory management is the act of managing the memory of a computer device. The process of assigning memory to the programs that request it.
Virtual memory systems separate the memory addresses used by a process from the actual physical addresses, allowing the separation of processes and increasing the actual amount of random access memory using the page. The quality of memory management is crucial to system benefits.
The garbage collector is the allocation and automatic release of memory resources for a program. The implementation is usually at the level of programming language in contrast to manual memory management, which explicitly assigns and releases the memory resources of a computer.
Memory management refers to the different methods and operations that are responsible for obtaining the maximum usefulness of memory, organizing the processes and programs that are implemented in such a way that the available space is best utilized.
In order to achieve this, the main operation it performs is to transfer the information to be executed by the central processing unit or processor to the main memory. Currently this administration is known as virtual memory, because it is not the physical memory of the processor but a virtual memory that represents it. Among some advantages, this memory allows the system to have a more extensive memory with the same real memory, so it can be used more efficiently. And of course, that the programs used do not take place unnecessary.
The techniques that exist for the load of programs in memory are: fixed partition, which is the division of free memory in several parts (of equal or different size) and dynamic partition, which are the partitions of memory in sizes that can be variable, according to the amount of memory that each process needs.
The main operations developed by the memory management include relocation, which consists of moving active processes within and outside the main memory to maximize the use of the processor; protection, mechanisms that protect the processes that run from interference from other processes; sharing codes and data, thereby allowing certain processes of the same program that share a task to have a common memory.Secondary storage management
A secondary storage system is necessary, since the main memory (primary storage) is volatile and also too small to store all the programs and data. You also need to keep data that you don't want to keep in main memory. The OS is responsible for:
- Plan the records.
- Manage the free space.
- Assign storage.
- Verify that the data are kept in order.
Entry and Exit System
It consists of a temporary storage system (cache), a device manager interface, and another for specific devices. The operating system must manage I/O caching and serve interrupts from I/O devices.
File system
A file system or file system, (file system: fs), in computing, is an element that controls how the data is stored and retrieved. Without a file system, the data placed in a storage medium would be a large data body without a way of knowing where a data ends and the following begins. It is responsible for managing and facilitating the use of peripheral or internal memories, whether secondary or tertiary.
Its main functions are the allocation of space to archives, the administration of free space and access to protected data. They structure the information stored on a data storage device or storage drive (usually a hard drive from a computer), which will then be represented either textually or graphically using a file manager.
Most operating systems handle their own file system.
The usual thing is to use data storage devices that allow access to data as a string of blocks of the same size, sometimes called sectors, usually 512 bytes in length (also called clusters). The file system software is responsible for organizing these sectors in files and directories and keeps track of which sectors belong to which files and which have not been used. In practice, a file system can also be used to access dynamically generated data such as those received through a computer network connection (without the intervention of a storage device).
File systems provide methods to create, move, rename and delete both files and directories, but lack methods to create, for example, additional links to a directory or file (hard link in Unix) or rename parent links (." in Unix).
Secure access to basic file systems may be based on access control list schemes (access control list, ACL) or capabilities. The ACLs decades ago proved to be insecure, so experimental operating systems use access by capabilities. Commercial operating systems still operate with access control lists.[chuckles]required]There are different file systems, that is, there are different ways of organizing the information that is stored in the memories (usually disks) of computers. For example, there are the file systems FAT, FAT32, ext3, ext4, NTFS, XFS, etc.
Protection systems
Mechanism that controls the access of programs or users to system resources. The OS is responsible for:
- Distinguish between authorized and unauthorized use.
- Specify the security controls to perform.
- Force the use of these protection mechanisms.
Communications system
To maintain communications with other systems it is necessary to be able to control the sending and receiving of information through the network interfaces. You also have to create and maintain communication points that serve the applications to send and receive information, and create and maintain virtual connections between applications that are running locally and others that are running remotely.
System Programs
Utility applications that are shipped with the OS but are not part of it. They offer a useful environment for the development and execution of programs, some of the tasks they perform being:
- File handling and modification.
- System status information.
- Support to programming languages.
- Communications.
Resource Manager
As a resource manager, the operating system manages:
- The central processing unit (where the microprocessor is hosted).
- The input and output devices.
- The main memory (or direct access).
- Discs (or secondary memory).
- Processes (or programmes in implementation).
- And in general all the resources of the system.
User interface
The user interface is the medium with which the user can communicate with a machine, computer, or device, and includes all contact points between the user and the computer.
Usually they are easy to understand and easy to act, although in the field of computer science it is preferable to refer to that they are usually "usable", "friendly and intuitive" because it is complex.Classification
Task Management
- Monotasy: It only allows to execute a process (apart from the processes of the OS itself) at a given time. Once a process begins to run, it will continue to do so until its completion and/or interruption.
- Multitasking: It is able to run several processes at the same time. This type of SO normally assigns the available resources (CPU, memory, peripherals) in an alternate way to the processes that request them, so that the user perceives that all work at once, in a concurrent way.
User administration
- Monousuario: It only allows you to run a user's programs at the same time.
- Multiuser: Allows several users to run their programs simultaneously, accessing the resources of the computer. Normally these operating systems use data protection methods, so that a program cannot use or change data from another user.
Session management
- Monosession: Operating systems that are able to run a single user session. Operating systems long ago like Windows 98 or Windows 95.
- Multisession: Operating systems that are able to run multiple user sessions at once. Multisession functionality can be installed using applications, but it is the operating system that allows such operation. Windows Server family servers, most of the Linux versions.
Resource Management
- Centralized: It allows the use of single computer resources.
- Distributed: Allows to use the resources (memory, CPU, disc, peripherals...) of more than one computer at the same time.
Misnames
In some texts, the operating system is referred to interchangeably as kernel or kernel, but it should be noted that the difference between kernel and operating system only applies if the kernel is monolithic, which was very common among early systems. Otherwise, it is incorrect to call the operating system kernel.
Note that it is a widespread common mistake to call the complete set of tools operating system, that is, the inclusion in the same term of programs such as the file explorer, the web browser and all kinds of tools that allow interaction with the operating system. Another example to understand this difference is found on the Amiga platform, where the graphical user environment was distributed separately, so that it could also be replaced by another, such as directory Opus or even managed by starting it with a command line. and the graphic system. In this way, it began to work with the operating system that it had included in a ROM, so it was up to the user to decide if he needed a graphical environment to manage the operating system or simply another application. One of the most prominent examples of this difference is the Linux kernel, used in the so-called Linux distributions, since they are also based on Unix, they provide a similar operating system. This precision error is due to the modernization of computing carried out at the end of the 80s, when the philosophy of the basic operating structure of large computers was redesigned in order to bring it to homes and facilitate its use, changing the concept of a multi-user computer, (many users at the same time) for a single-user system (only one user at the same time) easier to manage. See AmigaOS, beOS or Mac OS as the pioneers of said modernization, when the Amigas were Nicknamed Video Toasters for their ability to edit video in a round robin multitasking environment, with management of thousands of colors and intuitive interfaces for 3D design.
Operating systems for PCs
- Windows
- Mac OS
- Unix
- Solaris
- FreeBSD
- OpenBSD
- Slackware Linux (GNU/Linux)
- Android-x86 (GNU/Linux)
- Chrome OS (GNU/Linux)
- Debian GNU/Linux (GNU/Linux)
- Gentoo Linux (GNU/Linux)
- SUSE Linux (GNU/Linux)
- Red Hat Enterprise Linux (GNU/Linux)
- Ubuntu Linux (GNU/Linux)
- Elementary OS (GNU/Linux)
- Sabayon (GNU/Linux)
- Wave OS
- web sites
- Haiku (BeOS)
- Plan 9
- Freespire
- HP-UX
- Reactments
- Beos
- Kali Linux (GNU/Linux)
- Arch Linux (GNU/Linux)
- LindowsOS/Linspire
- Harmony
- Mandriva
- Fedora
- Linpus Linux
Operating systems for mobile devices
- Android
- iOS
- Bada
- BlackBerry OS
- BlackBerry 10
- Windows Phone
- Windows 10 Mobile
- Symbian OS
- HP webOS
- Firefox OS
- Ubuntu Phone OS
- Tizen
- Asha Platform
- Palm OS
- WebOS
- CyanogenMod
- Lineage
- Sailfish OS
- Harmony
- KaiOS
Operating systems for smart watches
- Android
- Watches
- Android Wear
- Harmony
- WearOS
- OpenWatch
Contenido relacionado
Memory (computing)
SkyOS
Concentrator