混合內核:
混合內核希望結合單核和微內核的優點。核心底層服務(包括調度、進程通信和虛擬內存)都包含在核心位置,就像微內核壹樣。對於這個內核之外的服務,內核狀態和這個內核在同壹個內存空間。
XNU馬赫:
Mach和BSD有各自的職責分工,就說Mach有這些核心職責吧。
進程和線程管理:我們平時用的POSIX thread和NSThread是和Mach層線程壹壹對應的。POSIX線程是線程的BSD層的更高級抽象。
虛擬內存分配和管理。
分配和調度物理設備,如CPU。
異常:Mach在現有的消息傳遞機制上實現了異常處理機制。下面是應用級開發者的詳細介紹。如何捕捉Mach異常可以用來收集壹些崩潰信息。其他崩潰收集文章可以在這裏找到。
如果妳想捕捉mach異常,妳需要註冊壹個異常端口,它對當前任務的所有線程都有效。如果妳想定位壹個單獨的線程,妳可以使用thread_set_exception_ports來註冊妳自己的異常端口。
當異常發生時,首先將異常拋出到線程的異常端口,然後嘗試拋出任務的異常端口。在捕捉異常時,您可以自己完成工作,例如當前堆棧收集。
擴展數據:
HFS+文件系統分析:
除了讓用戶穩定存儲文件的目標之外,文件系統還是各種操作系統功能的基礎。MacOSX的每個主要版本都添加了數百個新功能,其中許多功能嚴重依賴於文件系統實現。MacOSX 10.3提供FileVault對用戶文件進行加密,因此用戶的主目錄存儲在HFS+文件系統的加密鏡像中。
參考資料:
百度百科-Mac OS