Linux Book Review
やっぱりC言語でLinuxプログラミング
中澤勇
@IT編集局
2002/2/1
|
Webを中心にしたシステム構築が盛んになるにつれ、C言語を使う必然性は低下したといえるかもしれない。しかし、Linuxネイティブアプリケーションやカーネル/ドライバ開発となると、やはりC言語ということになる(アプリならObject Pascalもあるが)。それに、多くのソフトウェアはC言語で書かれているから、単にソースを入手してコンパイルするだけという人でもC言語の知識があった方が何かと都合がいい。
ただし、WindowsとLinuxでは開発スタイルは大きく異なる。そこで、今回はWindowsプログラマーがLinuxでもプログラミングできるようになる書籍を選んでみた。これらの書籍を読めば、Linuxにおけるプログラミングが理解できるだろう。
なお、以下の書籍はいずれもC言語が使えることを前提としている。C言語自体を知らない人は、これとは別にC言語を学ぶ必要がある。
Linuxプログラミングの入り口に |
Linuxプログラミングガイド 奥脇 学 著 秀和システム 2000年10月 ISBN4-7980-0021-3 2600円 |
Kylixの登場で多少は変わったとはいえ、やはりWindowsとLinuxではプログラミング・スタイル(方法)が大きく異なる。WindowsではIDE(統合開発環境)を使い、プロジェクトの管理などはIDEに任せてしまうことが多いのではないだろうか。IDEなら、細かいことを考えなくても[ビルド]ボタンを押せばコンパイルからリンクまでやってくれる。一方のLinux(UNIX)は、ソースやMakefileをエディタで書いてmakeコマンドを実行するといった伝統的なスタイルが好まれるようだ。
両者の方法に優劣はないが、「慣れ」の問題は無視できない。IDEに慣れ切ってしまうと、すべてをコマンドで処理する方法は敷居が高く感じられる。本書は、ここでつまずいてしまった人にオススメだ。必要なツール(エディタ、GCC、gdb、CVSなど)やライブラリの概要、GCCの使い方やMakefileの書き方など、Linuxプログラミングに必要な知識を平易な言葉で解説している。本書を読めば、呪文にしか見えなかったMakefileも自分で書けるようになるだろう。ただし、プログラミングそのものについてはほとんど触れられていないので、Linuxプログラミングに必要なシステムコールやプロセス管理といった話は以下で紹介する書籍を参照してほしい。
viやEmacsの解説にややページを割き過ぎている感はあるが、入門者とプログラミング書との間に横たわる溝を埋める役割を十分に果たしてくれる。Linuxプログラミング本を見て途方に暮れた人は、まず本書を一読してみるといいだろう。
Linuxプログラミングの全体像を知ろう |
Linuxプログラミング 例題で学ぶUNIXプログラミング環境のすべて Neil Matthew & Richard Stones 著 ソフトバンク パブリッシング 1999年3月 ISBN4-7973-0819-2 4200円 |
本書は、『Beginning Linux Programming』の翻訳書で、ファイル操作からプロセスやシグナル、プロセス間通信、ソケット、Xまで、Linux(あるいはUNIX)プログラミング全般を要領よく網羅している。各分野に満遍なく目配りされており、Linuxプログラミングを学ぶには最適といえる。
ただし、原題の「Beginning」から連想されるほどには入門者向けとはいえない。他プラットフォーム上で、C言語をバリバリ使っている人がUNIXプログラミングを始めるという場合の「入門書」である。C言語を使いこなせない人はもちろん、Visual C++の各種ウィザードの助けがなければ開発できない人にとっては、かなり難しいだろう。
とはいえ、LinuxやUNIXでプログラミングしたいというなら、一度は本書を手にすることをお勧めする。純粋なプログラム解説だけでなく、makeコマンドやMakefileをはじめとするプログラミングツール類やデバッグ方法、manページの書き方など、周辺知識も詳しく解説しているので、この1冊で非常に多くを学べるからだ。
本書が物足りなくなったら、よりテーマに特化したプログラミング本をあらためて探せばいいだろう。
GNOMEやGUIプログラムの開発を完全網羅 |
GNOMEプログラミング GNOMEアプリケーション開発の基礎 山本厳淳、木本芳男、志賀誠、田中克範、岡田充 著 セレンディップ 2001年7月 ISBN4-7978-2020-9 4200円 |
プログラミングの本質に違いはないとはいえ、GUIプログラミングではCUIプログラミングとは別の要素についても学ぶ必要がある。GUIのデザインやツールキットの使い方、そしてプログラムのプラットフォームとしてのデスクトップ環境などだ。
本書は、KDEと人気を二分するデスクトップ環境「GNOME」(注)のプログラミング解説書である。GNOMEプログラミングの前提となる情報から丁寧に解説されており、GNOMEについて一通り学んでからソースツリーの管理方法、基本的なプログラミング方法の順番でGNOMEプログラミングの全体像を知ることができる。以降はメッセージの国際化やダイアログボックス、セッション管理、アプレットなどの各説となる。さらに、CORBAオブジェクトをアクティブにする「OAF」(Object Activation Framework)や、コンポーネントアーキテクチャ「Bonobo」など、GNOMEの基盤となる技術の使い方(プログラミング方法)についても詳述している。ついでに紹介しておくと、AppendixのGLIB/GTK+ API概要もシンプルにまとまっていて便利だ。
GNOMEプログラミングに挑戦するなら、本書は必須といえるだろう。
注:2002年1月現在の最新版であるGNOME 1.4が対象 |
カーネルハッカーを目指す人必携 |
詳解 Linuxカーネル Daniel P. Bovet、Marco Cesati 著 オライリー・ジャパン 2001年7月 ISBN4-87311-048-3 5800円 |
Linuxをとことん理解するのに最適なドキュメントとは? それはカーネルのソースコードだ。ここにはLinuxのすべてが記述されている。しかし、コードは膨大で、これからハッカーを目指す人はどこから手を付ければよいのか途方に暮れることだろう。
本書は、カーネルソースをひもとこうとする人にとって、格好のガイドとなる。メモリアドレッシングやプロセス、システムコール、VFS、I/Oデバイス管理といった機能について、Linuxではどのように実装され、どのように振る舞うのか。時にはほかのUNIXと比較しながらコードも交えて解説している。Linuxカーネルの動作を理解することで、コードの解読は大幅に楽になるだろう。
また、ほかの多くのカーネル解説書がハードウェア非依存な方針を取るのに対し、本書はx86依存部分にも踏み込んでいるという特徴がある。そのため、x86アーキテクチャに依存した部分についても詳しく知ることができる。当然ながら、本書を100%活用するにはC言語のみならずアセンブラやx86アーキテクチャの知識が必要になる。ハッカーを目指すならぜひ身に付けておきたい。
本書は、実にオライリーらしい良書である。ボロボロになるまで何度でも読み込んでほしい1冊だ。
各書評にあるボタンをクリックすると、オンライン書店で、その書籍を注文することができます。詳しくはクリックして表示されるページをご覧ください。 |
Linux Square Book Review |
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|