- Linux使用和管理指南:從云原生到可觀測(cè)性
- (奧)邁克爾·豪森布拉斯
- 711字
- 2024-07-25 15:55:46
1.3 為什么要使用操作系統(tǒng)
假設(shè)你沒(méi)有可用的操作系統(tǒng)(OS),或者出于某種原因不能使用操作系統(tǒng)。然后,你將自己完成幾乎所有的事情:內(nèi)存管理、中斷處理、與I/O設(shè)備通信、管理文件、配置和管理網(wǎng)絡(luò)棧,等等。

從技術(shù)上講,操作系統(tǒng)并不是嚴(yán)格需要的。有些系統(tǒng)沒(méi)有操作系統(tǒng)。這些通常是占用空間很小的嵌入式系統(tǒng):想想物聯(lián)網(wǎng)信標(biāo)。除了一個(gè)應(yīng)用程序之外,它們根本沒(méi)有可用的資源來(lái)保留其他任何東西。例如,在Rust中,你可以使用它的核心和標(biāo)準(zhǔn)庫(kù)在裸機(jī)上運(yùn)行任何應(yīng)用程序(https://oreil.ly/zW4j7)。
操作系統(tǒng)承擔(dān)了所有這些無(wú)差別的繁重工作,將不同的硬件組件抽象出來(lái),并為你提供一個(gè)(通常)干凈和設(shè)計(jì)良好的應(yīng)用程序編程接口(API),例如,我們將在第2章中仔細(xì)研究的Linux內(nèi)核。我們通常將操作系統(tǒng)公開(kāi)的這些API稱為系統(tǒng)調(diào)用(syscall)。高級(jí)編程語(yǔ)言(如Go、Rust、Python或Java)構(gòu)建在這些系統(tǒng)調(diào)用之上,可能將它們包裝在庫(kù)中。
所有這些都可以讓你專注于業(yè)務(wù)邏輯,而不必自己管理資源,還可以照顧到你想要在上面運(yùn)行應(yīng)用程序的不同硬件。
讓我們看一個(gè)系統(tǒng)調(diào)用的具體例子。假設(shè)我們想要識(shí)別(并輸出)當(dāng)前用戶的ID。
首先,我們看一下Linux系統(tǒng)調(diào)用getuid(2)(https://oreil.ly/md15Z):

這個(gè)getuid系統(tǒng)調(diào)用是我們可以從庫(kù)中以編程方式使用的。我們將在2.3.6節(jié)中更詳細(xì)地討論Linux系統(tǒng)調(diào)用。

你可能想知道(2)在getuid(2)中是什么意思。這是man實(shí)用程序(想想內(nèi)置的幫助頁(yè))用來(lái)指示在man中所分配的命令部分的術(shù)語(yǔ),類似于郵政代碼或國(guó)家代碼。這是UNIX遺產(chǎn)顯而易見(jiàn)的一個(gè)例子,你可以在1979年的UNIX Programmer's Manual第七版第1卷中找到它的起源。
在命令行(shell)上,我們將使用等效的id命令,該命令反過(guò)來(lái)使用getuid系統(tǒng)調(diào)用:

既然你已經(jīng)基本了解了為什么在大多數(shù)情況下使用操作系統(tǒng)是有意義的,那么讓我們繼續(xù)討論Linux發(fā)行版的主題。
- 操作系統(tǒng)實(shí)用教程(Linux版)
- 蘋(píng)果電腦玩全攻略 OS X 10.8 Mountain Lion
- Mastering KVM Virtualization
- 高性能Linux服務(wù)器構(gòu)建實(shí)戰(zhàn):運(yùn)維監(jiān)控、性能調(diào)優(yōu)與集群應(yīng)用
- Moodle 3.x Teaching Techniques(Third Edition)
- 網(wǎng)絡(luò)操作系統(tǒng)教程:Windows Server 2016管理與配置
- Joomla! 3 Template Essentials
- iOS 8開(kāi)發(fā)指南
- Vim 8文本處理實(shí)戰(zhàn)
- 新編電腦辦公(Windows 10+ Office 2013版)從入門到精通
- Raspberry Pi入門指南
- Linux操作系統(tǒng)案例教程(第2版)
- Microsoft Hyper-V Cluster Design
- Linux系統(tǒng)安全:縱深防御、安全掃描與入侵檢測(cè)
- Implementing Domain-Specific Languages with Xtext and Xtend(Second Edition)