第6章インフラストラクチャーの抽象化層:オペレーティングシステム
Hardware Abstractionハードウェアの抽象化
The hardware abstraction layer (HAL) is an example of layering in modern OSs, and 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 and maintainability. In general, the goal of HAL is to separate hardware-specific routines from the core OS. HAL enables portability of core code across different pieces of hardware.
英語のヒント
ハードウェア抽象化層(HAL)は、現代のOSにおける階層化の一例である。OSがハードウェアの細部に深く入り込まず、一般的・抽象的なレベルで機器とやり取りできるようにし、可読性と保守性を高める。一般にHALの目的は、ハードウェア固有のルーチンをOSの中核から切り離すことであり、中核となるコードを異なるハードウェアへ移植できるようにする。
Microkernelsマイクロカーネル
Another alternative OS design to monolithic OS design is a microkernels architecture. Within a microkernel, the functionality and capabilities are added to a minimal core OS as plug-ins. Microkernel architecture is also called a plug-in architecture because functionalities are added as plug-ins (Figure 6.13).
英語のヒント
モノリシックOSに代わる設計の一つが、マイクロカーネルアーキテクチャーである。最小限の中核OSへ、プラグインとして機能や能力を追加する。機能をプラグインで加えるため、プラグインアーキテクチャーとも呼ばれる(図6.13)。

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 6.13 In the microkernel architecture, kernel mode is divided into multiple plug-ins to process the operations. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図6.13 マイクロカーネルアーキテクチャーでは、カーネルモードを複数のプラグインに分け、操作を処理する。(出典:著作権 Rice University、OpenStax。CC BY 4.0ライセンス)
The goal of a microkernel architecture is to minimize what goes into the kernel and implement everything else that traditionally goes in an OS in terms of user-level processes. This results in improving reliability due to the isolation between components. Also, there is less code running at full privilege, and greater ease of extension and customization. However, performance is generally poor due to user and kernel boundary crossings, which represent a security risk when the kernel code operates on the data.
英語のヒント
マイクロカーネルの目的は、カーネルに入れるものを最小限にし、従来OSに含まれていた残りのすべてを、ユーザーレベルのプロセスとして実装することだ。構成要素が分離されるため、信頼性が高まる。また、完全な特権で動くコードが少なくなり、拡張やカスタマイズも容易になる。しかし、ユーザーとカーネルの境界を越えるため、一般に性能は低い。この境界越えは、カーネルコードがデータを操作する際のセキュリティーリスクにもなる。
The first microkernel system was Hydra (CMU, 1970), followed by Mach (CMU), Chorus (French UNIX-like OS), and OS X (Apple). Windows OS used to use a microkernel, but now uses a hybrid kernel architecture that combines the benefits of monolithic, microkernel, and plug-in OS architectures (Figure 6.14).
英語のヒント
最初のマイクロカーネルシステムはHydra(CMU、1970年)で、その後にMach(CMU)、Chorus(フランスのUNIX系OS)、OS X(Apple)が続いた。Windowsは以前マイクロカーネルを使っていたが、現在はモノリシック、マイクロカーネル、プラグインOSの利点を組み合わせたハイブリッドカーネルアーキテクチャーを使っている(図6.14)。

attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license · CC BY 4.0 · Source出典
Figure 6.14 Windows OS as plug-in architecture—in Windows OS, all of the applications are in the user mode, and the OS operations are divided into plug-ins in kernel mode. (attribution: Copyright Rice University, OpenStax, under CC BY 4.0 license)
図6.14 プラグインアーキテクチャーとしてのWindows。すべてのアプリケーションはユーザーモードにあり、OSの操作はカーネルモードのプラグインに分かれている。(出典:著作権 Rice University、OpenStax。CC BY 4.0ライセンス)
LINK TO LEARNING学習リンク
Read this article about how Apple uses kernel architecture (https://openstax.org/r/76kernelarch) in its macOS.
Cloud Infrastructure and Exokernelクラウド基盤とエクソカーネル
Two concepts that each represent critical advancements in the field of computing by offering different methodologies for resource abstraction, allocation, and management are cloud infrastructure and the exokernel.
英語のヒント
資源の抽象化、割り当て、管理に異なる方法を提供し、コンピューティング分野の重要な進歩をそれぞれ表す二つの概念が、クラウド基盤とエクソカーネルである。
The exokernel architecture simplifies the OS by making its core (kernel) really small and letting apps have more control over the computer’s hardware. Unlike usual systems that hide hardware details, an exokernel shows these details to apps, letting them use the hardware more smartly. This way, it cuts down on unnecessary steps and lets each app manage resources its own way, which can make the computer run better and faster. This design is especially good for special computing tasks where apps can really benefit from managing hardware directly, and this can lead to better performance and more efficient use of the computer’s parts. There are several limitations associated with exokernels. They lack abstractions for operating systems services, which makes it difficult to achieve consistency across applications. They also require an application developer to manage resource allocation and protection and to implement security mechanisms, which raises concerns.
英語のヒント
エクソカーネルアーキテクチャーは、OSの中核、つまりカーネルを非常に小さくし、アプリにハードウェアをより多く制御させることで、OSを単純にする。ハードウェアの詳細を隠す通常のシステムとは異なり、エクソカーネルはアプリに詳細を見せ、より賢く使えるようにする。こうして不要な手順を減らし、各アプリが独自の方法で資源を管理できるようにするため、コンピューターがよりよく、より速く動く可能性がある。この設計は、ハードウェアを直接管理する利点の大きい特殊な計算処理に特に適し、性能の向上と、部品の効率的な利用につながる。ただし、エクソカーネルには複数の制約がある。OSサービスの抽象化がないため、アプリケーション間の一貫性を実現しにくい。また、開発者自身が資源の割り当てと保護を管理し、セキュリティーの仕組みを実装する必要があり、それが懸念を生む。
The virtualized and scalable hardware resources that are delivered over the Internet as a service are called cloud infrastructure. This infrastructure encompasses a range of components including servers, storage devices, network equipment, and virtualization software, all hosted within data centers managed by cloud service providers. Unlike traditional physical infrastructure, cloud infrastructure offers flexibility, scalability, and accessibility, allowing users to access and manage computing resources remotely through the Internet. Cloud infrastructure is categorized into three service models:
英語のヒント
インターネット経由でサービスとして提供される、仮想化され、規模を拡張できるハードウェア資源を、クラウド基盤という。サーバー、記憶装置、ネットワーク機器、仮想化ソフトウェアなどからなり、すべてクラウド事業者の管理するデータセンターに置かれる。従来の物理基盤とは異なり、クラウド基盤は柔軟性、拡張性、利用しやすさを備え、利用者はインターネット経由で計算資源に遠隔アクセスし、管理できる。クラウド基盤は、三つのサービスモデルに分類される。
• Infrastructure as a Service (IaaS) provides virtualized computing resources over the Internet, such as AWS EC2, Google Compute Engine, and Microsoft Azure VMs.
• Infrastructure as a Service(IaaS)は、インターネット経由で仮想化された計算資源を提供する。AWS EC2、Google Compute Engine、Microsoft Azure VMsなどがある。
• Platform as a Service (PaaS) offers hardware and software tools over the Internet, typically targeting developers such as Google App Engine and Microsoft Azure.
• Platform as a Service(PaaS)は、通常は開発者を対象に、インターネット経由でハードウェアとソフトウェアの道具を提供する。Google App EngineやMicrosoft Azureなどがある。
• Software as a Service (SaaS) delivers software applications over the Internet, accessible from a web browser without installation or running on the user’s personal devices such as Google Workspace and Microsoft Office 365.
• Software as a Service(SaaS)は、インターネット経由でアプリケーションを提供する。Google WorkspaceやMicrosoft Office 365のように、利用者の機器にインストールして実行する必要がなく、ウェブブラウザーから利用できる。
The main disadvantages of cloud infrastructure are potential downtime, security and privacy concerns, vulnerability to attacks, limited control and flexibility, vendor lock-in, cost concerns, latency issues, Internet dependency, technical issues, lack of support, bandwidth issues, and varied performance.
英語のヒント
クラウド基盤の主な短所には、停止時間が生じる可能性、セキュリティーとプライバシーへの懸念、攻撃への脆弱性、制御や柔軟性の制約、特定業者への固定化、費用への懸念、遅延、インターネットへの依存、技術的な問題、支援の不足、帯域幅の問題、性能のばらつきがある。