Kernel Sysctls

From The iPhone Wiki
Jump to: navigation, search

XNU exports to user mode a fairly rich array of system control variables. These are known as sysctls, and can be accessed by the system call of the same name.

Sysctls are especially important because they allow the probing of kernel memory (in select locations), and - in some cases, the modification thereof. iOS offers all the sysctls its OS X counterpart does, but also a few additional ones.

Note: Using sysctl(8) with the -a or -X switches to display "all" sysctls will not display these, since the switches iterate over a fixed list. Trying sysctl(8) with the explicit names, however, will.

Jetsam related:

- kern.memorystatus_priority_list
- kern.memorystatus_snapshot

TCP related: These are likely here to optimize for iOS's mobile (i.e. over 3G/cell) medium

- net.inet.tcp.rfc3390: RFC 3390 compliance (Calculate intial slowstart cwnd depending on MSS)
- net.inet.tcp.min_iaj_win: Minimum recv win based on inter-packet arrival jitter
- net.inet.tcp.acc_iaj_react_limit: Accumulated inter-packet arrival jitter when receiver starts to react
- net.inet.tcp.doautosndbuf: Enable send socket buffer auto-tuning
- net.inet.tcp.autosndbufinc: Increment in send socket bufffer siz
- net.inet.tcp.autosndbufmax: Maximum send socket buffer size