Biographies Characteristics Analysis

Students and schoolchildren books operating systems. Category Archives: Books on operating systems Literature on removing operating systems on computers

1Introduction to operating systems

1.1 Purpose and functions of operating systems

A computer operating system is a set of interconnected programs that acts as an interface between applications and users on the one hand, and computer hardware on the other. The operating system performs two groups of functions:

Provides the user or programmer with an extended virtual machine instead of real computer hardware;

Increases the efficiency of using a computer by rationally managing its resources in accordance with some criterion.

The user, as a rule, is not interested in the details of the computer hardware, he sees it as a set of applications that can be written in one of the programming languages. The operating system provides the programmer with a number of features that programs can use through special instructions called system calls. Therefore, a software application includes many system calls needed, for example, to work with files. The operating system hides hardware details from the programmer and provides a convenient interface for executing the operating environment system.

At the same time, the operating system acts as a resource manager. According to this approach, the operating system's job is to provide an organized and controlled allocation of processors, memory, and I/O devices to various programs. The operation of the operating system has the following features:

The functions of the operating system work in the same way as the rest of the software - they are implemented as separate programs or a set of programs, running processes;

The operating system must transfer control to other processes and wait for the processor to give it time again to perform its duties.

Resource management includes the following common, resource-independent tasks:

Resource planning - that is, determining which process, when and in what quantity (if the resource can be allocated in parts) should allocate this resource;

Satisfaction of requests for resources;

Tracking the state and accounting for the use of the resource - that is, maintaining operational information about whether the resource is busy or free and what share of the resource has already been allocated;

Resolving conflicts between processes.

Resource management includes their multiplexing (distribution) in two ways: in time and in space. When a resource is spread out over time, different users and programs take turns using it. First one of them gets access to the use of a resource, then another, and so on. For example, several programs want to access the CPU. In this situation, the operating system first allows access to the processor to one program, then, after it has worked for a sufficient time, to another program, then the next, and, finally, again the first. Determining how long the resource will be used in time, who will be next and for how long the resource is provided to him is the task of the operating system. Another kind of distribution is spatial multiplexing. Instead of working in turn, each client receives a portion of the resource. Typically, RAM is shared among multiple running programs so that they can all be in memory at the same time (for example, using the CPU in turn). Assuming that there is enough memory to hold several programs, it is more efficient to have several programs in memory than to allocate all the memory to one program, especially if it only needs a small portion of the available memory. Of course, this raises problems of fair distribution, memory protection, and so on, and there is an operating system to deal with such issues.

1.2 History of operating systems

Usually, the history of the development of operating systems is associated with the history of the development of computers. The first idea for a computer was proposed by the English mathematician Charles Babbage in the mid-nineteenth century. He developed the so-called mechanical "analytical engine", which, however, did not work properly. The following are the generations of computers and their relationship to operating systems.

First generation 1945-1955

Computers consisted of vacuum tubes and patch panels. The highest achievement is the production of punched cards. Made from thin cardboard, a punched card represents information by the presence or absence of holes at certain positions on the card. The operating system is missing.

Second generation 1955-1965

The basis of computers are transistors and batch processing systems. They were characterized by decks of punched cards and devices for recording magnetic tapes. We mainly programmed in Fortran and Assembler languages ​​for the Fortran Monitor System (FMS) and IBSYS operating systems.

Third generation 1965-1980

The period is characterized by the appearance of integrated circuits, as well as multitasking or, as it is called differently, multiprogramming. IBM produces various series of machines, starting with the IBM/360. For them, the OS/360 operating system was written, which was about 1000 times larger than the second-generation FMS. At this stage, an industrial implementation of multitasking appears - a method of organizing a computing process, in which several programs were simultaneously in the computer's memory, alternately executing on the same processor.

Other notable operating systems of this period are CTSS (Compatible Time Sharing System) and MULTICS (Multiplex Information and Computing Service), which was designed to allow hundreds of users to access a single machine at once. Further development of this system grew into UNIX.

Fourth generation 1980-now

This period is associated with the advent of large integrated circuits. In 1974, Intel released the first universal 8-bit Intel 8080 processor. In the early 80s, IBM developed the IBM PC, a personal computer. At the same time, the first version of MS-DOS appeared. All operating systems developed up to this point supported only text mode of communication with the user.

The first attempt at a user-friendly graphical interface was implemented on the Apple Macintosh. Influenced by her success, Microsoft releases a graphical shell for MS-DOS - Windows. And since 1995, Windows 95 was released, which became an autonomous system. Later, on the basis of Windows 95 and other Windows NT systems, the currently existing operating systems were developed - Windows 2000, XP, Vista and others.

1.3 Classification of operating systems

There are a lot of operating systems and not everyone knows them. Next, 7 types of different operating systems are considered in order from large to small.

Mainframe operating systems

Mainframe is a high-performance general-purpose computer with a significant amount of RAM and external memory, designed to perform intensive computing work. These are usually room-sized computers and are found in large corporations. Typically, mainframes contain thousands of disks and terabytes of RAM.

Mainframe operating systems are primarily focused on handling many simultaneous jobs, most of which require huge amounts of I/O. The system must respond to thousands of requests per second. An example is OS/390, which evolved from the 3rd generation OS/360 operating system.

Server operating systems

These operating systems run on servers that are personal computers, workstations, or even mainframes. Servers provide the ability to work with printing devices, files, or the Internet. These operating systems include Unix, Linux, Windows 2003 Server, etc.

Multiprocessor operating systems

These systems are used on computers with multiple central processors. They require special operating systems, but are usually modifications of server operating systems.

Operating systems for personal computers

The main criterion of these systems is a convenient interface for a single user. The most famous systems: Windows 98, 2000, XP, Vista series; Macintosh, Linux.

Real time operating systems

The main parameter of these systems is time. In industrial process control systems, it is necessary to clearly synchronize the operating time of the conveyor, various industrial robots. This is a hard real time system. There are also flexible real-time systems - it allows for missed deadlines for the operation, for example, multimedia systems. Real-time operating systems include VxWorks and QNX.

Embedded operating systems

These include PDA (Personal Digital Assistant) operating systems. In addition, embedded systems run on cars, televisions, mobile phones. These operating systems usually have all the characteristics of real-time operating systems with limited memory, power, and so on. Examples of systems are PalmOS, Windows CE.

Operating systems for smart cards

A smart card is a credit card-sized device containing a central processing unit. Such systems are subject to severe power and memory limitations. Some manage only one transaction - an electronic payment, for example. Selected smart cards include support for the Java Virtual Machine.

1.4 Overview of computer hardware

The operating system is closely related to the hardware of the computer on which it is supposed to run. The hardware affects the operating system instruction set and the management of its resources. Conceptually, a simple computer can be represented as a model shown in Figure 1. This structure was used on the first models of the IBM PC.

Figure 1 - Some components of a personal computer


In the figure, the central processor, memory, input-output devices are connected by a system bus, through which they exchange information.

CPU

The “brain” of a computer is the Central Processing Unit (CPU). It fetches instructions from memory and executes them. The usual processor cycle looks like this: the first instruction is read from memory, decoded to determine its type and operands, executes the instruction, then reads, decodes subsequent instructions. This is how programs are executed.

Each processor has a set of instructions that it can execute. Since accessing memory to receive instructions or a set of data takes much longer than executing these instructions, all processors contain internal registers to store variables and intermediate results. Therefore, an instruction set typically contains instructions for loading a word from memory into a register and storing a word from a register into memory. In addition to the basic registers used to store variables, most processors have several special registers used to store variables, as well as special registers that are visible to programmers.

In processor time multiplexing, the operating system stops a running program to start another one. Each time such an interrupt occurs, the operating system must save all the processor registers so that later, when the interrupted program continues its work, they can be restored.

To increase CPU speed, their developers abandoned the simple model, when only one instruction can be read, decoded, and executed in one clock cycle. Modern processors have the ability to execute multiple instructions at the same time.

