Related
I am studying Linux driver programming and in it, it is recommended that I work on self-compiled Linux kernels and not any distributions. I have tried compiling Linux 2.6.9 in ubuntu but the process returns errors in 'make menuconfig' stage.
I would prefer to work with Linux in a virtual environment so that I can fearlessly experiment with the kernel. So, is there any way I can compile and run Linux in a virtual machine (say VMware installed on Windows)? I can use live CDs for the purpose of compiling the kernel.
So in short, please suggest, how can I compile, install and run Linux kernel in a virtual machine in an error-free way?
I searched and read this. But after following these steps when I restarted my computer there was no separate Linux 3.2.17 OS. But my ubuntu 12.04 was now showing 3.2.17 kernel. Although this is the first time I could compile a whole kernel on ubuntu without any error, I want to load that kernel on other partition and use it as an independent OS. So, if anyone can tell, what to do in addition to the steps in the tutorial so that I can achieve this?
The simplest thing to do is probably to install some Linux distribution on a VM, such as VMWare or VirtualBox, and continue from there. You could try using a live-cd, but I'm guessing that the lack of persistent storage might get irritating. There are, of course, ways around that, but installing some distribution is probably simpler, and you don't really need that much disk space for it if all you want to do is compile a kernel.
If all you want to do is compile a kernel module, and if you already have some pre-installed Linux environment, you should also note that modern Linux installations allow you to compile modules without the need to re-compile the entire kernel. You will need the kernel source and headers, though. See, for example, this document.
And BTW, speaking of modern kernels, why did you choose to use 2.6.9? It's almost 8 years old by now. Newer kernels might actually be easier to develop for. Also, there's no guarantee that
modules developed with such an old kernel would still work with current ones.
I suggest you to read this page. This document shows you how to boot your personal kernel on qemu and how to use the debugger on it.
Kernelnewbies is the right place to start kernel hacking. This website contains a set of rich tutorials about kernel hacking and tweaking just for newbie Linux developers. Also, you can join the community and start contributing to some tiny Linux projects.
For a quick start, follow the instruction from the "kernel first patch" tutorial. Since you're cloning the "origin" remote repository in this tutorial, you'll work on the latest branches of Linux kernel. So, there's no need to worry about working on an old version of Linux. Meanwhile, if you're not comfortable working with git trees, you can always download the latest version of Linux from front page of "kernel.org".
I'd like to ask anybody who has built a virtualized VS2010 environment in VirtualBox or VMware, which one was able to work out of the box without too much tweaking? Or both need workarounds to get stuff working?
Both are fine as long as you install the respective tools and drivers provided for the guest OS
If you're using VMWare Workstation, you can leverage even more out of the environment by installing Visual Studio on the Host PC, and using the Guest VM for debugging, if your application crashes you can actually rewind back to before the crash and step through your code with the same heap and stack before it crashed!
Basically, I suggest going with VMWare Workstation. It's pretty cheap (assuming you get paid to program) and has many, many awesome features that you'll come to love. If you're a hobbyist/student programmer however, you'll likely find VirtualBox to be a little more functional than the free VMWare Player.
As far as performance goes, Intel and AMD both have shipped chips with hardware virtualization since 2005/2006 respectively. This is called VT-x or AMD-V, and often has to be enabled in the bios on older machines.
Basically this means that your BIOS handles Memory and I/O virtualization on this chip, while specialist drivers (e.g. VMWare Tools) are installed to improve graphics and mouse performance - effectively this means the resulting VM has near native performance with minimal overhead.
Hope that helps!
You can work with a VS2010/Windows virtualized environment with no problems.
I've worked with such combination and I had no problems. Both VMWare and VirtualBox are stable so far since years and Windows OS virtualization works properly.
Obviously, you can have performance loss, because a virtualized OS has more bottle necked access to resources than a host one, but current CPUs from Intel and AMD have advanced virtualization instruction extensions which accelerates virtualization operations.
So... Just go ahead!
I don't know your requirement but there is also a great alternative using Win 7.
You can create a vhd file and boot on the vhd file.
A few steps more, you can create a base vhd file with everything you need, mark it as readonly and create as many differential disk as you want.
The drawback of this method are these ones :
it's a bit tricky to create the base and diff disk, because you have to do it in the setup console of windows setup (but google can help you)
there is a small performance impact on the disk I/O (but lower than the visualization environment)
you can run only one system at a time. In fact, nothing disallow you to install a virtualization software
you can't have your "host" and it's potential tools (corporate email, etc.)
but at least, the performance will be greatly better than a virtualization software.
I already have experience with setting up virtual machines, running them and other minor tasks. Im a gamer, so I wont get rid of windows (for now at least...) but I do want to be a great programmer and to be involved with the Open-Source community.
Id like to know if its a good idea to do my programming in linux through a virtual machine, vs giving it a partitioned section of the HDD. Id like to know about performance pros and cons and functionality.
All responses are appreciated, thanks in advance.
The type of programming I intend to dive into :
Android Dev, Web Dev, Desktop Dev...More Android and Web right now though.
So im looking at C#,C,C++,Java,PHP,HTML,MySQL...Off the top of the dome.
I do web designing as well, so dreamweaver is added as an "essential". But im sure I can do dreamweaver files and upload them to the server after programming in Linux...Right?
And any info on IDE's in Linux for the above mentioned are appreciated, but i would prefer going the coding route and understanding the essence of whats happening "under the covers"
Thanks to all for reading, I appreciate it.
Hope this isnt confusing :S
There is an easier solution..
I still have to use Windows for Symbian programming so I use a Wubi and Ubuntu to provide my double bout into Linux..you deploy Wubi uses a large file and thus no need to worry or mess with creating a partition..
I have used it for 18 months with no data loss and no worries..
There is also another tool called andlinux:
http://www.andlinux.org/
It uses colinux to run Linux as a program inside windows..
A couple things:
If you're using an IDE, there's no point to coding on Linux. Linux is nice for programming because the command line tools are awesome. Netbeans and Eclipse both work fine on Windows. All you'd be missing is makefiles (which IDEs don't use anyway).
Using a virtual machine would be annoying (working with the window and stuff) and slow. Try AndLinux if you want to have Linux running in Windows. It sets up X and Pulseaudio for you, so all of your programs will appear to be native. It's basically a way to run Ubuntu as a Windows service (all Ubuntu packages for your architecture are installable).
If you just want the fun of Linux command line programs without access to all of Ubuntu, cygwin is smaller and might be faster.
If by "Dreamweaver files", you mean HTML/PHP/CSS, then yes, you can just upload them to the server. As far as I know, the only ASP or ASP.net compatible server is Microsoft's, but why use that anyway?
EDIT: SO didn't give me enough space in the comments to answer your question..
AndLinux and Cygwin are basically just better ways to do your "virtual machine" idea.
Cygwin adds a posix layer to Windows (basically everything you need to compile Unix/Linux/BSD programs). This means that you can generally take a Linux program and just compile it on Windows and have it work. They also have repositories, but in my experience, the cygwin installer is slow and hard to use.
AndLinux runs the Linux kernel as a Windows service, giving you a similar experience as running it in VirtualBox/other virtualization programs. However, it also sets up X (the graphics layer for Linux) and PulseAudio (a sound system that lets you run sound over a network), so that when you run Linux programs they act and sound like native programs. I also like AndLinux better because you have access to all of Ubuntu's programs, and apt-get is easier to use than cygwin's installer. Also, if you use AndLinux and later to decide to go 100% Linux, you're basically already using it that way.
What I'm getting at is: If you want to run Linux in a virtual machine, don't. Just install AndLinux. It will be faster and it's much easier to work with (since everything is just a normal window).
Here's an example of the difference:
Screenshot of AndLinux: The program in the bottom right corner is running in AndLinux. Notice how it just looks like a badly themed Windows program? Compare that to something like this, where you have another desktop in a Window.
And still.. there's no reason to virtualize Netbeans. It's a native Windows program and you can gain nothing and lose a lot of speed.
If you're interested in Android development and you want to use Linux, then I would recommend you do your development in Eclipse. Eclipse is available for Linux and if you get Ubuntu then Eclipse is amazingly easy to install. I used VirtualBox + Ubuntu + Eclipse for several projects I worked on. If you decide that Linux is not for you and your project was in Eclipse then you will have no problem switching back to Windows since Eclipse is available for both operating systems.
The ONLY problem I had was the screen size on the virtual machine... if you have a big screen and you use a virtual machine then you might get limited to a fraction of your actual screen resolution. It's very easy to install Linux on a second partition, so I would just recommend you go with a second partition if you want to fully utilize the size of your monitor.
My setup is sort of the opposite: I run Linux as my main OS, both at work an at home, and I have Windows in a virtual machine. On a modern computer with adequate memory the performance of development tools is not a problem. I work with Visual Studio in the virtual machine, and I have seen few performance issues. (But note that this is on a fast computer, and that you may need more memory than otherwise, since you are running two OS:es at the same time. On an old computer with less memory it can become unbearable.)
Dual-boot, where you have to restart the computer to switch OS, doesn't work well for me. It takes way too much time to switch, and really need to switch back and forth. Having Windows in a window works much better for me, and you can maximize that "Windows window", so it looks like you're just running Windows.
One thing you may want to look at is to have Linux running in a VM, then configuring Samba to allow the host to network-mount pieces of the Linux filesystem so that you can operate using Windows tools, and have Linux running the server processes (e.g., httpd). Alternatively, I'm sure that there are shell extensions for using FTP, NFS, or SSH/SFTP servers from within Explorer, but I've not looked at any for a long time.
If you should happen to need to use graphical Linux tools then you can use the X server found in cygwin for that.
The downside of this plan is that Samba can be a bit tricky to configure, but you get to use the Windows tools you're already familiar with.
I had no issues running Ubuntu via VMWare. You can easily switch to full screen mode anytime. Strongly recommended. One shortcoming is that Linux will not be exposed to the full potential of your hardware. Compbiz Fusion failed to work as a result.
Given that you're a gamer, I'm thinking your machine should be fast enough to run Linux in a VM. Best to try out the VM before messing with disk partitions.
I use physically separate machines to run Linux and Windows (and MacOS X). This means that I don't have to reboot to do something different, and each system gets the full power of the hardware.
Disadvantages: more desk space used, more time and money spent maintaining hardware (though if you do a rolling upgrade, this is mitigated - Linux runs most happily on not-quite-new machines). Doesn't work so well if you like carrying laptops around.
Be aware that VMs universally don't give you full graphics acceleration. This can be a non-issue (many programs must cope with Intel GMA anyway), or it can be a showstopper. Your choice.
I've bought a new notebook yet I'm not sure whether Linux fully supports it or not, so I decided to use a VM for the time being. The only virtualization software I've used so far is VirtualBox on linux, but I think it's a bit overkill for my needs.
All I need is to use it like a vps hosted on my machine. Command line access would be enough. It'd be nice if it's free/opensource and it's easy to configure.
Thanks.
VirtualBox + VBoxHeadless + Ubuntu Server edition works for me, I access it with winSCP/Putty and I don't have performance issue on notebook.
The Vagrant utility seems to be specifically designed to make it easy to do this. It requires you to have VirtualBox installed, but manages the configuration etc. You also could use the free VMWare Player and one of the ready-made VM images for it.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 years ago.
Improve this question
I am doing .net programming in addition to c and c++ development and want more flexibility on my home machine. I want to be able to have both Linux (probably Ubuntu) and Windows Vista on my home computer. Is there a way I can install both and on boot be prompted for which one to start? Is there a way to set Windows to default?
I have seen this before in CS labs in undergrad.
Also, I assume there would be no problem if I were to use Windows 32-bit along with Ubuntu 64-bit. Any advise?
The latest versions of Ubuntu include an installer called Wubi, which installs Ubuntu as a windows application (ie: it can be uninstalled from Add/Remove programs) and sets up the dual boot for you! It's great for those who want to give Linux a try without a system overhaul!
You can dual boot, but I would recommend using a Virtual Machine for what you want to do.
Look at VMWare and Virtual PC.
For more information on Virtual PC: http://en.wikipedia.org/wiki/Microsoft_Virtual_PC
For more information on VMWare: http://en.wikipedia.org/wiki/VMware_Workstation
You should note that dual booting Windows and Linux can be a little risky and is a bit permanent. Running in a Virtual Machine means that you can run the Linux install in a window and not worry about it affecting your development machine at all. The software will not know the difference, so your testing is not affected.
Consider that the Virtual Machine is like a sandbox, where you can try new and different things out, without fear of consequences.
Virtual machines do run with a bit of overhead, and therefore you should not expect to be playing games or anything through them. I would say it is very much like logging into a machine through Remote Desktop (good LAN connection) as far as performance goes.
EDIT: There is also VirtualBox that you could check out. Thanks for the helpers in my comments for that one.
I, too, recommend using a virtual machine for this purpose.
I've had problems with Virtual PC on some Linux distros (Fedora Core comes to mind), but no problems with VMWare or Virtual Box.
Think very hard before installing another operating system even as dual boot. It is rarely simple, even with installers like Ubuntu's that don't require you to mess around on a command line. There is a good risk you'll spend days trying to get your usual OS back to normal especially if you're using Vista.
VMWare and Virtual PC are both good options. Do a test install on one of these and use the OS for a while before making the decision to install.
One other great thing about using a virtual machine is that you only have to worry about getting your network settings sorted on your main OS, because VMWare (etc) will borrow those.
Also, try using the operating system on Live CD or DVD to start with if at all possible. You may also find that you can run an OS from a USB stick. This is obviously good for portability - but note that you can also carry your virtual machines on a removable USB drive.
All you have to do is go to http://www.ubuntu.com/getubuntu/download and follow the directions. I downloaded Ubuntu, burned it to CD, and rebooted with the CD in the drive. I did not have to get a second hard drive or worry about it messing with my Vista Home Premium installation.
With Ubuntu (as with most distros with a Live CD install) all you need to do is pop in a disc, boot, and click through the menus. The dual boot is set up perfectly by default, you don't even have to think about it. I've done this with Ubuntu, Debian, PC Linux OS, Freespire, and Xandros on my Vista Home Premium machine and they all worked that way.
If you are paranoid, then you should back up your PC. As cheap as hard drives (USB or internal) are these days, there really is no excuse to not have a full back up of your system. It's too easy. I use Acronis True Image, but I've heard good things about Norton Ghost as well.
Regadless, you don't need Wubi or VMWare, or any virtual anything, a straight install with a dual boot set up is the default on a typical Live CD Linux install and it works even with Vista.
I've done it different ways over the years, and I'd say using a virtual machine is the one that I like best. I've tried both VMWare and VirtualBox, both free, and I like VirtualBox a little better because you can use it with the .iso straight. You don't need somebody to have created a virtual machine image for you.
Another option is to actually run Linux as an application on Windows so you get Linux running at almost full speed but also the ability to run Windows applications along side it. Check it out at http://www.colinux.org/.
I haven't had a chance to play with it yet, but an option that looks promising for me is a tool in Ubuntu to create a bootable USB drive with Ubuntu on it. It has the benefit of a live cd (no effect on your system), better performance than a live CD and the ability to persist your data from session to session. I've used Wubi before, but I can't remember why I uninstalled it.
Have a look at "cygwin".
This istalls a "linux like" windowing application within your windows
environment. It has good support for gcc and most of the standard
gnu/linux development tools.
You dont have to mess with dual boot. Its especially good for testing
windows to/from unix communictions as you can get everything up and
running in one box.
What you're looking for is called 'Dual booting'. it allows one to choose which operating system to boot at the start. It's well supported in Linux, especially Ubuntu. Just install Ubuntu and it will set up dual booting by default.
You could go either way, a dual-boot or use a VM. I think it depends on whether you'll want to use any Windows apps while developing in the Linux environment. If so, I'd go with a VM, otherwise, here's a tutorial for setting up a dual-boot computer. It has a part on installing both OSes, and a part on if you already have Windows installed.
Wubi is a great (Ubuntu specific) solution.. The only problem I've found was installing Wubi on a FAT formatted Windows partition - I had serious problems then. Also, it might run slightly slower, as there is another layer when doing disk acccess, but I can't say I've noticed.
I dual boot Vista Ultimate 32-bit and Ubuntu 8.10 beta 64-bit with no problems. The key thing, in my opinion, is to have a completely separate hard drive to install Ubuntu on. That removes a lot of the risk since you don't have to fuss around partitioning your primary HDD and makes removing Ubuntu very straightforward as well if you decide you don't want it.
Just be careful and pay attention on which drive you select when you do the install. It's easy for me to tell them apart since my Linux drive is a different size than my main Vista and data storage drives.
If you'd rather go the VM route, VMware Player works well, and I've heard good things about VirtualBox.
try a live cd install of ubuntu :D
creating a bootable flash disk is easy - unetbootin from sourceforge.net
I have dual booted Ubuntu and Xp many times with absolutely no problems. I doubt you could do the virtual thing with one OS 32 bit and the other 64. This would not be a problem with a dual boot.
I have had problems using wubi and my boot into windows7 is now unstable at best, so given the choice would favour a VM solution in hindsight. However on other machines I have run Ubuntu Live on USB (installed using pendrivelinux.com) by picking the try ubuntu option at boot and that has worked well and was quite quick to get going.