init是Linux(Android)系統中用戶空間第一個進程,作為天字第一號進程,init承擔了許多重要的工作職責,主要如下:
(1)創建關鍵進程,比如zygote。
(2)初始化屬性服務
init.c工作流程
(1)解析init.rc配置文件
(2)執行4個階段的動作:early init->init->early boot->boot
(3)啟動zygote和屬性解析服務。Zygote創造了整個JAVA世界。
(4)進入死循環,處理來自socket和屬性服務器的相關事件。
進程間的屬性共享和讀寫服務是通過socket來進行的,客戶端通過socket發送屬性相關的msg,propertyservice讀取客戶端發送過來的msg,進行相應解析和設計。屬性服務分為暫時和持久化的屬性,修改或者增加持久化的屬性時,需更新相應的文件,當前前提是客戶端具有相應的權限。
共享內存為Linux系統進程間共享數據的一種方式。