Most CPUs have two modes of operation: kernel mode and user mode. When the processor is running in kernel mode, it can execute all the instructions in the instruction set and use all the hardware's capabilities. The operating system runs in kernel mode, giving access to all hardware. In contrast, users work in user mode, which allows a subset of programs to run and makes only a subset of the hardware available.

Memory

The second main component of any computer is memory. Ideally, the memory should be as fast as possible (faster than the processing of a single instruction so that the processor does not slow down access to memory that is large enough and extremely cheap). To date, there are no technologies that meet all these requirements. Therefore, there is another approach.

The memory system is constructed as a hierarchy of layers, which are illustrated in Figure 2. As you move down the hierarchy, two parameters increase from top to bottom: access time, memory size.

The top layer consists of the CPU's internal registers, so there is no delay when accessing them. Internal registers store less than 1Kb of information. Programs can manipulate registers without hardware intervention. Access to registers is the fastest - a few nanoseconds.

The next layer is the cache memory, which is mostly controlled by the hardware. The most frequently used areas of the cache are stored in a high-speed cache located inside the CPU. When a program needs to read a word from memory, the cache chip determines whether the desired line is in the cache; if it is, then the cache is effectively accessed. Cache memory is limited in size due to its high cost. Modern machines have two or three levels of cache, each slower and larger than the last. Cache sizes range from tens of kilobytes to several megabytes. Access time is somewhat longer than for registers.


Figure 2 - Hierarchical structure of memory


This is followed by RAM (RAM - Random Acces Memory or random access memory) - the main working area of ​​\u200b\u200bthe machine's storage device. All CPU requests that cannot be fulfilled by the cache go to RAM for processing. Volumes from hundreds of megabytes to several gigabytes. The access time is tens of nanoseconds.

Next comes the magnetic disk. Disk memory is two orders of magnitude cheaper than RAM per bit and two orders of magnitude larger. The disk has one problem - random access to data on it takes about three orders of magnitude longer. The reason for the low speed of hard disk drives (HDDs) is that the drive is a mechanical structure. It consists of one or more metal plates rotating at certain speeds, such as 7200 rpm. Disk volumes are now growing rapidly, with hundreds of gigabytes of disks on sale for most users. Access time is at least 10 µs.

Tape is often used to back up HDDs or store very large datasets. Now, of course, it is rare where you can find the use of magnetic tapes, but still they have not yet fallen into disuse. The level of magnetic tape also includes CDs, DVDs and flash memory. Access time is measured in seconds.

In addition to the types described, computers have a small amount of permanent random-access memory. Unlike RAM, it does not lose its contents when the power is turned off. It is called ROM or ROM. The ROM is programmed during the manufacturing process and its contents cannot be changed afterwards. This memory is quite fast and cheap. The computer boot programs used at startup are in ROM. In addition, some I/O cards contain ROM to control low-level devices. A form of memory called CMOS is volatile. CMOS is used to store the current date, time, and configuration settings such as which hard drive to boot from. This memory draws power from the installed battery.

I/O devices

The operating system interacts with I/O devices as if they were resources. I/O devices usually consist of a controller and the device itself.

Controller - a set of chips on a board inserted into a slot, a physical control device. It accepts operating system commands (for example, instructions to read data from a device) and executes them. The actual control of the device is very complex and requires a high level of detail. Therefore, the function of the controller is to provide a simple interface to the operating system.

The next part is the device itself. Devices have fairly simple interfaces, because their capabilities are small and they need to be brought to a single standard. A single standard is needed, for example, so that each IDE disk controller (Integrated Drive Electronics) can control any IDE disk. The IDE interface is standard for drives on Pentium-based computers and other computers as well. Since the real interface of the device is hidden by the controller, the operating system sees only the interface of the controller, which can be very different from the interface of the device itself.

