LinuxにおけるI/Oデバイス管理について学習したため、そのまとめとして個々に整理する。 sysfsファイルシステム Linuxにおける特殊ファイルシステムの一種であり、一般的には/sysディレクトリにマウントされている。 procファイルシステム同様、ユーザーモー…
独自のドメインを取得しAWS Route53に設定したので、そのまとめとしてここに整理する。 独自ドメインの取得 なにかしらのドメイン登録サービスから独自のドメインを取得する 今回はお名前ドットコムで取得 AWS Route53の設定 ホストゾーンを作成 「Domain na…
Linuxの動的リンクについて学習したため、そのまとめとしてここに整理する。 動的リンクとは プログラムとライブラリを連結させる方法の一つで、予めコンパイルされ所定の場所に置かれているオブジェクトファイル(共有ライブラリ)を読み込むように連結させる…
Linuxにおけるファイルシステムについて学習したため、そのまとめとしてここに整理する。 ファイルシステムとは ディスク上のデータを、ファイル・ディレクトリなどの概念により構造的に管理するための仕組み ファイル名によるデータの管理や、ディレクトリ…
A20ゲートについて学習したため、そのまとめとしてここに整理する。 A20ゲートとは x86アーキテクチャをベースとするCPUが持つ回路のひとつ。 「有効」・「無効」の2種類の状態を持ち、20bitで表すことが可能なメモリ領域以上の領域にアクセスするためには有…
Multiboot specificationについて学習したため、そのまとめとしてここに整理する。 Multiboot specification ブートローダからカーネルをロードする方法について規定した仕様 この仕様に従って構成されているブートローダ・カーネルであれば、どのような組み…
仮想ファイルシステム(VFS)について学習したため、そのまとめとしてここに整理する。 仮想ファイルシステム(VFS) Virtual File System Linuxにおいて、様々な種類のファイルシステムを透過的に扱うための仕組み アプリケーションとファイルシステムの実装と…
オペレーティングシステムにおける割り込みと例外について学習したため、そのまとめとしてここに整理する。 Intelプロセッサにおける割り込みと例外 割り込みは2種類に分類できる 同期割り込み CPU内の制御回路により生成される 実行中の命令終了時にのみ発…
メモリのページングについて学習したため、そのまとめとしてここに整理する。 ページング メモリをページという単位に分割し管理、仮想的なアドレス(仮想アドレス)を割り当てる ページ単位でストレージに退避させることにより、実メモリのサイズよりも大きな…
メモリのセグメント機構について学習したため、そのまとめとしてここに整理する。 セグメントセレクタ セグメントを一意に識別するための16bitのフィールド 各フィールドの役割 RPL (0 ~ 1bit目) Requestor Priviledge Level セグメントセレクタをCSに読み込…
バディシステムについて学習したため、そのまとめとしてここに整理する。 バディシステムとは Linuxカーネルにおけるページフレーム割当の際、メモリ断片化を解決するためのアルゴリズム。 ページフレーム CPU内に内蔵される「仮想アドレスから物理アドレス…
Emacs Lispでの開発用メモ ループ while 継続条件を満たす限り処理を継続 仕様 第1引数: 終了条件 文字列 length 文字列の長さを取得 仕様 第1引数: 対象の文字列 戻り値: 対象の文字列の長さ 例: 文字列の長さを受け取って変数に代入 (setq len (length "ab…
フォーマット文字列攻撃について学習したため、そのまとめここに整理する。 フォーマット文字列攻撃とは printfの引数として与える、フォーマット文字列が外部から指定可能な際に成立する。 入力値をそのまま引数として使用している場合など 主な攻撃内容 %x…
ClangとLLVMについて学習したため、そのまとめとしてここに整理する。 コンパイラのフロントエンドとバックエンドについて コンパイラはフロントエンドとバックエンドに分割し設計されているケースがあり、それぞれ役割がある フロントエンド ソースコードを…
ディスクパーティショニング方式のMBRとGPTについて学習したため、そのまとめとしてここに整理する。 MBR 正式名称 Master Boot Record 位置指定方法 CHS (Cylinder Header Sector) ディスク内の位置を指定する際に、シリンダ・ヘッダ・セクタを指定する方式…