2019年8月20日0件のコメントUNIXプログラミングの金字塔は今でも輝いているこれから中堅を担うべき30代くらいの若いプログラマーの中にはLinuxは知っていてもUNIXは知らないという人もいるかもしれない。それは別に問題ではないが、リーナス・トーバルズさんがUNIXを一人で作った(それがLinux)と聞いて話半分に聞き流したのを憶えている。UNIXはそれ位巨大なシステムだったし今でもかなり巨大なシステムだと言うことは知っておいて損はない。その巨大なシステムを利用して現在多くのエンジニア・プログラマーが働いているWeb開発が成り立っていると言っても過言ではない。(Windowsベースのものもあるけどメインとは言えない。)日々、Web開発などを行っている人が、その下で動いている謎のシステム(UNIX)について知りたいと思ったとき、最終的に参考にすべきものを紹介しておく。最近はその手の案件を手がけていなかったので、調べてみたら私が持っている十年近く前の版が大半、最新版のままである事に気付いた。この十年ほど大きな変更は加わっていないのだ。使用言語はもちろんC言語。UNIXを作るために開発されたプログラミング言語である。情報系を卒業した人なら知っていると思うが、文系から転身したような人だと知らないかも知れない。Programming(日本語ではシステムプログラミングと単数形のままにする事が多いようだが、システムズのように複数形にするのが本当のようだ。翔泳社)これ以上はないと思われる古典だが、UNIXは互換性のためにAPIを維持しているため今でも通用する。真面目に勉強するならこの本。この本と合わせて次の実戦的な本を演習するといい。Edition)こちらはサンプルプログラムが充実している。大きく4つに分けてある。EventsConcurrencyCommunicationこのカテゴリーを見るだけで現代にも通用しそうな雰囲気が・・・。hoodで実行しているのはここに書かれてあるようなAPIを利用して、というのが実情。Programmingこちらも後方互換性のためかあまり大きな変更が頻繁には生じない。そのため日本語版がそのまま使える「ありがたい」分野でもある。2には日本語版がある。スティーヴンス、ピアソンエデュケーションTCP/IPにフォーカスをおいた本が以下。詳解TCP/IP〈Vol.3〉トランザクションTCP、HTTP、NNTP、UNIXドメインプロトコルまとめUNIXの根幹を操るためのAPI群やネットワークプログラミングのための基盤はこの十年ほど保たれており、まだ日本語の訳本がしばしば出版されていた時代の本が現役で通用する。できれば時間のある学生のうちに読んでおきたい(厚い)本が中心だが、「使い捨てエンジニア」にならないためにはこういう基礎的なこともしっかり手を動かして学んでおきたい。この辺りのことはあまり変わらないので、変化の激しいフレームワークを学ぶ時間のいくらかをこういった基礎に回す方が長い目で見てよいのではないかと思う。温故知新とはこの分野である。