Since all types of controllers are different, they require different software. The program that communicates with the controller is the device driver. Each controller manufacturer must provide drivers for supported operating systems. To use a driver, it must be installed in the operating system so that it can run in kernel mode. There are three ways to install a driver into the kernel:

Relink the kernel with the new driver and then reboot the operating system (this is how many Unix operating systems work);

Create an entry in the file included in the operating system, saying that a driver is required and then reboot the system; during the initial boot, the operating system itself finds the necessary drivers and loads them (this is how Windows works);

The operating system can accept new drivers without interruption and install them quickly without the need for a reboot. This method is becoming more and more common. Devices such as USB, IEEE 1394 buses always need dynamically loaded drivers.

Data input/output can be done in three different ways.

In the simplest way, the user program issues a system request, which the kernel translates into a procedure call corresponding to the driver, then the driver starts the I/O process. At this time, it performs a short program cycle, constantly polling the device with which it works. When the I/O operations complete, the driver puts the data where it is needed and returns to its original state. The operating system then returns control to the program that made the call. This method is waiting for readiness (active waiting). It has one disadvantage: the processor must poll the device until it is finished.

The driver starts the device and asks it to issue interrupts when I/O is complete; after that, the driver returns control to the operating system, and it begins to perform other tasks. When the controller detects the end of the data transfer, it generates an interrupt about the completion of the operation. The I/O process that uses interrupts has four steps (Figure 3). In the first step, the driver sends a command to the controller, writing information to the device registers. The controller then starts the device. When the controller finishes reading or writing the number of bytes it was told to transfer, it sends a signal to the interrupt controller chip using the specified bus wires. This is step two. In the third step, if the interrupt controller is ready to handle interrupts, then it sends a signal to a certain CPU pin, informing it in this way. In the fourth step, the interrupt controller inserts the device number on the bus so that the CPU can know which device has completed.

The third method of input-output information is to use a special DMA (Direct Memory Access) controller. DMA manages the flow of bits between RAM and some controllers without intervention from the CPU. The processor accesses the DMA chip, tells it the number of bytes to transfer, as well as the device and memory address, and the direction of data transfer. Upon completion, the DMA initiates an interrupt, which is handled in the usual way.


Figure 3 - Actions taken when starting an I / O device and receiving an interrupt


Tires

Due to the increase in the speed of the processor and memory, additional buses were added to the system both to speed up the communication of I / O devices, and to transfer data between the processor and memory. Figure 4 shows a diagram of the computing system of the first Pentiums.

This system has 8 buses (cache bus, local bus, memory bus, PCI, SCSI, USB, IDE, ISA), each with its own data transfer rate and its own functions. The operating system must have information about all of these buses in order to manage the computer.

The central processor transmits data via the local bus to the PCI bridge chip, which in turn accesses the memory via a dedicated bus. The Pentium I system has a first level (L1) cache built into the processor and a much larger second level (L2) cache connected to the processor by a separate cache bus. The IDE bus is used to connect peripheral devices to the system (CD-ROM, hard drive).


Figure 4 - The structure of the Pentium system


The USB (Universal Serial Bus) bus is designed to connect additional input/output devices to the computer, such as a keyboard, mouse, printer, flash memory, etc. Over time, new faster tires appear and are added.

Andrey Robachevsky

UNIX operating system

Acknowledgment

While working on the book, I thought over the content of this pleasant section many times, each time adding to it new and new names of people, without whose help this book would hardly have seen the light of day.

First of all, this is the merit of the director of the publishing house "BHV-St. Petersburg" Vadim Sergeev and my colleague, an employee of the Vuztelecomcenter and the author of the wonderful reference book "Internet Yellow Pages. Russian Resources" Alexei Sigalov. It was they who convinced me that such a book would be useful and inspired me to take up the pen.

I am grateful to the leaders of the Vuztelekomtsentr, Vladimir Vasiliev and Sergey Khoruzhnikov, for their help and attention to the work on the book. Their support and tolerant attitude towards the fulfillment of my main duties as the development director of the Vuztelecomcenter made it possible to complete this work.

