Changes between Version 2 and Version 3 of Howitworks

Show
Ignore:
Author:
dkaplan1 (IP: 63.252.67.107)
Timestamp:
12/07/05 14:52:39 (4 years ago)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Howitworks

    v2 v3  
    7777their segment.  If a driver tries to access such memory, it will get a general 
    7878protection fault and the kernel will kill the offending thread and proceed to 
    79 unload the module (cleanly if possible).  Why is this good?  Here is an 
    80 example of how the Ring Cycle acts better than the current linux kernel: 
     79unload the module (cleanly if possible). 
    8180 
    82 Imagine you have a driver which although normally works well, has a bug 
    83 (perhaps due to a buffer overflow) which when given malformed data will let 
    84 the user write 1 byte anywhere in memory.  In a regular (linux or windows) 
    85 kernel, a malicious user could use this to clobber important kernel data 
    86 structures (such as the IDT) and crash the system, or even worse, use it to 
    87 gain more privilege than they should have and read or corrupt sensitive data. 
    88  
    89 In the Ring Cycle kernel, all the above data structures live in the ring 0 
    90 portion of the address space and cannot be touched by the driver.  When the 
    91 user tries to clobber these structures, the processor will issue a general 
    92 protection fault and the user is stopped in his tracks. 
    93  
     81For more details, please see the following: 
     82 * [wiki:IOModel Asynchronous I/O model] 
     83 * [wiki:ProtectionModel Protection model] 
     84 * [wiki:CallGates Call gates/Driver API]