Linux for Win32 Development? 16
A nameless member from Clan Anonymous Coward asks: "I've been considering installing Linux as the primary system on my laptop, but I question how suitable it is for Win32 development. I use Delphi as my primary development environment, and have considered running WinNT under VMWare (or possibly Delphi under Wine). What experiences have you had with developing Win32 apps under Linux, using Win32-based tools?" This is a neat thought. Has anyone had any success with this?
Oops.. mis-read the question (Score:1)
Never mind..
That's what I get for posting on Slashdot before I'm fully awake!
Good use for one of those dual celeron boards (Score:1)
If you run it in VMWARE, NT only uses 1 proc, but then the other one is still there to run all your linux apps
VMWARE and dual processors make a good couple...
For pure ANSI C apps, use dos-gcc. (Score:1)
Another difference between mingw32 and cygwin (Score:1)
cross compiler for mingw32 (Score:1)
Re:Why not dual boot? (Score:1)
Finally, go grab some filesystem drivers that can read Ext2 ...
Explore2Fs [swin.edu.au]
...but still possibly relevant (Score:1)
Cheers!
JimD
man (Score:1)
mingw32 is pretty good, I think (Score:2)
along with
http://www.gimp.org/~tml/gimp/win32/
Should give you all you need. Using the mingw32 target of gcc, you can use DirectX, Gtk+, SDL (Simple DirectMedia Layer), and plenty of other libraries that have been ported, all from the safety and convenience of your own UNIX development environment.
By the way, the difference between "mingw32" and "Cygwin" is that Cygwin provides a POSIX compatibility layer, while mingw32 uses the bare Microsoft C Runtime DLLs. (Of course, if you choose to use GTK+ or something, you'll still have to distribute those DLLS.)
Flamebait (Score:2)
(Placing tongue firmly in cheek)
Just use Java! :)
web-based development for multiple platforms (Score:2)
Each programmer gets a pc running linux and VMWARE. The pc is a AMD K7 700mhz with 512mb of pc100 dimms. 7200rpm 20gb hd and 32mb matrox g400 graphics card. This allows the programmer to run as many versions of windows, beos, or *nix as deemed necessarry and still develop in the preferred linux environment.
as for the macintosh one G4 400mhz with 256mb of ram will be used for shared testing.
while all of the other programmers will be doing web-based, i will be using these systems to develop voice over IP. This type of setup should be extremely useful, especially for testing the networking protocols between virtual machines.
hope all that helps.
Cygwin... (Score:2)
http://www.cygnus.com/cygwin/
Though it only Lists NT4 Sp3 as supported, it runs on 95/98/2k, and the mailing list is great for help. Usually lots of quick, accurate responses. It's come a long way since I first tried it...
A Good Thing(TM)
VMware: OK with lotsa RAM, disk, and fast CPU (Score:2)
In order to preserve my sanity, I continue to use Linux, but run NT on VMware to support Office, etc. It's all running on a Sony Z505-Rx, with VMware and NT as a "guest". It works very well for me, the NT guest is fast enough in pure computation, slower in system access, but still acceptable. I run RedHat 6.1, XFree86 3.3.5, and VMware displays nicely either in an X window or full-screen.
If you use VMware on a portable system (like a laptop), be *certain* to shut down NT and VMware when changing network configurations since they like to lock the system up if they get confused.
Other than that proviso, I find the implementation very effective. I've configured my NT guest to use DHCP, and it participates fully and correctly in all Windows-based networking in our office as well as in my home network. This includes the Linux host running Samba 2.0.6, where I keep all "workspace" files, with NT accessing the Linux system as if it were a server on the Windows network. This makes the source tree available to both Linux and NT.
Count on NT taking at least 1.5 gig of disk and 64 MB RAM to run reasonably. The Z505-Rx comes with 128 MB RAM, so VMware/NT scarf half my RAM (it's configurable, but have you ever tried running NT with less than 64MB? Dont't try it at home, kids! It's not pretty!). I am seriously considering upgrading to 192 MB for this reason. The Z505Rx runs a Pentium-II at 400 MHz which is feel is a minimum CPU speed for reasonable responsiveness.
Why not dual boot? (Score:3)
For a while I used VMware on my trusty U2W-SCSI PII box and found the whole experience a little bit too sluggish for daily use (I tried just about every flavor of Windows I could, including 2000). The processor benchmarked at around 333mHz inside the VM, but memory allocation and disk I/O on the virtual disk dragged down performance (yes, even on 10,000 RPM Ultra2 SCSI).
Here's my proposal, assuming you have sufficient disk space:
43rd Law of Computing: Anything that can go wr
Dual "Cross" configuration (Score:4)
I have a fairly simple machine, PII 333 with two 4gig harddrives. I have it dual booted with Linux (Redhat 6.0) and NT 4.0 with LILO being the bootloader.
Here's the interesting part: when I boot under NT I can use VMWare [vmware.com] to get at the raw Linux partition, and when I boot under Linux I can use VMWare to get to the raw NT partition. Each OS has a specific configuration depending on whether it's a guest or host (using Hardware Profiles under NT and VMWare's dualconf under Linux).
Then it starts getting complex with host-only networking under VMWare for each environment. I actually have 5 different IPs for my one machine:
So while I have NT as a host, I can use samba to send files to Linux and then test them out. As far as development goes on NT, I have Visual Studio 6.0, Borland's free compiler, and Cygnus's cygwin [cygnus.com] (with mingw32 [wisc.edu] built under cygwin). I also have cross tools under cygwin that target Linux and MSDOS (djgpp).
When I use Linux as a host (99.5% of the time), again I can use samba to send executables to the NT guest and try them out *immediately* after compilation. This is a plus for libraries such as SDL, etc. I use pgcc-2.95.2 [goof.com] targetted to mingw32, cygwin (for the hell of it), ms-dos, and Sony PlayStation.
The main reason I use this setup is for hardware/processor feasibility, I have a TNT2 Ultra that isn't supported in any way under VMWare, therefore booting NT means I get 3DSMax, etc. that takes full advantatge of my hardware. Also, I have an ISA card that talks to my PlayStation, and the majority of dev-tools (with the major exception of psxdev [psxdev.de]) for the PSX are Win32 only (VMWare can't handle non-standard hardware).
How I set this up:
Install NT on the second harddrive
Configure all drivers, etc. for NT (might want to wait for this step to make creating Hardware Profiles easier)
Install Linux on the first harddrive w/ LILO
Setup VMWare on Linux to talk to NT as a guest (using raw disk partitions)
Boot *NATIVELY* into NT and copy your existing profile into a new Hardware Profile (System Control Panel)
Disable any devices in your new profile (call it "Virtual Machine") that VMWare doesn't support (Devices Control Panel)
At this point if you want you can setup VMWare for NT to access Linux as a raw partition
Boot into Linux and test your NT under VMWare, if some drivers fail, disable them under the Devices Control Panel
If you installed VMWare for NT, tweak your Linux dualconf configuration (I had to manually add a condition for switching the links to the X server)
Setup Host-only networking, samba, etc.
I know I didn't go into any detail, I don't have the time to write everything out and I'm not at my machine so I might have missed something. I'll post a couple articles at my site [uwm.edu], etc. when I have some time (this weekend?).
Marcus