低レイヤー

Go言語

Goで学ぶファイルディスクリプタ

今回はファイルディスクリプタの解説をしていきます。こちらを読むことで、プログラムからファイルを操作がどのようにされているか理解することができます。ファイルディスクリプタとは?ファイルディスクリプタとはプログラムからファイルを操作する際に、操...
Go言語

Goのメモリ管理:アロケータ、ガベージコレクション

開発をしていてあまりに気にしないが重要なアロケータや、ガベージコレクションについて解説をしていきます。アロケータGoのアロケータはオブジェクトを操作するのに必要なメモリブロックを動的に割り当てられ、ロックや断片化を回避してOSヘの遅いシステ...
Go言語

なぜGoは並行処理に優れているか?

Goがなぜ並行処理に長けているのか、Gorutineのどのような部分が良いのかについて解説をしていきます。スタック、ヒープGoroutineの良さを知るためにはまずスタック、ヒープを知っておく必要があります。スタックは引数や変数、返り値、静...
Linux

仮想記憶について

仮想記憶について解説をしていきます。プログラムでどのようにメモリが管理されているか学べるようになっています。仮想記憶とは仮想記憶はプロセスがメモリにアクセスをする時に、物理的なメモリに直接アクセスしないで、仮想アドレスというアドレスを使って...
Linux

プロセス管理について

プロセスの知識はプログラミングをする上でも必要になってきます。今回はプロセスとは何か?プロセスがどのように管理されているのかについて解説をしていきます。これらを学ぶことで、どのようにプログラムが動いているかを理解を深めることができます。プロ...
OS

カーネルやシステムコールについて

カーネルやシステムコールはプログラムが機能を提供する上でなくてはならない存在です。これらを理解することで、プログラムでどのようにデバイス操作や、ファイルシステムの操作をしているかがわかるようになります。カーネルとはカーネルはOSの基本機能の...
低レイヤー

CPUとメモリについて

プログラムを書く時に、あまりCPUやメモリなど低レイヤーについて考えることが少ないと思います。低レイヤーの技術を学ぶことで、プログラムがどのように動いているかを理解して、内部構造を知ることで技術の向上、障害発生時に調査する時に役立ちます。今...