[{"onix":{"RecordReference":"9784908686122","NotificationType":"03","ProductIdentifier":{"ProductIDType":"15","IDValue":"9784908686122"},"DescriptiveDetail":{"ProductComposition":"00","ProductForm":"BA","ProductFormDetail":"B108","TitleDetail":{"TitleType":"01","TitleElement":{"TitleElementLevel":"01","TitleText":{"collationkey":"ゴーナラワカルシステムプログラミング ダイニハン","content":"Goならわかるシステムプログラミング 第2版"}}},"Contributor":[{"SequenceNumber":"1","ContributorRole":["A01"],"PersonName":{"collationkey":"シブカワヨシキ","content":"渋川よしき"},"BiographicalNote":"自動車会社、ソーシャルゲームの会社を経て現在はフューチャー株式会社勤務。Python\/C++\/JavaScript\/Golang あたりを仕事や趣味で扱う。ウェブ関連は仕事よりも趣味寄り。著書に『Real World HTTP 第2版』、『Mithril』（ともにオライリー・ジャパン）、共著に『つまみぐい勉強法』、『Mobageを支える技術』（ともに技術評論社）、訳書に『アート・オブ・コミュニティ』（オライリー・ジャパン）、共訳に『エキスパートPython プログラミング改訂3版』（アスキードワンゴ）、『ポモドーロテクニック入門』（アスキー・メディアワークス）など。"}],"EditionType":"NED","EditionStatement":"第2版","Language":[{"LanguageRole":"01","LanguageCode":"jpn","CountryCode":"JP"}],"Extent":[{"ExtentType":"11","ExtentValue":"424","ExtentUnit":"03"}],"Subject":[{"MainSubject":"","SubjectSchemeIdentifier":"78","SubjectCode":"3055"},{"SubjectSchemeIdentifier":"79","SubjectCode":"20"},{"SubjectSchemeIdentifier":"20","SubjectHeadingText":"シェル;プロセス"}],"Audience":[{"AudienceCodeType":"22","AudienceCodeValue":"00"}]},"CollateralDetail":{"TextContent":[{"TextType":"02","ContentAudience":"00","Text":"実はよく知らなかったコンピューターのOSやメモリのことなどを、もう少しだけ詳しく知っておきたい方に向けた技術解説書"},{"TextType":"03","ContentAudience":"00","Text":"OSやメモリのこと、もう少しだけ詳しく知っておきたい。でも何から手を付けたらいいかわからない。教科書を読んでみても、ふだん書いているコードと違いすぎていまいちピンとこない……。\n本書は、そんな方々のために、アプリケーションのコードから降りていくことで俯瞰的かつ具体的に低レイヤを自分の糧にできる、たくさんのエンジニアに読まれた書籍「Goならわかるシステムプログラミング」の改訂版です。\nGoで書かれた「ふつうのアプリケーションのコード」から始めることで、「身近なコードの世界」と「メモリやCPUの世界」との間の巧妙で豊かなつながりが見えてきます。"},{"TextType":"04","ContentAudience":"00","Text":"第1章 Go言語で覗くシステムプログラミングの世界\n　1.1 システムプログラミングとは\n　1.2 Go言語\n　1.3 Go言語のインストールと準備\n　1.4 デバッガーを使って \"Hello World!\"の裏側を覗く\n　1.5 本章のまとめと次章予告\n　1.6 問題\n\n第2章 低レベルアクセスへの入口1：io.Writer\n　2.1 io.Writerは OSが持つファイルのシステムコールの相似形\n　2.2 Go言語のインタフェース\n　2.3 io.Writerは「インタフェース」\n　2.4 io.Writerを使う構造体の例\n　2.5 インタフェースの実装状況・利用状況を調べる\n　2.6 低レベルの機能を組み合わせて入出力APIを作る\n　2.7 柔軟性が高く、パフォーマンスのよい設計のための Tips.\n　2.8 本章のまとめと次章予告\n　2.9 問題\n\n第3章 低レベルアクセスへの入口2：io.Reader\n　3.1 io.Reader\n　3.2 io.Readerの補助関数\n　3.3 入出力に関するio.Writerとio.Reader以外のインタフェース\n　3.4 io.Readerを満たす構造体で、よく使うもの\n　3.5 バイナリ解析用のio.Reader関連機能\n　3.6 テキスト解析用のio.Reader関連機能\n　3.7 io.Reader／io.Writerでストリームを自由に操る\n　3.8 本章のまとめと次章予告\n　3.9 問題\n\n第4章 低レベルアクセスへの入口3：チャネル\n　4.1 goroutine.\n　4.2 チャネル\n　4.3 システムからの通知\n　4.4 本章のまとめと次章予告\n　4.5 問題\n\n第5章 システムコール\n　5.1 システムコールとは何か？\n　5.2 Go言語におけるシステムコールの実装\n　5.3 POSIXとC言語の標準規格\n　5.4 システムコールより内側の世界\n　5.5 Go言語のシステムコールとPOSIX\n　5.6 システムコールのモニタリング\n　5.7 エラー処理\n　5.8 通常のシステムコール以外の特殊なシステム呼び出し\n　5.9 本章のまとめと次章予告\n　5.10 問題\n\n第6章 TCPソケットとHTTPの実装\n　6.1 プロトコルとレイヤー\n　6.2 HTTPとその上のプロトコルたち\n　6.3 ソケットとは\n　6.4 ソケット通信の基本構造\n　6.5 Go言語でHTTPサーバーを実装する\n　6.6 速度改善（1）: HTTP\/1.1のKeep-Aliveに対応させる\n　6.7 速度改善（2）:圧縮\n　6.8 速度改善（3）:チャンク形式のボディー送信\n　6.9 速度改善（4）:パイプライニング\n　6.10 本章のまとめと次章予告\n\n第7章 UDPソケットを使ったマルチキャスト通信\n　7.1 UDPとTCPの用途の違い\n　7.2 UDPと TCPの処理の流れの違い\n　7.3 UDPのマルチキャストの実装例\n　7.4 UDPを使った実世界のサンプル\n　7.5 UDPと TCPの機能面の違い\n　7.6 本章のまとめと次章予告\n\n第8章 高速なUnixドメインソケット\n　8.1 Unixドメインソケットの基本\n　8.2 Unixドメインソケットの使い方\n　8.3 Windowsの名前付きパイプ\n　8.4 UnixドメインソケットとTCPのベンチマーク\n　8.5 ソケットのシステムコール小話\n　8.6 本章のまとめと次章予告\n\n第9章 ファイルシステムの基礎とGo言語の標準パッケージ\n　9.1 ファイルシステムの基礎\n　9.2 ファイル／ディレクトリを扱うGo言語の関数たち\n　9.3 OS内部におけるファイル操作の高速化\n　9.4 ファイルパスとマルチプラットフォーム\n　9.5 path\/filepathパッケージの関数たち\n　9.6 本章のまとめと次章予告\n\n第10章 ファイルシステムの最深部を扱うGo言語の関数\n　10.1 ファイルの変更監視（syscall.Inotify*）\n　10.2 ファイルのロック（syscall.Flock()）\n　10.3 ファイルのメモリへのマッピング（syscall.Mmap()）\n　10.4 同期・非同期／ブロッキング・ノンブロッキング\n　10.5 select属のシステムコールによるI\/O多重化\n　10.6 FUSEを使った自作のファイルシステムの作成\n　10.7 本章のまとめと次章予告\n\n第11章 コマンドシェル\n　11.1 シェルとは何か\n　11.2 シェルの利用形態\n　11.3 POSIX、SUS、LSB、BusyBox\n　11.4 環境変数\n　11.5 シェルがコマンドを起動するまで\n　11.6 Unix哲学とシェル\n　11.7 まとめ\n\n第12章 プロセスの役割とGo言語による操作\n　12.1 プロセスに含まれるもの（Go言語視点）\n　12.2 プロセスの入出力\n　12.3 自分以外のプロセスの名前や資源情報の取得\n　12.4 OSから見たプロセス\n　12.5 Goプログラムからのプロセスの起動\n　12.6 プロセスに関する便利なGo言語のライブラリ\n　12.7 Go言語では触れることのない世界\n　12.8 子プロセスの内部実装\n　12.9 本章のまとめと次章予告\n\n第13章 シグナルによるプロセス間の通信\n　13.1 シグナルのライフサイクル\n　13.2 シグナルの種類\n　13.3 Go言語におけるシグナルの種類\n　13.4 シグナルのハンドラを書く\n　13.5 シグナルの応用例（Server::Starter）\n　13.6 Go言語ランタイムにおけるシグナルの内部実装\n　13.7 Windowsとシグナル\n　13.8 本章のまとめと次章予告\n\n第14章 Go言語と並列処理\n　14.1 複数の仕事を同時に行うとは？\n　14.2 Go言語の並列処理のための道具\n　14.3 スレッドとgoroutineの違い\n　14.4 GoのランタイムはミニOS\n　14.5 runtimeパッケージのgoroutine関連の機能\n　14.6 RaceDetector\n　14.7 syncパッケージ\n　14.8 sync\/atomicパッケージ\n　14.9 本章のまとめと次章予告\n\n第15章 並行・並列処理の手法と設計のパターン\n　15.1 並行・並列処理の手法のパターン\n　15.2 Goにおける並行・並列処理のパターン集\n　15.3 本章のまとめと次章予告\n\n第16章 Go言語のメモリ管理\n　16.1 メモリ確保の旅\n　16.2 Go言語の配列\n　16.3 スライスなど\n　16.4 ガベージコレクタ\n　16.5 本章のまとめと次章予告\n\n第17章 実行ファイルが起動するまで\n　17.1 実行ファイルが起動するまで\n　17.2 実行ファイルを支える仕組み\n　17.3 実行ファイルのメモリ配置\n　17.4 Goのプログラムの起動\n　17.5 インタプリタでのコードの起動\n　17.6 まとめ\n\n第18章 時間と時刻\n　18.1 OSのタイマー／カウンターの仕組み\n　18.2 さまざまな時間\n　18.3 時間に関するシステムコール\n　18.4 Go言語で時間を扱う\n　18.5 時刻のフォーマット\n　18.6 本章のまとめと次章予告\n\n第19章 Go言語とコンテナ\n　19.1 仮想化\n　19.2 コンテナ\n　19.3 Windows Subsystem for Linux 2（WSL2）\n　19.4 libcontainerでコンテナを自作する\n　19.5 本章のまとめ\n\n付録A セキュリティ関連のOSの機能とssh\n　A.1 乱数\n　A.2 TLS（Transport Layer Security）\n　A.3 ssh（Secure Shell）\n　A.4 キーチェーン\n\n付録B デバッガーのお仕事\n　B.1 デバッグ対象のプログラムに接続する\n　B.2 プログラムを止めたり進めたりする\n　B.3 メモリの読み書きと変更の監視\n\n付録C 参考文献\n\nあとがき\n謝辞\n\n索引"}],"SupportingResource":[{"ResourceContentType":"01","ContentAudience":"01","ResourceMode":"03","ResourceVersion":[{"ResourceForm":"02","ResourceVersionFeature":[{"ResourceVersionFeatureType":"01","FeatureValue":"D502"},{"ResourceVersionFeatureType":"04","FeatureValue":"9784908686122.jpg"}],"ResourceLink":"https:\/\/cover.openbd.jp\/9784908686122.jpg"}]}]},"PublishingDetail":{"Imprint":{"ImprintIdentifier":[{"ImprintIDType":"24","IDValue":"8816"},{"ImprintIDType":"19","IDValue":"908686"}],"ImprintName":"ラムダノート"},"Publisher":{"PublishingRole":"01","PublisherIdentifier":[{"PublisherIDType":"24","IDValue":"8816"},{"PublisherIDType":"19","IDValue":"908686"}],"PublisherName":"ラムダノート"},"PublishingStatus":"08","PublishingDate":[{"PublishingDateRole":"01","Date":"20220323"},{"PublishingDateRole":"11","Date":"202203"}]},"ProductSupply":{"MarketPublishingDetail":{"MarketPublishingStatus":"00","MarketPublishingStatusNote":"1;"},"SupplyDetail":{"ProductAvailability":"99","Price":[{"PriceType":"03","PriceAmount":"3600","CurrencyCode":"JPY"}]}}},"hanmoto":{"han":"第2版","datejuuhanyotei":"","datezeppan":"","zaiko":34,"jushoujouhou":"","hatsubai":"ラムダノート","storelink":"https:\/\/www.lambdanote.com\/collections\/go-2","author":[{"listseq":1,"dokujikubun":""}],"datemodified":"2026-10-21 14:48:48","datecreated":"2025-01-17 11:28:58","datekoukai":"2025-10-16","hanmotoinfo":{"name":"ラムダノート","yomi":"ラムダノート","url":"https:\/\/www.lambdanote.com\/","twitter":"https:\/\/x.com\/lambdanote","facebook":"","chokutori":"1","toritsugitorikyo":"西村","toritsugisonota":"","eigyoudaihyousha":"高尾智絵","phoneshoten":"080-9578-1735","facsimileshoten":"03-5879-7681（西村書店様）","emailshoten":"info@lambdanote.com","ordersite":"","ordersitesonota":"","ordersitejisha":"","henpin":"原則あり","jiyuukinyuu":"小さい出版社なので大量のご注文は難しいですが、新刊のみ初回に多めの委託をしています。","shiiresite":""},"hankeidokuji":"A5判"},"summary":{"isbn":"9784908686122","title":"Goならわかるシステムプログラミング 第2版","volume":"","series":"","publisher":"ラムダノート","pubdate":"20220323","cover":"https:\/\/cover.openbd.jp\/9784908686122.jpg","author":"渋川よしき／著"}}]