
Levinux – A Tiny Version of Linux for Education - Isofarro
http://mikelev.in/ux/
======
dkarapetyan
This is awesome. Computing is becoming more and more ubiquitous but at the
same time it is becoming more and more opaque. Approaches like levinux are an
excellent way to make it more open and accessible not just from the consumer
perspective but from the hacker/maker perspective as well.

------
MarcScott
Just had a play around and I'm very impressed. I'm pretty sure I'll be using
this in September for all my CS students.

We've been looking at various ways in which we could introduce our Year 7s
(11-12 yo) to Linux, and this checks all the boxes. It'll fit nicely within
our existing schemes of work that go through HTML/CSS and JavaScript, and then
lead onto Python in the next year.

Fantastic job, and thank you very much.

------
julian25
This looks awesome, but I'm slightly confused with the mission of this
project. Is it meant to provide a simplified operating system to encourage
tinkering, or a minimal "old-school" environment in which to learn "higher-
level" programming on?

~~~
daniel_reetz
It's about the short stack. From the page:

Okay, what is the ultimate goal here?

There are tons of approaches to learning to program, and reasons for doing so.
You might want to build an empire, or just have a few extra skills in your
back pocket. Levinux supports your pursuit either goal and everything in-
between. It does this by focusing on one particular “short stack” approach:
learning the least-possible software possible of the most timeless nature to
enable you to do interesting things. It can be your primary programming
environment, or just sort of a safety-net as you pursue other more sexy
platforms like mobile app development.

------
eksith
This is quite nice. The approach fits well with ubiquitous computing.

If anyone is interested in another tiny Linux version, not necessarily for
education, but personal use, I'd recommend CrunchBang (based on Debian). If
you have an old laptop you want to give someone or a new netbook that doesn't
have a CD drive, it's very easy to install via USB.

Edit: I just realized, "tiny" doesn't quit fit CB. So let's call it efficient
and simple instead.

~~~
notfoss
For a tiny distribution, puppy or slitaz work quite well.

Also, I would say that Arch Linux can be as tiny as you want, but it's not a
fire and forget solution and I wouldn't want to maintain an Arch system for
friends or relatives ;)

~~~
miklevin
Uh yeah probably shouldn't jump into the tiny Linux debate, but I recommend
looking into Rich Shingledecker's attitude towards desktop distribution bloat
even on versions considered "tiny" vs the 6 to 12 MB distro that he turned
into Core Linux. Divergent philosophies, and I found it best to leave the
desktop world behind when approaching Linux education. Best not to confuse
what's being worked on to compete with iOS, Android, OS X and Windows with the
education that will serve you best on servers and embedded systems. Even Puppy
and SliTaz are large-ish desktop versions of Linux in comparison.

------
0xdeadbeefbabe
Hurray for the short stack philosophy! But how is starting with linux
shortening the stack? Why not start with forth?

~~~
minopret
He mentions "transferability" as a goal. Whatever a person learns in the
context of this small Linux is directly applicable to other Linux
distributions. Granted, whatever a person learns in the context of any Forth
is applicable to the Forth that one might use on Windows, Mac, Linux, FPGAs,
or whatever. It just seems that that wasn't his aim. He does after all state
that this project is constrained by his imagination and his resources.

The direction in which his imagination goes is back to his Amiga days, as I
understand this: [http://mikelev.in/2010/10/choosing-tools-switching-to-
linux/](http://mikelev.in/2010/10/choosing-tools-switching-to-linux/)

Forth doesn't seem to be what he had in mind or was prepared to provide. If
you personally like learning and teaching Forth, then you're right, why not
start with Forth?

~~~
miklevin
Hi. Levinux creator here. More modern platforms will always offer developers
speed-to-productivity advantage, but the platforms themselves are constantly
moving targets. If you invest yourself wholly into them, you're caught in the
cycle of what Joel Spolsky calls fire-and-motion. But if you also learn a good
terminal-oriented old-skool in a way that will work on most (but not all)
embedded systems, you'll always have a fallback plan. The short stack is
ideally Unix, C, a ubiquitous text editor, and the compiler tool chain. But
we're not in an ideal world and I want it to be approachable by newbies. So,
Python comes before C for the sake of positive initial experience and movement
towards C, and vim is the text editor choice because of the ubiquity. I know
tons of arguments can be made different ways, so I'm making a my flavor of
Levinux, then making it as spinnable in different ways as possible. Forth
versions should be no problem, and I anticipate a node-oriented version and
such. But time and imagination constrained as I am, I'll be focusing my
tutorials and server recipes on my idea of an newbie-accessible short stack.

~~~
rm445
Wouldn't it make sense for levinux to ship with a C compiler then? It wouldn't
make much difference to the file size and would let people start with C if
they wanted to.

(Please correct me if I'm wrong - I just started levinux, ran the initial
download, then sshed in and tried 'cc', 'gcc', 'clang', and 'tcc' before
giving up).

~~~
miklevin
The distribution zip is under 20MB. Even with vim, git and Python, it's still
just 60MB. The GNU toolchain pushes it much larger, and it's not part of the
early education curriculum I'm proposing. C compiling is something I'll be
working people to after several positive experiences with Python. Also, it's
just one repository command away from being installed, so I figure I'll add it
as one of those menu options that you get presented with after startup.

------
guyprovost
This absolutly got my attention, going to check for sure. I'm older, and when
I was in school we learn OS with Minix, a port of UNIX on the 8086
architecture. But this is so much more!

~~~
miklevin
Believe it or not, I considered Minix for this project, as I did BSD and
BareMetal OS. In the end, "some Linux" won, and at this time only Tiny Core
Linux roughly estimates the ease of a Debian-like repository system to support
server-building scripts, while still being a minute distro (under 10MB without
the Levinux parts) and not being a hard drive install while still offering
persistence... well, the list goes on. It was a very tall order I was trying
to fill, and at the time, the QEMU+Tiny Core Linux combo nicely fits the bill.

------
vukmir
While this is certainly a fast (and convenient) way to get hands-on experience
with Linux, I'm not that sure about the "short stack" being the best option
for beginners.

~~~
pbreit
This comment would benefit from a reason or suggestion.

~~~
vukmir
Indeed. My apologies.

First of all, learning the command line, git, vim, and Python is a bit too
much for a beginner to handle all at once. IMHO, vim alone will scare off a
lot of people.

Second, being exposed to a lot of different programming languages is very
beneficial for a beginner.

~~~
hrktb
I think vim is OK if it is explained as ":i to modify, ESC :wq to save and
exit".

Keeping the first explanation to this two use cases keeps it short and easy to
remember, and not much more difficult than the other command line editors.
pico or nano have the command in plain sight but I find them worse to type for
beginners, and there is not much of a learning path from there.

~~~
grimgrin
You'd just want to press "i", instead of ":i".

~~~
grannyg00se
You'd also want to map something more convenient to ESC. Like jk. That way you
won't have people immediately cursing this system that requires them to find
the ESC key every time they finish editing a piece of text. Something more
convenient can be mapped to :wq as well.

Actually....I think I'm with vukmir on the beginner in education being
somewhat overwhelmed and I'm confused as to why Linux Server skill is being
conflated with programming.

"consider Levinux a stepping stone for newbs, because it gives you a taste of
Linux Server and sets you on your way to being able to do SOMETHING within
minutes......Push your code up from Levinux and pull it down from whatever
other system you end up using in the future."

------
polshaw
Adapted from tinycore (tinycorelinux.net)

