VM Enables 'Write-Once, Run Anywhere' Linux Apps
An anonymous reader writes "A startup will soon launch 'a kind of holy software grail,' according to an article at LinuxDevices. The dual-licensed technology is claimed to enable more or less normal Linux applications to run — without requiring recompilation — under Windows, Mac, or Linux, with a look and feel native to each. 'As with Java, Lina users will first install a VM specific to their platform, after which they can run binaries compiled not for their particular OS, but for the VM, which aims to hide OS-specific characteristics from the application. Lina comprises a platform-specific application that virtualizes the host PC's x86 processor... A lightly modified Linux kernel (2.6.19, for now) runs on top of the VM. Under the Linux kernel is a filesystem with standard Linux libraries modified to map resources such as library, filesystem, and system calls to analogous resources on the host platform.' Further details, including an entertaining video or two are at OpenLina.com"
I hope this lives up to its hype (and promise). I may have to finally break down and get an Macintel (much to the chagrin of my PPC army).
Interestingly enough, the word 'groundbreaking' was not used even once in the summary or the article. News doesn't have to be groundbreaking. It could be a very simple old idea used in an ingenious way to be a very useful tool for the masses. Like this, they aren't hiding that they're kind of copying what Java does. But, you know, if it was such an easy engineering task, why haven't you done it? I'm very interested in where this goes.
My work here is dung.
"download: install: run".
That's what we do! It isn't 1979 anymore and having to compile source code isn't something the average user should ever be expected to do....
I have been a user for about 10 years. This ends Feb 2014. The site's been ruined. I'm off. Dice, FU
"Dear user: Insert the CD. Type make all; make install. Press return and go for coffee."
It should be
"Dear user: Insert the CD. Click 'Install'. Click 'OK' and go for coffee."
See the difference from a user's point of view?
"You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
Second, what about dependencies, how does she know to read the README file or anything else to figure out what she needs to build this source. You don't exactly include all the source of all the libraries you coded with, do you? Rarely have I seen a project coded from scratch with no dependencies.
See, the issue here isn't that she can't be instructed like a monkey to hit a button. The problem here is that if something goes wrong, she's out of luck. I mean, as it is, the concept of double clicking what you downloaded to install it was a tough one to drive home. And even now I worry about her willfully installing viruses or malware on the home computer. Because she just doesn't understand the concept so well. When you ask someone to build from the source, you're pushing them quickly into something they don't understand and it's just going to result in a bad experience. The ease of use for software is actually more important to most people than its efficiency or anything else. Why do you think Java is so popular?
From their FAQ:
'A: LINA is dual licensed. For non-commercial users, LINA is available under the GNU General Public License, Version 2.
If you wish to use it commercially, please contact us to find out more about the LINA commercial license.'
Erm I'm sorry?! You can't stop someone using a GPL licensed program for commercial use.
Do they mean to say that if you want to sell it or do none-free changes then they will sell
you a non-GPL license?
Insert CD.
Phone relative because the CD does nothing.
Find Install and click it.
Cancel the dialog and click the other install.
Phone relative again and ask them why its going to take 3 hours.
Make coffee.
Return to computer and switch it off (thinking they were switching it on because the screen was blank)
Ring relative and ask why its not worked.
liqbase
Imagine a world where everyone wrote software for virtual machines - the problem occurs when people write software for different virtual machines. Eg: if Pidgin was written in Java, Firefox in Mono and GNOME in Python, to run my ordinary desktop I would suffer the overhead of 2VMs and an interpreter.
Besides, its not hard to write cross-platform C++ code.
Please :)
Are PC games crucial in every situation? I think it's naive to believe that there can't be a success for a technology just because it means it doesn't apply for demanding 3D games. I'm sure they can live without PC gamers and focus on the multi-billion dollar companies who want their applications to work seamless no matter the operating system.
"People are stupid. Persons are smart" -- Agent K, MiB.
This time, for sure!
Sorry, that claim has been bullshit for decades.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
If you compile different versions, or if a machine automatically translates for you, that doesn't mean you don't have to test on different platforms. If you expect to have a robust product that runs on linux, windows, and mac, you have to test it on all 3. I think people are confused that this will somehow eliminate that step, so you'd save yourself some time. If it's all one source base, then you'll have tons of stuff like this:
-if running mac, then do this fix, if running windows then do some other fix, if running linux then do some third fix
so either your code gets very large and unweildly, or you have 3 different versions and let them branch a bit. Either has advantages and drawbacks, but neither is what VM promises in theory.
Remember: "in theory, there's no difference between theory and practice, but in practice, there is."
stuff |
install.sh
----------
#!
make && make install
What was your point, again ? Oh yes, there is no "Click 'OK' " step, do you care ?
I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
5% of a market of hundreds of billions of dollars is meaningful, whether you think so or not.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
True enough. But it's just like porn-sites and the defence industry and velcro, if you get my drift: 3D games have a tendency to produce offspring in 3D rotating multiple desktops and those quivering windows when you move them. And _that_, my friend, a user can never do without.
Religion is what happens when nature strikes and groupthink goes wrong.
And come back to:And that's assuming the user knew enough to open a terminal and navigated to the appropriate directory, which you left out. Let's say after they got that error they look at INSTALL and discover your instructions forgot to include 'configure', and now they get:Let's say they go ahead and disable spell-checking, even though it would be a useful feature. They type 'make install' again, like the instructions said, and get:Maybe they're not quite frustrated enough to give up just yet, and they do a google search and discover that you forgot to tell them to run as root. Hurrah! It installed! They type the application name and getWhoops, still root. Maybe they realize this (smart user!), exit, and try running again as themselves. Oh, damn, the application installed in
This is exactly why linux users get a bad wrap... wake up, seriously, if everyone was a tech guru you wouldn't have a job...
I can understand the hack value, but why, for the love of God, would i want to run binary Linux apps on Windows? Didn't they have anything better to waste four years on?
There are some binary Windows apps, which could make life easier (albeit somewhat unethical in FSF terms) for Linux users, such as MS Office and IE6, and AFAIK that's what WINE is for (although i've never had the dire need to actually try it). But vice versa??
All the FOSS Linux apps that are source portable - OpenOffice, Perl, Mozilla, SVN, Audacity etc. - already found their success on the Windows platform. Is someone weird enough to make an application which is binary-only *and* Linux-only?
Or am i missing something?
I'm sorry, but the number of times I've seen the "Write Once, Run Anywhere" claim made for new "paradigms" is fairly scary. There are limitiations to all of these approaches. In this case, running software in complete OS emulation mode denies access to hardware features that have not been successfully ported to the virtual environment, enforces limits of the particular underlying VM hosting operating system in fascinating ways, and absolutely punishes the performance of any disk-accessing operations.
There are uses for virtualized environments, but they're hardly a new approach to code portability.
Telling people how to fix problems fosters dependency on you. Showing them how to do it, in a manner that doesn't take years of command-line dorkdom to understand, is probably far more helpful.
:)
Though in this particular case, if your girlfriend's about to get a Mac anyway, maybe it doesn't matter so much. I'd be more worried about getting dumped once she realizes she doesn't need you to fix her computer anymore.
Make Slashdot readable! See journal.
The users don't have to compile silly.
With something like Qt, its "write once, compile three times". Distribute binaries for Linux, OS X, Windows. All with a native look and feel, using native compilers and libraries.
Its not clear how this thing works with the GUI. Is it a new toolkit? Is it a hack of the Gtk toolkit? (I thought it was funny how the demo talks about the "native Gtk looknfeel from within what looks like KDE).
It is the same dilemma (sorta, actually the same dilemma 'in reverse') that badly crippled OS/2. There was a Windows-16 compatability layer in OS/2. Because of said layer, there was little motivation for developers to come out with native OS/2 ports of applications. This made OS/2 really painful to try to run when all the Win32 apps started rolling out and there was no developed 'customer base' for 32-bit OS/2 versions.
Lemme tell you a small story here.
When MS released Windows 3 was when it started to become known in Brasil. At the time, there was a TV show called "Confissões de Adolecente" (no need to translate, since the name is not relevant). At the time, there was an episode where the main character was bitching an complaining about having to use a mouse and click on stuff. After all, if he wanted something, all he had to do before was to type the command. Now, he had to search for the icon, click on it, than click on something else etc.
So, to translate your comment into something that really means something (and is actually true), what you mean is:
"Do not force end-users to do something different"
Here is Brazil we have a saying for cases like this, which roughly translates as: "If you change the color of the grass, the mule will starve to death"
morcego
Considering I've never ever installed a program from a cd under Linux dont you think autoplay would be useless? :P
I think package management is far superior to cds. For one you cant lose your package management and spend half a day looking for it.
Most people, I suspect, want plastic discs to install software off. It's far easier conceptually to deal with. Linux really doesn't handle that case well.
Personally, I agree - I vastly prefer package management or online downloading. I suspect there will be some user re-training needed to get most people to understand that, however.
Breaking Into the Industry - A development log about starting a game studio.
I would much rather have someone using a command line
And therein lies the problem. You would rather have them using a command line. They don't want to. When you have a GUI, you always have prompts and a safety net. You can say, "Click on the button that says 'Change Setting.'" They have an automatic double check because there is something that matches, exactly, what they're being told to do. They have limited choices because they're working from a menu or from components and when one matches what they're told to do, they have some kind of confirmation they're pressing the right button. When you say, "Now type this," then you can hit any number of snags and they know it. You can tell them what to do and they can use a single quote instead of a double one or hear the word wrong or mistype it and, from their point of view, they don't know what's going to happen if they make a mistake.
You are much wiser than most developers I've seen post here who want to blame the uses for not knowing everything they know and you've got a good point. You and I can often move much more quickly with a console, but for users, the mere thought of having to type commands is frightening. They're looking at a blank screen with no feedback until they hit and then it could be too late.
You've realized, though, that it isn't about what you or I want, but what the user can handle or take care of on their own. That's the problem: It's our job to give them what they can handle. That is rarely a console. With my clients, before I got my software up to the point I wanted it, I had them install RealVNC on their computer and used a tunneling program I wrote in Java so it would go through their firewalls, then had them add me, and I configured RealVNC so it would only run when they wanted to run it and so it had a strong password. (And before anyone starts screaming, I'm simplifying and leaving out discussions with their bosses and IT departments about safety.) When they had problems, I just had them run RealVNC and add me, then I could fix, in less than 5 minutes, what could take 45 minutes or more if I were telling them what to do. When I finally got my own program to where I wanted it to be, that wasn't an issue anymore since I had enough failsafes they didn't need that kind of help anymore.
Ah, you've used Windows, I see. Installing things is much easier on pretty much every other platform (including macosx, most of the linux-based platforms, and most of the BSDs).
What are you talking about? One of the big problems in the Windows world right now is that applications are so easy to install, that the user often has to run special software just to keep applications them from installing all by themselves!