2 回答

TA貢獻(xiàn)1854條經(jīng)驗 獲得超8個贊
簡短答案-是的。
長答案-這取決于。系統(tǒng)調(diào)用是一種編程方式,計算機(jī)程序從該程序中向其執(zhí)行操作系統(tǒng)的內(nèi)核請求服務(wù)。這可能包括與硬件相關(guān)的服務(wù)(例如,訪問硬盤驅(qū)動器),創(chuàng)建和執(zhí)行新進(jìn)程以及與諸如進(jìn)程調(diào)度之類的集成內(nèi)核服務(wù)進(jìn)行通信。系統(tǒng)調(diào)用提供了進(jìn)程與操作系統(tǒng)之間的基本接口。
系統(tǒng)調(diào)用未定義為特定功能。相反,它們是請求服務(wù)或換句話說就是OS API。語言標(biāo)準(zhǔn)提供的標(biāo)準(zhǔn)功能幾乎總是對用戶隱藏它們。并且該標(biāo)準(zhǔn)是在不同操作系統(tǒng)的編譯器中實現(xiàn)的。

TA貢獻(xiàn)1802條經(jīng)驗 獲得超5個贊
另一個答案是正確的,但我也想補(bǔ)充一點,對我來說,解釋為什么將open視為系統(tǒng)調(diào)用的最簡單方法是,因為不能保證在所有OS上syscall都是相同的。例如,如果我們想象一個打開了syscall 1的操作系統(tǒng),那么另一個操作系統(tǒng)可能會使用syscall 1進(jìn)行寫操作(就像linux x64一樣),因此,為了兼容起見,open()
添加了這樣的功能,其中OS將open()
作為調(diào)用提供到適當(dāng)?shù)膕yscall值,并且程序員不必?fù)?dān)心在不同操作系統(tǒng)之間調(diào)用正確的syscall號碼
添加回答
舉報