{"product_id":"go3","title":"Goならわかるシステムプログラミング 第3版","description":"\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003e紙書籍をお届けします（PDFがついてきます）\u003c\/strong\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePDFのみ必要な場合は、\u003ca href=\"https:\/\/www.lambdanote.com\/products\/go3-ebook\"\u003eこちらからPDF単体\u003c\/a\u003eを購入できます\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003cli\u003e\u003cb\u003e通常はご注文から2～3営業日で発送します。\u003c\/b\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e年末年始や大型連休など、1週間から10日程度、配送のお休みをいただく場合があります。詳しくは\u003ca href=\"https:\/\/www.lambdanote.com\/blogs\/news\"\u003eお知らせ\u003c\/a\u003eをご覧ください。\u003c\/strong\u003e\u003cstrong\u003e\u003cbr\u003e\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eコンピューターの低レイヤーを自分の糧に\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e渋川よしき 著\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan\u003e480\u003c\/span\u003eページ\u003c\/li\u003e\n\u003cli\u003eA5判\u003c\/li\u003e\n\u003cli\u003eISBN：978-4-908686-26-9\u003c\/li\u003e\n\u003cli\u003e\u003cspan style=\"color: #808080;\"\u003e2017年10月23日 第1版第1刷 発行\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cspan style=\"color: #808080;\"\u003e2022年3月23日 第2版第1刷 発行\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003e2026年10月23日 \u003cspan\u003e第3版第1刷 発行\u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eエージェントを使いこなすベテラン開発者は知っている、OS、メモリ、CPU、システムコール、ネットワーク、 ファイルシステム、プロセス、シグナル、シェル、 並列と並行、分散、仮想化、セキュリティの基礎を一気に身に着けよう！ この一冊を読み通すだけで、コンピューターと現実がどう繋がっているか、馴染み深いアプリケーションのコードを通して俯瞰的かつ具体的に理解できる！ たくさんのベテランに読み継がれてきた名著の第3版です。\u003c\/p\u003e\n\u003cp\u003e本書は、2016年9月から2017年8月にかけて\u003ca href=\"http:\/\/ascii.jp\/elem\/000\/001\/235\/1235262\/\"\u003eアスキーjpの「プログラミング＋」コーナーで連載されたWebコンテンツ\u003c\/a\u003eを、さらにわかりやすく紙版の書籍として編纂した初版の第3版です。 \u003c\/p\u003e\n\u003ch2\u003e\u003cstrong\u003e著者紹介\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003e渋川よしき\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e自動車会社、ソーシャルゲームの会社を経て現在はフューチャー株式会社勤務。Python\/C++\/JavaScript\/Golangあたりを仕事や趣味で扱う。ウェブ関連は仕事よりも趣味寄り。\u003cbr\u003e著書に『Real World HTTP 第2版』、『Mithril』（ともにオライリー・ジャパン）、共著に『つまみぐい勉強法』、『Mobageを支える技術』（ともに技術評論社）、訳書に『アート・オブ・コミュニティ』（オライリー・ジャパン）、共訳に『エキスパートPythonプログラミング 改訂3版』（アスキードワンゴ）、『ポモドーロテクニック入門』（アスキー・メディアワークス）など。\u003c\/p\u003e\n\u003ch2\u003e\u003cstrong\u003e目次\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cp\u003eはじめに\u003c\/p\u003e\n\u003cp\u003e第1章 Goで覗くシステムプログラミングの世界\u003cbr\u003e　1.1 システムプログラミングとは\u003cbr\u003e　1.2 Goについて\u003cbr\u003e　1.3 Goのインストールと準備\u003cbr\u003e　1.4 デバッガーを使って\"Hello World!\"の裏側を覗く\u003cbr\u003e　1.5 本章のまとめと次章予告\u003cbr\u003e　1.6 問題\u003cbr\u003e\u003cbr\u003e第2章 低レベルアクセスへの入口1：io.Writer\u003cbr\u003e　2.1 io.WriterはOSが持つファイルのシステムコールの相似形\u003cbr\u003e　2.2 Goのインタフェース\u003cbr\u003e　2.3 io.Writerは「インタフェース」\u003cbr\u003e　2.4 io.Writerを使う構造体の例\u003cbr\u003e　2.5 インタフェースの実装状況・利用状況を調べる\u003cbr\u003e　2.6 低レベルの機能を組み合わせて入出力APIを作る\u003cbr\u003e　2.7 柔軟性が高く、パフォーマンスの良い設計のためのTips\u003cbr\u003e　2.8 本章のまとめと次章予告\u003cbr\u003e　2.9 問題\u003cbr\u003e\u003cbr\u003e第3章 低レベルアクセスへの入口2：io.Reader\u003cbr\u003e　3.1 io.Reader\u003cbr\u003e　3.2 io.Readerの補助関数\u003cbr\u003e　3.3 入出力に関するio.Writerとio.Reader以外のインタフェース\u003cbr\u003e　3.4 io.Readerを満たす構造体で、よく使うもの\u003cbr\u003e　3.5 バイナリ解析用のio.Reader関連機能\u003cbr\u003e　3.6 テキスト解析用のio.Reader関連機能\u003cbr\u003e　3.7 io.Reader／io.Writerでストリームを自由に操る\u003cbr\u003e　3.8 本章のまとめと次章予告\u003cbr\u003e　3.9 問題\u003cbr\u003e\u003cbr\u003e第4章 低レベルアクセスへの入口3：チャネル\u003cbr\u003e　4.1 goroutine\u003cbr\u003e　4.2 チャネル\u003cbr\u003e　4.3 システムからの通知\u003cbr\u003e　4.4 本章のまとめと次章予告\u003cbr\u003e　4.5 問題\u003cbr\u003e\u003cbr\u003e第5章 システムコール\u003cbr\u003e　5.1 システムコールとは何か？\u003cbr\u003e　5.2 Goにおけるシステムコールの実装\u003cbr\u003e　5.3 POSIXとC言語の標準規格\u003cbr\u003e　5.4 システムコールより内側の世界\u003cbr\u003e　5.5 GoのシステムコールとPOSIX\u003cbr\u003e　5.6 システムコールのモニタリング\u003cbr\u003e　5.7 エラー処理\u003cbr\u003e　5.8 通常のシステムコール以外の特殊なシステム呼び出し\u003cbr\u003e　5.9 ウェブブラウザの世界のシステムコール\u003cbr\u003e　5.10 本章のまとめと次章予告\u003cbr\u003e　5.11 問題\u003cbr\u003e\u003cbr\u003e第6章 TCPソケットとHTTPの実装\u003cbr\u003e　6.1 プロトコルとレイヤー\u003cbr\u003e　6.2 HTTPとその上のプロトコルたち\u003cbr\u003e　6.3 ソケットとは\u003cbr\u003e　6.4 ソケット通信の基本構造\u003cbr\u003e　6.5 GoでHTTPサーバーを実装する\u003cbr\u003e　6.6 速度改善（1）: HTTP\/1.1のKeep-Aliveに対応させる\u003cbr\u003e　6.7 速度改善（2）: 圧縮\u003cbr\u003e　6.8 速度改善（3）: チャンク形式のボディー送信\u003cbr\u003e　6.9 速度改善（4）: パイプライニング\u003cbr\u003e　6.10 本章のまとめと次章予告\u003cbr\u003e\u003cbr\u003e第7章 UDPソケットを使ったマルチキャスト通信\u003cbr\u003e　7.1 UDPとTCPの用途の違い\u003cbr\u003e　7.2 UDPとTCPの処理の流れの違い\u003cbr\u003e　7.3 UDPのマルチキャストの実装例\u003cbr\u003e　7.4 UDPを使った実世界のサンプル\u003cbr\u003e　7.5 UDPとTCPの機能面の違い\u003cbr\u003e　7.6 HTTP\/2とHTTP\/3\u003cbr\u003e　7.7 本章のまとめと次章予告\u003cbr\u003e\u003cbr\u003e第8章 高速なUnixドメインソケット\u003cbr\u003e　8.1 Unixドメインソケットの基本\u003cbr\u003e　8.2 Unixドメインソケットの使い方\u003cbr\u003e　8.3 UnixドメインソケットとTCPのベンチマーク\u003cbr\u003e　8.4 ソケットのシステムコール小話\u003cbr\u003e　8.5 その他のソケット\u003cbr\u003e　8.6 本章のまとめと次章予告\u003cbr\u003e\u003cbr\u003e第9章 ファイルシステムの基礎とGoの標準パッケージ\u003cbr\u003e　9.1 ファイルシステムの基礎\u003cbr\u003e　9.2 ファイル／ディレクトリを扱うGoの関数たち\u003cbr\u003e　9.3 OS内部におけるファイル操作の高速化\u003cbr\u003e　9.4 ファイルパスとマルチプラットフォーム\u003cbr\u003e　9.5 path\/filepathパッケージの関数たち\u003cbr\u003e　9.6 io\/fsによるファイルシステム抽象化\u003cbr\u003e　9.7 os.Root によるセキュリティの強化\u003cbr\u003e　9.8 本章のまとめと次章予告\u003cbr\u003e\u003cbr\u003e第10章 ファイルシステムの最深部を扱うGoの関数\u003cbr\u003e　10.1 ファイルの変更監視（syscall.Inotify*）\u003cbr\u003e　10.2 ファイルのロック（syscall.Flock()）\u003cbr\u003e　10.3 ファイルのメモリへのマッピング（syscall.Mmap()）\u003cbr\u003e　10.4 同期・非同期／ブロッキング・ノンブロッキング\u003cbr\u003e　10.5 select属のシステムコールによるI\/O多重化\u003cbr\u003e　10.6 FUSEを使った自作のファイルシステムの作成\u003cbr\u003e　10.7 本章のまとめと次章予告\u003cbr\u003e\u003cbr\u003e第11章 コマンドシェル101\u003cbr\u003e　11.1 シェルとは何か\u003cbr\u003e　11.2 シェルの利用形態\u003cbr\u003e　11.3 POSIX、SUS、LSB、BusyBox\u003cbr\u003e　11.4 環境変数\u003cbr\u003e　11.5 シェルがコマンドを起動するまで\u003cbr\u003e　11.6 Unix哲学とシェル\u003cbr\u003e　11.7 まとめ\u003cbr\u003e\u003cbr\u003e第12章 プロセスの役割とGoによる操作\u003cbr\u003e　12.1 プロセスに含まれるもの（Go視点）\u003cbr\u003e　12.2 プロセスの入出力\u003cbr\u003e　12.3 自分以外のプロセスの名前や資源情報の取得\u003cbr\u003e　12.4 OSから見たプロセス\u003cbr\u003e　12.5 Goプログラムからのプロセスの起動\u003cbr\u003e　12.6 プロセスに関する便利なGoのライブラリ\u003cbr\u003e　12.7 Goでは触れることのない世界\u003cbr\u003e　12.8 子プロセスの内部実装\u003cbr\u003e　12.9 本章のまとめと次章予告\u003cbr\u003e\u003cbr\u003e第13章 シグナルによるプロセス間の通信\u003cbr\u003e　13.1 シグナルのライフサイクル\u003cbr\u003e　13.2 シグナルの種類\u003cbr\u003e　13.3 Goにおけるシグナルの種類\u003cbr\u003e　13.4 シグナルのハンドラを書く\u003cbr\u003e　13.5 シグナルの応用例（Server::Starter）\u003cbr\u003e　13.6 Goランタイムにおけるシグナルの内部実装\u003cbr\u003e　13.7 Windowsとシグナル\u003cbr\u003e　13.8 本章のまとめと次章予告\u003cbr\u003e\u003cbr\u003e第14章 Goと並列処理\u003cbr\u003e　14.1 複数の仕事を同時に行うとは？\u003cbr\u003e　14.2 Goの並列処理のための道具\u003cbr\u003e　14.3 スレッドとgoroutineの違い\u003cbr\u003e　14.4 GoのランタイムはミニOS\u003cbr\u003e　14.5 runtimeパッケージのgoroutine関連の機能\u003cbr\u003e　14.6 Race Detector\u003cbr\u003e　14.7 syncパッケージ\u003cbr\u003e　14.8 sync\/atomicパッケージ\u003cbr\u003e　14.9 本章のまとめと次章予告\u003cbr\u003e\u003cbr\u003e第15章 並行・並列処理の手法と設計のパターン\u003cbr\u003e　15.1 並行・並列処理の手法のパターン\u003cbr\u003e　15.2 Goにおける並行・並列処理のパターン集\u003cbr\u003e　15.3 本章のまとめと次章予告\u003cbr\u003e\u003cbr\u003e第16章 Goのメモリ管理\u003cbr\u003e　16.1 メモリ確保の旅\u003cbr\u003e　16.2 Goの配列\u003cbr\u003e　16.3 スライスなど\u003cbr\u003e　16.4 ガベージコレクタ\u003cbr\u003e　16.5 Goにおけるメモリ関連のテクニック\u003cbr\u003e　16.6 本章のまとめと次章予告\u003cbr\u003e\u003cbr\u003e第17章 実行ファイルが起動するまで\u003cbr\u003e　17.1 実行ファイルが起動するまで\u003cbr\u003e　17.2 実行ファイルを支える仕組み\u003cbr\u003e　17.3 実行ファイルのメモリ配置\u003cbr\u003e　17.4 Goのプログラムの起動\u003cbr\u003e　17.5 インタプリタでのコードの起動\u003cbr\u003e　17.6 まとめ\u003cbr\u003e\u003cbr\u003e第18章 時間と時刻\u003cbr\u003e　18.1 OSのタイマー／カウンターの仕組み\u003cbr\u003e　18.2 さまざまな時間\u003cbr\u003e　18.3 時間に関するシステムコール\u003cbr\u003e　18.4 Goで時間を扱う\u003cbr\u003e　18.5 時刻のフォーマット\u003cbr\u003e　18.6 テスト中の時間の早送り\u003cbr\u003e　18.7 本章のまとめと次章予告\u003cbr\u003e\u003cbr\u003e第19章 Goとコンテナ\u003cbr\u003e　19.1 仮想化\u003cbr\u003e　19.2 コンテナ\u003cbr\u003e　19.3 Windows Subsystem for Linux 2（WSL2）\u003cbr\u003e　19.4 libcontainerでコンテナを自作する\u003cbr\u003e　19.5 仮想マシンの仕組み\u003cbr\u003e　19.6 本章のまとめ\u003cbr\u003e\u003cbr\u003e付録A セキュリティ関連のOSの機能とssh\u003cbr\u003e　A.1 乱数\u003cbr\u003e　A.2 TLS（Transport Layer Security）\u003cbr\u003e　A.3 ssh（Secure Shell）\u003cbr\u003e　A.4 キーチェーン\u003cbr\u003e\u003cbr\u003e付録B デバッガーのお仕事\u003cbr\u003e　B.1 デバッグ対象のプログラムに接続する\u003cbr\u003e　B.2 プログラムを止めたり進めたりする\u003cbr\u003e　B.3 メモリの読み書きと変更の監視\u003cbr\u003e\u003cbr\u003e付録C 参考文献\u003cbr\u003e\u003cbr\u003eあとがき\u003cbr\u003e　謝辞\u003cbr\u003e\u003cbr\u003e索引\u003c\/p\u003e","brand":"技術書出版と販売のラムダノート","offers":[{"title":"オリジナル","offer_id":51460037476521,"sku":null,"price":3900.0,"currency_code":"JPY","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1634\/7169\/files\/cover_059e9ee9-ab46-48c8-8bec-8630c42a49ad.png?v=1792488565","url":"https:\/\/www.lambdanote.com\/products\/go3","provider":"技術書出版と販売のラムダノート","version":"1.0","type":"link"}