4 ms·
Writing Kernel Exploits [pdf]
- makira 14y agoLinux kernel to be more specific. The Mac OS X/iOS kernel (xnu) doesn't share the address space with the user process, so many of those techniques (I haven't read the whole paper) do not apply.
- 0x0 14y agoThat's interesting. What are the reasons some kernels choose to share the address space, while others don't (and/or how is it even possible to avoid that?)
- RenaudLienhart 14y agoMostly performance. Sharing the address space avoids switching the address space mappings (page tables, etc) and flushing the TLB every time the kernel runs (e.g. on syscalls).
- deleted 14y ago[deleted]
- spec_laconic 14y agoReally? That sounds like it'd be very inefficient when performing context-switching heavy tasks. Does OSX just take the cache penalty or does it somehow compensate with carefully written syscalls?
- deleted 14y ago[deleted]
- deleted 14y ago[deleted]
- dmm 14y agoDoes that mean the TLB is flushed with every syscall?
- Someone 14y agoIs that still true with Mountain Lion? It is 64 bit only, so giving up say half the address space for kernel memory should not have any practical disadvantage. Also, is that true on iOS? I would think that the better performance of say a 2G-2G split would be more than worth it there, as the hardware has, at best, 1GB or so.