Are guest additions useful for headless Linux guests? - virtual-machine

The question is "Are guest additions useful for headless Linux guests?"
I need to run several guest linux systems as a kind of build and test farm. I would also very much like to keep them as light as possible. I am therefore tying to decide between having to install additional packages and the guest additions vs. clean OS but running without optimized drivers.
How much of a penalty is there if the dedicated HD/SATA and Ethernet drivers in guest additions are not installed? Guests are headless, so display drivers are not a factor.
I would be happy if you can make negligible/significant distinction.
Thanks.

Have a look at chapter 4 of the manual.
Guest additions is more than just about seamless windows. It provides other features that may be useful to you such as memory ballooning, page fusion (windows only) and shared folders.
http://www.virtualbox.org/manual/ch04.html
So, if those features are not important to you then yes, you don't have to install guest additions.

Related

open virtual switch supporeted platform

I heard that it has been ported to multiple virtualization platforms and switching chipsets? what does the virtualization platforms and switching chipsets mean here? what is the difference between them?
another question is :can we install the openvswitch on the bare metal switch or router?I mean can we install it on just hardware without any operating system?
From OVS FAQ, which is readily available with a Google search:
Q: What virtualization platforms can use Open vSwitch?
A: Open vSwitch can currently run on any Linux-based virtualization
platform (kernel 2.6.32 and newer), including: KVM, VirtualBox, Xen,
Xen Cloud Platform, XenServer. As of Linux 3.3 it is part of the
mainline kernel. The bulk of the code is written in platform-
independent C and is easily ported to other environments. We welcome
inquires about integrating Open vSwitch with other virtualization
platforms.
Q: How can I try Open vSwitch?
A: The Open vSwitch source code can be built on a Linux system. You can
build and experiment with Open vSwitch on any Linux machine.
Packages for various Linux distributions are available on many
platforms, including: Debian, Ubuntu, Fedora.
You may also download and run a virtualization platform that already
has Open vSwitch integrated. For example, download a recent ISO for
XenServer or Xen Cloud Platform. Be aware that the version
integrated with a particular platform may not be the most recent Open
vSwitch release.
Q: Does Open vSwitch only work on Linux?
A: No, Open vSwitch has been ported to a number of different operating
systems and hardware platforms. Most of the development work occurs
on Linux, but the code should be portable to any POSIX system. We've
seen Open vSwitch ported to a number of different platforms,
including FreeBSD, Windows, and even non-POSIX embedded systems.
By definition, the Open vSwitch Linux kernel module only works on
Linux and will provide the highest performance. However, a userspace
datapath is available that should be very portable.
Q: What's involved with porting Open vSwitch to a new platform or switching ASIC?
A: The PORTING document describes how one would go about
porting Open vSwitch to a new operating system or hardware platform.
Comparison of virtualzation platforms: https://en.wikipedia.org/wiki/Comparison_of_platform_virtualization_software
Regarding your last question: You need an underlying OS (e.g. Linux)
Another easy way to experiment with sdn , openvswitch and open flow is mininet.
They have a vm you can download and use with virtualbox, vmware etc
http://mininet.org/
http://mininet.org/download

If I wanted to develop algorithms for a purely RISC machine, what should my development environment be?

Short of buying a SPARC processor, what emulators are there? Thanks.
Pickup a second hand Power Mac G5 and you can run a fairly recent version of a mainstream OS (ie. OS X 10.5.8) and a modern development environment (Xcode 3.1.4).
You get a pretty fast, modern RISC machine running an OS that is still highly used (for the time being, I admit.)
You could also install Linux onto it if that would be better for your needs.
Probably a lot easier to find and cheaper than a SPARC machine.
You could also install the SPIM emulator for MIPS
On revisiting this, it's worth noting that nearly all modern smartphones run on ARM processors, which is short for 'Acorn RISC Machine'. So, an easy answer is 'Android Studio' or anything else targeting phone applications.
Similarly, there's a plethora of simple development boards available inexpensively, such as the BeagleBone Black and the Raspberry Pi, that also carry ARM processors.

Suggestions on Setting up Development Environment

