すみません、私の混乱した質問のために。ポインタを探しています。
これまで私はほとんどアプリケーション層でJavaとPythonを使用しており、オペレーティングシステムとハードウェアについては漠然とした知識しかありませんでした。コンピューティングの低レベルについてもっと理解したいのですが、どういうわけか本当に圧倒されます。大学では、マイクロプログラミング、つまりプロセッサがASMコードを実装するためにどのように配線されているかについてのクラスを受講しました。これまでは、「低レベル」について学べば、これ以上の仕事はできないといつも思っていました。
私の質問の1つは、ハードウェアが開発者からほぼ完全に隠される可能性があるのはなぜですか。オペレーティングシステムはハードウェアのソフトウェアレイヤーであると言っても正確ですか?1つの小さな例:プログラミングで、L2キャッシュまたはL3キャッシュとは何かを理解する必要に遭遇したことはありません。典型的なビジネスアプリケーション環境の場合、アセンブラーや下位レベルのコンピューティングを理解する必要はほとんどありません。現在、ほとんどすべてのテクノロジースタックが存在するためです。これらの低レベルの全体のポイントは、高レベルへのインターフェースを提供することだと思います。一方で、たとえばこのグラフィックスコンピューティング全体など、下位レベルがどの程度の影響を与える可能性があるのでしょうか。
したがって、一方で、この理論的なコンピュータサイエンスブランチがあり、抽象的なコンピューティングモデルで機能します。ただし、複雑なモデル、証明の検証などのカテゴリで役立つ考えを見つけた状況にもめったに遭遇しませんでした。私は、NPと呼ばれる複雑なクラスがあり、それらを解決するのがある程度不可能であることを知っています。多数のN。欠けているのは、これらのことを考えるためのフレームワークのリファレンスです。私には、めったに相互作用しないさまざまな種類のキャンプがあるようです。
過去数週間、私はセキュリティ問題について読んでいました。ここでは、どういうわけか、さまざまなレイヤーの多くが一緒になっています。攻撃とエクスプロイトはほとんど常に下位レベルで発生するため、この場合は、OSIレイヤーの詳細、OSの内部動作などについて知る必要があります。