parent
e7b57abd31
commit
494047f5a4
@ -0,0 +1,37 @@
|
||||
---
|
||||
title: Tiny Imaginary Computers
|
||||
author: Reynir Björnsson
|
||||
---
|
||||
|
||||
This website is running as a *Mirage unikernel*.
|
||||
A traditional application is one or more programs that run in an operating system on a computer alongside other programs.
|
||||
A *unikernel* is a program that is also an operating system.
|
||||
That sounds boring -- an operating system where only one program ever runs?!
|
||||
And that is correct, this is often not what you want.
|
||||
Luckily, modern machines have the capability to run many *virtual machines*.
|
||||
This provides some benefits:
|
||||
|
||||
- A virtual machine is well isolated from other virtual machines.
|
||||
You don't have to worry about one application messing with the files of another,
|
||||
or a malicious application sending the private bits from another application somewhere where it doesn't belong.
|
||||
|
||||
- You know what your application needs from the operating system, so you can leave out the things that are not needed.
|
||||
This simplifies things, makes the operating system much smaller.
|
||||
Furthermore, it's a big security benefit - every bit of code is a potential security issue.
|
||||
Only a few years ago it was a huge problem for many people because their virtual machine had a vulnerability in the virtual floppy drive!
|
||||
|
||||
- The program is self-contained.
|
||||
All that it needs is packaged up in the unikernel.
|
||||
In traditional software you often have a number of dependencies that you need on your computer in order to run the application, and they all need to have a compatible version.
|
||||
|
||||
This website is using a *library* called [Canopy](https://github.com/Engil/Canopy) that a guy I met in Morocco and later Leipzig wrote.
|
||||
The first thing it does when it starts is to fetch files that are under *version control*.
|
||||
This means the files have a log of what was done, and every change is tracked.
|
||||
You can go back in time if you regret a change!
|
||||
I made the files public on a website hosted by my friends [data.coop](https://data.coop/).
|
||||
Whenever I push new changes there Canopy makes sure to get the latest updates.
|
||||
You are welcome to take a look at the history: [https://git.data.coop/reynir/frontloberne](https://git.data.coop/reynir/frontloberne)
|
||||
Canopy knows how to make the simple text files look pretty in your web browser.
|
||||
|
||||
On the same machine I run another Canopy instance which serves a technical blog at [blog.mirage.reyn.ir](https://blog.mirage.reyn.ir/).
|
||||
At the moment I'm only running a few other things, but I could easily run 100s of instances.
|
@ -0,0 +1,13 @@
|
||||
---
|
||||
title: Open Source
|
||||
author: Reynir Björnsson
|
||||
---
|
||||
|
||||
Open source is a philosophy of sharing knowledge and know-how.
|
||||
You share how things work, be it software, beer recipes or how to grow oyster mushrooms from spent coffee grounds.
|
||||
You are free to read, inspect and modify the code (recipe) in any way you like.
|
||||
In some cases, extra conditions apply such as you have to share back any changes or improvements you have made if you're not using it just for personal purposes.
|
||||
In other cases no conditions apply.
|
||||
|
||||
Pretty much all my work is released as open source.
|
||||
It is something I believe in.
|
Loading…
Reference in new issue