# HG changeset patch # User okud # Date 1613326884 -32400 # Node ID c977b5f82b9f3a878326ce7e658961f36bad6440 # Parent 82407e7fefd97b5ca1434671d6fb9bd55348f7e5 only bootloader diff -r 82407e7fefd9 -r c977b5f82b9f paper/chapter/bibitem.tex --- 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 diff -r 82407e7fefd9 -r c977b5f82b9f paper/chapter/chapter3.tex --- 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を用意する必要がある。 diff -r 82407e7fefd9 -r c977b5f82b9f paper/chapter/chapter4.tex --- 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を用意する。 diff -r 82407e7fefd9 -r c977b5f82b9f paper/chapter/chapter5.tex --- 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 diff -r 82407e7fefd9 -r c977b5f82b9f paper/fig/Raspi_uefi.jpeg Binary file paper/fig/Raspi_uefi.jpeg has changed diff -r 82407e7fefd9 -r c977b5f82b9f paper/fig/boot.drawio --- /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 @@ +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= \ No newline at end of file diff -r 82407e7fefd9 -r c977b5f82b9f paper/fig/bootos.png Binary file paper/fig/bootos.png has changed diff -r 82407e7fefd9 -r c977b5f82b9f paper/final_thesis.pdf Binary file paper/final_thesis.pdf has changed diff -r 82407e7fefd9 -r c977b5f82b9f slide/slide.md --- a/slide/slide.md Sun Feb 14 15:40:34 2021 +0900 +++ b/slide/slide.md Mon Feb 15 03:21:24 2021 +0900 @@ -1,5 +1,5 @@ --- -marp: false +marp: true title: Gears OS UEFI対応 paginate: true diff -r 82407e7fefd9 -r c977b5f82b9f slide/slide.pdf Binary file slide/slide.pdf has changed