入門 モダン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

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

by Ilya Grigorik, 和田 祐一郎/株式会社プログラミングシステム社

現代のアプリケーションエンジニアは、UIやデータ処理、開発言語、プラットフォームの仕様や癖だけでなく、サーバやネットワークについても、上から下まで、表から裏まで広く知ることを求められます。本書は「ブラウザ」に関連し、インターネットで使用されるさまざまなネットワーク技術をまとめたものです。HTTP/2.0やWebRTCなどの最新技術、WebSocketやXMLHttpRequestなどのブラウザAPI、そしてそれらの土台となるTCPやUDPやトランスポート層についてまでを幅広くカバーします。また改善前後の性能・速さを可能な限り具体化し、それぞれの場面においてのパフォーマンス改善幅を示します。

book

推薦システム実践入門 ―仕事で使える導入ガイド

by 風間 正弘, 飯塚 洸二郎, 松村 優也

情報化時代が到来し、日常で意思決定をする回数と選択肢の数が急増したことで、推薦システムの需要が高まっています。そのため、昨今では多くのウェブサービスへ新たに推薦システムの導入が検討されることも増えました。本書では、推薦システムの概要から、UI/UX、アルゴリズム、実システムへの組み込み、評価まで紹介し、適切な推薦システムの実装ができるようになります。「実際の仕事に活かす」ことを目的に、著者たちが実務で経験した推薦システムの成功事例や失敗事例を交えながら、実サービスに推薦システムを組み込むという観点を重視した入門的な内容です。

book

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

by Hannes Hapke, Catherine Nelson, 中山 光樹

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