FreeBSD development environments for Summer of Code
It is important to spend some time before the project starts installing and getting used to FreeBSD (if you haven't already). A great resource for starters is the FreeBSD Handbook.
There are couple of factors to consider while picking your GSoC development environment:
- user-space programming and scripting: FreeBSD can be either run natively on your own PC or in a Virtual Machine - it makes very little difference.
security/networking: you will likely either need a small PC network at home and you're willing to play with cables and network testing, or you'll be able to configure the virtual network based on QEMU or VirtualBox. The second option may turn out to be the most productive, since you won't waste time physically moving between machines.
- kernel hacking: you can expect your changes to the kernel will sometimes lead to kernel panics, forcing you to reboot. You can usually load an older kernel from the boot loader but it may be the case that it's easier to netboot the second PC on which you'll be doing testing, and once it is rebooting you perform changes and adjustments to your code, or just use Virtual Machine. Note that for some projects (e.g. ones involving wireless) virtual machines may not be an option
If you have permanent, reliable Internet access, one possibility is to use one a free VM hosting provider, where you can select the OS from available ready-to-use images. Examples are: Amazon EC2, Microsoft Azure, Gandi Cloud VPS, etc.
You will be expected to know your way around FreeBSD: particularly how to update and rebuild your kernel and userland. Be sure to review the existing documentation to rebuild your kernel and get acquainted on how to use general VCS (version control) tools (Subversion highly preferred).
Virtual Machines and cloud environments
VirtualBox: by far the easiest to use. Just install http://www.virtualbox.org on your machine (available in the ports collection on FreeBSD). Then download an .iso image of FreeBSD. Create machine, select the .iso as the "content" of your CDROM drive. VirtualBox will boot your virtual PC from the CDROM and you'll be able to install the system. It uses Copy-On-Write disks by default, so you won't waste too much space on your disk.
EC2: this is something for people who'd like to work on GSoC from many computers. This environment however requires you to be online each time you want to do something. Using it is quite simple:
Go to My account/Console on the top-part of the website.
- Login with your Amazon credentials
Click EC2
Click Launch instance
Click Community instance and search for "freebsd"
Click FreeBSD/EC2 10.0-RC4 64-bit m1 / m2 / c1 / t1 and "Select"
Click Review and Launch
Click Create a new key pair and name it "amazon"
Click Download key pair and save the file somewhere.
Your instance will be created and started. SSH will be started too, allowing you to log in remotely. You must use:
ssh -i amazon.pem ec2-aa-bb-cc-ee.us-west-2.compute.amazonaws.com
The IP address and ec2-....amazonaws.com you can get from the instance preferences from the AWS console. Remember that SSH connections may not be available in all networks due to firewalling.
HyperV: Microsoft directly supports FreeBSD on both HyperV and WindowsAzure. Many universities have access to the MSDN, which offers a monthly credit, or you can otherwise get a free account with some fixed credit.