Sun to run unmodified Linux Binaries
Quite a number of people wrote in to address the latest announcement and news from Sun Microsystems. Using a program they are calling lxrun, Solaris will be able to run "unmodified Linux binaries".
← Back to Stories (view on slashdot.org)
1. You have a commodity box intel multiprocessor system.
2. You need high performance SMP
3. Better Java x86 support than Linux
4. Oracle more mature on Solaris x86
5. Need log-structured file system
6. Are a fortran or numerical analysis type.
Now, you could say "why not just buy an UltraSparc", but then again, you can buy a multicpu system for as little as $3k.
Linux isn't the answer because:
1) Linux SMP performance still sucks, and it's thread model sucks.
2) Java support still in its infancy
3) Oracle8 is barely out of its diapers on Linux
4) Linux has a shitty default file system (ext2fs) that takes FOREVER to fsck, especially if you have a 72gb RAID, and, its performance sucks.
5) Linux doesn't have a parallelizing compiler that can even come close to Sun's. Go run a dejanews search on linux, solaris, and linpack. You'll see that the performance difference is as much as 1000% on some of the tougher Linpack benchmarks.
Basically: You want to use cheap hardware, but don't want to settle for Linux's bottom-rung compiler, SMP, I/O handling, and filesystem.
Now, if you run Solaris x86 on a single-processor machine than you are a *dummy*
(yes, performance sucks. Solaris is tuned for SMP, not single-cpu)
For all of you who were waiting for "The Application People" (ISV's) to port to Linux, Keep Waiting. MS Word on Linux? Why? Well, if we port to Linux, we get a Solaris, FreeBSD, etc... market automatically also.
Remembering all the "I wish product X was avaliable in Linux" stuff over the last year here on SlashDot, well, it may be comming, and it's things like this that will help, and may be needed before that happens.
I don't honestly know what I think yet, I haven't seen it run yet, and I haven't studied the licence (Mozilla style?) enough yet to comment on it or it's implications... But, I will say, it is likely to cause some more ISV intrest in porting to Linux. (Good, more apps. Bad, more commercial influance, less intrest in Gnome apps, KDE apps, etc... Impact? Unknown).
Those of you familar with the Win32-OS/2 Project (recently renamed to Project Odin), know that it's possible to load and run some Win32 exectuables under OS/2 (most notably Quake II). The next step for Project EverBlue is to create an ELF loader so that OS/2 can load Linux binaries. Then Wine will be ported to OS/2 (via a merge with Odin), and at that point, OS/2 will be able to run ...
1. DOS apps better than any other OS
2. 16-bit Windows apps, better than most other versions of Windows can
3. Most Win32 apps (just like Wine)
4. All OS/2 apps
5. Most, if not all, Linux apps
Combine that with the power of the WorkPlace Shell, and you'll have one kick-ass operating system.
--
Timur Tabi
Remove "nospam_" from email address
Yeah yeah BSD has had this for a while, but the exciting part is the big picture. The various UNIXen will likely stay "fragmented", but if other vendors rally around a common binary that's a big step.
Sure, you probably have to statically link all yer friggin libraries (I'm reacting to the headline NOT the announcement text), maybe not. I'm sure there will be drawbacks, but it's one less thing for the NT crowd to point at.
"I may not understand what I'm installing, but that's not my job. I just need to click Next, Next, Finish here so I can walk to the next system and repeat the process" - anonymous NT admin
Well, while this is all nice and everything, there's two things worth considering:
/can/ be run, it /will/ run. Case in point: fbset. Solaris doesn't have a frame buffer for it's console.. so this program will likely segfault.
- Most OSS software can be cross-compiled with little/no-effort. Infact, I believe all the GNU tools, and about 2/3rds of the stuff posted to freshmeat can be compiled on a Sun without modification.
- There's no guarantee that just because the binary
In short, it's a great idea, but it's usefulness is rather limited - if you have the source, you can be assured of system-level compatibility. All this offers is the chance to watch your program segfault on a *new* platform.
--
Don't get me wrong -- lxrun is a nice piece of software, and pretty simple in concept. Since Solaris and Linux both use the ELF executable format, each can _attempt_ to execute the binaries for the other. Unfortunately, other incompatibilities soon scuttle that.
:~(
Lxrun is basically a wrapper for executing Linux binaries. What lxrun does, first of all, is set up the search paths for loading the dynamic libraries that a Linux binary needs instead of trying to use the Solaris libraries.
However, even with the native libraries, Linux and Solaris have different sets of syscalls. The other part of lxrun's job is to intercept those syscalls and translate them to something that supposedly does the same thing in Solaris. There are still quite a few that are missing, but it seems enough of them work to get all those programs Sun has demonstrated running.
I find it interesting that they had Quake 2 running because when I tried it, the path names that it searched for its files were all wrong. The same with Quake 3 test (and now it bombs out completely because it searches for stuff in a directory with the CTRL-A character for a name!) It's possible that because I'm using Solaris 2.6 things are different then in Solaris 7, and that causes the errors.
Finally, there is at least one isssue with the OS itself (at least version 2.6) that causes problems. It seems Solaris can't access memory addresses that PCI cards get mapped to (stuff like 0xf7000000) for whatever reason. Therefore, you wouldn't be able to use VESA framebuffers or the Voodoo driver
Of course, you need all the Linux libraries required for the programs yoou want to run. And given the GPL, you need to make source available for them too. What I want to know is if Sun is going to distribute the libraries with the OS, or as a separate package.
lxrun on Solaris does seem like it's been developed for Solaris 7 anyway, though. So some of these problems may be figments of my old OS.
Glückwünsche, haben Sie Slashdot ermordet, indem Sie zum korporativen Druck beugten und Subskriptionen einlei