Looks like no one added any tags here yet for you.
Operating system (OS)
Is the software that runs on the bare hardware of a computer and provides essential support for users to develop and use applications in the most efficient and safe manner.
CPU
Machine instructions perform operations on contents of registers and memory locations.
USER NEEDS
The user thinks in terms of arrays, lists, and other high-level data structures, accessed and manipulated by corresponding high-level operations.
Main memory
Physical memory is a linear sequence of addressable bytes or words that hold programs and data.
User Needs:
The user must manage a heterogeneous collection of entities of various types and sizes, including source and executable programs, library functions, and dynamically allocated data structures, each accessed by different operations.
Secondary storage
Disk and other secondary storage devices are multi-dimensional structures, which require complex sequences of low-level operations to store and access data organized in discrete blocks.
User Needs
The user needs to access and manipulate programs and data sets of various sizes as individual named entities without any knowledge of the disk organization.
I/O devices
I/O devices are operated by reading and writing registers of the device controllers.
User needs:
The user needs simple, uniform interfaces to access different devices without detailed knowledge of the access and communication protocols.
Abstraction
Is the act of removing unimportant details or attributes of objects in order to construct more general and less complex objects.
OSs make extensive use of abstraction by creating hierarchies of objects where multiple operations at one level are combined into a single operation at a higher level, thus hiding the details of the implementation and making the operation easier to use.
Virtualization
Is the act of creating the illusion of having one or more objects with more desirable characteristics than the real object.
Multiprogramming
Is a technique that keeps several programs active in memory and switches execution among the different programs to maximize the use of the CPU and other resources.
Time-sharing (multitasking)
Is an extension of multiprogramming where the CPU is switched periodically among all active computations to guarantee acceptable response times to each user.
Kernel
Is the minimal set of functions necessary to manage the system resources safely and efficiently.
It typically provides the most essential services for memory and device management, for creating and managing units of computation, and for communication among the different concurrent activities within the system
Privileged instruction
Performs critical operations that access I/O devices and the CPU's status and control registers.
Thus only the OS kernel is allowed to execute privileged instructions.
Kernel mode
Is the CPU state where both privileged and non-privileged instructions may be used
User mode
Is the CPU state where only non-privileged instructions may be used
Graphical user interface (GUI)
Presets various icons on the screen, which the user can click on in different ways to invoke services associated with the icons, or to reveal pull-down menus for additional tasks.
OS shell
Is a command interpreter that accepts and interprets textual commands issued by the user via a keyboard
Shell script
Is a program that implements a new operation by combining multiple commands (similiar to a batch) and control statement into one named unit interpreted by the shell.
System call
1) Is a request from an application for an OS service.
2) Software-triggered interrupt allowing a process to request a kernel service.
Supervisor call (kernel call)
Is a privileged instruction that automatically transfers execution control to a well-defined location within the OS kernel.
Similar to a function call with two special features:
1) The call switches execution from user mode to kernel mode by setting the mode bit in the CPU.
2) To prevent a call from branching to arbitrary locations within the kernel, the function to be invoked is not specified by an address but indirectly using an index into a branch vector. Thus kernel-mode execution is limited to only well-defined entry points within the kernel.
Interrupt
Is an event that diverts the current execution of a program to a predefined location in the kernel in order to respond to an event. An interrupt is triggered by a hardware signal sent to the CPU from an external device.
2 common:
1) Signal to the OS the completion of an I/O operation. The interrupt is generated by the I/O device.
2) Implement time-sharing by periodically switching the CPU among multiple concurrent computations. The interrupt is generated by a countdown timer.
Trap (also called an internal interrupt)
I an interrupt triggered by the currently executing instruction
Dividing by zero, executing an invalid opcode, or causing an arithmetic overflow are all errors, which result in a trap and cause the OS to abort the current program execution
Interrupt handler
Is a kernel function, invoked whenever an interrupt occurs, that determines the cause of the interrupt and invokes the appropriate kernel function to provide the response.
Moore's law
Formulated by the scientist Gordon Moore, is the observation that the number of transistors in an integrated circuit doubles about every two years
What was the first generation computer?
Vacuum tubes
OS type: None
Characteristics:
All programming was done by experts in machine language without any support from an OS or any other system software.
What was the second generation computer?
Transistors replaced vacuum tubes as smaller and faster switches.
OS type: Batch OS
Characteristics: Programs were submitted in batches of punch cards. The role of the OS was to automate the compilation, loading, and execution of programs. Multiprogramming was developed, which allows the OS to schedule the execution of jobs to make more efficient use of the CPU and other resources.
What was the third generation computer?
Integrated circuits allowed the development of microchips to replace individual transistors.
OS type: Interactive multi-user OS.
Characteristics: Interrupts were developed to allow the OS to enforce time-sharing and to interact with keyboards and display terminals, also developed during the same period. Increased capacity and speed of memory and secondary storage devices imposed additional management tasks on the OS.
What was the fourth generation computer?
Very large scale integration (VLSI) allowed the placement of a complete microprocessor on a single chip, leading to the development of personal computers (PCs).
OS type: Desktop and laptop OS.
Characteristics: The OS was responsible for all operations, starting from the initial booting, to multitasking, scheduling, interactions with various peripheral devices, and keeping all information safe. The emphasis was on user-friendliness, including the introduction of the GUI.
What was the 5th generation computer?
Networking hardware enabled the harnessing of the power of multiple computers.
OS type: OSs for supercomputers, distributed systems, and mobile devices.
Characteristics: The ability to create extremely powerful chips spawned several directions of development. Supercomputers combined large numbers of processors and made the OS and other software responsible for exploiting the increased computation power through parallel processing. Computer networks gave rise to the Internet, which imposed requirements of privacy and safety along with efficient communication. Wireless networks led to the development of hand-held devices, with additional demands on the OS.
What is a mainframe type OS?
Definition: a large central computer used by large organizations.
Applications: High-volume data processing in administration, banking, government.
Emphasis: High throughput, management of large storage.
What is a server type OS?
Definition: a large computer that responds to requests from individual clients.
Application: Web and email processing, Internet commerce.
Emphasis: Fast response, security.
What is a multiprocessor type OS?
Definition: a system of multiple CPUs and memories interconnected by a fast network into a single parallel computer.
Application: Scientific and other high-performance computations.
Emphasis: Fast interprocess communication and memory access. Data consistency.
What is a Distributed System type OS?
Definition: a network of independent computers interconnected via a communication network.
Application: Sharing of data and services, internet commerce.
Emphasis: Efficient and secure communication. Support for many types of applications and services.
What is a Desktop OS?
Definition: a personal computer.
Application: Word processing, personal finance, access to Internet, games.
Emphasis: User-friendly interface. Intuitive organization of data and applications. Support for a variety of tasks without much technical knowledge of the inner functioning of the computer.
What is a Hand held device type OS?
Definition: small, portable, wireless-capable device for personal use.
Application: Smartphones, tablets.
Emphasis: User-friendly interface. Easy integration of new applications. Support for microphone, speaker, camera, GPS, motion sensor, and other components.
What is a sReal time system OS?
Definition: a computer, frequently embedded in a larger electro-mechanical system, that must respond rapidly to external events.
Application: Control of industrial processes, vehicle and aircraft control, audio and video transmission
Emphasis: Scheduling to meet all deadlines. Reliability in life-critical applications.
What is a sensor network OS?
Definition: collection of small, spatially distributed dedicated sensors communicating by wired or wireless connections.
Application: Industrial, environmental, or military monitors. Wearable devices.
Emphasis: Minimize power consumption. Form ad-hoc connections and tolerate node failures.
Bus
A communication system; e.g., within a computer, a bus connects various components, such as the CPU and I/O devices, allowing them to transfer data and commands.
Device driver
An operating system component that provides uniform access to various devices and manages I/O to those devices.
Alternate:
A a device-specific program that implements I/O operations, requested by user applications or the OS, by interacting with the device controller.
Interrupt vector
An operating-system data structure indexed by interrupt address and pointing to the interrupt handlers. A kernel memory data structure that holds the addresses of the interrupt service routines for the various devices.
Interrupt-request line
he hardware connection to the CPU on which interrupts are signaled.
Interrupt-handler routine:
An operating system routine that is called when an interrupt signal is received.
Interrupt-controller hardware
Computer hardware components for interrupt management.
Nonmaskable interrupt
An interrupt that cannot be delayed or blocked (such as an unrecoverable memory error)
Maskable
Describes an interrupt that can be delayed or blocked (such as when the kernel is in a critical section).
Interrupt chaining
A mechanism by which each element in an interrupt vector points to the head of a list of interrupt handlers, which are called individually until one is found to service the interrupt request.
Interrupt priority level
Prioritization of interrupts to indicate handling order.
Random-access memory (RAM)
Rewritable memory, also called main memory. Most programs run from RAM, which is managed by the kernel.
Dynamic random-access memory (DRAM)
The common version of RAM, which features high read and write speeds.
Bootstrap program
The program that allows the computer to start running by initializing hardware and loading the kernel.
Firmware
Software stored in ROM or EEPROM for booting the system and managing low level hardware.
Bit
The basic unit of computer storage. A bit can contain one of two values, 0 or 1.
Byte
Eight bits
Von Neumann architecture
The structure of most computers, in which both process instructions and data are stored in the same main memory.
Tertiary storage
A type of storage that is slower and cheaper than main memory or secondary storage; frequently magnetic tape or optical disk.
Direct memory acces
A resource-conserving and performance-improving operation for device controllers allowing devices to transfer large amounts of data directly to and from main memory.
Portals
Gateways between requestors and services running on provider computers.
Network computer:
A limited computer that understands only web-based computing.
Thin client
A limited computer (terminal) used for web-based computing.
Wireless network
A communication network composed of radio signals rather than physical wires
Firewall
A computer, appliance, process, or network router that sits between trusted and untrusted systems or devices. It protects a network from security breaches by managing and blocking certain types of communications.
Server system
A system providing services to other computers (e.g., a web server).
Client system
A computer that uses services from other computers (such as a web client)
Client-server model
A mode of computing in which a server provides services to one or more clients. In distributed computing, a model in which a computer acts as a resource server to other computers that are clients of those resources.
Compute-server system
A server that provides an interface to which a client can send a request for an action (e.g., read data). In response, the server executes the action and sends the results to the client.
File-server system
A server that provides a file-system interface where clients can create, update, read, and delete files (e.g., a web server that delivers files to clients running web browsers).
Cloud computing
A computing environment in which hardware, software, or other resources are made available to customers across a WAN, such as the Internet, usually with APIs for management. A type of computing that delivers computing, storage, and even applications "as a service" across a network.
Public cloud
Cloud computing available via the Internet to anyone willing to pay for the services offered.
Private cloud
Cloud computing run by a company for that company's own use.
Hybrid cloud
A type of cloud computing that includes both public and private cloud components.
Software as a Service (SaaS)
A type of computing in which one or more applications (such as word processors or spreadsheets) are available as a service via the Internet.
Platform as a service (PaaS)
A software stack ready for application use via the Internet (e.g., a database server).
Infrastructure as a service (IaaS):
A type of computing in which servers or storage are available over the Internet (e.g, storage available for making backup copies of production data).
ASIC
An application-specific integrated circuit (hardware chip) that performs its tasks without an operating system.
Real-time operating systems (RTOS)
Systems used when rigid time requirements have been placed on the operation of a processor or the flow of data; often used as control devices in dedicated applications.
Free operating system
An operating system released under a license that makes its source code available and allows no-cost use, redistribution, and modification.
Open-source operating system
An operating system or other program available in source-code format rather than as compiled binary code.
Closed-source
An operating system or other program available only in compiled binary code format.
Reverse engineering
The procedure of converting a compiled binary file into a human-readable format.
GNU General Public License (GPL):
A license agreement that codifies copylefting (allowing and requiring open sourcing of the associated programs); a common license under which free software is released.
GNU/Linux (aka Linux)
An open-source operating system composed of components contributed by the GNU foundation and Linus Torvalds, as well as many others.
Distribution
A release of a version of an operating system.
LiveCD
An operating system that can be booted and run from a CD-ROM (or more generally from any media) without being installed on a system's boot disk(s)
LiveDVD
An operating system that can be booted and run from a DVD (or more generally from any media) without being installed on a system's boot disk(s).
UnixBSD
A UNIX derivative based on work done at the University of California at Berkeley (UCB).
Version control system
Software that manages software distributions by allowing contributors to "push" changes into a repository and "pull" a version of the software source-code tree to a system (e.g., for compilation).
Solaris
A UNIX derivative that is the main operating system of Sun Microsystems (now owned by Oracle Corporation). There is an active open source version called Illumos.
SunOS
The predecessor of Solaris by Sun Microsystems Inc.
Suspend
In virtualization, to freeze a guest operating system and its applications to pause execution.
Snapshot
In file systems, a read-only view of a file system at a particular point in time; later changes do not affect the snapshot view.
Resume
In virtualization, the continuation of execution after a guest's suspension.
Clone
In file systems, a snapshot that is read-write and modifiable. In virtualization, a copy of a guest that enables another instance of the guest to run in a separate virtual machine.
System-development time
The time during which an operating system is developed, before it is made available in final "release" form.
Consolidation
In virtualization, the practice of running multiple guests per host, reducing the number of physical servers needed for a given workload.
Templating
In virtualization, using one standard virtual-machine image as a source for multiple virtual machines.
Live migration
In virtualization, the movement of a running guest between two separate physical hosts.
Remote desktop protocol (RDP)
A network protocol to allow remote access to a computer's display contents and keyboard and mouse input devices.
Linux kernel
The operating-system kernel of a Linux system.
Linux system
The kernel, programs, and files that comprise a complete, runnable Linux system.
Linux distribution
A Linux system plus administrative tools to simplify the installation, upgrading, and management of the system.
Interprocess communication (IPC)
Communication between processes.
Development kernel
A kernel released for developers to use, rather than for production use.