
Emacs standing alone on a Linux Kernel - stevekemp
http://www.informatimago.com/linux/emacs-on-user-mode-linux.html?repost
======
influx
Shit, I did that years ago:

    
    
      --- main.c Sun Jun 3 22:02:34 2001 
      +++ main.c~ Tue Jul 10 16:05:26 2001 
      @@ -789,9 +789,9 @@
      
      if (execute_command)
      execve(execute_command,argv_init,envp_init); 
      - execve("/sbin/init",argv_init,envp_init); 
      - execve("/etc/init",argv_init,envp_init); 
      - execve("/bin/init",argv_init,envp_init); 
      - execve("/bin/sh",argv_init,envp_init); 
      - panic("No init found. Try passing init= option to kernel."); 
      + execve("/usr/bin/emacs",argv_init,envp_init); 
      + execve("/usr/local/bin/emacs",argv_init,envp_init) ; 
      + execve("/bin/emacs",argv_init,envp_init); 
      + execve("/usr/bin/xemacs",argv_init,envp_init); 
      + panic("No emacs found. Are you sure this is GNU/Linux?");  
      }

~~~
teddyh
No need to patch the kernel - I did this many years ago (before the age of
initramfs) by simply passing “init=/usr/bin/emacs” on the kernel command line
(in lilo, which was what was used at the time).

~~~
pyre
lilo: the Linux Loader!

/getoffmylawn

------
xg15
Now it only needs a decent editor.

(I'm sorry)

~~~
jsmthrowaway
Nah. Luckily it can shell out, and /bin/cat is a decent editor in comparison.

~~~
danielweber
ed

~~~
LanceH
It is the standard.

~~~
jsilence
M-x butterfly

------
abdullahkhalids
If I can get a laptop with a e-ink display (or build one using a raspberry pi)
this is my dream setup for when I am writing.

~~~
Someone1234
e-Ink is one of the worlds most underutilized technologies. I wonder why that
is?

~~~
sho_hn
Because it's not very nice to use. It feels unfinished and wonky. I do enjoy
using my (high-end and fairly recent, Kobo Aura HD) reader, but fast path page
turns degrade the rendition quality of type so quickly that I've set it to do
a full refresh every two turns, and so get to put up with how slow and violent
they are. It's the sort of tech that would send a cartoon Steve Jobs into a
raging fit.

e-Ink feels like a prototype we're putting up with because it has some
intrinsic conceptual advantages, but it never feels like it's fully there yet.
It's probably the _most_ utilized such technology I can think of (though
perhaps I've just gotten more used to other tech's flaws). I'm happy we're
willing to do that, really, but e-Ink is unsatisfying and needs to be better.

~~~
snogglethorpe
Yeah, eink is a _great_ idea, but it feels like it's been just languishing in
the "zone of OK" for quite a while, while 99% of industry research dollars are
focused on fast-update vivid color light-emitting displays.

Unfortunately the latter are arguably more widely applicable, and vivid color
displays are reallly easy to sell to consumers, while the charms of something
like eink are more subtle up front (even if very apparent in the long term).
Eink-type displays, that emphasize long-period eye comfort and texture over
vivacity and color, are probably a smaller niche.

Niches don't really get the money... and subtlety doesn't sell.

Oh well.

~~~
derekp7
How about this -- a billboard sized e-ink display. That would let advertisers
swap out billboard ads based on time slot (prime time would be rush hours,
maybe advertising Crains Business magazine in the morning, and beer in the
afternoon rush hour). Or, someone could purchase a flash add that displays for
10 minutes on all billboards in the city. Things like that would be a perfect
fit for e-ink.

~~~
justincormack
I think the colour and motion is more effective at making people notice. And
putting these things up is still expensive so the extra hardware costs do not
matter so much. And I don't know where to buy giant e-ink displays, and how
much they are.

~~~
derekp7
That is actually part of the problem -- until the patents run out for e-ink,
we won't see these advanced applications.

------
kazinator
Just the fact alone that there is no systemd makes this an awesome distro!

------
microtherion
Now _that 's_ what I call "GNU/Linux"

------
daveloyall
Hm, the author really does mean 'standing alone'.

I'd always assumed that when someone does this, they'd make emacs perform the
usual init duties, and that the rest of the system would be available.

And you want the rest of the system to be available, to use emacs properly...

    
    
        hobbes@metalbaby:~$ find /usr/share/emacs -type f -name \*.el -exec grep '/bin/' {} +|wc -l
        62
        hobbes@metalbaby:~$ find /usr/share/emacs -type f -name \*.el -exec grep call-process {} +|wc -l
        44
    

