summaryrefslogtreecommitdiff
path: root/public/emacs-as-an-os.md
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2013-10-12 13:47:42 -0400
committerLuke Shumaker <LukeShu@sbcglobal.net>2013-10-12 13:47:42 -0400
commit6a42c8de66e3b2dc7293ddeadaa3ee396db2624d (patch)
tree67a027b892d3122662526504dd6d11e8dea02ca1 /public/emacs-as-an-os.md
initial commit
Diffstat (limited to 'public/emacs-as-an-os.md')
-rw-r--r--public/emacs-as-an-os.md39
1 files changed, 39 insertions, 0 deletions
diff --git a/public/emacs-as-an-os.md b/public/emacs-as-an-os.md
new file mode 100644
index 0000000..5fe6d4f
--- /dev/null
+++ b/public/emacs-as-an-os.md
@@ -0,0 +1,39 @@
+Emacs as an operating system
+============================
+:copyright 2013 Luke Shumaker
+
+This was originally published on [Hacker News][1] on 2013-08-29.
+
+[1]: https://news.ycombinator.com/item?id=6292742
+
+Calling Emacs an OS is dubious, it certainly isn't a general purpose
+OS, and won't run on real hardware. But, let me make the case that
+Emacs is an OS.
+
+Emacs has two parts, the C part, and the Emacs Lisp part.
+
+The C part isn't just a Lisp interpreter, it is a Lisp Machine
+emulator. It doesn't particularly resemble any of the real Lisp
+machines. The TCP, Keyboard/Mouse, display support, and filesystem are
+done at the hardware level (the operations to work with these things
+are among the primitive operations provided by the hardware). Of
+these, the display being handled by the hardware isn't particularly
+uncommon, historically; the filesystem is a little stranger.
+
+The Lisp part of Emacs is the operating system that runs on that
+emulated hardware. It's not a particularly powerful OS, it not a
+multi-tasking system. It has many packages available for it (though
+not until recently was there a official package manager). It has
+reasonably powerful IPC mechanisms. It has shells, mail clients (MUAs
+and MSAs), web browsers, web servers and more, all written entirely in
+Emacs Lisp.
+
+My might say "but a lot of that is being done by the host operating
+system!" Sure, some of it is, but all of it is sufficiently low
+level. If you wanted to share the filesystem with another OS running
+in a VM, you might do it by sharing it as a network filesystem; this
+is necessary when the VM OS is not designed around running in a
+VM. However, because Emacs OS will always be running in the Emacs VM,
+we can optimize it by having the Emacs VM include processor features
+mapping the native OS, and have the Emacs OS be aware of them. It
+would be slower and more code to do that all over the network.