plex86 ported to NetBSD/i386
hubertf writes "plex86 is now works on a second Open Source operating system. So far plex86 only
supported Linux as host platform, and thanks to Frank van der Linden of Wasabi Systems, it
now also works on the i386 port of the NetBSD multi-platform operating system.
Tested operating systems include FreeDOS beta 4, MS-DOS 6.22, Red Hat 6 Linux and NetBSD 1.5.
See the NetBSD site for more information.
How hard would it be to port this to Darwin (and subsequently Mac OS X) on either Mac or Intel hardware? From what I have seen, programs that operate on a BSD variant have been quickly ported over, can the same be done here? Art
Arthropoid, the Right Clam for the Job
Any decently written application for a UNIX variant (including Linux here) should run with very little effort on any UNIX variant.
Alas there are more and more bad programs that use Linux peculiarities, making the port unnecessary hard (and thus sinning against the common UNIX philosophy).
The longer a program is isolated on one UNIX variant, the bigger chances are that it will be hard to port afterwards, that it will rely upon non-standard API's i.e. bad design. Thus it is good for the program to be ported ASAP.
Okay, i'm just thinking of a kernel level emulator... Just emulate the processor. For the sake of thing like closed source drivers. And for binary apps, like WordPerfect, Oracle, ColdFusion, WebTrends, etc...
I think it's impossible to ask that every vendor release the source to all their applications or even provide precompiled binaries for every possible platform their program could run under. Including an x86 emulator in the kernel could open up a world of programs to users.
Developers intent on continuing to use C, C++ to deliver their applications could do so and still reach a sizable audience, whereas vendors could also use Java as a more "forward looking" solution, except aside from the backend, enterprise machines, Java's largely missed it's original mark of being a common API across all platforms.
Plex86 sorta absorbed the Bochs Development team. IIRC, there is some bocbs code in plex86. Bochs is a x86 emulator that seems to work on PPC Mac's (which a lot of coaxing/hacking/etc.) How difficult would it be to put a bochs emulationl ayer under the whole thing?
Why aren't you encrypting your e-mail?
Closed source drivers are not an issue, because most hardware is architechture-specific. Meaning that a driver for my PC's TV-tuner card would not be much use in my Apple G4, because my TV-tuner card won't work in my G4. Or my soundcard, or my videocard, or my modem. So there's no point in emulating the driver on a different system, because the hardware can't be used anyway.
So now we're written an entire processor emulator (x86 only) so that the very small minority of people that are using Linux on alternative hardware will be able to run WordPerfect? The majority of closed-source Linux applications that most people would want to run, are games. And games are very performance sensitive, so they don't take well to being emulated; a task that's guaranteed to kill your speed.
It's just not really a very useful feature to have.
If I remember correctly beos does some funky stuff with ring3 code so itl'l be a while before a complete port of plex86 to beos is done.
I've never posted to Usenet so I guess my vote doesn't count. I suppose that's ok because I'd vote multiple times anyway. If you want to talk about OS you use then I vote for OpenBSD, FreeBSD, NetBSD, 4 or 5 Linux's, Beos, QNX, Atheos, etc.
Yes but no.
Errm. I am referring to "Thus it is good for the program to be ported ASAP."
plex86 is a very complex piece of code, mostly because of the presence of a linux kernel module that plays tricks to do the virtualisation.
In presence of such code, early port can put an unecessary burden on the project, because it 'freezes' the avalaible options (unless they want to break the NetBSD port, which can cost developers). OTOH, it can have a very benefit effect by showing at early stages of development what are linux kludges, and what are not.
Btw, I am extremely impressed here. I wouldn't have bet anything on a BSD port. (Now, if someone could port it to FreeBSD...)
Cheers,
--fred
1 reply beneath your current threshold.
What'd be really nice, IMO, is if Bochs were somehow implemented as a kernel module for non x86 CPU's... wonder if that's at all doable?
So does this make a FreeBSD port any easier? Or have the BSDs moved so far apart that porting it to one BSD doesn't really help the others any?
Darwin is the core of Apple's Mac OS X but it's Open Source, BSD-compatible & runs on x86 as well as PowerPC. Indeed Apple has made special effort to release Darwin for x86, it's not just by happenstance.
Thus the original very cogent point that Plex86 could be ported to Darwin running on x86. No where was mentioned MacOS X or PowerPC (though they've been brought up many times in other places recently.)
I agree that this would indeed be very interesting, if only for the surrealism.
Who could have predicted 5 years ago that Jobs would return to Apple, have a coup & take over the company, then have Apple buy Next, Open Source the core of their OS, build in BSD-compatibility, make it backwards-compatible with the notoriously idiosyncratic MacOS then release it. To then put an emultor on top of this whole series of suprises would be frosting*.
Please folks, before you invest the effort into posting please read what the original poster says & not what you guessed from a quick scan.
* Yes there's VirtualPC etc. but they're MacOS-only and just not as neat as Plex86 though they're arguably more stable & more polished, as well as technically much more sophisticated.
I don't read ACs: If a post isn't worth so much as a nom de plume to its author then I wont bother either.
The hardest part of porting something as complex as Plex86 to a different OS is figuring out where to start. Just comparing the kernel modules for Linux and NetBSD will teach you a wealth of knowledge, and for the small but important details in the non-kernel bits, grepping for __NetBSD__ tells you where to start your port. After that, it is a small issue of coding and debugging.
It's not just about more eyeballs or exposing bugs in the primary development platform, it's also about lowering the barrier for other ports, which can accelerate the eyeballs effect.
Bert Driehuis -- All I asked was a friggin' rotatin' chair. Throw me a bone here, people.
I would love to see plex86, bochs, or even VMware support Apple's Intel version of Darwin (aka OS X). I haven't been able to get it running on any CPU emulators or physical machines. It seems to me that these emulators would find quite a niche in the OS development market.
Can anybody explain, exactly, why some OS/emulator combinations don't work? I assume it has to do with unsupported hardware (i.e. Darwin only work with Intel PIIX IDE controllers, and maybe all the emulators emulate a VIA controller)
---- I made the Kessel Run in under 11 parsecs.
Normally porting any code to a different platform helps getting rid of platform specific bugs. This time it's "just" a different OS but it still helps Plex86 and NetBSD.
And I want to test running NetBSD-1.5 inside Plex86 running on NetBSD-1.5:)
This is muchos cool!
The classic "hello world" program in C can be ported to any OS. (Mac, Windows, etc.)
I generally agree with your remark about unix software being easily ported to other unix-alikes. At least for user-space things. For the most part.
Kernel space things may be much more difficult to port. You may be dealing with totally different API's. Or even different concepts, for an extreme example, such as kernel loadable modules, vs. VXD's, vs. Mac OS "Extensions", etc. (Using the term "kernel space" very loosly here.)
A bad program may, as you say, be unnecessarily be difficult to port. But a program difficult to port is not necessarily bad.
The question that has not been asked here is: how much of Plex86 is user-space? Doesn't it involve some Kernel trickery in order to achieve the virtualization? I got that impression from Kevin Lawton's paper here: http://www.plex86.org/research/paper.txt
I'll see your senator, and I'll raise you two judges.
Porting this to NetBSD really isn't the same as porting to Windows or BeOS. BSDs and Linux share a very similar programming interface, most software can be ported between Linux and the BSDS without too much extra work, and in the long run probably keeps code that may be very linux dependent from being introduced. The biggest effort in porting Plex86 was probably the kernel module, the rest probably just needs to be adjusted to not make use of a few linux specifics.
In the long run, a small outlay of effort porting to NetBSD gains more developers who could work on Plex86. A port to FreeBSD would also be a very good thing.
treke
The NetBSD kernel modules are LGPLed - does this mean plex86 support will never be a standard part of the NetBSD kernel?
I don't want a lot, I just want it all!
Flame away, I have a hose!
Only 'flamers' flame!
The person who did the NetBSD work, isn't part of the team responsible for plex86, so the work goes on in parallel, and doesn't impact the development of the main product.
Unlike a commercial software shop, doing the NetBSD port doesn't take away any resources from the main development path.
And as it has been pointed out many times, the more eyes working on a project, and sharing the results makes for faster and better development.
very often bugs in the allegedly "portable" parts of system are uncovered during the porting effort. it also increases the "critical mass" of users for a particular system..
Is anyone working on the BeOS port of Plex86?
I've noticed a new trend in free software, it appears that there's a concentration on porting all new software to every possible platform before said software is anywhere near completetion. Don't get my wrong, plex86 is _very_ cool. But shouldn't they work on irony out all of the bugs on one OS before porting it to others?
Couldn't have said it better.
I downloaded this weeks ago, I still got some problems getting it working. But I'm still hoping. I think this is a great alternative for VMWare anyway. Guess it's very good that slashdot now gives some attention to plex.
Bizar technology?
I mean, come on, this is like the third or fourth story in as many days! Or at least it seems like. Can we have a plex86 section to put these in?
Your right to not believe: Americans United for Separation of Church and
Re-read the information on the Plex86 site.
What you wish for is not relevant as Plex86 is a virtualization, not emulation of the x86 platform. It is not intended to run on any other architecture, as that would be emulation, not virtualization.
i - This sig provided by
But is it ported to NetBSD/Dreamcast?
http://www.htc.net/~nbehnken/freemware.html would lead me to beleive that BeOS works as a host platform as well, or is at least underway. I think that'd be a good thing, as Be's a pretty darned nice workstation OS with stuff that Just Works (not that it'll be replacing my linux server boxes anytime soon)...
The reason it is important to "port" projects over when there still in development, and far from complete is two fold.
One -- Once the full version is complete it will be very difficult to start porting it, having to deal with inconsitancies in unixes and other OS's. Not to mention optimizing it for a platform, may have to be done at a lower level, which would be easy if it were built into the tree early, and hard if it were done later (so it might never happen)
Two -- By forcing yourself to develop cross platform, you run into the limitations of your design and logic sooner, forcing you to fix it. Cheap workarounds get tossed out in favor of better solutions, because cheap workarounds and sloppy hacks are system dependant, and your working cross several platforms. Just look at what a POS Netscape 4.x is (ok so there is nothing better for unix at the moment) under unix, and under macintosh. It was designed for win32 first, and not designed cross platform. The win32 version is great, and I almost never have problems with it, although I cannot say the same for the linux/freebsd/mac versions. Now compare those to QuakeIII. I've never had it crash in windows, or in Linux, or on a macintosh. (I've had numerous QuakeII crashes under linux though) And its fast under all three systems.
Now nobody reading this here is John Carmack (exept of course for John, if he reads this far down in the posts) so yea, none of us are going to pull it off quite as well, but we can at least try. Come to think of it, its probably the least painfull way we could all improve our own projects.
You are only young once, but you can stay immature indefinitely.