Podcast
Questions and Answers
What primary factor defines 'functional requirements' in the context of operating systems?
What primary factor defines 'functional requirements' in the context of operating systems?
- Ensuring compatibility with older software versions.
- The operating system's ability to be easily ported to different hardware.
- The features and functions an OS supports for the user. (correct)
- Economic efficiency of the development and maintenance processes.
Which of the following is most closely associated with 'market requirements' for an operating system?
Which of the following is most closely associated with 'market requirements' for an operating system?
- User interface design and user experience.
- The cost-effectiveness of its development and support. (correct)
- The performance of the OS in terms of speed and efficiency.
- Security measures implemented to protect user data.
Which factor most directly enables an operating system's portability?
Which factor most directly enables an operating system's portability?
- Direct access to hardware resources without abstraction.
- A large amount of machine-dependent code.
- Hardware-specific code written in assembly language.
- A modular design that separates hardware-dependent code. (correct)
What is the significance of writing a large portion of an OS in a high-level language for portability?
What is the significance of writing a large portion of an OS in a high-level language for portability?
Which of the following exemplifies OS extensibility?
Which of the following exemplifies OS extensibility?
What architectural approach primarily facilitates the extensibility of an operating system?
What architectural approach primarily facilitates the extensibility of an operating system?
What does 'program compatibility' in operating systems primarily ensure?
What does 'program compatibility' in operating systems primarily ensure?
What is the key benefit of 'backward compatibility' in an operating system?
What is the key benefit of 'backward compatibility' in an operating system?
What is required to achieve source code compatibility across different operating systems?
What is required to achieve source code compatibility across different operating systems?
In the context of operating systems, what does binary compatibility refer to?
In the context of operating systems, what does binary compatibility refer to?
What is typically necessary when processor architectures are incompatible and binary compatibility is desired?
What is typically necessary when processor architectures are incompatible and binary compatibility is desired?
What is the role of an API in achieving program compatibility?
What is the role of an API in achieving program compatibility?
Which of the following best describes the concept of virtualization?
Which of the following best describes the concept of virtualization?
What is the primary purpose of virtualization in computing?
What is the primary purpose of virtualization in computing?
What is a key characteristic of virtualization regarding the isolation of computing processes?
What is a key characteristic of virtualization regarding the isolation of computing processes?
How does emulation differ from virtualization?
How does emulation differ from virtualization?
What is the primary role of a hypervisor in a virtualized environment?
What is the primary role of a hypervisor in a virtualized environment?
What is a key challenge in virtualization related to guest OS commands?
What is a key challenge in virtualization related to guest OS commands?
What is the approach of 'paravirtualization'?
What is the approach of 'paravirtualization'?
A certain CPU instruction behaves differently based on whether it is executed in user mode or kernel mode. What is the term that best describes this type of instruction?
A certain CPU instruction behaves differently based on whether it is executed in user mode or kernel mode. What is the term that best describes this type of instruction?
Which of the following is an example of virtualization at the operating system level?
Which of the following is an example of virtualization at the operating system level?
What defines a Type 1 hypervisor?
What defines a Type 1 hypervisor?
Which of the following is a characteristic of a Type 2 hypervisor?
Which of the following is a characteristic of a Type 2 hypervisor?
What is a significant advantage of using a hypervisor for server management?
What is a significant advantage of using a hypervisor for server management?
From a market requirements perspective, what is 'portability' regarding OS design?
From a market requirements perspective, what is 'portability' regarding OS design?
What is the primary characteristic of a monolithic kernel design, often contrasting with microkernel architecture?
What is the primary characteristic of a monolithic kernel design, often contrasting with microkernel architecture?
What programming practice aids in achieving hardware independence in operating systems?
What programming practice aids in achieving hardware independence in operating systems?
What is the role of 'interrupts' as a hardware support mechanism in operating systems?
What is the role of 'interrupts' as a hardware support mechanism in operating systems?
Wine on Linux best illustrates which type of compatibility?
Wine on Linux best illustrates which type of compatibility?
Regarding the design of operating systems for mobile devices, what represents a crucial design consideration contrasting desktop OS design?
Regarding the design of operating systems for mobile devices, what represents a crucial design consideration contrasting desktop OS design?
With regard to application development for mobile operating systems, what design goal is typically paramount?
With regard to application development for mobile operating systems, what design goal is typically paramount?
In Android OS, what describes one of the roles of the modified Linux kernel?
In Android OS, what describes one of the roles of the modified Linux kernel?
Which of the following best articulates one purpose of the Android Runtime (ART)?
Which of the following best articulates one purpose of the Android Runtime (ART)?
Flashcards
Functional OS requirements
Functional OS requirements
Requirements for functions supported by the OS, focusing on user needs and expectations.
Market OS requirements
Market OS requirements
Requirements related to the cost-effectiveness of OS development and maintenance, focusing on developer considerations.
OS Portability
OS Portability
The system's capacity to be used across different hardware configurations without modification.
Software Compatibility
Software Compatibility
Signup and view all the flashcards
OS Extensibility
OS Extensibility
Signup and view all the flashcards
Virtualization
Virtualization
Signup and view all the flashcards
Hypervisor
Hypervisor
Signup and view all the flashcards
API (Application Programming Interface)
API (Application Programming Interface)
Signup and view all the flashcards
Program Compatibility
Program Compatibility
Signup and view all the flashcards
Backward Compatibility
Backward Compatibility
Signup and view all the flashcards
Source Code Compatibility
Source Code Compatibility
Signup and view all the flashcards
Binary Compatibility
Binary Compatibility
Signup and view all the flashcards
Emulation
Emulation
Signup and view all the flashcards
Virtualization
Virtualization
Signup and view all the flashcards
Sensitive Instructions
Sensitive Instructions
Signup and view all the flashcards
Privileged Instructions
Privileged Instructions
Signup and view all the flashcards
Dynamic Translation
Dynamic Translation
Signup and view all the flashcards
Paravirtualization
Paravirtualization
Signup and view all the flashcards
Type 2 Hypervisor
Type 2 Hypervisor
Signup and view all the flashcards
Type 1 Hypervisor
Type 1 Hypervisor
Signup and view all the flashcards
Hypervisor
Hypervisor
Signup and view all the flashcards
Study Notes
Functional and Market Requirements for OS
- Functional requirements relate to the functions that the OS supports.
- Functional requirements reflect the user's needs.
- Market requirements relate to the economic efficiency of OS development and maintenance.
- Market requirements reflect the developer's needs.
Functional Requirements for OS
- Efficient resource managment
- User-friendly interface.
- Application interface that is user-friendly and effective.
- Support for multitasking and multithreading.
- Virtual meory support
- Multi-window graphic interface
- Support for network communication.
- Reliability and fault tolerance.
- Data security.
Market Requirements for OS
- Portability describes the ability to transfer and use across different hardware and software platforms.
- Software compatibility includes backward compatibility.
- Expandability
Hardware Independence and OS Portability
- OS hardware support includes an interrupt system.
- OS hardware support includes privileged mode support.
- OS hardware support includes address translation mechanisms.
- OS hardware support includes process switching tools.
- OS hardware support includes a system timer.
- OS hardware support includes memory protection.
- OS hardware support includes I/O device protection.
- Portability is ability to be transferred.
- Most code should be written in a high-level language with translators for different hardware platforms.
- Hardware specific code should be separated from the rest of the system.
- Minimize the amount of machine-dependent code.
OS Expandability
-
OSes can last longer than hardware.
-
Expandability involves adding new functionality while saving the main code.
-
Expandability includes support for new hardware (CD-ROM, flash).
-
Connecting to new types of networks
-
New user interface technoogies(GUI).
-
It includes support for adding new hardware architectures (multiprocessor).
-
OS expandability is achieved through:
- Modular OS structure.
- Using objects
- Client-server technology with microkernel architecture.
- Loadable driver modules.
Software Compatibility
- Software Compatibility is the ability to run programs designed for another OS environment in the current OS environment.
- Backward compatibility makes running the software programs, designed for previous versions of the OS, possible in the current OS environment.
- Source code compatibility allows for the migration of source code.
- Requiring a compiler (standardizing programming languages, developing standard compilers)
- Requiring API compatibility (standardizing interfaces).
Binary Compatibility
- Binary compatibility allows for the transfer of executable code.
- If processor architectures (command set, addressing system, address range) are compatible, only API and internal file structure compatibility are required.
- Emulation of the execution environment is necessary if processor architectures are incompatible.
- Library translation can accelerate emulation.
Realization of Equitable APIs
- The graphic shows a diagram of how OS1, OS2 and OS3 all connect to API OC1 API OC2 & API OC3, and they all connect to resource managers and basic mechanisms.
Implementation of Application Programming Environments
- The graphic shows a diagram of how an applied program for OC 1connects to the application program for OC2 and OC3, and these connect to the API OC 1, which further connects to resource managers and basic mechanisms.
Example: Wine for Linux
- Wine is software that allows Linux users to run 16, 32, and 64-bit Windows programs.
- Wine implements a Windows API and intercepts program calls to system libraries before execution.
- Wine enables downloading Windows DLLs.
- Wine is also ported to Windows to run outdated incompatible programs.
- Programs under Wine run nearly as fast as native environments.
- Wine is not an emulator.
Example: Windows NT
- The executable systems POSIX and OS/2 in Windows NT are not implementations of the corresponding OS kernels.
- These systems are implementations of user-mode subsystems that run directly on the Windows NT kernel.
- They are implemented as secure servers.
Virtualization and emulation
- Virtualization creates virtual objects or environments by creating a set of computing resources.
- Virtualization provides logical isolation of computing processes that run on the same physical resource.
- Virtualization includes running multiple OSes, and providing resources is handled by the host OS or hypervisor.
- Emulation duplicates functions from one computing system (guest) to another.
- Emulation behavior corresponds to the original system behavior.
- Emulation is performed through combinations of software and hardware.
- An example of emulation is software emulation of hardware.
Features of Virtualizatoin
- Virtualization combines computing resources and transfers them from a physical machine to a virtual state.
- Virtual server resources can be used for several virtual machines.
- Technologies of virtualization involves creating simulated computing environments on a physical server.
- Multiple OSes can run without requiring seperate physical hardware.
Virtualization Issue
- A virtual machine (guest) must be prevented from affecting the host hypervisor environment.
- An example of a prevented function is the prohibition of interrupts.
- The most secure option involves emulating the hardware in software so that every guest command is run in the interpreter which is slow and infective.
- Effective Implementation entails executing guest commands on the processor but intercepting and implementing insecure commands via software.
- With certain hardware configurations, you can run the guest OS in user mode.
- Kernel mode instructions (“insecure” commands) run with emulation in software,.
- Not all hardware designs meet these requirements (e.g., Intel x86).
Insecure commands
- Sensitive instructions are processor commands that behave differently based on the mode of execution (user or kernel).
- Operations like I/O, memory management, and register writes are sensitive.
- Privileged instructions are processor commands that cause a system interrupt if executed in user mode.
- Virtualization is only possible when sensitive instructions are a subset of privileged instructions.
- Intel 386's POPF (replacing the flag register word from the stack), does set some flags, and does not cause interruption in user mode.
- Hardware support for virtualization on Intel 386 arrived in 2005.
- Intel offers Virtualization Technology or VT
- AMD offers Secure Virtual Machine or SVM
- Examples:
- Intel — Virtualization Technology (VT)
- AMD — Secure Virtual Machine (SVM).
Types of OS Virtualization
- Software virtualization performs dynamic (binary) translation, and the hypervisor rewrites the code by replacing unsafe commands with other command sequences.
- Used by VMware until the arrival of the VT architecture.
- Para-virtualization provides an API so the guest OS interacts with the hypervisor.
- Hardware virtualization utilizes hardware support (vSphere, Xen, Hyper-V).
- OS-level virtualization isolates multiple user spaces within one operating system.
- Docker, Solaris Containers Zones, and FreeBSD Jail are some examples
- Process-level virtualization is exemplified by WINE.
Hypervisor
- A hypervisor, either in the form of application or processor hardware, supports the concurrent and parallel operation of many virtual machines.
- Each virtual machine runs its OS on a physical host computer.
- The technology is key to the operation as it optimizes and delivers flexibility in service deployments.
Types of Hypervisors
Autonomous Hypervisor (Type 1, X)
- Type 1 has built-in device drivers, driver models, and a scheduler, and runs in a trim kernel environment.
- VMware ESX & XenServer are Type 1.
Based on Basic OS (Type 2, V)
-
Type 2 runs having the base OS kernel (ring 0).
-
Guest code runs on the physical processor except sensitive instructions, which are handled by the base OS.
-
VMware Workstation, VirtualBox, and QEMU are Type 2 hyervisor examples.
-
The graphic shows a diagram that shows Processes of Guest OS 1, Guest OS 2 with Guest OS 1, Guest OS 2, and shared area being operated by Hypervisor Type 1 over the hardware.
-
The graphic shows processes of Guest OS, and operating by the guest OS and Hypervisor Type 2, over the base operating system and hardware.
-
Type 1 hypervisors are a layer of software that is installed directly on the physical server and its basic hardware.
-
It has no underlying software nor operating system.
-
Type 2 hypervisors run within an OS.
-
Unlike what directly on the hardware Type 1 hypervisors, Type 2 operate within an OS.
Benefits of Using a Hypervisor
- Speed. Hypervisors allow virtual machines to be creates instantly.
- Effectiveness allows virtualzation of virtual machens.
- Flexibility allows OS and programs to work on different hardware types.
- Portability allows multiple OSes to reside on a host machine.
Mobile OS: Specifications
- Mobile devices have limited computing power, memory, data storage, and battery capacity.
- Mobile devices have variety based on screen sizes resolutions, availability of keyboards , wireless interfaces, integrated peripherals, processor architectures (ARM, x86).
- Mobile OSes should be designed for non-professional consumption needs:
- Ease of use, easy to maintain but secure.
- Protection from malicious apps is important.
- The market demands good first impressions, rapid development, and does not forgive mistakes.
Principles of Mobile OS
- The OS’s core mus be lightweight by minimizing resources.
- The OS should work within a fixed memory capacity and not move code and data to external storage.
- APIs and mechanisms for “sleep” mode are necessary to save battery power.
- The programs should operate independant of the OS and hardware.
- Sandboxing application code is needed to reduce exposure to application threats.
- The applications should use existing standard components where possible.
- Third party developers should be enabled with creation of programs so they can have access to the application
- The mobile OS needs that they create a mobile software market (app store) to have developers so their own software can operate..
Principles of Implementation in Android OS
- Android is coded as a modified kernel for Linux.
- Linux scalable, widely used technology with broad third-party hardware support and security resources.
- Java is used for many enterprise applications.
- Java programs operate on a virtual computer and can be independant from the underlying hardware.
- To reduce requirements of the Java VM, parts of the system have been rewritten.
- Google's Android OS is a "Sun/Oracle Java".
- Android developers wrote their own streamlined Java VM and execution environment is used.
- Dalvik, which was available until Android 4.4, has optimized architecture.
- Android RunTime or ART is a new optimized architecture.
- Optimized VM architecture includes memory sharing, quick start and removes Java VM requirements which compromises security.
- Android architecture separates the kernel from the middle-ware to support a device ecosystem.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.