Without the help of Kirill Shchukin, the book was in danger of seeing the light of day without illustrations, which would hardly have made it any clearer. His patience and professionalism made it possible to turn vague sketches into full-fledged schemes, from which the book greatly benefited.

I have repeatedly turned to UNIX experts for advice and, above all, to my colleague Konstantin Fedorov. His valuable comments and suggestions helped me bring the book to its present form.

I would also like to express my gratitude to the specialists of OLLY, and in particular to its technical director Vitaly Kuzmichev, whose advice and consultations have had a beneficial effect on the content of this book.

I would also like to express my deep gratitude to the reviewers of this book - Head. Department of "Computer Engineering" of the St. Petersburg State Electrotechnical University, Doctor of Technical Sciences. Professor D.V. Puzankov and head. Department of "Information and Control Systems" of the St. Petersburg State Technical University, Ph.D. Professor I.G. Chernorutsky for helpful remarks.

I would also like to thank Rev. editorial staff of the publishing house "BHV-Sankt-Peterburg" Elizaveta Karonik, who was the first to read the manuscript and gave a positive verdict, for the credit of trust and coordination of work on the creation of the book. I would like to express my gratitude to Tatyana Temkina for her excellent work in editing the book. It happened that individual pages of the manuscript contained less essential material than editorial corrections, which I usually always agreed with.

I cannot but express my gratitude to my work colleagues Vladimir Parfyonov, Yuri Gugel, Yuri Kirchin, Nina Rubina, whose friendly support was so helpful.

And, of course, I would like to thank my wife and daughter for their patience and faith in the successful completion of this work. I must also apologize to them for the fact that this work has taken from me a significant part of the time that is rightfully theirs.

About the UNIX Operating System book

Dedicated to my loved ones

Appointment of the book

This book is not a replacement for reference books and various manuals on the UNIX operating system. Moreover, the information presented in the book is sometimes difficult to find in the documentation that comes with the operating system. These publications are full of practical recommendations, scrupulous descriptions of the settings of various subsystems, formats for calling commands, etc. At the same time, questions such as the internal architecture of individual system components, their interaction and principles of operation often remain behind the scenes. Without knowledge of this "anatomy", work in the operating system turns into the use of memorized commands, and inevitable errors lead to inexplicable consequences. On the other hand, UNIX administration, configuration of specific subsystems, and commands used have received much less attention in this book. The purpose of this book is to present the basic organization of the UNIX operating system. It should be borne in mind that the name UNIX denotes a significant family of operating systems, each of which has its own name and features inherent only to it. This book attempts to isolate the common elements that make up the "genotype" of UNIX, namely the basic user and programming interfaces, the purpose of the main components, their architecture and interaction, and on the basis of this to present the system as a whole. At the same time, where relevant, references to a specific version of UNIX are provided. The following operating systems were used to illustrate certain points: Solaris 2.5 from Sun Microsystems, SCO ODT 5.0 from Santa Cruz Operation, BSDi/386 from Berkeley Software Design.

The birth of this book was preceded by more than three years of lecturing on the UNIX system to third-year students at the St. Petersburg Institute of Fine Mechanics and Optics (Technical University), as well as an introductory course for UNIX users and administrators in various organizations. Most of the material of these courses is reflected in the book.

The book may be useful in preparing a number of lecture programs on the UNIX operating system and the basics of organizing operating systems in general. The material in Chapter 1 is a good basis for an introductory UNIX course. It introduces the basic concepts and organization of the operating system as a whole. This chapter also provides basic information about the user interface and the shell programming language.

Chapter 2 material can be used in programming courses. A detailed discussion of the main system calls and library functions gives a fairly complete picture of the programming interface of this operating system. The examples given illustrate the issues discussed and can be reflected in the laboratory practice.

The book can also be used as a textbook for senior students in the specialties "Informatics and Computer Engineering", "Applied Mathematics and Informatics" (in the preparation of bachelors) and in the specialty "Computers, Systems and Networks Complexes" (in the preparation of engineers). may be useful in the preparation of masters and graduate students, as well as all students specializing in computer technology. The book is also a good reference for system programmers and UNIX administrators. I hope that a closer look at the internal organization of the system will help them solve their tasks more effectively and open up new horizons for experiments.

