東京工業大学 システム開発プロジェクト
東京工業大学 システム開発プロジェクト
  • 15
  • 80 968
第11回 アドレス変換第/第12回 システムコール
東京工業大学の「システム開発プロジェクト応用第二」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxTLHB9GFM6_drAJ1JQXIOud.html
第11回、第12回では、ページングによるアドレス変換と、アプリからOSの機能を呼び出すシステムコールを学びます。
0:33 標準ライブラリを使うと rpn コマンドが上手く動かない問題の説明
7:25 問題に対処する 3 つの方法
10:00 アドレス変換の考え方とページング機構
21:34 「virtual」のニュアンスは「事実上のアドレス」
23:33 仮想アドレスと 4 階層ページング
33:08 アドレス変換の流れ CPU の視点で考える
43:51 アプリをアドレス空間の後半で動かす
53:32 rpn コマンドをメモリに読み込む処理
1:08:34 アプリが OS の機能を使う方法
1:13:48 OS を守ろう
1:35:11 TSS を設定しよう
1:47:09 バグ発見を手伝おう
1:53:08 システムコール
オペレーティングシステム(OS)はコンピュータシステムの中でも基本的なソフトウェアです。OS の構成を手を動かして探求することは計算機科学を深く学び、血肉にするための一つの良い道しるべとなります。
本講義シリーズでは x86-64 アーキテクチャを採用したパソコンで動く OS の構成に必要な要素技術を学び、実際に手を動かして構成してみます。合計 14 回の講義で現代のパソコンで動く OS の要素技術を知り、サンプルとなる「MikanOS」に機能の追加、変更を加えられるようになることが目標です。
教科書:「ゼロからの OS 自作入門」(内田公太、2021、マイナビ)
書籍ページ: book.mynavi.jp/ec/products/detail/id=121220
授業では、書籍の原稿(PDF)を利用しています。2021 年 3 月に書籍が出版されますので、ぜひお手元に用意して動画をご覧ください。
本講義シリーズは東京工業大学 情報理工学院 情報工学系 情報工学コースで 2020 年度に開講されたものです。本講義の 2020 年度のシラバスはこちら:
www.ocw.titech.ac.jp/index.php?module=General&action=T0300&GakubuCD=4&GakkaCD=342323&KeiCD=23&course=23&KougiCD=202004868&Nendo=2020&vid=03
มุมมอง: 1 368

วีดีโอ

