プリンキピア

第4章アルゴリズムの言語による実現:低水準プログラミング言語

TECHNOLOGY IN EVERYDAY LIFE日常生活の中の技術
You and the Internet of Thingsあなたとモノのインターネット
As IoT technology advances and computer parts get less expensive, more and more categories of IoT device are coming to market. Fitness monitors have helped people stay in shape. Smart thermostats have conserved energy and made homes more comfortable. Other types of home automation have improved quality of life for older adults and people living with disabilities. These technologies are enabled by middle-level languages that make efficient use of computer hardware, such as C.
英語のヒント
IoT技術が進歩し、コンピューター部品が安くなるにつれ、ますます多くの種類のIoT機器が市場に登場している。健康・運動を記録する機器は、人々の体調維持に役立ってきた。スマートサーモスタットは、エネルギーを節約し、住宅をより快適にした。ほかの住宅自動化技術も、高齢者や障害のある人の生活の質を高めてきた。これらの技術は、Cのようにコンピューターハードウェアを効率的に使う中水準言語によって実現している。
What is a new category of IoT device that does not exist yet, but would make your life, or the life of your loved ones, better? What kind of software would this device need? Could you write it in C?
まだ存在しないが、自分や大切な人の生活をよくする、新しい種類のIoT機器は何だろうか。その機器には、どのようなソフトウェアが必要だろうか。Cで書けるだろうか。

OS Kernels and Device DriversOSカーネルとデバイスドライバー

The Raspberry Pi board has a Cortex-A53 Processor that supports a 64-bit instruction set. This allows you to experience a modern processor architecture with rPi. Information relating to Raspberry Pi is constantly changing, and the best way to fully understand it is to tackle making your own kernel. There are several websites where you can do this:
英語のヒント
Raspberry Piボードには、64ビット命令セットに対応するCortex-A53プロセッサーがある。これによってrPiで現代のプロセッサー構成を体験できる。Raspberry Piの情報は絶えず変化しており、それを十分に理解する最善の方法は、自分のカーネル作りに挑戦することである。そのためのWebサイトには、次のようなものがある。
• Older toy kernel (https://openstax.org/r/76ToyKernel) that supports 64-bit long mode, paging, and very simple context switching
• 64ビットのロングモード、ページング、ごく単純なコンテキスト切替えに対応する、以前の小規模なカーネル例(https://openstax.org/r/76ToyKernel)
Making a toy kernel is good way to understand modern computer architecture and hardware control. In fact, you already have a powerful processor and modern hardware devices on your laptop or desktop. This may be all you need to get started.
英語のヒント
学習用の小規模なカーネルを作ることは、現代のコンピューター構成とハードウェア制御を理解するよい方法である。実際、自分のノートPCやデスクトップには、すでに強力なプロセッサーと現代的なハードウェア装置がある。始めるために必要なものは、それだけかもしれない。
The Qemu emulator (https://www.qemu.org/) can emulate the latest ARM processors and Intel processors, so everything you need is already on hand. There are many toy kernels and documents you can refer to. You can install Qemu emulator and make a tiny kernel that just boots, turns on paging, and prints some messages. You do not need to make a complete operating system. Join the Linux community and participate in development.
英語のヒント
Qemuエミュレーター(https://www.qemu.org/)は、最新のARMプロセッサーやIntelプロセッサーをエミュレートできるので、必要なものはすべて、すでに手元にある。参考にできる小規模なカーネルや文書も多い。Qemuエミュレーターをインストールし、起動してページングを有効にし、メッセージをいくつか表示するだけの、小さなカーネルを作れる。完全なオペレーティングシステムを作る必要はない。Linuxのコミュニティーに加わり、開発に参加しよう。
LINK TO LEARNING学習リンク
This step-by-step guide teaches how to create a simple operating system (OS) kernel (https://openstax.org/ r/76OSkernel) from scratch. Each lesson is designed in such a way that it first explains how some kernel feature is implemented in the rPi OS, and then it tries to demonstrate how the same functionality works in the Linux kernel.
英語のヒント
簡単なオペレーティングシステム(OS)のカーネルを一から作る方法を教える、段階的なガイド(https://openstax.org/ r/76OSkernel)がある。各レッスンでは、まずrPi OSであるカーネル機能がどう実装されるかを説明し、その後、同じ機能がLinuxカーネルでどう動くかを示すように設計されている。