プリンキピア

第6章インフラストラクチャーの抽象化層:オペレーティングシステム

Summaryまとめ

6.1 What Is an Operating System?6.1 オペレーティングシステムとは何か

• An operating system (OS) is at the core of all of the connected hardware and software.
• オペレーティングシステム(OS)は、接続されたすべてのハードウェアとソフトウェアの中核にある。
• Improving efficiency results in speeding up the implementation of applications from coding time and runtime standpoints. OSs have a large influence because of the abstractions/interfaces they implement.
英語のヒント
• 効率を高めると、コードを書く時間と実行時間の両面から、アプリケーションの実現を速められる。OSは、実装する抽象化やインターフェースを通じて、大きな影響力を持つ。
• Operating systems provide both mechanism and policy. Mechanism refers to a set of activities that you can do. Policy is how to use the mechanism in specific situations.
• OSは、メカニズムと方針の両方を提供する。メカニズムは、実行できる活動の集合を指す。方針は、特定の状況で、そのメカニズムをどう使うかということである。
• Virtualization in an operating system allows the system to run different applications that are handled by multiple users at a time on the same computer.
• OSの仮想化によって、同じコンピューター上で、複数の利用者が扱う異なるアプリケーションを、システムが同時に動かせるようになる。
• Server virtualization places a software layer called a hypervisor (e.g., virtual machine monitor or VMM) between a machine (e.g., server) hardware and the operating systems that run on it.
• サーバー仮想化では、サーバーなどのマシンのハードウェアと、その上で動くOSの間に、ハイパーバイザー(仮想マシンモニター、VMMなど)というソフトウェア層を置く。
• Using OS-level or server virtualization allows a server to run different types of operating systems at the same time on the same computer.
• OS水準の仮想化やサーバー仮想化を使うと、サーバーは、同じコンピューター上で異なる種類のOSを同時に動かせる。
• The OS translates from the hardware interface to the application interface and provides each running program with its own process.
• OSは、ハードウェアのインターフェースをアプリケーションのインターフェースへ変換し、実行中の各プログラムに、独自のプロセスを提供する。
• A process consists of address space, one or more threads of control executing in that address space, and additional system state associated with it. The thread is a path of execution within a process and a process may contain multiple threads.
英語のヒント
• プロセスは、アドレス空間、その中で実行する一つ以上の制御スレッド、および関連する追加のシステム状態から構成される。スレッドはプロセス内の実行経路であり、一つのプロセスに複数のスレッドを含められる。
• The instruction set architecture (ISA) defines a set of instructions that can be used to write assembly language programs that use the CPU while abstracting the hardware details from the program.
• 命令セットアーキテクチャー(ISA)は、プログラムからハードウェアの詳細を抽象化しながらCPUを使う、アセンブリー言語のプログラムを書くための命令集合を定める。
• OS functions guarantee protection, isolation, and sharing of resources efficiently via resource allocation and communication.
• OSの機能は、リソースの割り当てと通信を通じて、効率的なリソースの保護、分離、共有を保証する。

6.2 Fundamental OS Concepts6.2 OSの基本概念

• An OS manages computer resources (hardware) and provides services for computer programs (software).
• OSは、コンピューターのリソースであるハードウェアを管理し、コンピュータープログラムであるソフトウェアへサービスを提供する。
• An OS is a complex system and executes many kinds of activities ranging from executing users’ programs, to running background jobs or scripts, to completing system programs.
英語のヒント
• OSは複雑なシステムであり、利用者のプログラムの実行から、バックグラウンドのジョブやスクリプトの実行、システムプログラムの完了まで、多様な活動を行う。
• Processing involves a program, a process, and a processor. An OS is responsible for managing processes, and different OSs approach process management in different ways.
• 処理には、プログラム、プロセス、プロセッサが関わる。OSはプロセス管理を担当し、その方法はOSによって異なる。
• The address space is the set of addresses generated by programs as they reference instructions and data. The memory space holds the actual main memory locations that are directly addressable for processing.
英語のヒント
• アドレス空間は、プログラムが命令やデータを参照するときに生成するアドレスの集合である。メモリ空間は、処理のために直接アドレス指定できる、実際の主記憶の位置を含む。
• Computer memory consists of two main types: primary and secondary memory. An OS manages memory space through memory allocation and memory deallocation as well as by maintaining mappings from virtual addresses to physical and switching CPU context among addresses spaces.
• コンピューターのメモリは、主に一次記憶と二次記憶の二種類からなる。OSは、メモリの割り当てと解放に加え、仮想アドレスから物理アドレスへの対応を維持し、アドレス空間間でCPUのコンテキストを切り替えることによって、メモリ空間を管理する。
• Device drivers are the routines that interact directly with specific device types and related hardware to indicate how to initialize the device, request I/O, and handle interrupts or errors.
• デバイスドライバーは、特定の種類のデバイスや関連ハードウェアと直接やり取りするルーチンで、デバイスの初期化、I/O要求、割り込みやエラーへの対処方法を示す。
• A device register is the interface a device presents to a programmer, whereas each I/O device appears in the physical address space of the machine as a few words.
• デバイスレジスタは、デバイスがプログラマーへ示すインターフェースであり、各I/Oデバイスは、マシンの物理アドレス空間に数ワードとして現れる。
• In an OS, it is important to have dual mode operations to ensure a high level of security and authority. The dual mode is responsible for separating the user from the kernel mode.
• 高いセキュリティーと権限を確保するため、OSではデュアルモードでの動作が重要である。デュアルモードは、ユーザーモードとカーネルモードの分離を担う。
• Successful OS designs have had a variety of architectures, such as monolithic, layered, microkernels, and virtual machine monitors. As the design of an OS—and even its role—are still evolving, it is simply impossible today to pick one “correct” way to structure an OS.
英語のヒント
• 成功したOS設計には、モノリシック、階層型、マイクロカーネル、仮想マシンモニターなど、さまざまなアーキテクチャーがある。OSの設計は、役割そのものも含めて今なお進化しているため、今日、OSを構成する唯一の「正しい」方法を選ぶことはできない。
• A monolithic OS design is an OS architecture where the entire OS is working in kernel space.
• モノリシックOS設計は、OS全体がカーネル空間で動くアーキテクチャーである。
• A layered OS architecture consists of implementing the OS as a set of layers where each layer exposes an enhanced virtual machine to the layer above.
• 階層型OSアーキテクチャーでは、OSを層の集合として実装し、各層がその上の層へ、機能を強化した仮想マシンを提供する。
• Hardware abstraction layer (HAL) is an example of layering in modern OSs. It allows an OS to interact with a hardware device at a general or abstract level rather than going deep into a detailed hardware level, which improves readability.
• ハードウェア抽象化層(HAL)は、現代のOSにおける階層化の一例である。ハードウェアの詳細な水準へ立ち入る代わりに、一般的・抽象的な水準でOSがハードウェア装置とやり取りできるようにし、読みやすさを高める。
• In a microkernel OS architecture, the functionality and capabilities are added to a minimal core OS.
• マイクロカーネルのOSアーキテクチャーでは、最小限の中核OSに、機能や能力を追加する。