Finally, the book may be of interest to a wide range of users who want to learn more about this operating system.

Who is this book for?

It makes no sense to understand the operating system without working with it. First of all, knowledge of the operating system, its organization and structure is necessary for the administrator, i.e. the person responsible for its maintenance and configuration. The tasks of an administrator are numerous - from user registration to network configuration, from creating system backups to performance tuning. Without understanding the fundamental structure of the operating system, the solution of all these tasks turns into memorizing commands and menu items, and emergency situations cause panic.

Knowledge of the operating system is essential for a software developer. The performance of your program depends on how efficiently the resources of the operating system are used. Without understanding the principles of operation, it is easy to get confused in the intricacies of system calls and library functions. If you are working with the kernel of the system - for example, developing a device driver - without knowledge of the system, you will not move a single step.

Finally, if you are just a user, then the knowledge of the operating system is limited to those tasks that you need to solve in the process of work. Most likely, these are several commands, and if you are working with a graphical shell, then you will not need this either. But is it so pleasant to work with a black box?

Accepted designations

System calls, library functions, shell commands are italicized in the text, such as open(2) , cat(1) or printf(3S) . The section of the electronic manual man(1) is indicated in brackets (see appendix A for a description of the manual).

Data structures, variables and internal functions of kernel subsystems, program source code, and command-line examples are printed in fixed-width font. For example, d_open(), sleep() or an example program:

In the command line examples, user input is shown in fixed-width bold font, for example:

$ passwd

Enter old password:

File names are in bold, for example /etc/passwd or .

Keyboard keys are shown in italics and enclosed in angle brackets, for example< Del >or< Ctrl >+< C >(in the latter case, the keyboard shortcut is shown).

A brief introduction to operating systems. Tutorial Petr Staschuk

(No ratings yet)

Title: Brief introduction to operating systems. Tutorial

About the book Petr Staschuk “A Brief Introduction to Operating Systems. Tutorial"

The use of computer technology cannot be effective without knowledge of modern software, which is based on operating systems and their shells. Studying the proposed theoretical course, students should get an idea about the capabilities of operating systems, their structure, principles of organization and functioning, configuration rules, etc. Working with the manual will allow students to acquire knowledge of modern operating systems at the level of a qualified user and help to consolidate practical skills in using modern software during studies and in professional activities.

For students, graduate students, university professors.

On our site about books, you can download the site for free without registration or read the online book by Petr Staschuk “A Brief Introduction to Operating Systems. Tutorial" in epub, fb2, txt, rtf, pdf formats for iPad, iPhone, Android and Kindle. The book will give you a lot of pleasant moments and a real pleasure to read. You can buy the full version from our partner. Also, here you will find the latest news from the literary world, learn the biography of your favorite authors. For novice writers, there is a separate section with useful tips and tricks, interesting articles, thanks to which you can try your hand at writing.

Quotes from the book Petr Staschuk “A Brief Introduction to Operating Systems. Tutorial"

Management of the main computer resources (processors, memory, external devices), features of the design methods used, types of hardware platforms, areas of application.

The OS protects the user from working directly with the computer hardware and provides him with a simple interface, independently solving low-level hardware management problems.

An operating system is a set of programs that manage data and execute user programs, coordinate the distribution of computer resources, and support interaction with users.

The first operating systems were batch processing systems (resident monitors).

A computing system (CS) is a complex of hardware and software designed to automate the solution of user information tasks.

OS / 2, VMS, VAX, Win32, UNIX - the reader of "Introduction to Operating Systems" by DV Irtegov will get acquainted with these operating systems. OS architecture, memory allocation, file systems, security, and more are covered in this tutorial.

