- Process isolation
-
Process isolation is a set of different hardware and software technologies[1] designed to protect each operating system process from other processes. It does so by preventing process A from writing into process B.
Process isolation can be implemented by with virtual address space, where process A's address space is different from process B's address space - preventing A to write into B.
Security is easier to enforce by disallowing inter-process memory access, than compared to less secure architectures (such as DOS) in which any process can write to any memory in any other process [2])
Contents
Limited inter processes communication
In a system with process isolation, processes may still be allowed limited (controlled) interaction between processes, if processes mutually accept to collaborate over inter-process communication (IPC) channels such as shared memory, local sockets or Internet sockets. In this scheme almost all of the process' memory is isolated from other processes, except in the variables/memory where the process is allowing input from collaborating processes.
System polices may disallow IPC in some circumstances. For example in Mandatory access control systems, subjects with different sensitivity levels may not be allowed to communicate with each other.
In web browsers
Internet Explorer 4 used process isolation in order to allow separate windowed instances of the browser their own processes; however, at the height of the browser wars, this was dropped in subsequent versions to compete with Netscape Navigator (which sought to concentrate upon one process for the entire Internet suite). This idea of process-per-instance would not be revisited until a decade afterward, when tabbed browsing became more commonplace.
In Google Chrome's "Multi-Process Architecture"[3] and Internet Explorer 8's "Loosely Coupled IE (LCIE)"[4], tabs containing webpages are contained within their own semi-separate OS-level processes which are isolated from the core process of the browser so as to prevent the crash of one tab/page from crashing the entire browser. This method (known popularly as multiprocess or process-per-tab), meant to both manage memory and processing by allowing offending tabs to crash separately from the browser and other tabs and manage security, has proven controversial since its introduction in both browsers in 2008, although the developers of Mozilla Firefox have considered instituting the feature in future versions of the browser by at least Q4 2010[5][6].
- Browsers with process isolation
- Google Chrome
- Internet Explorer 8
- Safari
- Stainless
- Mozilla Firefox
Related technologies
- Virtual memory and virtual address space allows for memory space isolation.
- Polyinstantiation allows mirrors of shared resources, where changes by process A will not be visible to process B.
References
- ^ Deconstructing Process Isolation. Aiken, Mark, Fähndrich, Manuel, Hawblitzel, Chris, Hunt, Galen, Larus, James R. Microsoft Research. Oct. 2006[1]
- ^ All in one CISSP Exam Guide, 3rd Edition, Shon Harris
- ^ Multi-process Architecture, Chromium Blog, Thursday, September 11, 2008
- ^ IE8 and Loosely-Coupled IE (LCIE), by Andy Zeigler, Tuesday, March 11, 2008
- ^ Content Processes
- ^ Multi-process Firefox, coming to an Internets near you
Categories:- Operating system security
Wikimedia Foundation. 2010.