Mercurial > hg > Papers > 2021 > okud-thesis
changeset 22:f7343e8d74ca
fix slide
author | okud |
---|---|
date | Tue, 16 Feb 2021 12:10:35 +0900 |
parents | 1769ede4d434 |
children | 47da8998d694 |
files | paper/chapter/thanks.tex paper/final_thesis.pdf prepaper/pre.pdf prepaper/pre.tex slide/slide.md slide/slide.pdf |
diffstat | 6 files changed, 31 insertions(+), 55 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/chapter/thanks.tex Tue Feb 16 06:12:58 2021 +0900 +++ b/paper/chapter/thanks.tex Tue Feb 16 12:10:35 2021 +0900 @@ -2,9 +2,13 @@ 本研究の遂行及び本論文の作成にあたり御多忙にもかかわらず終始懇切丁寧に御指導と御教授を賜りました 河野真治准教授に深く感謝します。 + + 本研究の遂行及び本論文の作成にあたり数々の貴重な御助言と細やかな御配慮を戴いた並列信頼研究室の 清水隆博さん、東恩納琢偉さん、一木貴裕君さん、安田亮君さん、城後 明慈さんに深く感謝します。 - また一年間共に研究を行い、数々の御助言並びに細かな御配慮を戴いた宮平賢君、上地悠斗君、大蔵海人君 + + +また一年間共に研究を行い、数々の御助言並びに細かな御配慮を戴いた宮平賢君、上地悠斗君、大蔵海人君 並びに並列信頼研究室の皆様と毎週ゼミでお世話になったハリーズさんに深く感謝します。 \thispagestyle{empty}
--- a/prepaper/pre.tex Tue Feb 16 06:12:58 2021 +0900 +++ b/prepaper/pre.tex Tue Feb 16 12:10:35 2021 +0900 @@ -24,7 +24,7 @@ \renewcommand{\abstractname}{Abstract} \begin{document} \title{GearsOSのBootに関する研究} -\author{175733E 氏名 {奥田光希}\\ 指導教員 : {河野 真治} } +\author{175701G 氏名 {奥田光希}\\ 指導教員 : {河野 真治} } \date{} \twocolumn [ \maketitle
--- a/slide/slide.md Tue Feb 16 06:12:58 2021 +0900 +++ b/slide/slide.md Tue Feb 16 12:10:35 2021 +0900 @@ -40,15 +40,16 @@ # OSとアプリケーションの信頼性を高めたい - Meta計算を用いて信頼性を高めるGearsOSを提案している -- x.v6を元にRaspberry Pi上で動くGearsOSを実装中 +- x.v6を元にRaspberry Pi上で動くGears OSを実装中 - キーボードやマウスが使えない - デバイスドライバを作る必要がある --- # BIOS問題 - x.v6の起動はBIOSを使っている -- IntelがCompatibility Support Module(CSM)をやめた -- BIOSを前提としたOSが動かなくなるかも -- キーボードやマウスはUSB +- IntelがBIOSとの互換を無くした +- BIOSを前提としたOSが動かなくなる +また +- キーボードやマウスはUSBが主流 - USBドライバを作るのは難しい --- # <!--fit--> Gears OSをUEFIでBootさせよう @@ -56,7 +57,7 @@ # UEFIへの移行 - CPUなどの機種依存性を避けることができる - GearsOSはCbC(Continuation based C)で記述されていて、CPUやデバイスに影響されない -- 様々な組み込みシステムに対してGearsOSを応用できる様になる +- 様々な組み込みシステムに対してGears OSを応用できる様になる - UEFIのApplicationによりUSBドライバ開発が簡単になる --- @@ -92,8 +93,8 @@ - CPUやドライバに依存しない - 2TBを超える大きなディスクからBootできる - メモリも64bitなら理論上16EB -- BIOSより高速でBoot -- オープン仕様だから開発が簡単 +- BIOSより高速でBootできる +- オープンな仕様だから開発が簡単 --- @@ -106,8 +107,8 @@ --- # gnu-efi -- システムのネイティブGCCでUEFIアプリケーションをコンパイルできる -- UEFI Applicationをリンクするためのライブラリがある +- UEFIアプリ開発ツール +- UEFI Applicationをリンクするためのライブラリがある - UEFI Applicationの開発に特化している - EDK2のファームウェアがベース --- @@ -116,14 +117,21 @@ - 異なるアーキテクチャのプログラムを動かすエミュレータ - 本開発ではX86上でARMを動かした - gnu-efiで実装したUEFIを動かした +``` +$ qemu-system-arm (gnu-efiで作ったUEFI) +``` --- # singularity - ユーザーが自身の計算環境を完全再現し、保持できる様にしたLinuxコンテナ -- 学科の新システムで利用できる +- 学科のサーバーで利用できる - CbC GCC ARM CrossCompile環境を作った - UEFIの開発環境を作った +``` +Singularity> qemu-system-arm (gnu-efiで作ったUEFI) +``` + --- # UEFI Application - UEFI Boot Managreがロード、実行するプログラムのこと @@ -164,7 +172,7 @@ 1. UEFIが立ち上がる 1. Boot ManagerからBootLoaderが起動する 1. BootLoaderがOSのKernelをメモリにLoadさせる -1. Kernelがinitプロセスを起動 +1. KernelがOSのinitプロセスを起動 1. initプロセスがOSのBootプロセスを起動 1. OSがBootされる @@ -197,26 +205,14 @@ LoadedImageProtocol,(void**)&LoadedImageParent, ImageHandle, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL); ``` -- エラー文 -``` - if (EFI_ERROR(Status)) { - Print(L"Could not get LoadedImageProtocol handler %r\n", Status); - return Status; - } -``` + --- - xv6.imgのデバイスパスをPathに格納している - このデバイスパスはKernelをLoadするときに使う ``` Path = FileDevicePath(LoadedImageParent->DeviceHandle, L"\\xv6.img"); ``` -- エラー文 -``` - if (Path == NULL) { - Print(L"Could not get device path."); - return EFI_INVALID_PARAMETER; - } -``` + --- - ここでデバイスパスを使いKernelをLoadする。 - これでKernelがメモリに展開される。 @@ -224,32 +220,9 @@ Status = uefi_call_wrapper(BS->LoadImage, 6, FALSE, ImageHandle, Path, NULL, 0, &Image); ``` -- エラー文 -``` - if (EFI_ERROR(Status)) { - Print(L"Could not load %r", Status); - FreePool(Path); - return Status; - } -``` + --- -- LoadしたKernelイメージについてLoadedImageProtocolを入手 -- LoadOptionsに起動オプションを指定し、Kernel コマンドラインを指定 -``` - Status = uefi_call_wrapper(BS->OpenProtocol, 6, - Image, &LoadedImageProtocol, - (void**)&LoadedImage, ImageHandle, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL); - if (EFI_ERROR(Status)) { - Print(L"Could not get LoadedImageProtocol handler %r\n", Status); - uefi_call_wrapper(BS->UnloadImage, 1, Image); - FreePool(Path); - return Status; - } - LoadedImage->LoadOptions = Options; - LoadedImage->LoadOptionsSize = (StrLen(LoadedImage->LoadOptions)+1) * sizeof(CHAR16); - Print(L"Hello,6!\n"); -``` ---- + - Loadされたイメージを起動 - Kernelが起動する @@ -274,8 +247,7 @@ - Singularity上のqemu-system-armにgdbを接続する - そのgdbでKernel Loaderをデバックする - xv6 KernelにUEFIからBootするコードを入れる -- xv6を書き換えたGearsOSを実装する +- xv6を書き換えたGears OSを実装する - USB Driverを実装し、キーボードやマウスを使える様にする ---- -# ご清聴ありがとうございました +