34
System software – System software – history, review and basic history, review and basic problems. problems. Piotr Mielecki Ph. D. Piotr Mielecki Ph. D. Introduction to Computer Introduction to Computer Systems Systems (6) (6) [email protected] [email protected] http://www.wssk.wroc.pl/~mielecki

System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) [email protected] [email protected]

Embed Size (px)

Citation preview

Page 1: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

System software – history, review System software – history, review and basic problems.and basic problems.

Piotr Mielecki Ph. D.Piotr Mielecki Ph. D.

Introduction to Computer SystemsIntroduction to Computer Systems (6)(6)

[email protected]

[email protected]

http://www.wssk.wroc.pl/~mielecki

Page 2: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

1.1. Operating systems.Operating systems.

The operating system (OSThe operating system (OS)) is the piece of software which is the piece of software which provides provides the basic interface between the user of the Computer System and the basic interface between the user of the Computer System and the hardwarethe hardware (and any other, like communication system, for (and any other, like communication system, for example) resources. In other words it manages the sharing of the example) resources. In other words it manages the sharing of the different resources of a Computer System and provides different resources of a Computer System and provides programmers with an interface used to access these resources.programmers with an interface used to access these resources.

In fact there’s no universally accepted definition of the operating In fact there’s no universally accepted definition of the operating system. The good approximation can be “system. The good approximation can be “everything a vendor ships everything a vendor ships when you order an operating systemwhen you order an operating system”, but it varies widely. Another ”, but it varies widely. Another approximation can be “approximation can be “the only program which is running at all the only program which is running at all times on computertimes on computer”, but this fits to the most basic module of the OS ”, but this fits to the most basic module of the OS – the – the kernelkernel rather. Everything else from that point of view is a rather. Everything else from that point of view is a system program (when shipped with an operating system) or an system program (when shipped with an operating system) or an application program.application program.

1.1. Definitions.1.1. Definitions.

Page 3: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

1.1. Operating systems.Operating systems.

The operating system (OSThe operating system (OS)) is the piece of software which is the piece of software which provides provides the basic interface between the user of the Computer System and the basic interface between the user of the Computer System and the hardwarethe hardware (and any other, like communication system, for (and any other, like communication system, for example) resources. In other words it manages the sharing of the example) resources. In other words it manages the sharing of the different resources of a Computer System and provides different resources of a Computer System and provides programmers with an interface used to access these resources.programmers with an interface used to access these resources.

In fact there’s no universally accepted definition of the operating In fact there’s no universally accepted definition of the operating system. The good approximation can be “system. The good approximation can be “everything a vendor ships everything a vendor ships when you order an operating systemwhen you order an operating system”, but it varies widely. Another ”, but it varies widely. Another approximation can be “approximation can be “the only program which is running at all the only program which is running at all times on computertimes on computer”, but this fits to the most basic module of the OS ”, but this fits to the most basic module of the OS – the – the kernelkernel rather. Everything else from that point of view is a rather. Everything else from that point of view is a system program (when shipped with an operating system) or an system program (when shipped with an operating system) or an application program.application program.

1.1. Definitions.1.1. Definitions.

Page 4: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

More precisely we can say, what the operating system is:More precisely we can say, what the operating system is:

The resource allocator The resource allocator – manages all resources, decides between – manages all resources, decides between conflicting requests for efficient and safe resource use.conflicting requests for efficient and safe resource use.

The control program The control program – controls the execution of programs – controls the execution of programs (running program is considered as object called the process) to (running program is considered as object called the process) to prevent errors and improper use of the computer.prevent errors and improper use of the computer.

Page 5: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

The first function which the Computer System needs to have The first function which the Computer System needs to have implemented in software is implemented in software is support for it’s startupsupport for it’s startup. The software . The software used for this purpose is usually called the used for this purpose is usually called the bootstrap loaderbootstrap loader and in and in most of cases is stored in the ROM or EPROM memory. In the PC-like most of cases is stored in the ROM or EPROM memory. In the PC-like computers bootstrap loader seeks for the first available sector (first computers bootstrap loader seeks for the first available sector (first 512 bytes – 512 bytes – boot sectorboot sector) on first mass-storage device, loads it’s ) on first mass-storage device, loads it’s contents to the RAM memory and starts it up. All further operations contents to the RAM memory and starts it up. All further operations (i.e. loading of the OS kernel and so on) are initialized by this (i.e. loading of the OS kernel and so on) are initialized by this start-start-up codeup code..

The ROM memory (the The ROM memory (the firmware firmware of the PC’s mainboard and other of the PC’s mainboard and other components) keeps not only the components) keeps not only the bootstrap loaderbootstrap loader, but also the , but also the simple, basic functions provided to make use of physical devices like simple, basic functions provided to make use of physical devices like disks, display adapters, keyboard, serial and parallel ports etc. The disks, display adapters, keyboard, serial and parallel ports etc. The programmer’s interface to these functions is organized as a set of programmer’s interface to these functions is organized as a set of interrupt handlersinterrupt handlers (called by the (called by the INT <number_of_interrupt>INT <number_of_interrupt> assembly-level instruction assembly-level instruction oror invoked by hardware interrupts). invoked by hardware interrupts).

1.2. Basic functions1.2. Basic functions and services of the operatingand services of the operating system.system.

1.2.1. Computer startup and I/O access.1.2.1. Computer startup and I/O access.

Page 6: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