The modern user, of course, is familiar with the operating systems of the Win32 family, but is unlikely to know about the existence of this family itself, he may have heard of something called Linux, but it interferes with all UNIX-like operating systems “in a heap”, without doing anything between them difference, hardly remembers such a system as OS / 2 and certainly does not know that it is she who owes the existence of the current branch of the MS Windows family. About the same extremely specific for banks and defense structures OS, like VMS, he certainly does not have the slightest idea. The Introduction to Operating Systems tutorial fills this gap in the reader's education by talking about the architecture of all these operating systems, their file systems, hardware and event handling, multitasking and transaction processing, operating system security systems, and other topics that are absolutely necessary for future specialists in the field of computer technology.

Today it is difficult to imagine a modern person who does not own a computer. And to work effectively with this technique, the user needs to understand the various file formats of Microsoft Windows. The most popular text, image and sound formats include TeX, PDF, TIFF, HTML, GIF, AVI, MPEG, JPEG, CGML, MIME, QuickTime, PNDZIP, VRML, XXE, UUE, WAVE, etc.

The book tells how files that have been compressed by various archivers are correctly decompressed, how to correctly encode and decode data. Having studied the guide "Microsoft Windows XP File Formats" (by Boris Leontiev), the reader will learn to identify the "traces" of those utilities that affected the files that got into his computer.

A distinctive feature of this textbook is a well-constructed combination of the theoretical foundations of building an operating system with examples implemented in practice. The third edition of this tutorial covers memory management algorithms in detail. The basics of message passing, interprocessor interaction are described in more detail, each of the processes is described in detail. Such concepts as semaphores, monitors, device drivers are considered. Attention is paid to the implementation of the input-output of information, the development of file systems, ensuring the protection and security of data.

Textbook E. Tanenbaum, A. Woodhull “Operating systems. Development and Implementation” is additionally equipped with a CD containing the source code of a working UNIX-compatible MINIX OS. This makes it possible to examine in detail in practice the features of the operation of each of its components and the operating system as a whole.

The publication, intended for those interested in modern software development and the development of Microsoft products, talks about applications on the 2003 platform. The information was collected by Yu. Kuptsevich "first hand" - "Programmer's Almanac" was created on the basis of magazines authored by the developers themselves and testers of the applications under discussion .

This textbook is already in its second edition and is officially recommended by the Russian Ministry of Education as a textbook. It consistently talks about the structure of UNIX systems - their architecture, interfaces, subroutines, interaction with hardware and networking. The book "The UNIX Operating System" by Robachevsky and Nemnyugin has been updated in accordance with the requirements of the time and will be useful to professional programmers and system administrators.

The publication is devoted to the basic mechanisms of the Windows operating system. The book covers all stages of performing operations, starting with accessing a processor register and ending with displaying a graphical interface message on the screen. Much attention is paid to the transitions of the system from one mode to another, the reasons for the appearance of "blue screens of death", the features of the NTFS file system. Russinovich's book "Microsoft Windows Internals: Windows Server 2003, Windows XP, Windows 2000. Master Class" is a collection of information that is most useful for system administrators of large organizations and employees of service centers.

This textbook was created by teachers of the St. Petersburg State University of Aerospace Instrumentation based on the materials of the course of the same name. The book is distinguished by volume and versatility - it includes consideration of issues from the simplest, in particular, from the basic concepts of system programming, to quite complex ones. For example, to the features of the microarchitecture of x86 processors. Compliance with the state standard makes it possible to use Gordeev and Molchanov's "System Software" as a guide for preparing for knowledge tests. However, the main value of the book lies in its usefulness in the practical activities of a system administrator or programmer.

The book describes the features and vulnerabilities of the Windows 2000 system, which are little known and rarely used. It consists of several large chapters designed to improve the skills of professionals, and appendices with lists of Kernel Debugger commands, kernel API functions, and elements of OS routines. In Undocumented Features of Windows 2000, Sven Schreiber talks about working with the Native API, using the Windows 2000 debugging mechanisms and exploring its memory, accessing the system kernel from user mode, developing kernel mode drivers, and much more. So the book will be useful for professionals who want to create the most effective applications and who are ready to understand the works of Microsoft at an extremely deep level.

