littleguru wrote:
A few questions:
How do you make sure that a pointer does not point to any address space of another process? Are there no classes in your C# dialect that allows that? Is there no IntPtr class and therefore no way to initialize a pointer with an int?
I don't think their safe language (SPEC#) allows that. From the video, the way it works seems to be that a process can only use the memory pages that are supplied to it by the kernel, therefore it is up to the kernel not to supply to SIP's with memory thatcould be shared.
I think this is the reason for the hardware protection boundary, if there is an error in the kernel code etc, which is very unlikely, then the hardware protection can kick in and prevent processes from destroying each others data.
Again, that is just what I picked up from the 3 videos.
Kevin