【Linuxシステムプログラミング入門】

プログラミングLinux

「Linuxシステムプログラミング」というのをご存知ですか?

Linuxで低レイヤーでプログラムするとき、どうしてもシステムコールと仲良くする必要がでてきます。

本記事では、Linuxにおけるシステムコールの使い方における本を2冊紹介します。

  • 入門書 Linuxシステムプログラミング
  • バイブル Linuxプログラムインタフェース

Linuxシステムプログラミングとは

イト屋です。

「Linuxシステムプログラミング」は、少し前までは、単に「システムプログラミング」であったり「Unixシステムプログラミング」と言われていました。

Windowsが独自のシステムコールを強要するため、Windowsでシステムプログラミングはできません。他のUnixが衰退してしまったので、Unixごとの微差を気にする必要は現代においてはありません。

システムプログラミングとは

システムプログラミングとは「システムコールと上手に付き合う方法」のことです。

では、システムコールとは、アプリケーションがOSと会話をする手段です。Linuxを含むUnixでは、OSと会話するのはC言語と決まっています。

つまり、システムコールは「C言語の関数のある集まりのこと」です。

したがって、システムプログラミングは「CまたはC++でOSとやりとりするための手段」ということになります。

以下の2冊を紹介します。

  • 入門書 Linuxシステムプログラミング
  • バイブル Linuxプログラムインタフェース

入門書 Linuxシステムプログラミング

まずはこの本から入りましょう。その名もそのまま「Linuxシステムプログラミング」です。

ファイルI/O、プロセス管理、メモリ管理、シグナル、時間について詳細に解説されています。

「read()という関数が普通に一部しか読めないことがある」ため、read()ではループする必要がある、とかを丁寧に説明されています。

バイブル Linuxプログラムインタフェース

次の本がLinuxシステムプログラムを根本的に変えてしまった本です。

上記の「Linuxシステムプログラミング」みたいな入門書を読んだ後、どうやってシステムプログラミングをしていたかというと、

「やり方をGoogleで調べる」

「libcとかカーネルのコードを調べる」

などを駆使して自分で方法を模索していました。「Linuxプログラミングインタフェース」がでるまでは。

「Linuxシステムプログラミング」では全く触れられていなかった以下の項目があります。

  • ソケットのプログラミング
  • プロセス間通信(IPC)のやり方
  • マルチスレッドプログラミングのやり方
  • 拡張属性の権限の複雑な仕様
  • /procファイルシステムの使い方

1604ページという持ち運びを拒否した重量です。でも、以下のように納得です。

  • 他の本を読む必要がない
  • 著者はmanページメンテナンスを担当しており正確で分かりやすい
  • 読むだけでスキルが上がるのを実感できる

Linuxシステムプログラミングを仕事にするのであれば、「Linuxプログラミングインタフェース」を必ず買って必携書としてください。

イト屋がLinuxシステムプログラミングしているとき、職場で5冊買って、全メンバのスキルアップをはかりました。

まとめ

Linuxシステムプログラミングを紹介しました。

Linuxプログラミングインタフェース」は必ず買いましょう。

以下、工程ごとの説明です。

>>> 【ITエンジニア】工程ごとの分類

コメント

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
タイトルとURLをコピーしました