簡體   English   中英

用戶態應用程序中使用的 mincore 系統調用是什么?

[英]What is the mincore syscall used for in userland applications?

Linux 的mincore(2)在用戶態應用程序中有什么用? 為什么它會暴露給非特權用戶?

我可以想象一些數據庫利用知道緩存了哪些頁面,但還有哪些其他示例?

Linux mincore(2)在用戶態應用程序中有什么用?

我會說這很可能是基於意見的。 分析、統計、性能評估和類似的東西浮現在腦海中。 除此之外,我想不出其他現實的合法用例。

以下是我發現的一些使用mincore的程序示例(如您所見,所有分析/統計相關):

為什么它會暴露給非特權用戶?

這實際上是大約一年前的一個好問題,當時系統調用的語義沒有明確定義,而且這樣一個系統調用的存在是相當值得懷疑的。 在內核版本 4.14.2 之前, mincore實際上可能被濫用以從用戶空間泄漏未初始化的內核內存(請參閱CVE-2017-16994和相關的 零項目錯誤報告)。

從那時起,系統調用已被修補並更新了其語義。 進程通過調用它可以做的唯一事情就是查詢有關其虛擬內存映射的信息。 沒有什么真正有害的,只是自我檢查,因此可以用於非特權進程。 沒有真正的理由讓它成為特權系統調用,如果這樣做也可以被視為 API 破壞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM