Black and White.

Monday, May 28, 2007

VM enables "write-once, run anywhere" Linux apps

A startup in Alameda, Calif. plans to release a kind of holy software grail the third or fourth week of June. Lina said its dual-licensed Lina virtual Linux machine will run more or less normal Linux applications under Windows, Mac, or Linux, with a look and feel native to each.

The concept recalls Java, which has long promised "write once, run anywhere" compatibility. 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.

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."

In the big picture, the goal is really to bring the huge world of open source software to the masses, said Geisinger, explaining, "We work in an office park with dozens of companies, and we're the only Linux users. Everyday, we are motivated to bring all the fantastic open source applications to the rest of the world."

Open source developers will be able to use Lina for free, while commercial developers will pay an as-yet undecided licensing fee, the idea goes.

How will it work?

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.


Lina architecture
(Click to enlarge)


The whole Lina VM download currently weighs in at 15MB, and expands to about 40MB after installation. "We're hoping to bring it down some from there," Geisinger admitted.

As an OS resource-mapping technology, Lina somewhat resembles Trolltech's Qt development framework. However, instead of relying on a massive runtime, Qt links in OS-specific characteristics at compile time, allowing developers to compile a single codebase into separate binaries for various OS targets.

All-important open source angle

Geisinger hinted that Lina's library set is fairly extensive, after four years of development by a team that has ranged from two to five developers. "There's a lot of code there," he said.

However, a few biggies are missing. GTK+ support is in the works, but not finished yet. There's no support initially for USB peripherals and possibly for other hardware interfaces. And, there's no slick installer to put non-Linux users at ease.

Obviously, Lina represents an ambitious undertaking. Still a tiny company with private funding, Lina hopes to get some help from the community after Lina goes open source next month.

Geisinger commented, "Our initial focus is on getting command-line and Web applications really solid. Although, GUI applications are also working today, and they are definitely the highest priority."

"One of the reasons Java ran into problems [delivering the "write once, run anywhere" promise] was because of cracks in the API," he adds, noting that they also didn't use an open source license. "The great thing about the open source community is that they care about the cracks, and will fix them, or at least complain. We're looking forward to those complaints."

Lofty goals

Ultimately, Lina has some pretty lofty goals. Geisinger said, "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."

Software engineer Saill White added, "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."

It may not be changing the world yet, but Lina is already a lot of fun, Geisinger concludes. He enthused, "When you build a Linux binary and take it to a Mac, and it's behaving like a Mac app, it's a pretty magical moment."

No comments: