This commit is contained in:
linse 2017-09-16 16:26:03 -04:00
parent dd3c0952f8
commit 2764c4f06b

View file

@ -68,14 +68,12 @@ This concurrency model leads to a cooperative multitasking programming style,
rather than the error prone preemptive multitasking where each code block needs
to make sure to use appropriate locking strategies, to avoid reentrant execution errors.
A recent example for code which is not safe under reentrant execution, [this
issue in
Ethereum](http://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/)
A recent example for code which is not safe under reentrant execution
[in Ethereum](http://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/)
lead to a huge amount of ether being transferred.
More conventional software, such as [Firefox JavaScript engine](http://www.nist.org/news.php?extend.175),
or [php](https://bugs.php.net/bug.php?id=74308) also suffer on a regular basis
from issues regarding reentrancy.
Established software like the [Firefox JavaScript engine](http://www.nist.org/news.php?extend.175),
or [PHP](https://bugs.php.net/bug.php?id=74308) shows similar problems on a regular basis.
### Simple process memory model with localized reasoning
@ -84,7 +82,7 @@ address mapping for each process. Since a unikernel is only a single service, it
uses a single address space, avoiding the need for complex address mapping code
altogether.
An example for messing up the page table is [Xen's XSA-182](http://xenbits.xen.org/xsa/advisory-182.html).
An example for corrupting the page table is [Xen's XSA-182](http://xenbits.xen.org/xsa/advisory-182.html).
### Simple library model with localized reasoning