入門 モダンLinux ―オンプレミスからクラウドまで、幅広い知識を会得する

Book description

Linuxはサーバ、組み込み機器、スーパーコンピュータなどにおいて存在感を示してきました。近年では、オンプレミスのシステムだけではなく、クラウドサービスでも広く使われています。本書は、前半でLinuxを使いこなす上で必要な基本知識を、後半で最新情報をまとめています。Linuxの知識を体系的に整理したい、最新動向が知りたい、運用を改善したい、効率的に開発を行いたい、といった要望をかなえる内容となっています。時代の変化に柔軟に対応できるLinux技術者を目指すなら必読の一冊です。

Table of contents

  1. 表紙
  2. 大扉
  3. 原書大扉
  4. クレジット
  5. 訳者まえがき
    1. 日本語版の特徴
    2. 謝辞
  6. はじめに
    1. 対象読者
    2. 本書の使い方
    3. 本書の表記法
    4. サンプルコードの使用
    5. オライリー学習プラットフォーム
    6. 連絡先
    7. 謝辞
  7. 1章 Linuxの入門
    1. 1.1 モダンな環境とは何か?
    2. 1.2 これまでのLinuxの歴史
    3. 1.3 なぜオペレーティングシステムなのか?
    4. 1.4 Linuxディストリビューション
    5. 1.5 リソースの可視性
      1. $$とは?
    6. 1.6 Linuxの全体像
      1. POSIX
    7. 1.7 まとめ
  8. 2章 Linuxカーネル
    1. 2.1 Linuxアーキテクチャ
    2. 2.2 CPUアーキテクチャ
      1. BIOSとUEFI
      2. 2.2.1 x86アーキテクチャ
      3. 2.2.2 ARMアーキテクチャ
      4. 2.2.3 RISC-Vアーキテクチャ
    3. 2.3 カーネルコンポーネント
      1. 2.3.1 プロセス管理
      2. 2.3.2 メモリ管理
      3. 2.3.3 ネットワーク
      4. 2.3.4 ファイルシステム
      5. 2.3.5 デバイスドライバ
      6. 2.3.6 システムコール
    4. 2.4 カーネルの拡張
      1. 2.4.1 モジュール
      2. 2.4.2 モダンなカーネル拡張:eBPF
    5. 2.5 まとめ
  9. 3章 シェルとスクリプト
    1. 3.1 基本用語
      1. 3.1.1 ターミナル
      2. 3.1.2 シェル
      3. パイプとUNIXの哲学
      4. 3.1.3 モダンなコマンド
      5. 3.1.4 一般的なタスク
      6. UNIXエポック時間
    2. 3.2 使いやすいシェル
      1. 3.2.1 fishシェル
      2. 3.2.2 Zシェル
      3. 3.2.3 他のモダンなシェル
      4. 3.2.4 どのシェルを使うべきか?
    3. 3.3 ターミナルマルチプレクサ
      1. 3.3.1 screen
      2. 3.3.2 tmux
      3. 3.3.3 他のマルチプレクサ
      4. ターミナルとtmux、シェルを1つにまとめる
      5. 3.3.4 どのマルチプレクサを使うべきか?
    4. 3.4 スクリプト
      1. 3.4.1 スクリプトの基本
      2. 3.4.2 移植性の高いbashスクリプトの書き方
      3. 3.4.3 スクリプトのlintとテスト
      4. 3.4.4 GitHubのユーザ情報スクリプト
    5. 3.5 まとめ
  10. 4章 アクセス制御
    1. 4.1 基本
      1. 4.1.1 リソースと所有権
      2. 4.1.2 サンドボックス化
      3. 4.1.3 アクセス制御の種類
    2. 4.2 ユーザ
      1. 4.2.1 ローカルでのユーザ管理
      2. 4.2.2 ユーザの一元管理
    3. 4.3 パーミッション
      1. 4.3.1 ファイルのパーミッション
      2. その他のファイルアクセスビット
      3. 4.3.2 プロセスの権限
    4. 4.4 高度な権限管理
      1. 4.4.1 ケーパビリティ
      2. 4.4.2 seccompプロファイル
      3. 4.4.3 ACL
    5. 4.5 アクセス制御のよい実践方法
    6. 4.6 まとめ
  11. 5章 ファイルシステム
    1. 5.1 基本
    2. 5.2 仮想ファイルシステム
      1. 5.2.1 論理ボリュームマネージャ
      2. 5.2.2 ファイルシステムの操作
      3. 5.2.3 一般的なファイルシステムレイアウト
    3. 5.3 擬似ファイルシステム
      1. 5.3.1 procfs
      2. 5.3.2 sysfs
      3. 5.3.3 devfs
    4. 5.4 通常のファイル
      1. 5.4.1 一般的なファイルシステム
      2. 5.4.2 インメモリファイルシステム
      3. 5.4.3 コピーオンライトファイルシステム
    5. 5.5 まとめ
  12. 6章 アプリケーション、パッケージ管理、コンテナ
      1. サンプル:greeter
    1. 6.1 基本
    2. 6.2 Linuxの起動プロセス
      1. System V Init
    3. 6.3 systemd
      1. 6.3.1 ユニット
      2. 6.3.2 systemctlによる管理
      3. 6.3.3 journalctlによる監視
      4. 6.3.4 greeterのスケジューリング例
    4. 6.4 Linuxアプリケーションのサプライチェーン
    5. 6.5 パッケージとパッケージマネージャ
      1. 6.5.1 RPMパッケージマネージャ
      2. 6.5.2 Debian deb
      3. 6.5.3 言語固有のパッケージマネージャ
    6. 6.6 コンテナ
      1. あのときコンテナさえあれば
      2. 6.6.1 namespace
      3. 6.6.2 cgroup
      4. 6.6.3 コピーオンライトファイルシステム
      5. 6.6.4 Docker
      6. 6.6.5 他のコンテナ関連のツール
    7. 6.7 モダンなパッケージマネージャ
    8. 6.8 まとめ
  13. 7章 ネットワーク
    1. 7.1 基本
    2. 7.2 TCP/IPスタック
      1. インターネットとOSI
      2. 7.2.1 リンク層
      3. 7.2.2 インターネット層
      4. ルーティングは郵便に似ている
      5. Facebookがインターネットから消えた
      6. 7.2.3 トランスポート層
      7. 7.2.4 ソケット
    3. 7.3 DNS
      1. 7.3.1 DNSレコード
      2. 7.3.2 DNSルックアップ
    4. 7.4 アプリケーション層ネットワーク
      1. 7.4.1 ウェブ
      2. W3Cと標準化
      3. 7.4.2 SSH
      4. 7.4.3 ファイル転送
      5. 7.4.4 NFS
      6. 7.4.5 Windowsとのファイル共有
    5. 7.5 ネットワークの高度なトピック
      1. 7.5.1 whois
      2. 7.5.2 DHCP
      3. 7.5.3 NTP
      4. 7.5.4 wiresharkとtshark
      5. 7.5.5 他の高度なツール
    6. 7.6 まとめ
  14. 8章 オブザーバビリティ(可観測性)
    1. 8.1 基本
      1. 8.1.1 オブザーバビリティの戦略
      2. 8.1.2 用語
      3. 8.1.3 シグナルの種類
    2. 8.2 ログ
      1. 8.2.1 Syslog
      2. 8.2.2 journalctl
    3. 8.3 監視
      1. 8.3.1 I/Oデバイスとネットワークインタフェース
      2. 8.3.2 統合パフォーマンス監視
      3. 8.3.3 インスツルメンテーション
    4. 8.4 高度なオブザーバビリティ
      1. 8.4.1 トレースとプロファイリング
      2. 8.4.2 PrometheusとGrafana
    5. 8.5 まとめ
  15. 9章 高度なトピック
    1. 9.1 プロセス間通信
      1. 9.1.1 シグナル
      2. 9.1.2 名前付きパイプ
      3. 9.1.3 UNIXドメインソケット
    2. 9.2 仮想マシン
      1. 9.2.1 KVM
      2. 9.2.2 Firecracker
    3. 9.3 モダンなLinuxディストリビューション
      1. 9.3.1 Red Hat Enterprise Linux CoreOS
      2. 9.3.2 Flatcar Container Linux
      3. 9.3.3 Bottlerocket
      4. 9.3.4 RancherOS
    4. 9.4 セキュリティに関するトピック
      1. 9.4.1 Kerberos
      2. 9.4.2 PAM
    5. 9.5 その他のモダンLinuxの話、あるいは将来の話
      1. 9.5.1 NixOS
      2. 9.5.2 デスクトップ版Linux
      3. 9.5.3 組み込みシステムにおけるLinux
      4. 9.5.4 クラウドIDEにおけるLinux
    6. 9.6 まとめ
  16. 付録A 便利なコマンド集
    1. A.1 システム情報
    2. A.2 ユーザとプロセス
    3. A.3 ファイル情報
    4. A.4 ファイルとディレクトリ
    5. A.5 リダイレクトとパイプ
    6. A.6 時刻と日付
    7. A.7 Git
    8. A.8 システムパフォーマンス
  17. 付録B モダンLinuxツール
  18. 著者・訳者紹介
  19. 奥付

