Open3

ゼロからのOS自作入門 メモ

tuttitutti

第0章 (2021/4/14)

OSが持つ3つの側面

  1. アプリケーションに対するインターフェースとしての側面
  2. 計算資源分配者としての側面
  3. 人間に対してのインターフェースとしての側面

抽象化

詳細を隠して単純なインターフェースを提供すること

POSIX

UNIX系のOSが広く採用しているインターフェースで、C言語の関数やファイルシステム、プロセスなど、広い範囲をカバーします。

tuttitutti

第1章 (2021/4/21)

Ubuntu 20.10 だと llvm-7-dev が見つからなくてansibleで行う環境構築が成功しない。
Ubuntu 20.04 では成功したという報告あり。

$ ansible-playbook -K -i ansible_inventory ansible_provision.yml
BECOME password: 

PLAY [all] *****************************************************************************************************

TASK [Gathering Facts] *****************************************************************************************
ok: [localhost]

TASK [ensure development tools are at the latest version] ******************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "No package matching 'llvm-7-dev' is available"}

PLAY RECAP *****************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0  

以下コマンドでllvmをインストールし、再度試したが失敗。

$ sudo apt-get install llvm

Ubuntu 20.10 には llvm-7-dev のパッケージが用意されていない?

$ apt search llvm-7-dev
ソート中... 完了
全文検索... 完了
tuttitutti

第1章 (2021/4/22)

Ubuntu 20.10 を潰し、Ubuntu 20.04 LTS を再インストールし、第1章を再トライ。

A.1 開発環境のインストールは無事完了。

試験用PCが無いので、エミュレータでHello Worldを実行する。

成功!

QEMUを簡単に起動するスクリプトを用意してくれているが、それでも長いのでエイリアスを定義しておいた。

.bashrc
alias qemu='$HOME/osbook/devenv/run_qemu.sh'

これで↓でエミュレータを起動できる。

$ qemu BOOTX64.EFI