After referring to many posts, opinions and feedback from SO, I have just bought a Lenovo Thinkpad T410 . x64 Win 7 Prof, 500 GB # 7200 RPM , Core i7 620M processor, 4GB DDR3 RAM.
I am now setting up my development environment on the new machine. I need your suggestions in setting up a clean, structured and risk-free Development Environment.
Something about what I intend to do on this machine:
I am Entrepreneur bootstrapping my Startup. So I will have business related purposes (presentations) other than Coding.
I do coding on Microsoft stack currently for some of my other projects. But will start coding in other technologies such as RoR. So I need to have MS products (VS, IIS) and other OSS'
This machine also doubles up as production environment on top of Development Environment.
I don't have a separate Desktop for doing heavy lifting. This is my whole and sole workstation.
I have read a lot about VMwares here and how they help to keep the machine clean and ordered which you can just wipe out clean and have reinstalled as you wish. Is it a good thing to have VMs each for Microsoft stact, RoR stact and so on or have all of them installed on my main machine itself.
Also, apart from this, it would be great if someone can suggest some good options for Firewall+Antivirus+Malware stack (considering that this is a Win 7 machine)
ThanQ
This machine also doubles up as
production environment on top of
Development Environment.
You are setting yourself up for a world of hurt.
Aside from that, it is just common sense that you should use some form of VCS (I recommend Git) and store all your code NOT on your development machine. You should be able to checkout out your code, run a script, and be up and running. You are bootstrapping a startup; pay the $12/month to keep your code safe.
VMs are a good idea if you need to support different environments, for example Win7, Win Vista, and perhaps some flavor of linux. If you take my suggestion and use a remote VCS setup, you can checkout from the remote source onto your VMs.
Another benefit of VMs is you can set up a base install, with all the software you need, and create an image of it, so from that point on you can pass the image around, and you won't need to install the baseline software again.

ps3 applications development [duplicate]

can anyone tell what to do develop ps3 applications (or) games after we install linux on ps3.
and other thing is that can we develop ps3 games on window platform for that what tools needed,its little bit of confusing.
can anyone clarify this?
Currently, the only legitimate way to develop for the Play Station 3 is to buy the development kit and a license from Sony. Recent hacks enable homebrew applications but there's currently only Sony's leaked SDK - building applications with this would probably be illegal.
A Homebrew SDK is in the works, but you would not be able to distribute your applications or games through official methods using this SDK.
To compile homebrew on Windows, you will likely need to use Cygwin and an available PS3 Tool Chain. It's unlikely that a compiler will exist or even be made for Windows, but Cygwin should allow you to emulate the linux tools available.
In summary, if you want to do it legit then you need a license and a dev kit from Sony. If you're just doing it for fun then I suggest you use Google to find more information on PS3 homebrew development.
See the Wikipedia page on OtherOS for some basic information and plenty of pointers. Beware that you're going to be restricted in what you can do, Linux does not have access to the full machine.
I am by no means an expert - but:
To develop PS3 games you need a PS3 developer kit. Afaik it can't be done simply by installing linux on a PS3. The developer kit is licensed from Sony and - to the best of my knowledge - require some kind of license payment and/or approval process as an official PS3 developer/house.
Sony released a small home-development kit, including a keyboard, mouse and harddrive for the old (non-slim) PlayStation 2 back in the day. That kit was linux driven and contained libraries to utilize graphics and controllers. The last I heard that idea was scrapped by Sony.
There was a method to install another OS on the PS3, and a lot of people installed Linux. Look through your docs (and maybe on the web) for "PS3 OtherOS" or "PS3 Other OS". Unfortunately Sony has recently removed the ability to install another OS, so you need a unit that hasn't had a recent firmware update.
Installing Linux means you have (most of) the system at your hands.
As far as I know, you need an official Development Kit from Sony in order to develop games for the PS3. I believe it does run in a modified Linux environment, but I cannot confirm this for sure (perhaps we have someone on SO who develops PS3 titles and can fill us in?)
You'll need a PS3 dev kit to do it properly. While one used to be able to install Linux on the PS3, it's a feature that has now been disabled. Even if you do manage to find a PS3 that is still able to accept Linux you'll be using a largely divergent API (from what commecial PS3 games are built on) and you wont' have access to many of the more powerful graphical functionality.
While you can build a game largely on Windows you'll need to port it property to run on PS3. You can't just hit compile on Windows and have it run on the PS3.
Although this is an old thread, I see that no one has yet mentioned an alternative option that has been available for both PlayStation 3 (and later) and Xbox One (and later) from the very beginning: Blu-ray Disc Java, abbreviated BD-J.
These consoles feature a Blu-ray Player, and all Blu-ray players can run JavaME as part of the Blu-ray specification. This means you can actually code games and apps with JavaME, and run it on these game consoles from the very same disc.
So if you're just looking to create some homebrew games for fun, then BD-J is a very attractive option. Because:
you can run your homebrew games on many gaming consoles from the very same disc
there's no expensive SDK to buy, you simply code JavaME in whatever IDE you want
there's no approval process, you just create your own disc and make the ISO downloadable
Here's a few YouTube example videos of various BD-J Xlets running on PS3, showing that the platform is quite capable of running homebrew stuff:
https://www.youtube.com/watch?v=M_E9VaXywG0
https://www.youtube.com/watch?v=NxMpLB_ZsDs
https://www.youtube.com/watch?v=bKadWBm9CQA
https://www.youtube.com/watch?v=1bC5FV-2AY4
And a few useful links:
http://www.oracle.com/technetwork/articles/javame/bluray-142687.html
http://www.tvwithoutborders.com/
http://www.java-gaming.org/index.php?topic=38044.0