Product information

  • Title: 入門 モダンLinux ―オンプレミスからクラウドまで、幅広い知識を会得する
  • Author(s): Michael Hausenblas, 武内 覚, 大岩 尚宏
  • Release date: April 2023
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784814400218

You might also like

book

入門 eBPF ―Linuxカーネルの可視化と機能拡張

by Liz Rice, 武内 覚, 近藤 宇智朗

eBPFは、ネットワーク、セキュリティ、オブザーバビリティなど、さまざまなインフラ関連の分野のプラットフォームとして利用が広がりつつある、近年最も注目されている技術の1つです。本書ではカーネルの機能を拡張する方法として注目度の高いeBPFについて、どんな技術であるか、何ができるかを概観することができます。基本的なeBPFプログラムの書き方を紹介するとともに、仕組みも理解できるようになっています。

book

入門 機械学習パイプライン ―TensorFlowで学ぶワークフローの自動化

by Hannes Hapke, Catherine Nelson, 中山 光樹

機械学習を用いた本番システムの構築には、データの前処理やモデルの学習、デプロイなどのステップが必要です。しかし、これらのステップは手動で実行されることが多く、エラーの原因となっています。そこで本書では、TensorFlowのエコシステムを使用した機械学習パイプラインの構築方法について学びます。パイプラインを用いて各ステップを自動化することで、レガシーなシステムの保守から解放され、新しいモデルの開発に集中できるようになります。

