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 don't understand how it deals with dependencies, especially for GUI applications for that "native L&F." I could understand statically compiled binaries, but it obviously must use some shared objects on the OS because in the introduction video, Windows still required Cygwin.
I don't doubt that this will be useful, but there's just too much hype surrounding it right now, and I can't tell the difference between the truth and the embellishments.
// file: mice.h
#include "frickin_lasers.h"
would it really be that much of a step for ./configure && made && make install to be compiled into a nice little gui so that gradma can just double click the CD and have it compile (automatically installing any dependencies), install, and then run?
There is no reason why compiling from source should be any more difficult than installing, it's just that no one's gotten around to making a simple graphical compiler.
Although people might complain about why it takes 48 hours to install OpenOffice.org
being vague is almost as cool as doing that other thing...
Also, I get that their goal is to have 'normal' programs run cross platform
"Cross platform" as long you're running an x86 processor.
This guy's the limit!
According to the LINA whitepaper, LINA encourages migration to Linux, because commerical OS users will be introduced to countless Linux applications.
I just wonder - if LINA became incredibly popular - would Windows and Mac users really feel compelled to change to Linux? I mean if you could run the vast majority of Linux programs, but still have a few favourite programs that are not supported in Linux (and assuming these don't even run using Wine) then it might be more attractive to keep using LINA and never touch Linux in itself.
Just think of all those people who started using Linux only to have amarok.
The official line has long been that Fx doesn't leak memory, it has a poor caching implementation. I don't get your database jibe at all. SQLite is small, fast and already used in firefox 2 (webappstore, search providers && anti-phishing). Guess you've never used it, plus Mozilla have used Berkeley DB for years already.
And who'd write anything for Mono with Microsoft making threatening noises from behind the curtain and Java being GPL'd?
There are several development tools that have such a license. That if you are developing GPL software then the GPL license applies, but if you are developing comercial closed source then you pay.
Though this is a Virtual Machine, not the software that runs on it, you typically have to have some sort of clearance or approval to install and run such software in a large company. And having a paper trail of purchase or licensing fits the traditional business model. So yeah, if they actually produce, it makes since, however...
How long will it be before someone gets the idea to simply put it all on a memory stick and/or live CD/DVD such that they can take it with them, yet run it on top of other running OS's, that would then allow the best of both worlds (let the best app win regardless of OS)....
BTW, a windows version of D-BUS is being developed and in a case like this, it can be what integrates the two system applications. And that is what will make it really useful.
Imagine taking your personal tool box to work that you keep and which adds to your value to the company.
"Besides, its not hard to write cross-platform C++ code." - by Anonymous Coward on Sunday May 27, @08:14AM (#19291127)
.h files functions/objects they in turn, may call).
.h files (or have incomplete, or erroneous/buggy ports of their function calls), or that the implementations of the files they too call, differ radically... OR, if they make calls SPECIFIC to a library (like a specific Win32 DLL that does not exist on say, Linux) particular platform & nothing like it exists on the other platform.
True, if you do NOT write more than 'smallish apps'/trivial ones (no app is trivial imo, so do not get me wrong there: If it does a job for you or others, even if ONLY at times (say, to perform string manipulation in a file to strip or add characters or hunt them down etc.), it is useful/good) usually.
Still - It CAN be a pain though if you make the mistake of depending on others' work in header (.h) files & assuming their ports of them are complete (or, that they changed the dependencies those have inside of them as well &
E.G.-> Say you are missing
APK
Oh cool. So Linux/Unix users are going to blindly run make all; make install for any software?
And people look down at Windows users for blindly installing/running anything.
On a related note: just wait till perl/ruby/python malware starts getting popular. No need to compile, even easier than make all; make install.
Let's see how the AV vendors cope with scripts that look innocuous at first sight, but once in a while do websearches and download malicious code (or grep your email for spam containing malicious code) and then run eval on it.
And it should be fairly easy to make these cross platform.
You can also use wxPython (http://www.wxpython.org), which seems to start a lot faster than LINA (look how many times the LINA app bounces in the dock before it starts), actually *comes with* Mac OS X Tiger, uses native OS controls whenever possible and as of 2.8.3 has a library called SizedControls which automatically applies OS HIG-compliant sizing and borders to your windows and controls on Windows, GTK/GNOME, and Mac (disclaimer: I'm the author of said library). Plus, unlike Qt and LINA, wxPython/wxWidgets is free for commercial development as well as open source.
:-)
So I've been using this 'holy grail' for years, but maybe the VM slowdown and commercial licensing will appeal to some people.
This mentality bothers me. While the command line is intimidating at first, and end-users should never have to learn how to navigate the command line, if I'm giving instructions, I would much rather have someone using a command line.
For example, a few months back, my girlfriend wanted me to put Linux on her computer. She was saving up for a Mac, and her anti-virus had expired on Windows. She needed a web browser, office suite (She used OpenOffice on windows to begin with), and an instant messenger. I had her install Kubuntu, answering a few questions when she had them. Once it was installed, I pulled up a terminal to start installing some programs and codecs with apt. She was deathly afraid of learning the terminal, so I started stepping her through the installation with Adept Installer. The instructions for installing Flash went something like this:
- Click the "K"
- Click add/remove programs
- Type your password
- Check the box next to "unsupported"
- Check the box next to "Proprietary software"
- See where it says "KDE"? Click the down arrow and select "Any Suite"
- Type "flash" in the search box
- It's not in multimedia? Try "Others" I guess.
- Check the box next to "Macromedia Flash Plugin"
- Click "Apply Changes"
- When it's done, click "quit"
Alternatively, I could have told her:
- Click the 'K'
- Hover your mouse over 'System'
- Click 'Terminal Program (Konsole)'
- Can you remember that? Next time I may just say "Open a Terminal"
- Type "sudo aptitude install flashplugin-nonfree"
- Type your password
I explained to her that I didn't expect her to learn how to use the command line on her own, but it's a lot easier for me to tell her a command when I'm giving instructions. She hasn't used the terminal once on her own, and she's enjoyed perusing the programs available through Adept Installer, but she knows if I have to give her an instruction, it will be a lot easier to use the command line.
I realize it's initially intimidating for users to have to open a terminal, and I'd like to see graphical interfaces for everything a normal user would need to do, but I also wish we could get the average user to where they realized the set of instructions is a lot shorter when someone gives you a command than when they have to explain dozens of clicks.
Because I've had to program in it. It has all the annoying fiddly bits of C++ and it's slow as hell. Even worse, I was forced to use it for JSP. There's nothing less fun that debugging poorly written code that has to be recompiled in its entirety every time you want to see how a webpage looks now.
Debugging poorly written code in all other languages (that I've used) hasn't been nearly as bad. I jumped for joy when I was told we were going to rewrite the project in PHP.
"If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
If Java's GPL then why do we need another Java?
The genius is that they really mean it's no acronym, it's just a name they chose. So they're making meta-fun of meta-acronyms!
How can they expect to bar commercial *use* of Lina when it's a GPL'd software product--unless their software must be embedded in the end executables?
Meanwhile, the video describing Lina is terrible. It shows (in a ridiculously puny window) two people installing an Apache-backed *WEB APPLICATION* onto two apparently different systems: a Linux machine and a Mac machine. What's the point of that when a PHP-backed application will do just as well and is nearly as simple use? (And what needed Lina? Apache? The web app itself? Both? Beats the hell out of me.)
There's no word on actual performance of Lina binary applications either, and while they claim additional "security," the reality is that complexity does NOT breed security, and Lina is yet another layer which must be maintained, secured, configured, and reconfigured.
Java already provides all or nearly all of this, and targetting development at Lina would be a massive re-tooling. It would also appear that the LINA PDF is internally inconsistent on the matter of whether legacy *binaries* or just legacy *apps* would run under a Lina host. I'll guess that everything must be recompiled specifically for Lina for it to work properly.
Quite frankly, once Java's GPL'd code is ported to the missing OSes it needs to be ported to, there will be no barrier to Java adoption anymore. Plus, commercial devs can still create independently-licensed Java applications without worrying about Lina demanding their cut for commercial development under Lina.
Qt if you want a good one.
I'm sorry, have you ever USED a Qt program on anything other than Linux? I've yet to see a single Qt application that doesn't look and behave like ass on Mac OS. (That said, I've never seen a wxWindows one that didn't look and behave like ass on Mac OS either.) My personal favorite is RealBasic, since I've seen RB apps that look and feel native on Mac and Windows, but you'll never get the open source community to use it because it's proprietary.
Comment of the year
Am I "net-blind" or is there no where to download this thing? Google around for "Download Lina" produces hits on some MP3s and some hits on the Lina logo. If there is a download version of this project I can't find it.
On the matter of the product itself:
From the videos on the website it sounds like Lina is a new type of VM for C/C++ code similar to the JVM. If that is the case I can easily contain my excitement and hope these guys have a good marketing department. The technology is not 10x better and as such will have a long road to success.
If you can write to Lina and distribute Lina "binaries" or native binaries (that is "exe" on windows) I don't think you'll see much resistance to Lina as a product. You may not see much fervor over it either though.
If you can recompile a Linux project and distribute either "Lina binaries" or native binaries for a program then I think we have gold here. I'll be very excited and it means that Linux could morph into a kind of super Java style API for all Operating Systems... a sort of meta System V.
If all Lina does is provide a VM to write to, (which is what I suspect), then Lina's success is going to be a matter of marketing. But not traditional big marketing... it will succeed on a combination of smart technologist marketing and viral marketing. If Lina has that it might carve out a niche for itself.
The question is, true believer, can Lina make your heart flutter like Linux, Ruby, Python, or PHP did? If it doesn't learn to make your heart go pitter-patter then I it will have to find a way to cut deals to make you want to learn to dance with Lina. Maybe folks at dLoo can cut a few deals that move a critical mass of developers over to the Lina side of the force.
I don't know if I like Lina or not, I haven't even met her. With a hook like this on Slashdot today would have been the perfect time for me to meet Lina and maybe have dinner. As it stands, I'm a desirable geek and get lots of young new technologies interested in my time and attention. I've got Beryl that I'm hanging out with right now, some python code from Numenta that keeps calling me back and looks mighty nifty, I've got new FX-y tech I'm going to spend some time with too... And, that's just this weekend. I may not notice Lina again. I'm sure she's a nice girl with great personality but... the other tech I can meet and talk to right now and Lina didn't even give me a month and day to get back to her on.
[signature]
, (to make things easier and for 'sharing' code), were obscure pointers to areas of memory.
that required a rocket scientist to figure out what the hell was going on. Wow! We had 'functions' - we could
share code a lot easier!
that required a rocket scientist to figure out what the hell was going on. Wow! We had 'objects' that virtualized
concepts. But why do we suddenly have 'fat' programs.
out what the hell was going on. We had objects that virtualized everything. 'fat' programs? - forget fat these
were obese.
figure out what the hell was going on. Forget trying to virtualize program space - heck let's virtualize the whole
damn O/S! What's a fat program without a fat O/S?!
So, what's next after O/S virtualization? We've tried in the past to objectify and virtualize program space
and to a large extent doesn't work as we either keep changing userland requirements or our methodologies force
us to change.
Don't get me wrong - love virtualization for all the right reasons. But, all we have at the end of the day
is faster and faster machines that sit there chewing up greenhouse gases, (Bring back the old days of the
TRS80!).
-- main(s){printf(s="main(s){printf(s=%c%s%c,34,s,34
This seems like a more mass market application of rPath's idea of building custom VMWare images for specific applications (although the VM sounds like it will be less distinct from the host OS, hopefully this will give performance increase). It is a pretty clever idea, and essentially flips these kind of ideas https://wiki.ubuntu.com/SeamlessWindowsIntegration on their head.