Using them the programmer can perform such operations like Using them the programmer can perform such operations like reading one character from the keyboard, sending one or more reading one character from the keyboard, sending one or more characters to text display, read/write the sector or set of sectors characters to text display, read/write the sector or set of sectors from/to the disk device etc. These functions and the utility which from/to the disk device etc. These functions and the utility which makes possible to set the basic parameters for hardware (access makes possible to set the basic parameters for hardware (access modes for hard disks, boot devices priority, system bus clock modes for hard disks, boot devices priority, system bus clock frequency and many others) are included in the frequency and many others) are included in the Basic InputBasic Input // Output Output System (BIOS)System (BIOS)..

To make use of enhanced features of some devices (like hardware To make use of enhanced features of some devices (like hardware 2D / 3D graphic acceleration in display adapters, for example) the 2D / 3D graphic acceleration in display adapters, for example) the particular operating system doesn’t use the BIOS functions rather. It particular operating system doesn’t use the BIOS functions rather. It has its own has its own driversdrivers (procedures included into the kernel) instead. (procedures included into the kernel) instead.

Theoretically the drivers should be compiled and linked directly to Theoretically the drivers should be compiled and linked directly to the kernel binary code, but this method is not flexible enough – we the kernel binary code, but this method is not flexible enough – we would have to recompile the kernel each time when any new device would have to recompile the kernel each time when any new device driver was installed. The kernels of most of today’s operating driver was installed. The kernels of most of today’s operating systems (like Windows or Linux, for example) are able to systems (like Windows or Linux, for example) are able to link the link the drivers dynamically as external modulesdrivers dynamically as external modules..

Page 7: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

1.2.1.2.22. Process management.. Process management.

The process means “The process means “the program which is runningthe program which is running”. This kind of ”. This kind of object is much more sophisticated than just the binary code or disk object is much more sophisticated than just the binary code or disk file including this code. file including this code. We can imagine the process as the object We can imagine the process as the object with the set of features (attributes), which values are dynamically with the set of features (attributes), which values are dynamically changing during the executionchanging during the execution. The most important attributes are:. The most important attributes are:

The value stored in the Program Counter CPU’s registerThe value stored in the Program Counter CPU’s register..

The values in other CPU’s internal registers, including Status The values in other CPU’s internal registers, including Status Register (flags) first of allRegister (flags) first of all..

The contents of the memory blocks associated with the process The contents of the memory blocks associated with the process (code, data, stack).(code, data, stack).

Status of InputStatus of Input // Output operations performed by process.Output operations performed by process.

In very simple, non-multitasking operating systems (like CP/M or MS-In very simple, non-multitasking operating systems (like CP/M or MS-DOS, for example) only one program could be executed (from the DOS, for example) only one program could be executed (from the beginning to the end). So the operating system didn’t have to keep beginning to the end). So the operating system didn’t have to keep track to the process’s status and record the values of the process’s track to the process’s status and record the values of the process’s features at any moment. features at any moment.

Page 8: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

Most of today’s operating systems can process more than one Most of today’s operating systems can process more than one program using program using time-sharing multitaskingtime-sharing multitasking method. That means each method. That means each process is sometimes interrupted (“process is sometimes interrupted (“frozenfrozen”) for a while to deliver the ”) for a while to deliver the CPU time for another process. So the OS has to record the values of CPU time for another process. So the OS has to record the values of all features of stopped process (in the structure called all features of stopped process (in the structure called Process Process Control Block – PCBControl Block – PCB) to revive this process after some time. In ) to revive this process after some time. In general, the process during its life-time changes the stategeneral, the process during its life-time changes the state::

NEW

READY RUNNING

WAITING

TERMINATING

Admission

Interrupt

Scheduler dispatchExit

I/O event waitI/O event completion

Page 9: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

As the process executes, it passes trough the following states:As the process executes, it passes trough the following states:

NewNew – the process is being created: the structure which defines the – the process is being created: the structure which defines the process (PCB) is created, the OS module called process (PCB) is created, the OS module called Long Time SchedulerLong Time Scheduler checks the resources needed and admits the newly created process to checks the resources needed and admits the newly created process to the the queue of processes ready for executionqueue of processes ready for execution (but none of the instructions (but none of the instructions belonging to this process is executed yet).belonging to this process is executed yet).

ReadyReady – the process waits for CPU in the – the process waits for CPU in the queue of ready processesqueue of ready processes and is and is ready to run. The OS module called ready to run. The OS module called Short Time SchedulerShort Time Scheduler decides when decides when interrupt the process currently executed and start next process from the interrupt the process currently executed and start next process from the queue. The module called queue. The module called DispatcherDispatcher is responsible for performing all is responsible for performing all operations needed to freeze one process and start the other one.operations needed to freeze one process and start the other one.

RunningRunning – instructions of the process are being executed to the moment – instructions of the process are being executed to the moment of interrupt caused by of interrupt caused by Short Time Scheduler or I/O requestShort Time Scheduler or I/O request raised by raised by process itself.process itself.

WaitingWaiting – the process is waiting for particular I/O event (in the – the process is waiting for particular I/O event (in the I/O queueI/O queue). ). After servicing the I/O operation process goes to the queue of ready After servicing the I/O operation process goes to the queue of ready processes.processes.

Terminated Terminated – the process has finished the execution. OS frees resources – the process has finished the execution. OS frees resources used by process, deletes its PCB block and eventually other system used by process, deletes its PCB block and eventually other system variables associated with this process and finally the process finishes its variables associated with this process and finally the process finishes its life cycle (disappears from the system).life cycle (disappears from the system).

Page 10: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

Two main classes of processes can be distinguished as far as their Two main classes of processes can be distinguished as far as their behavior during the life-cycle is concerned:behavior during the life-cycle is concerned:

CPU oriented CPU oriented – processes which are performing lots of – processes which are performing lots of mathematical (and other) CPU operations and mathematical (and other) CPU operations and don’t need don’t need frequently I/O accessesfrequently I/O accesses (interaction with user, for example). The (interaction with user, for example). The Short Time Scheduler first of all is responsible for fair switching Short Time Scheduler first of all is responsible for fair switching the CPU between processesthe CPU between processes of this kind to reach smooth of this kind to reach smooth multitasking.multitasking.

I/O oriented I/O oriented – processes which are performing – processes which are performing lots of I/O lots of I/O operationsoperations and usually and usually don’t need to wait for Short Time don’t need to wait for Short Time Scheduler to decide to interrupt themScheduler to decide to interrupt them. They are spending most . They are spending most of their time in the I/O queue waiting for events raised by user of their time in the I/O queue waiting for events raised by user (mouse move or click, keyboard input etc.) or other processes (mouse move or click, keyboard input etc.) or other processes (data transmission, mass-storage operations etc.). This is typical (data transmission, mass-storage operations etc.). This is typical for common applications like word processors, graphical editors, for common applications like word processors, graphical editors, games, web browsers etc.games, web browsers etc.

Page 11: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

1.2.1.2.33. Memory management.. Memory management.

The The virtual memoryvirtual memory used in today’s operating systems provides used in today’s operating systems provides logical RAM space much larger than physical memory installed in the logical RAM space much larger than physical memory installed in the computer. The mechanisms used to implement the virtual memory computer. The mechanisms used to implement the virtual memory (segmentation, protection, pagination, swapping) need support from (segmentation, protection, pagination, swapping) need support from hardware and system software as well. We can consider that:hardware and system software as well. We can consider that:

The CPU hardware can The CPU hardware can support translationsupport translation from logical (virtual) from logical (virtual) address used by program to physical address sent to system address used by program to physical address sent to system Address Bus.Address Bus.

The appropriate data structures (page tables, first of all) have to The appropriate data structures (page tables, first of all) have to be initiated and serviced by operating system routines.be initiated and serviced by operating system routines.

The CPU hardware can The CPU hardware can detectdetect the situations, when the logical the situations, when the logical address is not correct or not suitable to translate to hardware address is not correct or not suitable to translate to hardware address at the moment. address at the moment.

Page 12: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

These events for the Intel x86 family of processors, for example, can These events for the Intel x86 family of processors, for example, can be divided into three groups:be divided into three groups:

The virtual address points The virtual address points outside of the memory space (segment) outside of the memory space (segment) allocated for the processallocated for the process – this is called the – this is called the segmentation faultsegmentation fault or or protection faultprotection fault. This way the memory is protected against illegal use by . This way the memory is protected against illegal use by the unauthorized process, so the unauthorized process, so one process cannot access the memory one process cannot access the memory block which belongs to the other processblock which belongs to the other process. The OS has to make decision, . The OS has to make decision, what to do with the process which caused this kind of error (in fact the what to do with the process which caused this kind of error (in fact the only well decision is to abort this process).only well decision is to abort this process).

The address is correct as far as range (segment), but points to the The address is correct as far as range (segment), but points to the page page not present in the page table(s)not present in the page table(s). This event is called a . This event is called a pagination faultpagination fault and is also a serious system error (the page table is not serviced and is also a serious system error (the page table is not serviced correctly), so the process should be aborted.correctly), so the process should be aborted.

The logical address is correct, but the appropriate The logical address is correct, but the appropriate page is not loaded into page is not loaded into physical memory right nowphysical memory right now (doesn’t have the physical frame associated – (doesn’t have the physical frame associated – the virtual address has “missed” the physical frame). the virtual address has “missed” the physical frame). This is not a critical This is not a critical error. error. In this case the OS should perform the swapping routine, freeing In this case the OS should perform the swapping routine, freeing the frame occupied by another page in most of cases and filling it with the frame occupied by another page in most of cases and filling it with the contents of requested page (read from mass-storage). the contents of requested page (read from mass-storage).

Page 13: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

The OS routines, implemented in the kernel to support virtual The OS routines, implemented in the kernel to support virtual memory subsystem, are usually memory subsystem, are usually triggeredtriggered by signals by signals (internally (internally generated interrupts), generated interrupts), raised by CPU raised by CPU and called and called exceptionsexceptions..

Of course the CPU itself cannot manage the swap area in the mass-Of course the CPU itself cannot manage the swap area in the mass-storage to exchange the pages. The routine invoked by the CPU storage to exchange the pages. The routine invoked by the CPU (implemented by the authors of particular OS for the “(implemented by the authors of particular OS for the “missed frame missed frame exceptionexception”) at the end returns back to the instruction which caused ”) at the end returns back to the instruction which caused the exception – this time the page is mapped to physical frame, so the exception – this time the page is mapped to physical frame, so the process should go on.the process should go on.

Page 14: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

1.2.1.2.44. Mass storage and file system management.. Mass storage and file system management.

The more detailed characteristic of the mass-storage and on-line file The more detailed characteristic of the mass-storage and on-line file systems was given in the Lecture 5. The BIOS and drivers in the OS systems was given in the Lecture 5. The BIOS and drivers in the OS kernel are responsible for kernel are responsible for low-level interface low-level interface to different mass-to different mass-storage devices (ATAPI/SATA or SCSI/SAS hard disks and CD/DVD storage devices (ATAPI/SATA or SCSI/SAS hard disks and CD/DVD drives, flash drives etc.). Upper level mass-storage access is possible drives, flash drives etc.). Upper level mass-storage access is possible with with the file systems the file systems (like NTFS for Windows hard disks, FAT-12 for (like NTFS for Windows hard disks, FAT-12 for floppies, ISO-9660 or UDF for CD and DVD-ROMs etc.) serviced by floppies, ISO-9660 or UDF for CD and DVD-ROMs etc.) serviced by the other kernel modulesthe other kernel modules..

