-
Notifications
You must be signed in to change notification settings - Fork 133
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixing grammar/punctuation in UNIKERNELS.md (#1345)
- Loading branch information
1 parent
f0c4b11
commit 764c683
Showing
1 changed file
with
13 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,30 +1,30 @@ | ||
# What is a Unikernel | ||
# What is a Unikernel? | ||
|
||
A unikernel is a single process system that is specifically designed to | ||
run only one application. It makes it a great fit for modern cloud | ||
environments because of it's performance, security and size. | ||
A unikernel is a single-process system that is specifically designed to | ||
run only one application. It is a great fit for modern cloud | ||
environments because of its performance, security, and size. | ||
|
||
## Single Process | ||
|
||
Linux systems have archaic design concepts rooted in the 1960s from when | ||
machines cost half a million dollars and needed to run multiple programs | ||
for multiple users. Today developers go out of their way to isolated | ||
programs from each other if for no reason other than manageability | ||
for multiple users. Today, developers go out of their way to isolate | ||
programs from each other if for no other reason than manageability | ||
concerns. | ||
|
||
A unikernel embraces the single process concept while allowing the use | ||
of multiple threads. For languages such as Go this fits well. For | ||
interpreted languages such as ruby and python developers in these | ||
A unikernel embraces the single-process concept while allowing the use | ||
of multiple threads. For languages such as Go, this fits well. For | ||
interpreted languages such as Ruby and Python, developers in these | ||
languages typically load balance a set of application servers to enable | ||
a greater degree of concurrency. In the unikernel world we do the same | ||
thing but those app servers become full fledged vms and can make use of | ||
existing load balancers without having to do back flips. | ||
a greater degree of concurrency. In the unikernel world, we do the same | ||
thing but those app servers become full-fledged VMs and can make use of | ||
existing load balancers without having to do backflips. | ||
|
||
## No Shell/No Users | ||
|
||
This is a security design constraint. There is no shell to remotely log | ||
into and there is no concept of users. While OPS has a stubbed/fake user | ||
it is only present to implement underlying libc calls and has no | ||
relevance otherwise. This also means that modern unix permissions don't | ||
relevance otherwise. This also means that modern Unix permissions don't | ||
have much meaning inside of a unikernel because there is only one | ||
program running and no users. |