...For some reason I thought those numbers would be much larger. I'm probably
searching for the wrong strings.

~~~
mercurial
emacs-systemd, coming soon to your system.

~~~
daveloyall
Yes! But, we're 0.2 seconds away from the old emacs threading conversation
here... :)

------
spain
Sometimes I really do wish GNU Emacs could work as a window manager too. I'm
currently using StumpWM but it feels wrong that it's separated from Emacs.
Most of the time on my laptop I just have a bunch of emacsclient -c's running,
Firefox, and a PDF viewer (though I'm sure Emacs has several browsers, I'm
still not willing to give up Firefox).

~~~
daveloyall
You and I use our computers in a similar manner, right down to the bunch of
emacsclient -c's. Throw a deluge and a vlc in there...

I have never quite got emacs integrated into my window manager satisfactorily.

Here are some things I've tried:

* stumpwm without integration

* i3wm with [https://github.com/vava/i3-emacs](https://github.com/vava/i3-emacs)

* Various incarnations of [http://www.emacswiki.org/emacs/OneOnOneEmacs](http://www.emacswiki.org/emacs/OneOnOneEmacs) with i3wm, awesomewm

Things I have considered trying:

* talking to clfswm via an inferior lisp process

The next thing I'm going to try:

* xmonad (via hackage)

Let's face it, the end goal here is for ALL keys to go through emacs, and then
have emacs tell the WM what to do, yeah?

Once that is done, regardless of which wm it gets done to, a bunch of people
are going to flock to it, AMIRITE? :)

------
fdsary
A lisp machine!

------
gpvos
_> The only external tool needed is mount._

It looks like emacs is missing functionality. Get to it!

------
postit
I always told that Emacs was designed with the fear that some day the OS won't
be there. This day is coming

~~~
KC8ZKF
(replace-regexp-in-string "fear" "hope")

------
AeroNotix
Quite possibly the greatest human achievement ever made.

------
ejr
I imagine there are a number of authors who don't want to be bothered by the
extraneous bells and whistles on a new system. It reminds me of this clip of
George R.R. Martin.
[https://www.youtube.com/watch?v=X5REM-3nWHg](https://www.youtube.com/watch?v=X5REM-3nWHg)

------
hardwaresofton
One of these days I'm going to get "All you need is Emacs" on a T-Shirt and
teespring it.

~~~
hardwaresofton
[http://teespring.com/all-you-need-is-emacs](http://teespring.com/all-you-
need-is-emacs)

Pretty impressed with the interface of teespring, it was literally a breeze.
Amazing UX and UI design on that site

------
teddyh
> _(global-set-key "^\" 'keyboard-quit) ;; strangely, C-g does not work._

That is probably because Emacs remaps the Unix terminal interrupt character
from Ctrl-C to Ctrl-G, and then detects the actual interrupt signal. If Emacs
is run standalone, then probably the terminal has not been set up correctly,
and this needs to be adjusted. I’m sure it could be made to work with a few
careful calls to (call-process "/bin/stty" …) or so.

------
hardwaresofton
"All you need is Emacs" T-Shirt:

[http://teespring.com/all-you-need-is-emacs](http://teespring.com/all-you-
need-is-emacs)

(Seemed to be against guidelines to post as it's own thing)

------
rikkus
Only one step left before it's truly a OS in its own right!

~~~
bane
2017: emacs renamed "GNU Hurd".

------
cryptos
I was thinking that the Emacs operating system already had a kernel! ;-)

------
izietto
King Vim is not amused :P

~~~
dredmorbius
Consider it a challenge. No real reason you couldn't implement it as well,
though AFAIR there's no internal shell mode in vim (you shell out).

~~~
mdewinter
Challenge done:
[https://raymii.org/s/blog/Vim_as_PID_1_Boot_to_Vim.html](https://raymii.org/s/blog/Vim_as_PID_1_Boot_to_Vim.html)

~~~
dredmorbius
Submitted:
[https://news.ycombinator.com/item?id=8335226](https://news.ycombinator.com/item?id=8335226)

------
math0ne
I put my shell in your shell so I can shell while you shell.

~~~
dredmorbius
Y'know, that's kind of the point as well.

A number of "BBC" bootable business cards used a /bin/sh script as init. This
worked pretty well.

Though, now that I think of it, while I've never had /bin/init itself fail on
me, the BBCs _would_ occasionally crash due to a shell hang (either the script
or /bin/sh itself, I'm not sure which).