Best setup for Linux development from Windows? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
What's the best setup for developing Linux apps from a Windows workstation? Right now I'm connected via SSH to our Linux development server and am using Eclipse, forwarded over SSH via PuTTY, to the public domain version of Xming running on my Windows workstation. It works, but it's not great; Eclipse's response times are far from snappy (noticeably worse than Eclipse running natively on my much slower Windows workstation), I can't resize some dialog boxes, and I haven't figured out a good way to reconfigure my fonts.
Is there a better setup available?
Edit: This is for C/C++ development.
Options for Linux on Windows:
Tools Only
Given you're using Eclipse I'm going to assume you want a full IDE, but if you can get by with just the GNU/Linux tools, there are a few choices.
cygwin gives you a bash shell with lots of tools, including an X11 server. This has been around awhile and is mature.
msys is a smaller, lightweight alternative to cygwin.
GNU utilities for Win32 is another lightweight alternative. These are native versions of the tools, as opposed to cygwin which requires a cygwin DLL to fake out its tools into thinking they are running on Linux.
Linux in a Windows Process
There are several packages that will run Linux as a Windows process, without simulating an entire PC as virtualization does. They use Cooperative Linux, a.k.a. coLinux, which is limited to 32-bit systems. These don't have the overhead of virtualizing, and they start up faster since you're not booting a virtual PC. This is a little more on the experimental side and may not be as stable as some of the virtualization options.
Portable Ubuntu
andLinux
Virtualization
Virtualization software lets you boot up another OS in a virtual PC, one that shares hardware with the host OS. This is pretty tried-and-true. There are nice options here for taking snapshots of your Virtual PC in a particular state, suspend/resume a virtual PC, etc. It's nice to be able to experiment with a virtual PC, add a few packages, then revert to a previous snapshot and "start clean".
VMWare
VirtualBox
VirtualPC
In my case...
Sounds like your environment has different performance characteristics, but here's my situation: I started out with Eclipse on my Windows laptop (doing Rails development), found this sluggish, and switched to using putty to ssh into a fast Linux box. I do my editing via an emacs running on the Linux server, displayed on Windows using Xming. Or I use native emacs on Windows, editing the files shared via NFS. The latter is slower in my environment due to sluggish saves.
When working from home, I ditch X because it is too slow with remote clients, and just run emacs -nw within a putty window. I then use GNU screen so that I have multiple "windows", and so that I can easily resume where I left off if my network connection flakes out.
The best approach that I've found is to:
keep your code portable
develop natively on your desktop
verify any OS dependencies (minimize these as much as possible)
deploy to your target regularly, test & debug there
I know that this isn't a direct answer, but using an IDE for development through X is painful with most of the free tools. The only way that I've been productive doing work this way was when I was running a UNIX-like on my desktop so X was native. If you are going to use this approach, try a commercial X solution on the desktop.
Other than that, consider ditching the IDE and doing your development and debugging via SSH, a terminal editor (e.g., vi, pico, ee, emacs), make/ant, and gdb.
The best approach for you is going to be driven by your programming language and the type of application you're developing. If you are doing GUI applications, then using X might be the only approach that is acceptable. If you are doing back-office/daemon development, then the SSH and terminal approach will probably work though you probably want to get really comfortable with either vi or emacs.
EDIT: just noticed that you are doing C/C++ development. Consider using a cross platform framework if you aren't already. Using something like Qt, APR, ACE, or Poco should make it possible to natively develop under Windows with a deploy/debug step to your Linux environment.
For development I usually use a Linux virtual machine on my Windows box. It will probably send Linux users running to the bathroom to wash their hands, but I do all of my development in Visual Studio, and I have a custom Visual Studio plugin that invokes G++ through the virtual machine and pipes the output into the VS output window. With a quick change of a Combo box I can build and test for Windows or Linux.
An easy to setup option would be to run Eclipse natively in windows but deploy the code via a Samba share on the Linux machine (which you can mount as another drive) (or SSH/SCP if SMB is not an option) and then run it there via SSH console.
Another easy to setup option is to simply develop on Linux via freenx or a similar tool instead of a full blown X session, check this answer: https://serverfault.com/questions/11367/remote-desktopping-from-windows-to-linux/11372#11372
The other options (Virtualization, Linux running inside windows, Cygwin) are indeed valid but have their drawbacks, like being more machine demanding, harder to setup, or not equivalent enough to the actual linux environment, but may very well be worth your while if you have the machine and the scenario justifies their use.
Doing everything on the Linux side will always have some drawbacks
if your machine is Windows.
I personally have a Linux box where everybody else has Windows and
do Windows dev inside a VM, but it has costed me a lot of RAM and some network setup pains.
I find coLinux tremendously helpful when developing on Windows for Linux, it's basically a linux system running in parallel to your Windows OS (i.e. as a service) and can be configured to simply show up on your LAN, basically like a virtual machine does. Also, it's much more full featured than CygWin, and its performance is really remarkable - I can easily run non-trivial stuff under coLinux, and still run simulators at 90+ fps.
Also, coLinux can be easily set up to run X11 and window managers like gnome/KDE, so that you can for example use something like vnc to access your linux desktop.
Cooperative Linux is the first working free and open source method for optimally running Linux on Microsoft Windows natively. More generally, Cooperative Linux (short-named coLinux) is a port of the Linux kernel that allows it to run cooperatively alongside another operating system on a single machine
. For instance, it allows one to freely run Linux on Windows 2000/XP, without using a commercial PC virtualization software
such as VMware, in a way which is much more optimal than using any general purpose PC virtualization software.
(source: colinux.org)
There are multiple solutions, I'd recommend No. 1
A VM (Virtual Machine) running a flavor of linux as a guest operating system inside Windows. Start with VirtualBox which is free.
To make managing it easier you can use a tool like Vagrant. Vagrant is a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity. So you code in your Windows PC and compile/run the application on a Linux system using Vagrant. Vagrant is free! Similar tool: Docker can be used too. For this setup you can use any IDE, I'd recommend VSCode its quite handy for C/C++ with intellisense but Eclipse should work too.
Web based tool like Nitrous.io which is discontinued, but you can host your own open-source version of the Nitrous IDE called Nitrous Solo which lets you host your own instance of the Nitrous IDE on your preferred cloud provider.
Windows 10 provides provides Windows Subsystem for Linux, try using that to compile and run your project. This requires a 64-bit version of Windows 10 Anniversary Update or later (build 1607+).
Cygwin / MinGW are popular bash tools for Windows, they might be able to compile and/or run your application.
Cygwin might be helpful.
I've done what you want to do for exactly the same reason: full control over the output (you're having font issues with your current solution) and much slower Windows machine than the remote Linux development box.
Most answers are bogus: having a "Linux development environment" is not just "having an IDE". It's about having the whole Un*x power at your fingertips.
Is it a local or remote Linux server? bandwith issues? Because on a LAN, even an old 100 MBit/s LAN, FreeNX flies. How's the load on that Linux server?
Setup the free FreeNX on the Linux system, install the free FreeNX client on the Windows machine and bingo, you've got your Linux development environment at your fingertips.
FreeNX is much more efficient than VNC, it's night day (VNC is actually pretty bad perfs wise, even compare to Windows's Remote Desktop... But FreeNX flies).
Regarding speed, a long time ago, I set up my main Linux workstation (it was a Pentium 4 / 2GB of memory back in the days) on which I was developing full-time using IntelliJ IDEA (another IDE), to serve a full X session (complete with a window manager etc.) that another developer was displaying remotely to... run another IntelliJ instance (and access all the Un*x niceties). It was on a LAN 100 Mbit/s and it was as if the app was local for the other developer.
Anyway, on today's hardware I cannot imagine how this could not work: I now have here a Core 2 Duo / 4GB of ram as my main desktop and a Gigabit LAN.
Such a setup was working perfectly 4 years ago, it would work perfectly today.
Now if you tell me you have bandwith issues or that the Linux machine you've got your account on is under heavy load or that it's not on the LAN, then things may be different...
How the younger developers who want a powerful Un*x system do it at the company I'm consulting for nowadays (that only has Windows desktops)? Most of them bring their shiny MacBook Pro and use that to develop ;)
I'm using xming as well and suffer from the same problems with Eclipse. Apparently, neither switching to cygwin makes it fast enough. Eventually I switched to developing in vim via xming. It doesn't take as much time as I feared to get used to all the key combinations, and the performance is absolutely smooth. Actually, now sometimes I use vim even when working natively.
Either a Virtual Machine with a Linux-based dev environment, or a local copy of some toolchain-agnostic IDE (e.g. Notepad++, with testing done via MinGW or CygWin as far as you can), or just write in Notepad++ and keep uploading to your dev machine and testing there, which is what I do.
You might try other X servers on Windows such as xwin32 and hummingbird. Note that these are commercial implementations.
Another solution is to install a VM server on your Windows box and install Linux on the VM. Options include VMware (non-free) and Microsoft Virtual PC (free download). VMware is much nicer than VirtualPC (64-bit support, more incentive to support Linux client OSes, etc.).
EDIT: In the last 13 years since this post was originally made, Cygwin/X (and Xming) has gotten a lot better. It's worth trying again. I now use it for my everyday work again.
You could take a look at setting up a svn server on the linux box and then using something like TeamCity todo a build on commit. You could write your code locally and do a commit when you want it to be compiled.
I don't know if there's a more modern route, but the standard way in my time was to run X Windows in Microsoft Windows, that way you can run any number of applications on your Ubuntu machine and control them and display them in Microsoft Windows
Check Check out.
You could try using any of the linux distros for windows, even windows-store have ubuntu, SUSE etc for windows and this could help reduce your coding efforts. This linux distros contain linux shell, kernel etc so you won't be needing linux system everytime debugging or testing your code.
You could also use Visual Studio Code which is far better and fast compared to eclipse and is even supported in linux and mac.
Check this for ubuntu distro on windows store.
Linux distros can also be downloaded from other sources but microsoft urges to use the one from Windows-Store.
Use Linux! I usually have the other problem: developing win under linux.
There is no reason for not doing so: I have win running on a virtual box now almost all the time.
Linux comes with a lot of development tools.
The problem is:
is it a graphical interface?
If no you will have no problems as soon as your code STD/portable.
(X allows you simple stuff too but for an nice application today you need a bit more.)
If Yes then you will have a lot of problems when you actually port the code
on the running platform.
Is it supposed to be portable/exchangeable between linux and windows?
if not, just develop on the native OS. Way less pain. You have Eclipse for both
platforms. Even if you think to port the code on a later stage,
just do the work for one first.
I developed a couple of graphical application under linux which are actually right now
used only under windows. My recipe is: GTK/GNOME. I made it running with cygwin and mingw.
But I guess that Qt has the same usable environment too.
My code went on win with no changes!
[ok.. a couple of touching on file paths... but was a bug..]
There is no way to develop under win and hope to be running on linux unless you are sure
not to use any win libs. That is: in a graphical application almost no chance. Or a lot of
checking... Or you will not be using any win facility. Forget Visual Studio.
Check indeed wine and the winehq pages.
Unless the problem is another, like: using team sharing facilities, or svn or whatever.
Which is not a code development problem but a bit more on the organizational side.
Bottom line:
It is way easier to port a free code on win then a proprietary code on the free market.