第9回 ファイルシステム/第10回 アプリケーション
มุมมอง 8633 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第二」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxTLHB9GFM6_drAJ1JQXIOud.html 第9回、第10回では、FAT ファイルシステムの読み出し方やアプリケーション作成の初歩を学びます。 1:12 ファイルとファイルシステム 9:51 木構造ではないファイルシステムの具体例の紹介 14:44 ディスクイメージ操作の演習 19:20 BIOS パラメータブロック 23:09 ディレクトリエントリ 28:10 ボリュームを読み出す 39:57 ls コマンド 48:47 ファイルアロケーションテーブル(FAT) 58:05 cat コマンド 1:00:29 初めてのアプリケーション 1:10:29 C で計算アプリを作る 1:22:08 受講者からの質問に答える オペレーティン...
第7回 タイマー/第8回 マルチタスク
มุมมอง 8613 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第二」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxTLHB9GFM6_drAJ1JQXIOud.html 第7回、第8回では、タイマーを使って時間を計る方法や、複数のタスクを切り替えつつ並行に動作させる方法を学びます。 1:13 タイマーと割り込み 10:26 タイマー割り込みの回数を数える 15:09 複数の論理タイマーをサポートする 23:26 ACPI PM タイマーで Local APIC タイマーの周波数を測る 32:42 ACPI PM タイマーの使い方 37:39 USB キーボードとキーコード 46:05 マルチタスク 53:58 コンテキストスイッチ 1:01:58 SwitchContext() の解説 1:09:51 x86-64アーキテクチャとスタックのアライメント制...
第5回 APICと割り込み/第6回 メモリ管理
มุมมอง 1.3K3 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第二」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxTLHB9GFM6_drAJ1JQXIOud.html 第5回、第6回では、USB マウスの信号を割り込みの仕組みを用いて受信する方法と、パソコンに搭載されたメモリの空き領域を把握して管理する方法を学びます。 0:40 割り込み 5:52 割り込みハンドラ 9:15 割り込みベクタと IDT 12:11 割り込み記述子 19:28 MSI 割り込み 27:10 割り込みのまとめ 28:40 割り込みハンドラの高速化 36:00 キューを使った割り込み高速化 45:06 sti 命令と遅延効果 49:11 メモリ管理 52:05 UEFI メモリマップ 1:02:08 データ構造の移動 1:05:23 スタック領域の移動 1:13:13 セグメ...
第3回 画面描画とフォント/第4回 PS/2とUSBマウス
มุมมอง 2.4K3 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第二」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxTLHB9GFM6_drAJ1JQXIOud.html 第3回、第4回では、画面に絵や文字を出す原理や USB マウスの扱い方を学びます。 9:00 画面描画と GOP 21:52 ABI 23:24 ピクセルフォーマットの解釈 28:27 継承と配置 new 35:15 文字を描く 51:37 make 入門 59:07 vtable 1:05:13 objcopy の使い方を詳しく 1:07:58 printk() と可変長引数 1:13:54 マウスとデスクトップの描画 1:16:48 PS/2 マウスと USB マウス 1:26:15 USB ドライバのコードをチラ見 1:28:12 PCI デバイスの探索 1:38:16 ポーリング...
第1回 オペレーティングシステム/第2回UEFIと64ビット環境
มุมมอง 16K3 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第二」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxTLHB9GFM6_drAJ1JQXIOud.html 第1回、第2回では、OS の概要、他の OS を利用せずに起動するプログラムの作成、UEFI BIOS による起動などを講義します。 0:59 本講義シリーズの概要説明や講師の自己紹介 11:51 OS とは 21:04 最終的に完成する OS の姿 21:25 バイナリエディタで OS を作ってみる 25:02 結局、何をやったのか 36:35 UEFI BIOS による起動の仕組み 39:15 OS を作る道具 48:55 UEFI アプリのソースコードの説明 50:35 EDI II入門 58:10 MikanOS の紹介 1:10:26 MikanOS のバージョン間の差分確認 ...
システム開発プロジェクト応用第一 第14回 コミュニケーション
มุมมอง 1K3 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第一」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxR3yFgCPvj40_nV-k5buTvz.html コミュニケーションは相手に情報を伝達することです。コミュニケーションをうまくやるコツは HRT を意識することです。コミュニケーションの実践にはいろいろなフレームワークが役に立ちます。授業では議論と振り返りの 2 つのフレームワークを練習します。 0:13 コミュニケーションとは 2:21 ストックとフロー 4:07 チーム開発とコミュニケーション 5:10 HRT 6:29 議論のフレームワーク 9:37 議論の練習 13:05 振り返りのフレームワーク 14:36 議論結果の発表 22:53 YWT 法で授業を振り返る 24:36 Y(やったこと) 34:15 W(分かったこと) 4...
システム開発プロジェクト応用第一 第13回 デプロイと冪等性
มุมมอง 1.1K3 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第一」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxR3yFgCPvj40_nV-k5buTvz.html 今回はデプロイの概念や継続的デリバリ/継続的デプロイの実現方法を紹介します。デプロイは失敗するので冪等性が大事です。そこで構成管理ツールを活用して宣言的な記述を行い,冪等なデプロイを構成します。 0:59 デプロイとは 5:10 GitHub Pages 13:34 CircleCI から GitHub へのデプロイ 14:49 デプロイ用 SSH 鍵ペアの設定 19:16 デプロイスクリプト 23:41 継続的デリバリと継続的デプロイ 25:24 デプロイは失敗する 27:17 冪等性 31:27 構成管理ツールと宣言的記述 34:04 Ansible の設定例 この講義は東京工業大学...
システム開発プロジェクト応用第一 第12回 継続的インテグレーション
มุมมอง 1.2K3 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第一」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxR3yFgCPvj40_nV-k5buTvz.html 今回は継続的インテグレーションの意味と効果,やり方を紹介します。継続的インテグレーションはソフトウェアシステム全体のバグを早期に発見し,開発プロセスを効率的にします。実際に手を動かして Circle CI を使って自動ビルドを試します。 0:58 インテグレーション 3:30 継続的インテグレーション 5:33 CI を支援するツール 7:21 CircleCI 8:52 Docker 12:40 CircleCI の設定例の紹介 18:17 UI のテスト 19:58 ヘッドレスブラウザと Selenium 23:26 ビルドアーティファクト この講義は東京工業大学 情報理工学院 情報...
システム開発プロジェクト応用第一 第10,11回 ユニットテスト
มุมมอง 1.6K3 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第一」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxR3yFgCPvj40_nV-k5buTvz.html 今回はプログラムのテスト,特にユニットテストに焦点を当てます。プログラムのテストの意味,基本的なテストの作り方,ユニットテストの性質を紹介します。ユニットテストの記述や実行をサポートするフレームワークを使った演習を行います。後半はチームに分かれて,モブプログラミングによるテスト駆動開発を練習します。 0:48 テストとテストケース 4:28 テストピラミッド 6:57 UIテスト 10:24 結合テスト 11:08 ユニットテスト 14:05 ユニットテストが持つべきでない性質 16:58 回帰テスト 18:55 ユニットテストフレームワーク 23:28 ユニットテストが書きにくい関数 ...
システム開発プロジェクト応用第一 第8,9回GitHub & Pull Request
มุมมอง 4.2K4 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第一」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxR3yFgCPvj40_nV-k5buTvz.html 今回は GitHub を使った開発のやり方を紹介します。まず、分散開発と Push/Pull/Fetch の挙動を説明します。次に Fork/Pull Request との関連を見てみます。後半はブランチモデルの紹介とそれが必要な理由を説明し、リポジトリ内/間 Pull Request の出し方を学びます。 0:23 Git を用いた分散型の開発 3:53 Clone と git remote 9:43 Push/Pull/Fetch 16:07 Pull = fetch merge 20:46 Pull と Push の非対称性 26:50 GitHub と中央集中型バージョン管理 3...
システム開発プロジェクト応用第一 第7回 バグトラッキング
มุมมอง 1.7K4 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第一」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxR3yFgCPvj40_nV-k5buTvz.html この回ではバグや機能追加要望などを追跡管理するバグトラッキングシステムを紹介します。実際の BTS の例や「良いバグ報告」を書くのに必要な要素を説明します。また、GitHub Issues を使ってコミットとチケットの連携をやってみます。 この講義は東京工業大学 情報理工学院 情報工学系 情報工学コースで 2020 年度に開講されたものです。2020 年度は実際のシステム開発プロジェクトの現場で使われている現代的な開発ツールや手法を学ぶというテーマです。正しいツールや手法の選択はソフトウェア開発を効率的に,そして楽しいものにします。 「システム開発プロジェクト応用第一」の 2020 年度...
システム開発プロジェクト応用第一 第5,6回 Gitによるバージョン管理
มุมมอง 26K4 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第一」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxR3yFgCPvj40_nV-k5buTvz.html 今回はバージョン管理システムを紹介します。主に Git の操作やデータモデルを説明します。ローカルにリポジトリを作ったり,リポジトリを複製して push/pull を試したりします。ワークツリー,インデックス,HEAD の関係を理解することで,git reset コマンドの挙動を深く理解します。3-way マージの仕組みとリベースの挙動を詳しく解説します。 00:00 バージョンを管理する、とは何か 12:25 基本的なgitコマンドたち(前置きを飛ばして見たい方はここから) 16:10 git diff 17:45 git log、git log graph all 19:46 ワーク...
システム開発プロジェクト応用第一 第3,4回 GDBによるデバッグ
มุมมอง 5K4 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第一」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxR3yFgCPvj40_nV-k5buTvz.html 今回はプログラムのデバッグの仕方,特に GDB を用いたデバッグ手法を学びます。 典型的な GDB の操作はもちろん,コアダンプを用いた解析やブレークポイント/ウォッチポイントの仕組みも説明します。 この講義は東京工業大学 情報理工学院 情報工学系 情報工学コースで 2020 年度に開講されたものです。 2020 年度は実際のシステム開発プロジェクトの現場で使われている現代的な開発ツールや手法を学ぶというテーマです。 正しいツールや手法の選択はソフトウェア開発を効率的に,そして楽しいものにします。 「システム開発プロジェクト応用第一」の 2020 年度のシラバスはこちら: www.ocw...
システム開発プロジェクト応用第一 第1,2回 情報収集
มุมมอง 16K4 ปีที่แล้ว
東京工業大学の「システム開発プロジェクト応用第一」の講義動画シリーズです。再生リスト→ th-cam.com/play/PLbBGNsln3DxR3yFgCPvj40_nV-k5buTvz.html 今回は情報収集を行うためのツールや方法について解説を行います。システム開発には多くの情報源が必要となります。自分なりの情報ソースを見つけ,素早く情報を集める方法を学びます。また,作業記録を取ることで集めた情報を効率的に利用する方法も学びます。 この講義は東京工業大学 情報理工学院 情報工学系 情報工学コースで 2020 年度に開講されたものです。2020 年度は実際のシステム開発プロジェクトの現場で使われている現代的な開発ツールや手法を学ぶというテーマです。正しいツールや手法の選択はソフトウェア開発を効率的に,そして楽しいものにします。 「システム開発プロジェクト応用第一」の 2020 ...

