邁向 Linux 工程師之路:Superuser 一定要懂的技術與運用, 2/e (How Linux Works: What Every Superuser Should Know, 2/e)

Brian Ward 著

立即出貨 (庫存 > 10)

買這商品的人也買了...

商品描述

Linux不像其他的作業系統,它不會對使用者隱瞞重要的資訊。反之,Linux會讓它的使用者掌控一切。而想要掌握Linux,就必須理解此作業系統的工作機制,包括「系統是如何啟動的」(boots)、networking是如何運作的,以及Linux的核心實際上都做了些什麼。

本書是暢銷書《How Linux Works》的第二版。作者Brian Ward再次深入Linux的核心,對其概念進行更詳盡、更深度的探討,使任何對作業系統內部運作感到好奇的讀者,都可以從中獲益。本書是作者多年專業知識的累積,透過這本書,你將學到:
♦ Linux從「啟動加載程式」到「初始化實作」(systemd, Upstart, and System V) 的啟動方式有哪些
♦ 核心如何管理設備、設備驅動程式與程序(process)
♦ 網路(networking)、介面、防火牆和伺服器的運作方式
♦ 開發工具如何工作並與共享函式庫協作
♦ 如何編寫高效的shell腳本

讀者還能探索Linux的核心,並檢查使用者空間內的關鍵系統任務,包括系統呼叫、輸入和輸出以及檔案系統。結合了背景、理論、實務案例和詳盡的解釋,本書將教你「如何解決麻煩的問題」以及「控制作業系統」所需的全部知識。


第1版書評
「非常棒的書。在近350頁的內容中,涵蓋了Linux的所有基礎知識。」 —EWEEK
「對於那些想要學習Linux,同時對作業系統內部工作原理又不太熟悉的讀者,本書絕對值得推薦。」—O'REILLYNET
「介紹Linux基礎知識最好的書之一,同時也適合Linux進階使用者閱讀,五星。」—OPENSOURCE-BOOK-REVIEWS.COM
「本書的成功源於它對內容的良好組織和對技術細節的深入探討。」 —KICKSTART NEWS
「本書對Linux的介紹可謂獨樹一格。它樸實無華,注重對命令行的介紹,並且深入到系統內部,而非僅僅停留在圖形使用者介面。」—TECHBOOKREPORT.COM
「本書充分介紹了Linux系統的工作原理。」—HOSTING RESOLVE
 

作者簡介

Brian Ward
畢業於芝加哥大學,獲得電腦科學博士學位。1993 年始接觸Linux,研究並教授Linux 二十餘年。除了這本深受讀者喜愛的書,Brian 還著有《Linux Kernel-HOWTO》、《The Book of VMware》(No Starch Press)以及《The Linux Problem Solver》(No Starch Press)等暢銷著作。

目錄大綱

