Process isolation
Encyclopedia
Process isolation is a set of different hardware and software technologies 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 )
(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.
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" and Internet Explorer 8
's "Loosely Coupled IE (LCIE)", 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.
Browsers with process isolation:
Process isolation can be implemented by with virtual address space
Virtual address space
Virtual address space is a memory mapping mechanism available in modern operating systems such as OpenVMS, UNIX, Linux, and Windows NT...
, 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
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...
) in which any process can write to any memory in any other process )
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 communicationInter-process communication
In computing, Inter-process communication is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for message passing, synchronization, shared...
(IPC) channels such as shared memory
Shared memory
In computing, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Depending on context, programs may run on a single processor or on multiple separate processors...
, local sockets
Unix domain socket
A Unix domain socket or IPC socket is a data communications endpoint for exchanging data between processes executing within the same host operating system. While similar in functionality to...
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
Mandatory access control
In computer security, mandatory access control refers to a type of access control by which the operating system constrains the ability of a subject or initiator to access or generally perform some sort of operation on an object or target...
systems, subjects with different sensitivity levels may not be allowed to communicate with each other.
In web browsers
Internet Explorer 4Internet Explorer 4
Microsoft Internet Explorer 4 is a graphical web browser released in September 1997 by Microsoft, primarily for Microsoft Windows, but also with versions available for Apple Mac OS, Solaris, and HP-UX and marketed as "The Web the Way You Want It".It was one of the main participants of the first...
used process isolation in order to allow separate windowed instances of the browser their own processes; however, at the height of the browser wars
Browser wars
Browser wars is a metaphorical term that refers to competitions for dominance in usage share in the web browser marketplace. The term is often used to denote two specific rivalries: the competition that saw Microsoft's Internet Explorer replace Netscape's Navigator as the dominant browser during...
, this was dropped in subsequent versions to compete with Netscape Navigator
Netscape Navigator
Netscape Navigator was a proprietary web browser that was popular in the 1990s. It was the flagship product of the Netscape Communications Corporation and the dominant web browser in terms of usage share, although by 2002 its usage had almost disappeared...
(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
Google Chrome
Google Chrome is a web browser developed by Google that uses the WebKit layout engine. It was first released as a beta version for Microsoft Windows on September 2, 2008, and the public stable release was on December 11, 2008. The name is derived from the graphical user interface frame, or...
's "Multi-Process Architecture" and Internet Explorer 8
Internet Explorer 8
Windows Internet Explorer 8 is a web browser developed by Microsoft in the Internet Explorer browser series. The browser was released on March 19, 2009 for Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, and Windows 7. Both 32-bit and 64-bit builds are available...
's "Loosely Coupled IE (LCIE)", 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
Mozilla Firefox
Mozilla Firefox is a free and open source web browser descended from the Mozilla Application Suite and managed by Mozilla Corporation. , Firefox is the second most widely used browser, with approximately 25% of worldwide usage share of web browsers...
have considered instituting the feature in future versions of the browser by at least Q4 2010.
Browsers with process isolation:
- Google Chrome
- Internet Explorer 8
- Safari
- Stainless
- Mozilla Firefox
Related technologies
- Virtual memoryVirtual memoryIn computing, virtual memory is a memory management technique developed for multitasking kernels. This technique virtualizes a computer architecture's various forms of computer data storage , allowing a program to be designed as though there is only one kind of memory, "virtual" memory, which...
and virtual address spaceVirtual address spaceVirtual address space is a memory mapping mechanism available in modern operating systems such as OpenVMS, UNIX, Linux, and Windows NT...
allows for memory space isolation. - PolyinstantiationPolyinstantiationPolyinstantiation in computer science is the concept of type being instantiated into multiple independent instances...
allows mirrors of shared resources, where changes by process A will not be visible to process B.