book

プログラミング・ビットコイン ―ゼロからビットコインをプログラムする方法

by Jimmy Song, 中川 卓俊, 住田 和則, 中村 昭雄, 星野 靖子

本書は、ひとつのビットコインライブラリに必要なすべての要素を実際にコーディングすることで、ビットコイン技術の理解を深めることを狙いとした技術学習書です。ゼロから順を追ってビットコインライブラリを作成していくことで、その内部構造を紐解き、ビットコインの動作を学ぶことができます。本書で学び終える頃には、トランザクションの作成ができるようになるのはもちろん、必要なデータをピアから受け取り、ネットワーク経由でトランザクションを送信できるようになります。数学、パース、ネットワーク接続、ブロック検証をはじめ、それらを可能にするために必要なものすべてを網羅しています。

book

入門 監視 ―モダンなモニタリングのためのデザインパターン

by Mike Julian, 松浦 隼人

本書は、システムのどの部分をどのように監視すべきか、また監視をどのように改善していくべきかについて解説する書籍です。前半で監視のベストプラクティス、デザインパターン/アンチパターンを示して、監視の基本原則を詳しく説明し、後半でフロントエンド、アプリケーション、サーバ、ネットワーク、セキュリティの各テーマで強力な監視の基盤を設計して実装するための方法を示します。監視対象が変化し、システムアーキテクチャが進化する中で、従来から変わらない監視の基本を示しながら、時代に合った監視の実践を解説する本書は、監視についての理解を深めたいエンジニア必携の一冊です。