ความคิดเห็น

  • @隅田川春
    @隅田川春 20 วันที่ผ่านมา

    無料で聞くわありがとう

  • @toyotake6197
    @toyotake6197 หลายเดือนก่อน

    今だとAI系ツールを利用するが受講者からたくさん出るのだろうか。

  • @Ravilabo
    @Ravilabo หลายเดือนก่อน

    講義を第12回まで公開して頂き大変感謝しています。 シラバスには第14回分掲載されていましたが、 最後の2回分は非公開なのでしょうか。

  • @tomlla_9282
    @tomlla_9282 7 หลายเดือนก่อน

    購入した「ゼロからのOS自作入門」と一緒にこの動画を観ています。 これが公開されているなんて、なんて良い時代だ。

  • @うちゃ-u1i
    @うちゃ-u1i 8 หลายเดือนก่อน

    ubuntuの20.04だけど/mnt/wsgl/dumps/にコアファイル生成されてた。 sysctl -a | grep core_patternみれば生成されるディレクトリわかる

  • @froslassglalie8364
    @froslassglalie8364 11 หลายเดือนก่อน

    途中の gdb によるデバッグがとても参考になりました

  • @void2extern189
    @void2extern189 ปีที่แล้ว

    46:10 マルチタスク, 51:50 コンテキストスイッチ(協調的マルチタスク), 1:09:45 OS主導マルチタスク, 1:20:00 2TaskからMulti Taskへ

  • @理工共有
    @理工共有 ปีที่แล้ว

  • @baseball_B
    @baseball_B 2 ปีที่แล้ว

    OSについて、勉強していたところに、この動画に出会えた… 感動で目が潤む てか内田さんやん!!! 自作OSを調べると至る所にいるんやなぁ笑

  • @一様収束
    @一様収束 2 ปีที่แล้ว

    教科書欲しいです 公開または配布は可能でしょうか?

    • @DaisukiHihumi
      @DaisukiHihumi 2 ปีที่แล้ว

      概要欄に教科書を買うためのリンクがありますよ あとは「os自作入門」で調べれば色々なサイトで買えますよ

    • @一様収束
      @一様収束 2 ปีที่แล้ว

      ありがとうございます 調べて見ます

  • @鳥雄-i3v
    @鳥雄-i3v 3 ปีที่แล้ว

    あ、にゃんぱすです

  • @gnaben
    @gnaben 4 ปีที่แล้ว

    WSL2 では 無事に core ファイル作成されました。

  • @Nao-wr3qp
    @Nao-wr3qp 4 ปีที่แล้ว

    各章とても簡潔で分かりやすかったです。ありがとう。

  • @わいしーくん
    @わいしーくん 4 ปีที่แล้ว

    キーボード音がすでにHHKB