Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Programming Software Linux IT Technology

VM Enables 'Write-Once, Run Anywhere' Linux Apps 482

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"
This discussion has been archived. No new comments can be posted.

VM Enables 'Write-Once, Run Anywhere' Linux Apps

Comments Filter:
  • Lofty Goals Indeed (Score:5, Insightful)

    by WrongSizeGlass ( 838941 ) on Sunday May 27, 2007 @07:22AM (#19290879)
    FTA

    "We're trying to change the economics of the software industry. Our hope is that in the next two years, all these companies that are starting with Microsoft APIs will start with Linux instead."
    That is a key mindset to getting Linux out of its niche and into the mainstream. Thinking Linux first can't be a bad thing at all.

    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).
    • Re: (Score:3, Insightful)

      by Blakey Rat ( 99501 )
      I read this and the first thing I think is:

      "Yay! Yet more Macintosh applications that won't be able to use the Services menu, drag&drop, AppleScript or the built-in spell-checker!"

      Cross-platform applications suck because they are only lowest common denominator. I'd rather see more application developers build their applications in something like RealBasic, which allows *true* cross-platform performance and is native on all three major platforms. Any solution around a VM is going to suck, just like Java
    • So, let me start with my bias: I work for a tiny company that makes a programming language with interpreted environment (we're working on the compiler now) that runs on Windows, MacOS X, Linux, and Solaris, and I think AIX. (Those are the ones we've actually tried it on, it may run on others.) Our language and development environment facilitates rapid development of web applications. (And anything else you like, but web applications is applicable to this discussion.) Using our language you can write fully A
  • Re: (Score:2, Insightful)

    Comment removed based on user account deletion
    • Re: (Score:2, Insightful)

      by MrCoke ( 445461 )
      What Linux-only games do you want to run on other platforms ??
    • This is to port linux apps to other platforms. It sure applies to 3D linux apps as well. Of course, it won't be useful to port Windows 3D FPS games to Linux, but that is not a topic here.
    • by nxtw ( 866177 )
      Linux 3D applications generally use OpenGL. Windows / graphics drivers for Windows support OpenGPL. Therefore, this should be trivial (provided a decent X server / DRI "implementation" is provided)
      • The issue is running an OpenGL game in a virtual machine. Unless that machine is quite intelligent about it, the graphics are going to go very slowly.

        If the VM *is* clever, then you may start seeing Linux-native games using DirectX.

        You could improve performance somewhat (a factor of three instead of a factor of ten, maybe) by making a client/server model in which VM applications act as OpenGL clients connecting to a native OpenGL server. You might be able to use memory mapping to improve the speed a bit mor
    • by tuxic ( 769908 ) * on Sunday May 27, 2007 @08:24AM (#19291187) Homepage
      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.
      • by bytesex ( 112972 ) on Sunday May 27, 2007 @09:24AM (#19291491) Homepage
        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.
      • Re: (Score:3, Insightful)

        by Darundal ( 891860 )
        They aren't crucial in every situation, however in this one they are. Gamers are much more likely to be the relatively geeky types who have relatively geeky jobs doing relatively geeky things and making relatively geeky decisions for large masses of people. Many of those relatively geeky people with relatively geeky jobs making relatively geeky decisions for large masses of people use Windows because their games work in it, so they spend their time using/learning/tweaking/promoting Windows. However, if said
  • Humor (Score:5, Funny)

    by Anonymous Coward on Sunday May 27, 2007 @07:26AM (#19290895)
    From the LINA FAQ:

    Q: What does LINA stand for?
    A: LINA is not an acronym.

  • by ozric99 ( 162412 ) on Sunday May 27, 2007 @07:30AM (#19290913) Journal
    Q: What programming languages is LINA written in?
    A: For performance reasons, we've written LINA in C and C++.

    Why not just write the VM in Java, then it'll be truly portable, right? Right..?

    • by Aladrin ( 926209 )
      That's kind of the question, isn't it? Why are they creating yet another VM when so many already exist and could just be extended and improved?

      I hate Java. But it -is- cross-platform.

      Also, I get that their goal is to have 'normal' programs run cross platform, without having to be written in Java, .NET, etc. But the programs still have to be recompiled for the VM, which will probably necessitate -some- changes. And most of the programs that people will want to run cross-platform, you can't get the source
      • Re: (Score:2, Interesting)

        Also, I get that their goal is to have 'normal' programs run cross platform

        "Cross platform" as long you're running an x86 processor.
    • by Cyberax ( 705495 )
      Actually, it has been done: see Jikes RVM (http://en.wikipedia.org/wiki/Jikes_RVM)
  • >"It's been said on numerous occasions that the big things that are holding Linux back are Adobe [for
    >graphics software] and Intuit [for its personal finance software] because they write to Windows, and
    >people can't give up those two pieces of software. As soon as companies like that, or companies that
    >want to compete with them, start writing to LINA, things are going to change fast."

    And how is the likelihood of big software houses starting to write to LINA bigger than big software houses starin
    • Re: (Score:3, Insightful)

      And how is the likelihood of big software houses starting to write to LINA bigger than big software houses staring writing to Mac or native Linux?

      (Almost) everyone making an application wants to be able to get to the Windows segment of the market, since that's where most of the users are. Writing to Mac or native Linux doesn't help with that, so in practice if its done at all, its often done in addition to writing to Windows, and must be justified by the additional cost.

      Writing to LINA, ideally, gets you Ma

  • by zmotula ( 663798 ) on Sunday May 27, 2007 @07:53AM (#19291005) Homepage

    run (...) under Windows, Mac, or Linux, with a look and feel native to each
    People should realize that this is impossible to do. This sounds like look&feel was something like a skin you can change at will, but it is not. Different systems have different requirements that cannot be changed programmatically, like keyboard shortcuts, icons, file placement, GUI metaphors and so on. If you want an application to feel native, simply design the GUI according to local customs, there is no other way.
    • Re: (Score:3, Insightful)

      by anilg ( 961244 )
      In fact, Java does a pretty good job of keeping the GUI looking same as much as possible on different platforms. Reading through the website, I dont see any feature that makes it anything more than a Java wanaabe.

      Any body seen anything apart from this effect?
    • by suv4x4 ( 956391 ) on Sunday May 27, 2007 @09:07AM (#19291427)
      People should realize that this is impossible to do. This sounds like look&feel was something like a skin you can change at will, but it is not. Different systems have different requirements that cannot be changed programmatically, like keyboard shortcuts, icons, file placement, GUI metaphors and so on. If you want an application to feel native, simply design the GUI according to local customs, there is no other way.

      That's one thing (and you're totally right). And second:

      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.

      Which left me thinking... "and unlike Java.. it does what?".

      We've got Java, which has matured over the years, we've got .NET / Mono. And we got Cygwin, which allows you to use the Linux API on Windows.

      Looks like that startup has agenda to brings more of the Linux API to Windows, and thus help Linux become more mainstream as a development platform. But agenda does not business or money make. They've entered a crowded market, offering little new except impossible promises for native look and feel.
    • Re: (Score:3, Insightful)

      by dhasenan ( 758719 )
      ---
      if (style == Style.Windows) {
      preferences_menu_item.name = "Options";
      add_menu_item(preferences_menu_item, tools_menu);
      } else {
      preferences_menu_item.name = "Preferences";
      add_menu_item(preferences_menu_item, edit_menu);
      }
      ---

      Then just use Tango icons and icon styles in your application (they look good, though they aren't colorful enough for KDE's typical style or cartoonish enough for OS X's typical style, but I doubt anyo
  • "You have to compile binaries specifically for Lina, but it's fairly trivial, no different than compiling binaries for SuSE or Red Hat."

    So it's like UML on Windows using Qt/Windows and Gtk directly? And it runs as a layer on top of Win32??

    I'm not sure that this effort is really worth it if you've to recompile. With Qt4/KDE4 more or less all of KDE will operate on Windows. Most major open source applications are already functioning in Windows.

    No matter what this thing does, it's still an extra layer betwe

    • by Ant P. ( 974313 )
      Why don't they make it a subsystem in itself? Right now all this is is CoLinux + X11 integration.
      • by nxtw ( 866177 )
        Is that really what it is? That would give it binary compatibility with Linux.

        There is already a GPLed WINNT POSIX NT kernel subsystem (not updated for a long time), which could be updated to support smp/x64 and integrated with parts of perhaps Linux proper, Solaris lx brand, or FreeBSD Linux compatibility...and if Windows could boot ELF binaries via that layer, with a redirection for system directories yet without having to do funky sharing/mapping for user directories.

        But I'd just run Linux or coLinux ins
  • by Anonymous Coward
    ->...you have to compile specifically for it, so it doesn't run legacy linux applications.
    http://www.linuxdevices.com/news/NS6279947776.html [linuxdevices.com]
    "In Lina's case, the VM is essentially a Linux environment that supports standard C/C++ applications, or even perl and python, if their respective interpreters are installed. CTO Nile Geisinger explained, "You have to compile binaries specifically for Lina, but it's fairly trivial, no different than compiling binaries for SuSE or Red Hat."
    -> how is this better th
  • by prestwich ( 123353 ) on Sunday May 27, 2007 @08:11AM (#19291115) Homepage
    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?

    • Re: (Score:3, Informative)

      by dhasenan ( 758719 )
      This is an issue if you want to distribute LINA with your application, or at least a possible issue. Note the Classpath exception to the GPL which considers dynamic linking to produce a derivative work.

      If this turns out to be a serious issue, we can write a wrapper around standard Qt with a compatible ABI/API so you can just use autotools, develop for multiple Linux distros, and then just test against LINA. Compile it on any Linux you want and deploy on LINA.
    • by 3seas ( 184403 ) on Sunday May 27, 2007 @09:39AM (#19291577) Homepage Journal
      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.
         
    • Re: (Score:3, Informative)

      by jedo ( 470842 )

      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?

      Yes. The commercial version isn't under the GPL.
      This [trolltech.com] is how Trolltech does it.
  • Qt? (Score:3, Informative)

    by IceFox ( 18179 ) on Sunday May 27, 2007 @08:12AM (#19291123) Homepage
    So it looks like right now it mostly supports Qt with some gtk stuff coming along. Anyone else find that odd? Today you can compile your Qt apps on Linux, Mac and Windows and get native look and feel. Why would I want to wrap that with a vmmachine? Just yesterday I ran across an app written in Qt for HDR imaging [sourceforge.net] that is written with Qt and is for the mac, linux and windows.
    • by kollivier ( 449524 ) on Sunday May 27, 2007 @10:39AM (#19291893)
      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. :-)
  • by Anonymous Coward on Sunday May 27, 2007 @08:14AM (#19291127)
    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.
    • by master_p ( 608214 ) on Monday May 28, 2007 @05:19AM (#19298407)
      VMs should not exist. Source-code level compatibility is more than enough to make cross-platform applications. The only benefit of a VM is run-time optimizations, as the code is translated.

      VMs exist because no one dared to a make a C++ like language that guarantees source-code level compatibility in all platforms and has garbage collection.

      And the premise "write once, run everywhere" is totally flawed. If you have N architectures, you need N virtual machines. If you go the direct route (i.e. no VM), then you need N compiler back-ends. Since the virtual machine is actually a compiler back-end (only executed lazily), I see no benefit from using VMs.
  • Dependencies? (Score:3, Interesting)

    by ndogg ( 158021 ) <the@rhorn.gmail@com> on Sunday May 27, 2007 @08:22AM (#19291179) Homepage Journal
    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.
    • by ndogg ( 158021 )
      I really hope this pans out, but my skepticism bells are ringing like crazy.

      I guess we'll see what's there when it comes out.
  • Comment removed (Score:4, Insightful)

    by account_deleted ( 4530225 ) on Sunday May 27, 2007 @08:56AM (#19291361)
    Comment removed based on user account deletion
  • 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."
  • by Noiser ( 18478 ) on Sunday May 27, 2007 @10:02AM (#19291705) Homepage
    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?
  • by anwyn ( 266338 ) on Sunday May 27, 2007 @10:18AM (#19291775)
    If MS had half a brain they would buy this company immediately! This could work like wine in reverse! MS could say to the suits, "you don't have to migrate away from our wind-turd OS, you can buy this emulator!" The suits are too stupid to realize that they would be missing the most important advantage of Free Software, namely freedom, but the suits would like not having to convert their powerpoint presentations to open office!" This is horrible news!
  • by Antique Geekmeister ( 740220 ) on Sunday May 27, 2007 @10:25AM (#19291827)
    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.
  • by sudog ( 101964 ) on Sunday May 27, 2007 @11:11AM (#19292081) Homepage
    If Java's GPL then why do we need another Java?
  • by sudog ( 101964 ) on Sunday May 27, 2007 @12:12PM (#19292511) Homepage
    From http://www.openlina.com/faq.html [openlina.com]:

    Q: What license is LINA released under?

    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.

    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.
  • by Zarf ( 5735 ) on Sunday May 27, 2007 @03:00PM (#19293713) Journal
    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.

UNIX was not designed to stop you from doing stupid things, because that would also stop you from doing clever things. -- Doug Gwyn

Working...