CSAPP Labs
1.0.0
このプロジェクトは、「コンピューター システムの詳細な理解」の第 3 版のサポート実験に対する私の回答であり、実験ファイルは labs ディレクトリにあり、Lab Assignments から取得されます。
すべてのラボ ファイルと CMU が提供するリファレンス ドキュメントが含まれており、私の実験環境は Ubuntu 16.04 amd-64 であり、ソースにはすべてのラボの元のファイルが保存されています。
これらは私が書いたメモです:
ビット演算、2の補数、浮動小数点数などが含まれますが、これらはすべてC
言語プログラミングの問題です。
バイナリ爆弾を解体すると、アセンブリ コードを読み取る能力が大幅に向上します。
このラボでは主に、スタックのランダム化、実行不能、スタック オーバーフロー、ROP 攻撃などのスタック保護方法について説明します。
アーキテクチャ ラボでは、 Y86-64
命令セット、SEQ と PIPE の実装、およびプログラムの最適化が含まれており、アセンブリとハードウェア言語HCL
に慣れることができます。
このラボは CMU のキャッシュ ラボに置き換えられました。キャッシュ ラボの方が難しいことを考慮して、最初にこのラボを練習してください。本書の第 5 章と第 6 章に基づいて、主にループ ブロッキングなどの手法を使用して、キャッシュ ミスを排除し、分岐予測エラーを排除するプログラムを最適化しました。
パート A ではキャッシュ シミュレーターを作成する必要があり、パート B ではキャッシュ ミスの数を減らすために行列転置関数を最適化する必要があります。このラボでは、キャッシュについての理解を深めることができます。パートAが書き終わりました。