Clock

為什麼時鐘需要共享記憶體段?

  • November 18, 2014

這是程式和 Linux 問題的結合,但我認為它更適合這裡。

我正在編寫一個與ipcs(共享記憶體段)一起使用的應用程序,每次執行後我ipcs都在使用 bash 命令檢查是否還有剩餘ipcs。我注意到的比我創建的要多得多,所以我認為它們是系統軟體的一部分。

我決定檢查每一個,看看它在哪裡連接。在關閉每個程序後,我注意到連接到共享記憶體段的程序之一是系統時鐘。系統時鐘是指顯示面板右側時間的時鐘(或取決於您的設置方式)而不是 CPU 時鐘。為什麼在系統執行的所有程序中,時鐘需要共享記憶體段?

系統時鐘是指在面板右側顯示時間的時鐘

“系統時鐘”一般是指核心維護的時鐘;應用程序date和 GUI 時鐘(如您所指的那個)像這樣呼叫它。

為什麼在系統執行的所有程序中,時鐘需要共享記憶體段?

可能有幾十種不同的基於 GUI 和 DE 的時鐘可用於 linux,因此無法具體說明。這意味著它涉及多個程序,這對於 GUI 時鐘肯定不是必需的,但如果它與桌面集成,誰知道呢 - 它還可能擁有一些您尚未發現的功能。

在程式時,您有很多選擇,IPC 方面。您使用什麼方法取決於確切的要求,但也可能是一些個人喜好。我更像是一個 sockets n’ 序列化的人,但共享記憶體非常受歡迎;當我執行時,我ipcs -a在“共享記憶體段”下獲得了幾十個條目。有趣的是,如果我在無頭系統上執行它,我什麼也得不到,所以大概這些都與 GUI 應用程序有關。 GlibD-bus可能具有建立在此類程序使用的共享記憶體上的設施。

引用自:https://unix.stackexchange.com/questions/168618