DEV Community 日本語
フォロー
13階:あなたのコンピューターの本当の仕組み
甥であり開発者である彼は、自分のラップトップでコードを実行したときに何が起こるのか、本当には理解していないと叔父に告白する。叔父はラップトップを、電気や水道のような共有リソースのあるアパートの建物に例える。Ubuntuのようなオペレーティングシステムは、施設管理者のように、これらのリソースを様々なアプリケーション(テナント)に公平に分配する。2つの基本的なリソースはRAMで、これはキッチンカウンターに例えられ、SSDは倉庫に例えられる。RAMは高速で一時的であり、電源が切れるとデータが失われるが、SSDは遅いが永続的である。この速度対永続性のトレードオフは、コンピューティングにおける中心的な概念である。コードが実行されるとき、積極的に処理されるためには、SSD(倉庫)からRAM(キッチンカウンター)にコピーされなければならない。アプリケーションはハードウェアに直接アクセスすることはできず、システムコールを通じてオペレーティングシステムに要求を出す必要がある。アプリケーションが実行される前に、OSは新しいプロセスを作成し、一意のIDとRAMのプライベートセクションを割り当てる。このプロセスには、アプリケーションのコードを永続ストレージから一時的で高速なメモリにコピーすることが含まれる。OSは、競合を防ぐために、すべての共有ハードウェアリソースへのアクセスを厳密に制御する。