FOSS Getting Started
DRAFT - work in progress
Getting started
There is a wealth of good resources online from which to get started on Free/Open Source Software (FOSS) This article is meant to put together the steps and resources I went through in learning to be comfortable using and developing FOSS software as an end user, system administrator and developer. It was inspired by ESR's How to be a Hacker but tailored to my experiences of acquring FOSS The amount of knowledge you have access to is immense and can be daunting. I hope that this guide will help ease the learning curve by providing some possible starting points.
A few essential resources:
- Internet connection (broadband is better)
- Contact with a local free/open source software user group
- Printer - printed materials sometimes are easier to follow
Operating System
First thing you need is a "free" and open source operating system, that allows a basic install (no GUI). This is that you can gradually learn, without overwhelming yourself or by having all the basics setup and hidden from you before you get a chance to learn it. I chose FreeBSD because good and easy to understand documentation is important for a new user. FreeBSD comes installed with a very comprehensive handbook_ and companion articles. Another point is that when searching online, the solutions and examples for FreeBSD will usually be identical to what you need for your system. On Linux the different distributions and defaults installed can be confusing for the new developer when searching from online examples. If you want to pick up Linux here (FIXME link to IBM resources), else read on. (FIXME gentoo, ubuntu, fedora documentation resources)
An important note if you come from a proprietary operating system, is to quickly get rid of it. Like cigarettes, it's a bad habit that's hard to break. We want an operating system to learn and gain knowledge from and where learning more about the internals of the OS is not an illegal activity. Additionally If you are learning this at home an don't have access to a printer, you will still need to keep the proprietary system for a bit longer in order to download an installation CD and print out some essential guides before you get started.
Getting Started Checklist
Here are a few things you should have before getting started. An installation CD, printed installation documentation and an internet connection that you will be able to use.
Getting FreeBSD and contact with local community
Grab the FreeBSD 5.3 ISO (FIXME). If you are on a slow connection, get in contact with your local free/open source user group. A helpful person from the community, will usually be able to burn a copy for you. If you are in the Asia-Pacific, UNDP's Internation Open Source Network (IOSN) will probably have a link or contact to a local FOSS_ user group.
You should get the full installation (Disk 1). This will contain a lot of built in packages (applications), to get you up to speed quickly.
Local community will also be helpful in giving you pointers and help in case you get stuck. Often times people have said that the FOSS community is not helpful. This is not true, and is often a misundertanding. If you intend to become a system administrator or developer, self initiative towards understanding and overcoming a problem is expected. Soliciting advice for those from the community to assist you with your iniatives will result in a lot of people trying to assist you and share their knowledge.
FreeBSD Basics
You should print several of the earlier articles here, they provide extensive, clear and easy to understand guides on setting up and using your FreeBSD system.
FIXME
FreeBSD Handbook
This is available online, and on your system after installation (/usr/local/share/doc/handbook).
You might want to print the installation chapter, as a reference before installing FreeBSD.
Network
Getting online is important. The popularity of FOSS many would say coincided with the spread of the internet. Without an internet connection you will lose the benefits of FOSS which is the worldwide sharing, collaboration, contributions and support of thousands, if not millions of other users worldwide. A flat rate connection is more important than speed, so you can search and continously learn from online resources without worrying about cost. Be aware of what kind of internet connection you have, such as dial-up or ADSL. If you are on dialup make sure you do not have a Winmodem (FIXME). If in doubt get an external modem (non-USB).
Basics
Once you get the OS running, network connection and GUI running you are already on you way towards learning basic system administration skills. While doing all this from what seems to be a minimalist environment can be daunting, the basic skills you learn by going under the hood will help you quickly pick up more advanced skills in future when you start to explore how to do other tasks and engage the FOSS community.
Installation
Covered by Handbook and FreeBSD Basics(FIXME)
Internet access
Covered by Handbook and FreeBSD Basics(FIXME)
Learning how to install software (ports)
Covered by Handbook (FIXME)
Learning basic editor
A lot of the configuration that you will do on Unix systems will involve using the editor vi. Install the vim port, which has an excellent tutor by running vimtutor.
Getting X and Desktop
Fixme
Community/Project Resources
Mailing lists
Most projects have mailing lists that provide support for users, developers, marketing/advocacy, general discussions as well information such as the latest changes to the source code. In addition to the end user support, one should also look into subscribing to the developer mailing lists also. Browsing these mailing lists each day, will allow you to slowly learn from the questions asked by others, as well as gain insight into how the development process works. You will soon find that, you too will be able to answer some of the questions you were asking just a few months ago.
Before you post questions, however as usual try to search for it, or check the FreeBSD handboook first.
For the FreeBSD project a few mailing lists that you should subscribe to are:
- freebsd-questions
- A general friendly support list.
- freebsd-gnome
- Help on Gnome desktop environment on FreeBSD
Community mailing lists are also another good resource for support. Examples are:
IRC
IRC is often the prefered choice for live communication by FOSS_ projects. They're public channels and sometimes people can be rude, but generally most channels are self-moderated and you will find most of the irc channels on freenode for FOSS projects are friendly and helpful. There are various irc programs available, XChat (FIXME) is the one I use.
- #freebsd-gnome
- FreeBSD Gnome Desktop developer and user support
- #myoss
- Malaysian Open Source Group channel
Programming
ESR's `How to be a hacker`_
Python (Dive into python)
_`Dive into Python` : http://diveintopython.org/
Advanced
Development Environment/Jails
Other Resources
Unix Development
- The Art of Unix Programming
This book provides a lot of very insightful insights towards the design of Unix. A lot of very insightful information for both system administrators and developers alike.
System Adminstration
FIXME



