Mercurial > hg > Papers > 2021 > okud-thesis
changeset 16:c977b5f82b9f
only bootloader
author | okud |
---|---|
date | Mon, 15 Feb 2021 03:21:24 +0900 |
parents | 82407e7fefd9 |
children | 7aa7bb77556c |
files | paper/chapter/bibitem.tex paper/chapter/chapter3.tex paper/chapter/chapter4.tex paper/chapter/chapter5.tex paper/fig/Raspi_uefi.jpeg paper/fig/boot.drawio paper/fig/bootos.png paper/final_thesis.pdf slide/slide.md slide/slide.pdf |
diffstat | 10 files changed, 52 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/chapter/bibitem.tex Sun Feb 14 15:40:34 2021 +0900 +++ b/paper/chapter/bibitem.tex Mon Feb 15 03:21:24 2021 +0900 @@ -7,9 +7,10 @@ \bibitem{Gears} 東恩納 琢偉,河野真治.Gears OSでモデル検査を実現する手法について.情報処理学会研究報告2020 \bibitem{xv6} Russ Cox, M Frans Kaashoek, and Robert Morris. Xv6, a simple unix-like teaching operating system,2012. \bibitem{raspi} https://www.raspberrypi.org +\bibitem{arm} https://developer.arm.com \bibitem{uefi} https://wiki.osdev.org/UEFI \bibitem{edk2} https://github.com/tianocore/tianocore.github.io/wiki/EDK-II \bibitem{gnu} https://sourceforge.net/projects/gnu-efi - - +\bibitem{raspi_uefi} https://github.com/tianocore/edk2-platforms/tree/master/Platform/RaspberryPi/RPi3 +\bibitem{qemu} https://www.qemu.org \end{thebibliography} \ No newline at end of file
--- a/paper/chapter/chapter3.tex Sun Feb 14 15:40:34 2021 +0900 +++ b/paper/chapter/chapter3.tex Mon Feb 15 03:21:24 2021 +0900 @@ -22,6 +22,13 @@ 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を用意する必要がある。
--- a/paper/chapter/chapter4.tex Sun Feb 14 15:40:34 2021 +0900 +++ b/paper/chapter/chapter4.tex Mon Feb 15 03:21:24 2021 +0900 @@ -87,5 +87,26 @@ UEFI Applicationの開発に特化している。 \section{Raspberry Pi上のUEFI} - -\section{QEMU 上の UEFI} \ No newline at end of file +Raspberry PiはARMアーキテクチャのシングルボードなのでARMのUEFIを使用する。 +Raspberry Piには、EDK2により、UEFI firmwareが用意されている\cite{raspi_uefi}。 +Raspberry Piに使うSDカードの中に以下のファイルを入れる。 +\begin{itemize} + \item bcm2710-rpi-3-b.dtb + \item bootcode.bin + \item fixup.dat + \item start.elf +\end{itemize} +SDカードを挿入し、HDMIでディスプレイと繋ぎ、USBでキーボードとつなげる。 +その後、電源を入れると図\ref{uefiraspi}のような画面が出てくる。 +キーボードを使い設定やUEFI Shellを動かせる。 +\begin{figure}[H] + \begin{center} + \includegraphics[width=150mm]{fig/Raspi_uefi.jpeg} + \end{center} + \caption{Raspberry Pi UEFI} + \label{uefiraspi} +\end{figure} +\section{QEMU 上の UEFI} +異なるアーキテクチャやプラットフォームのUEFIを開発するために、QEMU\cite{qemu}を使用する。 +QEMUは、汎用的でオープンソースのマシンエミュレータと仮想化ツールである。 +本研究では、Raspberyy PiのUEFIを使用するため、ARM用のQEMUを用意する。
--- a/paper/chapter/chapter5.tex Sun Feb 14 15:40:34 2021 +0900 +++ b/paper/chapter/chapter5.tex Mon Feb 15 03:21:24 2021 +0900 @@ -4,8 +4,7 @@ \section{Boot Loader} Boot Loaderは、OSをLoadしてBootさせる役割をもつプログラムである。 図\ref{bootloader}は、UEFIとPlatformの関係を表したもので、赤い円の部分がBootLoaderである。 -図\ref{bootloader}のようにBootLoaderはBootManagerから起動され、OSをLoadし、bootさせる。 - +図\ref{bootloader}のようにBootLoaderはBootManagerから起動され、OSをLoadし、Bootさせる。 \begin{figure}[H] \begin{center} @@ -13,4 +12,20 @@ \end{center} \caption{bootloader} \label{bootloader} +\end{figure} + +BootLoaderでOSをbootさせる仕組みを\ref{bootos}に示す。 +初めに、ハードウェアに電源が繋がり、UEFIが起動する。 +UEFIのBoot ManagerがBoot Loaderを起動する。 +その後Boot LoaderがOSのKernelをメモリにLoadさせる。 +Kernelが自身を初期化処理をした後、initプロセスを起動させる。 +initは、UNIXおよびUnix系システムのプログラムのひとつであり、 +他の全てのプロセスを起動する役目を持つプログラムである。 +initプロセスがOS内のboot処理プログラムを起動させ、OSがBootされる。 +\begin{figure}[H] + \begin{center} + \includegraphics[height=120mm,width=100mm]{fig/bootos.png} + \end{center} + \caption{OS boot 処理} + \label{bootos} \end{figure} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/fig/boot.drawio Mon Feb 15 03:21:24 2021 +0900 @@ -0,0 +1,1 @@ +<mxfile host="app.diagrams.net" modified="2021-02-14T16:06:35.487Z" agent="5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36" etag="1DMBrajcn3ZbVy2BgsMG" version="14.3.1" type="device"><diagram id="dhl-hfD7acADPn6i0FPl" name="Page-1">3Zhdb5swFIZ/jS8XYQwBLkOabtVa7SOaJu3OAZdYdXBmnCbdr58dTAKYLmmXhG6NVJlj+2A/rz/OAaDxYvNe4OX8jqeEAddJNwBdAdcNIVL/teGpNASeVxoyQdPSBPeGKf1FjNEx1hVNSdFoKDlnki6bxoTnOUlkw4aF4Otms3vOmm9d4oxYhmmCmW39TlM5N9Nyg739A6HZvHozHEZlzQJXjc1MijlO+bpmQhOAxoJzWZYWmzFhml3Fpex3/UztbmCC5PKYDrPhTzy+cX9MH64jmMYj/+uX5J3x8ojZykzYDFY+VQQEX+Up0U4cgOL1nEoyXeJE166V5Mo2lwumnqAqGndESLJ5dpxwN3u1aghfECmeVBPTYSe9WTHIPK73+L2qybyGfugZIzaSZzvXeyqqYMC8AJJrQfo2ub4BkxDEPogDMPFBGIPI/wM6eBF0yPca6CC02UG3i9250CELXawW/C3HKRH/AEDX6Rvg8A1u0ChqQopsSLtdW4eE3HNRiixKn6bqWa+1N7em/N43ZTWAGq6PROT64m6xUrOWTSCFFPyBjDnjQllynquW8T1lrGXCjGa5ekwUJbXVUawZUnWvjkzFgqapfk2nAs0lfQIRfKd5qbhBx63SocHZViw84uYleTrSIYzGyHBR0KRrcZLUimBaVJRTvhIJOXzFSSwyIg+d5zblGkW/g2JlE4RhSR+bw+1Ca97wmVM1kf1OCluRQdRSp5ym6VUPhVqOPNRy1A4dSg6Wo63Su2n/hfh2RNGn+P+JqNAbBG7t5zf9wgtrbIc+Z9O4L+082GIcvFq7piPv0mJ5l9yQB0/ZqF9R1T5yan8taV6tcd+Hrm9pXMaHzh3OVRqv8hEEQghC5X7IdNgzE6qU6VI9aVGNXBC5R2QvB2LLYo6XumaxyfSnk8EMqzU1ECSRY8wYX+kXb7+jwHAw1GUNDumeszI8up2dMEz1oqY8HQFSZ5QK21v1dCGSnfvQnMqtAghEgSmMrowmcVwVopeodPl84JmLqb98ILBAq/Sp3A2jyUxvEk0vAKMhmARALZRw+AYwNtMqr3+MYecBUzs3ug+XGmuThu1Wr9VWO7PQVwdJsjs2DuBfEkHVnHVeVnX6vDfFS15QSXmu6G/zr6L8KoucWp2uGjihHhwudK13okytfQ7B8NiDyHm5sOpx/wG2vGj2X7HR5Dc=</diagram></mxfile> \ No newline at end of file