File systems may provide File systems may provide journalingjournaling, which supports safe recovery in , which supports safe recovery in the event of a system crash. A the event of a system crash. A journaledjournaled file system (like ext3 in file system (like ext3 in Linux, for example) writes information twice: first to the journal, Linux, for example) writes information twice: first to the journal, which is a log of file system operations, then to its proper place in which is a log of file system operations, then to its proper place in the ordinary file system. In the event of a crash, the system can the ordinary file system. In the event of a crash, the system can recover to a consistent state (recover to a consistent state (roll-backroll-back the transaction the transaction) by replaying ) by replaying a portion of the journal. In contrast, a portion of the journal. In contrast, non-journaled non-journaled file systems file systems typically need to be examined in their entirety by a utility such as typically need to be examined in their entirety by a utility such as fsckfsck (UNIX / Linux) or (UNIX / Linux) or chkdskchkdsk (Windows). (Windows).

Page 15: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

Some features implemented in the file system may support the Some features implemented in the file system may support the security managementsecurity management in the operating system. For example all in the operating system. For example all UNIX / Linux compatible file systems (like ext3, for example) can UNIX / Linux compatible file systems (like ext3, for example) can recognize recognize the owner of each filethe owner of each file (more detailed: the single user who (more detailed: the single user who is the owner of the file and the group which also can be the owner) is the owner of the file and the group which also can be the owner) and the rights which the individual owner, the group and any other and the rights which the individual owner, the group and any other user have to this fileuser have to this file..

Page 16: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

1.2.1.2.55. I/O resources management.. I/O resources management.

Although the disk drives are the examples of the I/O devices, their Although the disk drives are the examples of the I/O devices, their importance for the operating system (as a secondary-level storage importance for the operating system (as a secondary-level storage system) gives them a privileged position.system) gives them a privileged position.

The other I/O devices (like communication ports, display adapters, The other I/O devices (like communication ports, display adapters, printers, multimedia etc.) can be considered as general I/O resources printers, multimedia etc.) can be considered as general I/O resources of the system. of the system. The processes, especially the I/O oriented The processes, especially the I/O oriented (interactive) ones, are frequently requesting different operations(interactive) ones, are frequently requesting different operations from these resources. from these resources. Some of them are very simple events (like Some of them are very simple events (like moving the mouse, pressing the key on keyboard etc.) some are moving the mouse, pressing the key on keyboard etc.) some are more complicated tasks (like printing the document, sending the more complicated tasks (like printing the document, sending the message to other process, recording the CD-RW disc etc.).message to other process, recording the CD-RW disc etc.).

Page 17: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

OS kernel, managing these requests, uses the following schema:OS kernel, managing these requests, uses the following schema:

The The requestrequest of the process is of the process is registered and queued in the I/O registered and queued in the I/O queuequeue (FIFO, for example) mapped to the particular device. The (FIFO, for example) mapped to the particular device. The process is interrupted (that means the CPU can be given to process is interrupted (that means the CPU can be given to another process), but it doesn’t free other resources possessed another process), but it doesn’t free other resources possessed (memory blocks first of all). So the process is in the Waiting (memory blocks first of all). So the process is in the Waiting statestate..

When the device becomes accessible for the particular process When the device becomes accessible for the particular process (the event for the process was waiting occurs), the (the event for the process was waiting occurs), the request of request of the process is serviced by the system I/O routinethe process is serviced by the system I/O routine (some data is (some data is read from disk to memory buffer, for example).read from disk to memory buffer, for example).

After After completioncompletion of the I/O operation of the I/O operation process is moved to the process is moved to the queue or Ready processesqueue or Ready processes, where it must wait for its turn to , where it must wait for its turn to access the CPU (pointed by Short Time Scheduler). The waiting access the CPU (pointed by Short Time Scheduler). The waiting processes, in most of cases, temporarily loose their resources processes, in most of cases, temporarily loose their resources (memory pages mainly) to make them accessible for running (memory pages mainly) to make them accessible for running processes.processes.

Page 18: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

Some I/O devices can be Some I/O devices can be accessed by many processes accessed by many processes simultaneouslysimultaneously. When reading files from hard disk or CD-ROM, for . When reading files from hard disk or CD-ROM, for example, several processes can request different allocation blocks example, several processes can request different allocation blocks mapped to different files. The OS queues and services each mapped to different files. The OS queues and services each allocation block (not the entire file) request separately, so we can allocation block (not the entire file) request separately, so we can consider many file I/O operations being performed simultaneously.consider many file I/O operations being performed simultaneously.

Some other devices have to be accessed in the Some other devices have to be accessed in the exclusiveexclusive mode only. mode only. When printing the document or burning the CD or DVD disk, for When printing the document or burning the CD or DVD disk, for example, the example, the entire jobentire job (not just printing one character, for example) (not just printing one character, for example) must be finished before device can start another one. must be finished before device can start another one.

Page 19: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

1.2.1.2.66. User interface.. User interface.

Since the computers became very popular and easy accessible Since the computers became very popular and easy accessible devices, used everyday by millions of people, the problem of devices, used everyday by millions of people, the problem of intuitive, easy to use intuitive, easy to use environmentenvironment for user has become one of the for user has become one of the most important. Simple and costless most important. Simple and costless text-orientedtext-oriented user interfaces user interfaces (based on the set of commands interpreted by the (based on the set of commands interpreted by the shellshell or or Command Command Line Interpreter – CLILine Interpreter – CLI) are still frequently used by administrators of ) are still frequently used by administrators of the UNIX-based systems, for example. The main advantage of text the UNIX-based systems, for example. The main advantage of text shells is that they don’t require fast network connections to work shells is that they don’t require fast network connections to work with remote systems, sometimes localized very far from the with remote systems, sometimes localized very far from the administrator’s office.administrator’s office.