Written by a professional developer, the Windows Embedded reference and tutorial will be useful not only for beginners, but also for professional programmers, as it contains a wide range of practical information - from "newbie tips" to the author's professional secrets.

Microsoft Windows Embedded 2009 is the most stable and widespread of all embedded Windows systems today, based on Windows XP. For all its similarities with XP, it nevertheless differs enough from its progenitor that the study of programming for it requires a separate study. Stanislav Pavlov's book "Fundamentals of Windows Embedded Standard 2009" covers not only the technical issues facing a Windows Embedded software developer, but also other practical information, which the author of the textbook writes about based on personal professional experience.

The manual will be useful both for novice developers - subject to the consistent development of the material chapter by chapter, and for professional programmers who will find a lot of useful reference information here. Experienced developers will also benefit from the author's professional advice, which is also supported by "live" practical examples.

Devoted more to the concept of operating systems as such than to any particular operating system, this textbook is intended for undergraduate and graduate students studying computer science rather than programming per se.

Approved by the Ministry of Education, this book is intended for students majoring in Computer Science and Computer Engineering as a textbook in the subject of "Operating Systems" and graduate students involved in the theoretical side of computer science in its original sense, that is, "the science of information processing." Here you will not find information about assembling the system kernel for a specific processor, setting up video card modes or optimizing the file system, managing user and group roles - unlike many workshops and reference books dedicated to Windows or Unix, this tutorial is considered from a purely theoretical point of view on the concept of operating systems as such. The fundamental principles of OS construction discussed in this book are valid for almost all operating systems that exist today.

For practicing IT specialists, the textbook "Network Operating Systems" by Natalia and Victor Olifer can also be useful as a source of "academic" knowledge when interviewing in companies where they primarily focus on the academic nature of formal education, rather than on the practical skills of applicants.

Downloads: 8365

The most famous of all operating systems today is undoubtedly the Windows family of Microsoft Corporation. However, despite its popularity, Windows is not the first and not the only operating system in the world.


28.04.2014
Nathan Wallace, Anthony Sequeira - Windows® 2000 Registry

Downloads: 596

First and foremost, we'd like to thank Charlotte Carpentier, Acquisitions Editor at Coriolis. Also, special thanks to Greg Balas, who served as Project Editor, and Peggy Cantrell, who served as the Production Coordinator for the book.


27.04.2014
A. Chekmarev - Windows 7 Administrator's Guide

Downloads: 12818

The Microsoft Windows 7 Operating System Guide is aimed at advanced users and network administrators. Numerous features of all editions of Windows 7 are revealed, all aspects of using the system are considered in detail: from installation to recovery methods.


27.04.2014
M. Russinovich - Internals of Microsoft Windows

Downloads: 9066

The sixth edition of this legendary book is devoted to the internal structure and algorithms of the main components of the Microsoft Windows 7 operating system, as well as Windows Server 2008 R2.


17.04.2014
Richard Simon - Microsoft Windows API. Systems Programmer's Handbook

Downloads: 8967

Operating systems of the Windows family have transferred to a completely new qualitative level the methodology for developing application applications that run under the control of these operating systems. Despite the abundance of powerful programming tools, knowledge of the Programmed Application Interface (API) - the basis of all fundamentals - is the key to writing programs that can take a worthy position in the market.


17.04.2014
Arnold Robbins, Elbert Hannah, and Linda Lamb-Learning the vi and Vim Editors. 7th ed.

Downloads: 799

There"s nothing that hard-core Unix and Linux users are more fanatical about than their text editor. Editors are the subject of adoration and worship, or of scorn and ridicule, depending upon whether the topic of discussion is your editor or someone else" s. vi has been the standard editor for close to 30 years. Popular on Unix and Linux, it has a growing following on Windows systems, too. Most experienced system administrators citevi as their tool of choice. And since 1986, this book has been the guide for vi.