ch 01 概述
1.1 Linux作業系統中的抽象級別和層次
1.2 硬體系統:理解主記憶體
1.3 核心
1.4 使用者空間
1.5 使用者
1.6 前瞻
ch 02 基礎命令和目錄結構
2.1 Bourne shell: /bin/sh
2.2 shell的使用
2.3 基礎命令
2.4 瀏覽目錄
2.5 中間命令
2.6 更改密碼和shell
2.7 dot檔案
2.8 環境變數和shell變數
2.9 命令路徑
2.10 特殊字元
2.11 命令行編輯
2.12 文字編輯器
2.13 取得線上說明
2.14 shell輸入輸出
2.15 理解錯誤資訊
2.16 查看和操縱程序
2.17 檔案模式和權限
2.18 歸檔和壓縮檔案
2.19 Linux目錄結構基礎
2.20 以超級使用者的身分執行命令
2.21 前瞻
ch 03 設備管理
3.1 設備檔案
3.2 sysfs設備路徑
3.3 dd命令和設備
3.4 設備名總結
3.5 udev
3.6 詳解SCSI和Linux核心
ch 04 硬碟和檔案系統
4.1 為磁碟設備分區
4.2 檔案系統
4.3 交換空間
4.4 前瞻:磁碟和使用者空間
4.5 深入傳統檔案系統
ch 05 Linux核心的啟動
5.1 啟動訊息
5.2 核心初始化和啟動選項
5.3 核心參數
5.4 引導裝載程式
5.5 GRUB簡介
5.6 UEFI安全啟動的問題
5.7 鏈式載入其他作業系統
5.8 引導裝載程式細節
ch 06 使用者空間的啟動
6.1 init介紹
6.2 System V執行級別
6.3 識別你的init
6.4 systemd
6.5 Upstart
6.6 System V init
6.7 關閉系統
6.8 initramfs
6.9 緊急啟動和單使用者模式
ch 07 系統設定:日誌、系統時間、批次處理任務和使用者
7.1 /etc目錄結構
7.2 系統日誌
7.3 使用者管理檔案
7.4 getty和login
7.5 設定時間
7.6 使用cron來調度日常任務
7.7 使用at 進行一次性任務調度
7.8 瞭解使用者ID和使用者切換
7.9 使用者標識和認證
7.10 PAM
7.11 前瞻
ch 08 程序與資源利用詳解
8.1 程序追蹤
8.2 使用lsof查看打開的檔案
8.3 追蹤程式執行和系統呼叫
8.4 線程
8.5 資源監控簡介
8.6 測量CPU時間
8.7 調整程序優先級
8.8 平均負載
8.9 記憶體
8.10 使用vmstat監控CPU和記憶體效能
8.11 I/O監控
8.12 使用pidstat監控程序
8.13 更深入的主題
ch 09 網路與設定
9.1 網路基礎
9.2 網路層次
9.3 網際網路層
9.4 路由和核心路由表
9.5 基本ICMP和DNS工具
9.6 實體層與乙太網
9.7 理解核心網路介面
9.8 設定網路介面
9.9 開機啟動的網路設定
9.10 手動和開機啟動的網路設定帶來的問題
9.11 一些網路設定管理器
9.12 解析主機名
9.13 Localhost
9.14 傳輸層:TCP、UDP 和Service
9.15 普通本地網路
9.16 理解DHCP
9.17 將Linux設定成路由器
9.18 私有網路
9.19 網路位址轉換(IP 偽裝)
9.20 路由器與Linux
9.21 防火牆
9.22 乙太網、IP和ARP
9.23 無線乙太網
9.24 小結
ch 10 網路應用與服務
10.1 服務的基本概念
10.2 網路伺服器
10.3 SSH
10.4 守護程序inetd和xinetd
10.5 診斷工具
10.6 遠程程式呼叫
10.7 網路安全
10.8 前瞻
10.9 socket:程序與網路的通訊方式
10.10 Unix 域socket
ch 11 shell腳本
11.1 shell腳本基礎
11.2 引號與字面量
11.3 特殊變數
11.4 結束碼
11.5 條件判斷
11.6 迴圈
11.7 命令替換
11.8 管理臨時檔案
11.9 here文件
11.10 重要的shell腳本工具
11.11 子shell
11.12 在腳本中包含其他檔案
11.13 讀取使用者輸入
11.14 什麼時候(不)應該使用shell腳本
ch 12 在網路上傳輸檔案
12.1 快速複製
12.2 rsync
12.3 檔案共享
12.4 用Samba分享檔案
12.5 NFS 客戶端
12.6 關於網路檔案服務的選擇與侷限的更多內容
ch 13 使用者環境
13.1 建立啟動檔案的規則
13.2 何時需要修改啟動檔案
13.3 shell 啟動檔案的元素
13.4 啟動檔案的順序及例子
13.5 使用者預設設定
13.6 啟動檔案的一些陷阱
13.7 前瞻
ch 14 Linux桌面概覽
14.1 桌面元件
14.2 近觀X Window系統
14.3 探索X客戶端
14.4 X的未來
14.5 D-Bus
14.6 列印
14.7 其他有關桌面的話題
ch 15 開發工具
15.1 C 編譯器
15.2 make
15.3 除錯器
15.4 Lex和Yacc
15.5 腳本語言
15.6 Java
15.7 展望:編譯包
ch 16 從C程式碼編譯出軟體
16.1 軟體的建置系統
16.2 解開C原始碼包
16.3 GNU autoconf
16.4 實踐安裝
16.5 打補丁
16.6 編譯和安裝的問題排查
16.7 前瞻
ch 17 在基礎上搭建
17.1 Web伺服器與應用
17.2 資料函式庫
17.3 虛擬化
17.4 分散式計算與按需計算
17.5 嵌入式系統
17.6 結束語