Common today’s computer users don’t accept this kind of interface. Common today’s computer users don’t accept this kind of interface. They are familiar with graphical environments rather (They are familiar with graphical environments rather (Graphical User Graphical User InterfaceInterface – GUI– GUI), invented by Xerox in mid-1960-ties and introduced ), invented by Xerox in mid-1960-ties and introduced first time to home and desktop computers in early 1980-ties by first time to home and desktop computers in early 1980-ties by Apple (first Macintosh), Commodore (Amiga) and Atari (ST-series).Apple (first Macintosh), Commodore (Amiga) and Atari (ST-series).

Page 20: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

Most popular interface of this kind has actually the family of Most popular interface of this kind has actually the family of Microsoft WindowsMicrosoft Windows operating systems operating systems::

The history of these systems started with the The history of these systems started with the graphical overlaygraphical overlay for MS-DOS, which also supported the virtual memory and poor for MS-DOS, which also supported the virtual memory and poor multitasking by replacing some functions of underlying MS-DOS multitasking by replacing some functions of underlying MS-DOS system.system.

First stable and popular versions of Windows were 3.10 and 3.11 First stable and popular versions of Windows were 3.10 and 3.11 (with network support).(with network support).

Starting with the Windows 95 the MS-DOS as separate OS was Starting with the Windows 95 the MS-DOS as separate OS was not needed (it was embedded in Windows 95 as the “MS-DOS not needed (it was embedded in Windows 95 as the “MS-DOS 7.0”). But up to the version 98 ME this line of Microsoft systems 7.0”). But up to the version 98 ME this line of Microsoft systems suffered from many disadvantages coming from the underlying, suffered from many disadvantages coming from the underlying, 16-bit MS-DOS kernel.16-bit MS-DOS kernel.

The other, quite different as far as kernel architecture is The other, quite different as far as kernel architecture is concerned (but with nearly identical graphic layout), family of concerned (but with nearly identical graphic layout), family of Windows systems are those based on Windows systems are those based on NTNT (New Technology) (New Technology) architecture. Today’s systems like Windows XP, Windows Vista or architecture. Today’s systems like Windows XP, Windows Vista or Windows 2003 server are all based on this kernel. The Windows 2003 server are all based on this kernel. The manufacturer is developing new concepts as far as GUI itself manufacturer is developing new concepts as far as GUI itself mostly and some other aspects (security, for example).mostly and some other aspects (security, for example).

Page 21: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

Different approach to the implementation of GUI is the Different approach to the implementation of GUI is the client-server client-server X-11 protocolX-11 protocol, used in UNIX / Linux family of operating systems , used in UNIX / Linux family of operating systems (including Mac OS X(including Mac OS X,, based on BSD UNIX operating system), based on BSD UNIX operating system), providing modular providing modular X-WindowX-Window graphical environment. graphical environment.

In this principle the machine which displays the graphics and In this principle the machine which displays the graphics and services all user’s I/O (mouse, keyboard) is the server (services all user’s I/O (mouse, keyboard) is the server (X-serverX-server), ), while the machine (remote sometimes) on which the applications are while the machine (remote sometimes) on which the applications are running is the client.running is the client.

The program which can attach our machine to remote UNIX host The program which can attach our machine to remote UNIX host (with X-11 services installed) and provide us with graphical (with X-11 services installed) and provide us with graphical environment is called environment is called X-terminalX-terminal. The X-terminal can be the MS-. The X-terminal can be the MS-Windows application, for example. So we can say that the UNIX GUI Windows application, for example. So we can say that the UNIX GUI concept is much more flexible (and complicated) form the one used concept is much more flexible (and complicated) form the one used in Windows. Different graphical environments based on this concept in Windows. Different graphical environments based on this concept (like (like GnomeGnome, , KDEKDE or or AquaAqua) are today very “Windows-like” in most of ) are today very “Windows-like” in most of cases.cases.

Page 22: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

The advanced, sophisticated GUI environments have also many The advanced, sophisticated GUI environments have also many additional functions. For exampleadditional functions. For example::

Support for scalable fonts, installed at the system level and Support for scalable fonts, installed at the system level and accessible for all applications (like TrueType in Windows).accessible for all applications (like TrueType in Windows).

Support for different national languages (localization).Support for different national languages (localization).

System-level implementation of multimedia (graphic and sound) System-level implementation of multimedia (graphic and sound) support (virtual devices called “support (virtual devices called “CodecsCodecs” – Encoder / Decoder).” – Encoder / Decoder).

System-level mechanisms like System-level mechanisms like Trash-canTrash-can, , ClipboardClipboard..

Mechanisms for interchanging data objects between the different Mechanisms for interchanging data objects between the different applications, like applications, like OLEOLE ( (Object Linking and EmbeddingObject Linking and Embedding) for ) for example.example.

Page 23: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

1.2.1.2.77. Communication.. Communication.

Today the most well-known method of communication between the Today the most well-known method of communication between the two different processes (running on two different machines in most two different processes (running on two different machines in most of cases) is using the network protocol (TCP/IP, for example). The of cases) is using the network protocol (TCP/IP, for example). The communication itself consists of two basic operationscommunication itself consists of two basic operations::

SendingSending the message to the desired destination address ( the message to the desired destination address (the the process pointed by its unique number/identifier or “mailbox”process pointed by its unique number/identifier or “mailbox”, , which is seen by all the processes which are allowed to which is seen by all the processes which are allowed to communicate).communicate).

