Mercurial > hg > Papers > 2021 > okud-thesis
view paper/chapter/chapter3.tex @ 20:b9113f671dec
fix slide
author | okud |
---|---|
date | Mon, 15 Feb 2021 22:41:04 +0900 |
parents | e8a0f9380734 |
children |
line wrap: on
line source
\chapter{Raspberry Pi上のGearsOS} \section{GearsOS} GearsOS\cite{Gears}は当研究室で信頼性と拡張性をテーマに開発を行っているOSである。 GearsOSはContinuation based C(CbC)によって記述されている。 当研究室では、GearsOSの信頼性とCbCの有効性を示すために、基本的な機能を揃えたOSであるxv6をCbCで置き換えを行っている。 これにより、OSの個々のシステムコールが持つ状態を明確にすることができると考えている。 CbCで書き換えられたxv6をRaspberry Piに搭載することでハードウェア上でのメタレベルの計算や並列実行を行える様になる。 \section{xv6} xv6\cite{xv6}とは、マサチューセッツ工科大の大学院生向け講義の教材として使うために、 UNIX V6 という OS を ANSI-C(規格化された C 言語) に書き換え、x86 に移植した xv6 OS である。 x86アーキテクチャで動作する。 xv6はプロセス、仮想メモリ、カーネルとユーザの分離、割り込み、ファイルシステムなどの基本的なUnixの構造を持つにも関わらず、 シンプルで学習しやすい。 \section{Raspberry Pi} Raspberry Pi\cite{raspi}は、ARMプロセッサを搭載したシングルコンピュータである。 Raspberry Piにはいくつか種類があり、本研究ではRaspberry Pi 3 Model Bを仕様する。 Raspberry Pi 3 Model Bには、USB2.0コネクタが4つ、microSDカードスロット、HDMI出力、40ピンGPIOなどがついている。 CPUは、ARMアーキテクチャのCortex-A53でCPUクロックは1.4GHzでメモリは1GBある。 \section{ARM} ARM\cite{arm}とは、ARMホールディングスの事業部であるARM Ltbにより設計・ライセンスされているプロセッサコアのアーキテクチャである。 ARMアーキテクチャは主に組み込み機器や低電力アプリケーション向けに広く用いられている。 2020年にAppleのM1 MacのCPUとして使用され、PCのCPUとしても使われる様になっている。 \section{Raspberry Pi 上の xv6} xv6はx86で動作するOSである。 Raspberry Pi上でxv6を動かすためには、ARMに対応したxv6を用意する必要がある。 そのためRaspberry Pi用に移植したxv6-rpiを用いる。 Raspberry Pi上で起動しているxv6に入力を行うためにUSBシリアルケーブルでMacBookと接続する。 その時、図\ref{raspi}の様にRaspberry Piの6番ピン(黒)、8番ピン(白)、10番ピン(緑)の3つをUSBシリアルケーブルで接続する。 この時、HDMIでディスプレイに接続しておく。 Mac側では、USBシリアルケーブルのドライバをインストールしてRaspberry Piと接続すると、 devディレクトリ直下にtty.usbserialとして認識される。 Mac側でソースコード\ref{screen}を使い、シリアル通信を行うと、Macのキーボードから入力を行える様になる。 この時、ソースコード\ref{screen}を打ってから、Raspberry Piに電源を入れないと正常に起動しない。 \begin{figure}[H] \begin{center} \includegraphics[width=100mm]{fig/raspi3.jpeg} \end{center} \caption{Raspberry Pi と USBserial接続} \label{raspi} \end{figure} \begin{lstlisting}[frame=lrbt,label=screen,caption={screenコマンド}] $ screen /dev/tty.usbserial-143130 1152000 \end{lstlisting}