Levinux – A Tiny Version of Linux for Education

January 19, 2012

This is the fastest way to start getting hands-on experience with Linux Server. Start your life-long love affair with the “short stack” (V1.6).

LevinuxLevinux (download ~17 MB) is a tiny virtual Linux server that runs from USB or Dropbox with a double-click (no install) from the desktop of a Mac, Windows or Linux PC—making it the perfect learning environment, and a great way to run & keep your code safe for life! Think of it as an introduction to old-skool “short stack” development—more relevant now then ever as Linux/Unix gets embedded into everything.

What I propose…

Even if you never programmed before, I propose beginning teaching you how to do it “old skool” in minutes from you reading this sentence. Download a ~17MB file, double-click it, and follow the instructions to start down a path that will begin enabling you to undertake projects you would have never previously dreamed doing yourself. I do this with a particular philosophy that is at odds with much of today’s world, and that is precisely why it will give you an edge over the competition for years to come.

What does Levinux look like?

When you double-click the launch script, a black window that looks much like this will pop up. The first time you run Levinux, it will “inflate” by hitting a software repository to pull down a webserver and an SSH server. You need an Internet connection and not-too-restrictive firewall for this to work correctly.

Learn Linux

A journey of a thousand miles begins with a single step

The videos below will give you a little more idea what to expect. The first goal here is to make an easily reproducible positive old-school Linux Server experience for you, no matter what platform you’re starting out on. There is great reward in this (for reasons described elsewhere), and it is my heartfelt belief many more people can do it than give themselves credit. This stuff just LOOKS intimidating if you don’t have the right introduction (what I’m trying to do here). But just like anything else, once you get through the difficult initial first tries and stick with it, everything starts to make sense, and come naturally to you. So, have no fear. There is nothing you can screw up. You can just unzip Levinux again and try over. Easier still, you can double-click the Reset icon to set it back to its initial state. Work your way through these same experiences these videos describe, and you’ll start getting the foundation for a timeless, valuable, and nearly platform independent approach to programming. So welcome on board, and there’s a few places you can reach out to the burgeoning Levinux community.

Levinux Community

Jump directly into these discussions

Here’s what Levinux looks like booting the 1st time

And here’s why it works great with Dropbox

Learn how to program Python, a Hello World example

And here’s an introduction to the git distributed version control system

Here’s resetting the server and some file layout explanation

Only for Advanced Linux folks, modifying Levinux Recipes

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. Programming is just automating machines to do your bidding, with a just little more control than The Sorcerer’s Apprentice. But still that provides a pretty good model for the broad, important concepts you’ll be mastering if you stick with me: Become a Tech Superpower

Under The Hood

Note: this will read like blah, blah, blah to newbies who can focus on the videos. But here’s the it is for all you Redditors…

Levinux is based on Tiny Core Linux and QEMU. Tiny Core is an extremely minimal distribution of Linux created by Robert Shingledecker, the guy who “matured” Damn Small Linux (DSL) into such a creative and popular distro and was responsible for the United States’ first large-scale municipal government Linux install. Tiny Core’s philosophy comes from the world of “embedded systems” where operating systems aren’t generally installed across hard drives and allowed to go corrupt over time. Instead, it’s a perfect state on every boot-up. Tiny Core is in-turn based on BusyBox, which is a tiny program used in many embedded systems that replaces what is called the GNU commands—or really, the OS proper, which is what gets Tiny Core down to ~17MB.

Levinux is also based on QEMU, which is a computer emulator used in Android development, Oracle VirutalBox and the Linux kernel virtual machine. I am currently using the most popular mainstream binaries pointed-to by the QEMU website after a long adventure of trying to compile my own, and am in the process of recruiting QEMU and Linux kernel gurus to help with this project. Yes, there’s nothing wrong with starting out with Debian, Arch, Fedora, CentOS or any of the other fine GNU-based Linux distros, but I propose to get you on your way within seconds of a tiny 17MB download.

If it makes you feel better, 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, instead of fiddling around with LiveCDs or hard drive partitioning. And the work you accomplish here is as valid as the work you accomplish anywhere else. Python is still Python. vim is still vim. git is still git. Push your code up from Levinux and pull it down from whatever other system you end up using in the future. You might even learn something more than starting with Debian or such, because a true short stack only has what you intentionally put there and plan on using—which is also a better security model, scales better, and installs on a wider variety of hardware than kitchen-sink distros.

System Requirements

Pretty much any modern Mac, Windows or desktop Linux system with about 60MB free on the hard drive will do. I’m still working out problems from 64Bit Linux desktops, and will put the full list of tested OSes and versions here at some point in the future. But since it’s only a ~17MB download that inflates fully out to only about 60MB after the Python, vim and git server build, and no install is required on your host system, why not just download it and give it a try?

Known Issues

  • A lot of firewalls break Levinux’s initial run and server-build. If you get a login and not a menu, it’s likely a firewall issue. Stop trying! Run Levinux somewhere else, if you’re determined.
  • The 64 Bit Linux qemu-system-x86_64 binary is actually 32 bit (big issue). There’s a way around this, but I suggest just waiting until Beta 1.6. It’s my biggest priority.
  • Missing librdb.so.1 library dependency reported on a lot of systems.
  • Many things like Google AppEngine host conflicting websites on port 8888.
  • It’s tricky to zip the file so it decompresses with proper permissions for all OS host platforms.
  • Some Linux distros refuse to run .sh files with a double-click regardless of permissions.

Current Version: Beta V1.6

  • Corrected issues with Ubuntu 64-bit Linux

Recent improvements, Beta V1.5

  • Replaced qemu Linux binary with qemu-system-i386 and qemu-system-x86_64
  • Changed Linux launch script to auto-sense 32 or 64 bit and use correct binary.
  • Added tce-load -wi python-distribute to Python.sh
  • Added sudo easy_install pip to Python.sh
  • Added entries to .filetool.lst to make pip persistent
  • Added pxe-rtl8139.bin and vapic.bin to MacOS folder per net feedback

Recent improvements, Beta V1.4

  • Set the stage for a git video tutorial
  • Added curl and expat2 requirements for git when Python server builds
  • Added “export GIT_SSL_NO_VERIFY=true” to .ashrc for git pushing

Recent improvements, Beta V1.3

  • Greatly enhanced tutorials at localhost:8080
  • Added bottle.py Python Web framework
  • Opened port 8888 for Python web development work

Recent improvements, Beta V1.2

  • Added menu option #4 for installing Python, vim & git
  • Expanded Reset scripts to clean up Dropbox collision files

Planned longer term improvements

  • Eliminate use of SDL library. Replace with ncurses and pdcurses.
    • Get rid of “flashing” problem in Linux
    • Get rid of pointer-grabbing
  • Find or compile the “perfect” binary for each platform (older qemu’s?)
  • Find or compile the “perfect” Linux kernel (less hardware support)
  • Compile & submit my own optimized Tiny Core Linux extensions
    • Get rid of XLibs and other graphics related overhead

The Levinux Forum

Home Forums Levinux

This forum contains 19 topics and 82 replies, and was last updated by  Allomihig 5 hours, 24 minutes ago.

Viewing 15 topics - 1 through 15 (of 19 total)
Viewing 15 topics - 1 through 15 (of 19 total)
Create New Topic in “Levinux”
Your information:






<a href="" title="" rel=""> <blockquote cite=""> <code> <pre> <em> <strong> <del datetime=""> <ul> <ol start=""> <li> <img src="" border="" alt="" height="" width="">