ReceivingReceiving the message from the explicitly pointed process or the message from the explicitly pointed process or from the common “mailbox”.from the common “mailbox”.

In the TCP/IP stack of protocols concept the “mailbox” is In the TCP/IP stack of protocols concept the “mailbox” is implemented by a combination of network address of the machine implemented by a combination of network address of the machine (IP number, 192.168.0.1 for example) and the number of internal (IP number, 192.168.0.1 for example) and the number of internal portport mapped exactly to particular “mailbox” on this host (80 for mapped exactly to particular “mailbox” on this host (80 for HTTP service, for example). This combination is called a HTTP service, for example). This combination is called a socketsocket. The . The sending and receiving operations (after initialization of the sockets) sending and receiving operations (after initialization of the sockets) are very similar to common file writes and reads.are very similar to common file writes and reads.

Page 24: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

Although the TCP/IP protocol is very flexible method of Although the TCP/IP protocol is very flexible method of communication, there were many different ideas before it was communication, there were many different ideas before it was designed and implemented. The simplest way we can imagine to designed and implemented. The simplest way we can imagine to pass some data (the message) from one process to another is pass some data (the message) from one process to another is using using the same disk filethe same disk file by two or more running programs as a common by two or more running programs as a common area of communicationarea of communication. We can do so on local system rather, unless . We can do so on local system rather, unless the shared file is localized on shareable or remote file system (on file the shared file is localized on shareable or remote file system (on file server’s volume, for example). The other disadvantage is need for server’s volume, for example). The other disadvantage is need for mass-storage access, which slows-down the communication.mass-storage access, which slows-down the communication.

Other “local” method is Other “local” method is using the same operational memory block as using the same operational memory block as a common area of communicationa common area of communication. In UNIX-like operting systems this . In UNIX-like operting systems this method is one of the most popular and very fast. The OS provides method is one of the most popular and very fast. The OS provides programmers with all Application Programmers Interface (API) programmers with all Application Programmers Interface (API) functions (accessible in C language) needed to attach and detach functions (accessible in C language) needed to attach and detach the the Shared MemoryShared Memory block to/from the process. This technique is one block to/from the process. This technique is one of the methods included in of the methods included in Inter Process Communication (IPC)Inter Process Communication (IPC) subsystem in UNIX / Linux systems.subsystem in UNIX / Linux systems.

Page 25: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

The disadvantage of the common area of communication (like The disadvantage of the common area of communication (like shared file or memory block) is a shared file or memory block) is a synchronization problemsynchronization problem: if more : if more than one process wants to write data to the same place, the result than one process wants to write data to the same place, the result may be not predictable (the may be not predictable (the race effectrace effect). This problem can be solved ). This problem can be solved with the help of with the help of semaphoressemaphores (the “locks” which can be closed or (the “locks” which can be closed or opened by the process before or after any operation on shared opened by the process before or after any operation on shared area). The semaphores are also implemented in standard IPC area). The semaphores are also implemented in standard IPC subsystem for UNIX / Linux and can be used together with Shared subsystem for UNIX / Linux and can be used together with Shared Memory to establish a stable, synchronized and fast communication Memory to establish a stable, synchronized and fast communication between many processes.between many processes.

Easier to use (simple synchronization) way of passing the message is Easier to use (simple synchronization) way of passing the message is to to put the message into the pipeput the message into the pipe: since one process drops the entire : since one process drops the entire message to the pipe, it can be catch by other process. The sender message to the pipe, it can be catch by other process. The sender can send many messages and doesn’t need to wait for receiver can send many messages and doesn’t need to wait for receiver (messages are queued). In the simplest version in UNIX-like systems (messages are queued). In the simplest version in UNIX-like systems (unnamed pipes) only the related processes (sharing some common (unnamed pipes) only the related processes (sharing some common values of variables – handles to the pipe) can use the same pipe. values of variables – handles to the pipe) can use the same pipe.

Page 26: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

The more flexible technique called The more flexible technique called named pipesnamed pipes (of (of FIFO queuesFIFO queues in in UNIX-like systems) works the same way, but UNIX-like systems) works the same way, but the pipe can be the pipe can be recognized “outside” the process which has created it recognized “outside” the process which has created it – as an object – as an object similar to file, for example. In MS-Windows named pipes can work in similar to file, for example. In MS-Windows named pipes can work in local network, not only on the same machine, but it must be the local network, not only on the same machine, but it must be the same physical segment of network (without the router between two same physical segment of network (without the router between two machines using named pipes).machines using named pipes).

One more, very simple and not flexible, but still useful method of One more, very simple and not flexible, but still useful method of communication is communication is sending and receiving the signals sending and receiving the signals between the between the processes (the process can send signal to itself too). All information processes (the process can send signal to itself too). All information the sender can pass to the directly pointed (by the unique the sender can pass to the directly pointed (by the unique Process ID Process ID – PID number– PID number, for example) receiver is the number of the signal. The , for example) receiver is the number of the signal. The receiver must have appropriate routine to run, if the particular signal receiver must have appropriate routine to run, if the particular signal is received. In UNIX-like systems one number of signal (9) is is received. In UNIX-like systems one number of signal (9) is reserved, and can’t be reprogrammed. The routine which is reserved, and can’t be reprogrammed. The routine which is obligatory called after receiving this signal aborts the process obligatory called after receiving this signal aborts the process immediately. User can send the signals to his processes using shell immediately. User can send the signals to his processes using shell command command kill <signal_number> <PID>kill <signal_number> <PID>. .

Page 27: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

1.2.1.2.88. Security.. Security. The term “security” in computer systems (not only operating The term “security” in computer systems (not only operating

systems) has systems) has two different meaningstwo different meanings::

