2010-04-04 15 views

Respuesta

12

La lista "oficial" es en Darwin page en Apple. Específicamente, vea el archivo syscalls.master en la distribución de XNU. (Si falta algo, espere una versión XNU más nueva).

La parte BSD de las llamadas al sistema proviene de BSD, pero hay llamadas mach que siguen convenciones bastante diferentes.

Definitivamente querrá leer el libro del kernel de OS X de Amit Singh, consulte the book's website. Está reescrito para 10.4 y principalmente para PPC, pero aún así es la información más detallada que puede obtener en el kernel.

8

llamadas al sistema de XNU son, de hecho, siguiendo el modelo/POSIX BSD, pero son un subconjunto: Hay bastantes llamadas adicionales propietarias a Apple - por ejemplo, stack_snapshot (# 365), iopolicy (322), proc_info (336) y otros. Apple mantiene a los indocumentados, pero puedes encontrar su fuente en XNU. Puede llamar llamadas al sistema no documentadas explícitamente (utilizando la macro sys call y especificando el # de llamada como primer argumento), pero algunas (por ejemplo, proc_info) están envueltas por bibliotecas Darwin (por ejemplo, libproc, que es parte de libSystem)

syscalls .master genera el archivo /usr/include/sys/syscall.h, que también le proporcionará los nombres de las llamadas al sistema (pero no los prototipos). El libro de Singh describe algunas llamadas a los sistemas, pero está muy desactualizado, ya que Tiger tenía menos de las 439 (en iOS6: 443) llamadas que XNU tiene hoy. Se puede encontrar un libro más reciente en http://www.amazon.com/Mac-OS-iOS-Internals-Apples/dp/1118057651, y su apéndice en realidad documenta todas las llamadas al sistema (y Trampas Mach) en detalle.

Cuestiones relacionadas