0x19fの日報

なるべく毎日書きます

7/19 Haribote OSにファイルシステムを作る

OSの授業の自由課題で『OS自作入門』のHaribote OSに簡単なファイルシステムを作ることにした. (なお, 書籍自体は23日目までしか終えてない.) ファイルシステムと言っても, ディスクI/Oのやり方がわからないのでメモリ上にディレクトリツリーがあるだけだけれど. inodeみたいな構造体を用意して, コマンドでツリー構造を変えられるようにした. いまのところ, cd/pwd/mkdir/rmdir/mv/rmぐらいは作って問題なく動いてそうな感じ. 久しぶりに線形リストを扱ったので末尾挿入や要素削除で手間取った. 他にも文字列を'/'でsplitとかは地味に面倒だった. あとは簡単なテキストファイルを作れるコマンドぐらいあるといいかなぁ. 思いの外早くできてしまったのでディスクI/Oもやってみたいのだけれど, あと1週間ちょいではなんとかならなさそう.

 

ABC038

  • D: プレゼント - AtCoder Beginner Contest 038 | AtCoder [解答]
    サークル活動で「今週のABC!」的なことをしようってこれが出題されていたので解いた. 解くのは3回目ぐらい. pair(h, w)の昇順にソート, 高さ順に全要素を見ていきながら, [1, w[i]]の最大値をBITを使ってlog(N)で更新/計算する. 高さが変わるタイミングまではBITの更新をしないのがポイント. BIT使うのも久々だったのでいい練習になった.

 

期末テスト7個って少なくないですか?(今まで13個とかがデフォルトだったので)