ReliabilityReliability – – fault resistancefault resistance, , stabilitystability. In general all the hardware and . In general all the hardware and software components should be well designed (and tested) and free from software components should be well designed (and tested) and free from faults (like software bugs, for example), if only it’s possible.faults (like software bugs, for example), if only it’s possible.

In some critical situations, not intended nor caused by conscious, In some critical situations, not intended nor caused by conscious, malicious human activity, malicious human activity, the system should be able to work despite the system should be able to work despite of faultsof faults (like problems with power voltage, faults of disks in RAID (like problems with power voltage, faults of disks in RAID arrays etc.).arrays etc.).

RedundancyRedundancy (like in RAID disk arrays or redundant power supplies) is (like in RAID disk arrays or redundant power supplies) is frequently used technique to reach a good reliability of hardware frequently used technique to reach a good reliability of hardware constructions.constructions.

The methods of The methods of theory of reliability theory of reliability (a branch of mathematics) are (a branch of mathematics) are used in studies about these problems.used in studies about these problems.

Metrics like Metrics like Mean Time to First Failure (MTFF)Mean Time to First Failure (MTFF) or or Mean Time Between Mean Time Between the Failures (MTBF) the Failures (MTBF) are used to denominate the parameters of are used to denominate the parameters of components tested in laboratories.components tested in laboratories.

Well designed and carefully serviced Well designed and carefully serviced backup strategybackup strategy is important is important for restoring entire system (or some parts of the system, sometimes for restoring entire system (or some parts of the system, sometimes single disk file) in the case of critical failure.single disk file) in the case of critical failure.

Page 28: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

Security Security – strategy and set of methods used to – strategy and set of methods used to avoid problems caused by avoid problems caused by unauthorized and unwanted (malicious in many cases) human activitiesunauthorized and unwanted (malicious in many cases) human activities..

Access to the resources of the system (disk files, I/O devices etc.) Access to the resources of the system (disk files, I/O devices etc.) should be limited to the real needs of well-known (registered) users – should be limited to the real needs of well-known (registered) users – the access should be the access should be authorizedauthorized..

The user should be The user should be authenticatedauthenticated (recognized) as precisely as it’s (recognized) as precisely as it’s only possible. In most of cases the authentication process consists of only possible. In most of cases the authentication process consists of checking the user name and password only. More sophisticated checking the user name and password only. More sophisticated methods are employing hardware keys (chip-cards, for example) or methods are employing hardware keys (chip-cards, for example) or biometrics (finger print or eye scanners, for example). In the spread biometrics (finger print or eye scanners, for example). In the spread (network) systems the machine used by authenticated user should (network) systems the machine used by authenticated user should also be registered and checked for better security (Virtual Private also be registered and checked for better security (Virtual Private Networks – VPN)Networks – VPN)..

Large and widely spread information systems (corporation networks, Large and widely spread information systems (corporation networks, e-commerce, e-banking etc.) need the e-commerce, e-banking etc.) need the advanced methods for advanced methods for managing lots of different resources and users to define the access managing lots of different resources and users to define the access rightsrights. The . The Directory ServicesDirectory Services (based on spread databases) are used (based on spread databases) are used to register each class of resources and any single resource (including to register each class of resources and any single resource (including user) as well and setting relations between them. Most of user) as well and setting relations between them. Most of implementations of Directory Services are based on implementations of Directory Services are based on Lightweight Lightweight Directory Access Protocol – LDAPDirectory Access Protocol – LDAP). Two well-known implementations ). Two well-known implementations of this protocol are of this protocol are ActiveDirectoryActiveDirectory (Microsoft) and (Microsoft) and eDirectoryeDirectory (Novell).(Novell).

Page 29: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

Serious problem is preventing the system (private network or single Serious problem is preventing the system (private network or single computer, for example) from computer, for example) from cracker’s attackscracker’s attacks, , wormsworms, , virusesviruses etc. etc. Some types of malicious software can be filtered by specialized anti-Some types of malicious software can be filtered by specialized anti-virus applications running on the mail or file servers or desktop virus applications running on the mail or file servers or desktop computers, some attacks can be eliminated using software or computers, some attacks can be eliminated using software or hardware firewalls. But one of the most important problems is a user hardware firewalls. But one of the most important problems is a user himself and his/her resistance on himself and his/her resistance on socio-technical attackssocio-technical attacks..

Page 30: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

2. 2. Virtualization.Virtualization. VirtualizationVirtualization basically basically lets one computer do the job of multiple lets one computer do the job of multiple

computers at the same timecomputers at the same time, by sharing the resources of a single , by sharing the resources of a single machine across multiple system environments. Single virtual server machine across multiple system environments. Single virtual server or virtual desktop (workstation) can be a host for multiple operating or virtual desktop (workstation) can be a host for multiple operating systems and multiple applications.systems and multiple applications.

Building Building virtual infrastructuresvirtual infrastructures composed of composed of multiple servers, multiple servers, storage systems, networks and other resourcesstorage systems, networks and other resources we can get high we can get high availability of resources, better desktop management, increased availability of resources, better desktop management, increased security, and improved disaster recovery processes.security, and improved disaster recovery processes.

Today virtualization is a proven software technology that is rapidly Today virtualization is a proven software technology that is rapidly transforming the IT landscape and fundamentally changing the way transforming the IT landscape and fundamentally changing the way that people compute. that people compute. There are several different approaches to There are several different approaches to virtualization and many different software tools virtualization and many different software tools (commercial and (commercial and free) that can be used to implement both single virtual hosts and free) that can be used to implement both single virtual hosts and entire virtual infrastructures.entire virtual infrastructures.

