From afd52350b92d868ce562fc36dc2b5b63355389cd Mon Sep 17 00:00:00 2001 From: linse Date: Sat, 16 Sep 2017 18:03:19 -0400 Subject: [PATCH] Reword, comma. --- Technology | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Technology b/Technology index 45916d5..213ab01 100644 --- a/Technology +++ b/Technology @@ -65,8 +65,8 @@ as boot parameter. MirageOS is an event based operating system with asynchronous tasks. A task yields the CPU once its execution is finished, or if it has to wait for IO. 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. +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 [in Ethereum](http://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/) @@ -86,9 +86,8 @@ An example for corrupting the page table is [Xen's XSA-182](http://xenbits.xen.o ### Simple library model with localized reasoning -As stated above, a MirageOS unikernel is much smaller than a comparable UNIX -virtual machine, since only the required libraries are linked into the virtual -machine image. By avoiding superfluous code we decrease the attack surface +A MirageOS unikernel is much smaller than a comparable UNIX +virtual machine. By avoiding superfluous code we decrease the attack surface immensly. As example, the lines of code of the [Bitcoin PiƱata](/Projects/Pinata) compared