Page 31: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

Virtualization based on single physical machine (left) vs. virtual Virtualization based on single physical machine (left) vs. virtual infrastructure (right) according to Vinfrastructure (right) according to VMMwareware..

Page 32: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

One of the commonly used solutions is open-source project One of the commonly used solutions is open-source project XenXen (designed in Cambridge University, now developed by XenSource). (designed in Cambridge University, now developed by XenSource). It’s based on functionality built in OS kernel (options available in It’s based on functionality built in OS kernel (options available in Linux kernels of 2.6 family, for example). This kind of functionality is Linux kernels of 2.6 family, for example). This kind of functionality is called called hypervisorhypervisor and manages (monitors) different virtual machines. and manages (monitors) different virtual machines. First we have to install OS with kernel supporting Xen on First we have to install OS with kernel supporting Xen on hosthost machine (physical computer which is real host – machine (physical computer which is real host – domain0domain0), then we ), then we can define several virtual machines (can define several virtual machines (guestsguests, partitions, domains), , partitions, domains), and finally install individual operating systems on each of themand finally install individual operating systems on each of them..

Page 33: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

The technique used by most of Xen users, called The technique used by most of Xen users, called para-virtualizationpara-virtualization, , assumes that some of I/O operations requested by guest (those, assumes that some of I/O operations requested by guest (those, which could disturb other guest systems) are served with drivers which could disturb other guest systems) are served with drivers installed in host OS, so installed in host OS, so virtual machines are not quite isolated from virtual machines are not quite isolated from host OShost OS. Another disadvantage of the . Another disadvantage of the para-virtualizationpara-virtualization is that OS is that OS for each virtual machine should be modified / adjusted to run with for each virtual machine should be modified / adjusted to run with Xen hypervisor, so it’s used for open-source operating systems like Xen hypervisor, so it’s used for open-source operating systems like Linux, NetBSD, OpenSolaris etc.Linux, NetBSD, OpenSolaris etc.

Full virtualization with Xen is possible using 64-bit Intel x86 Full virtualization with Xen is possible using 64-bit Intel x86 processors with VT (Virtual Technology) extension or 64-bit AMD processors with VT (Virtual Technology) extension or 64-bit AMD processors with AMD-V extension. With Xen 3.x it’s possible to processors with AMD-V extension. With Xen 3.x it’s possible to manage multi-processor architectures up to 32 CPUs).manage multi-processor architectures up to 32 CPUs).

More flexible and more advanced solutions are implemented in More flexible and more advanced solutions are implemented in VMwareVMware family of products (some of them for free). The basic family of products (some of them for free). The basic OS-OS-independent hypervisorindependent hypervisor for x86-based computers from this vendor is for x86-based computers from this vendor is (freeware) VMware ESX / ESXi. The VMware approach to (freeware) VMware ESX / ESXi. The VMware approach to virtualization inserts a thin layer of software virtualization inserts a thin layer of software directly on the directly on the computer hardware computer hardware oror on a host operating system on a host operating system. This software . This software layer creates virtual machines and contains a virtual machine layer creates virtual machines and contains a virtual machine monitor (hypervisor) that monitor (hypervisor) that allocates hardware resources dynamicallyallocates hardware resources dynamically and transparently so that multiple operating systems can run and transparently so that multiple operating systems can run concurrently on a single physical computer without even knowing it.concurrently on a single physical computer without even knowing it.

Page 34: System software – history, review and basic problems. Piotr Mielecki Ph. D. Introduction to Computer Systems (6) mielecki@wssk.wroc.pl Piotr.Mielecki@pwr.wroc.pl

3. 3. History of the system software – milestones.History of the system software – milestones. Mid-1940-tiesMid-1940-ties: buffered input from punched cards and tapes – : buffered input from punched cards and tapes – queue of queue of

loaded program codes and data on inputloaded program codes and data on input, CPU doesn’t have to wait for slow , CPU doesn’t have to wait for slow devices. devices. User = OperatorUser = Operator..

Early 1950-tiesEarly 1950-ties: first : first command line interpreterscommand line interpreters (Job Control Language – JCL), (Job Control Language – JCL), batch processingbatch processing – sequence of jobs from input queue is processed according – sequence of jobs from input queue is processed according to some strategy (FIFO or more sophisticated). to some strategy (FIFO or more sophisticated). User User Operator Operator..

1960-ties1960-ties: : multitasking with batch processing multitasking with batch processing ((time-sharing operatitime-sharing operatingng systemssystems) on mainframe computers, ) on mainframe computers, virtual memoryvirtual memory, , advanced I/O resources advanced I/O resources managementmanagement, research works on graphical interfaces, , research works on graphical interfaces, first virtualizationsfirst virtualizations on on large mainframe hardware structures.large mainframe hardware structures.

1970-ties1970-ties: : interactive, multitasking operating systemsinteractive, multitasking operating systems (like today), mainframe (like today), mainframe and minicomputers, first desktop computers with simple, non-multitasking and minicomputers, first desktop computers with simple, non-multitasking OS-s, OS-s, TCP/IP network protocolTCP/IP network protocol (DARPA / Berkeley University) as flexible (DARPA / Berkeley University) as flexible standardstandard..

1980-ties1980-ties: : spread resourcesspread resources (mass storage, printers first of all), (mass storage, printers first of all), parallel and parallel and spread processingspread processing in advanced (evaluation and top-level) constructions, GUI in advanced (evaluation and top-level) constructions, GUI as a standard environment for popular OS (Apple), cheaper computer as a standard environment for popular OS (Apple), cheaper computer networks, first commercial “network OS” for PC (Novell)…networks, first commercial “network OS” for PC (Novell)…