Personal tools
You are here: Home Members kaeru's Home FOSS articles FreeBSD MyOSS Daemon's Advocate June 2005
Document Actions

MyOSS Daemon's Advocate - First Operating System for new FOSS Developers

by Khairil Yusof last modified 2005-05-25 12:13 AM

Welcome to the first installment of MyOSS's Daemon's Advocate. Free/Open Source Software provides more choices for users, and that includes operating systems. Most FOSS applications also run on the BSD's which include FreeBSD, NetBSD, OpenBSD and DragonFlyBSD. All of these BSD's continue the rich Unix heritage and have roots back to 4.4 BSD Unix. This regular column will provide articles to highlight the unique advantages of the various BSD operating systems.

"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." - Dennis M. Ritchie

FreeBSD Installation and Base

Developers who wish to learn more about FOSS development need an operating system that provides an easy and basic installation without GUI. This is so 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. As you start learning, the OS should not hinder you from easily installing and maintaining additional applicatons. It should also support a modern GUI desktop environment as well as modern hardware.

FreeBSD's installation is straightforward. It comes with all the basic software that a Unix system needs including development and internet tools such as email, ftp, nfs, ssh and others as part of the default base system.

Configuration information is mostly via system shell scripts and text configuration files for which there are examples, as well as good documentation. This makes it easier for new users to learn more about the operating system. First time installation and configuration is done via an easy to use ncurses system. FreeBSD's Unix heritage also means that new users will find a consistent layout for the system. FreeBSD also separates base system directories from third party applications installed through FreeBSD's ports system. This makes it easy for FreeBSD users to return the system back to it's original state, keeping only the base directories intact. This also makes FreeBSD easy to maintain and update to newer versions without reinstalling.

sysinstall

ncurses installation screen

Documentation

FreeBSD Handbook - http://www.freebsd.org/handbook

Good documentation is a boon for new users. Clear, accurate and extensive documentation eases the steep learning curve often associated with learning a Unix system. FreeBSD has an excellent handbook that explains setup and administration system. It covers everything from installation to setup of network services such as NFS, as well as workstation features such as setting up X and a desktop system.

Man pages - http://www.freebsd.org/cgi/man.cgi

FreeBSD also comes with very helpful manual pages. They cover most configuration files such as rc.conf(5) and various features such as jail(8). FreeBSD manual pages often have detailed explanations along with helpful examples. A good example of how good FreeBSD's manual pages are, is the tuning(7) which provides detailed explanation on tuning FreeBSD performance.

Mailing Lists - http://lists.freebsd.org/mailman/listinfo

There are lots of helpful mailing lists on a variety of topics and FreeBSD projects. Descriptions of major lists are listed in the handbook. The freebsd-questions list is a good place to ask general questions and is newbie friendly, provided you tried looking in the Freebsd Handbook first for answers.

Applications - http://www.freshports.org

FreeBSD comes with over 10 thousand libraries and applications in it's ports tree. Ports is FreeBSD's way of setting installing applications and they're scripts that automatically fetch, build and package from source. This is a boon for FOSS developers, as it allows developers far greater flexibility than pre-built packages.

Gnome - http://www.freebsd.org/gnome

FreeBSD via the FreeBSD Gnome project, keeps track of the latest Gnome releases. You have access to all the latest applications such as FireFox, OpenOffice, Evolution and more.

gnome-devel screenshot

FreeBSD Gnome 2.10 Desktop showing Gaphor a UML editor and gVIM

Development Languages and Software

C#, PHP, Python, Perl, Java are all well supported in FreeBSD, and there are numerous tools, toolkits, libs and applications based on these languages in addition to C and C++. There are dozens of other languages and tools supported also. These are all easily installed and automatically configured via the ports system. They are well maintained, with frequent updates and fixes.

  • C#

    Is actively being maintained on FreeBSD and as of this article Mono 1.1.7 and GTK# are available on FreeBSD. For more information on the status of C# on FreeBSD visit: http://www.mono-project.com/Mono:FreeBSD

    f-spot freebsd

    F-Spot C# application on FreeBSD

  • PHP

    For PHP you will find PHP4, PHP5 and various extensions. PHP developers will be interested to find that, through the ports system, FreeBSD Project does not make the call with regards to the licensing issues. Users decide whether the licensing for PHP5 and MySQL is ok with them. As such PHP5 and MySQL extensions are maintained in the FreeBSD ports system.

    PHP Config Screenshot

    PHP port configuration

  • Python and Perl

    These languages are well supported on FreeBSD. Almost all popular modules for both languages can be found in the ports tree. You will also find applications that depend on these languages such as web content management systems like Bricolage and Zope.

  • Java packages

    Contrary to popular belief, Java is actually well supported on FreeBSD. The main difference is that Java on FreeBSD is built from source. Through the FreeBSD Foundation there are full time developer(s) working on FreeBSD Java ports. Developers will find familiar tools such as Ant, Eclipse and Netbeans. Additionally Java frameworks and application servers such as Jakarta Struts, JBoss and Tomcat are all already configured and ready to install from the ports tree.

    Java2D FreeBSD Screenshot

    Java2D Demo on FreeBSD

FreeBSD like other FOSS operating systems, gives you great documentation on usage, but also system documentation. Unlike proprietary software, you are free to read, use and reapply what you have learnt from the source code. There are no extensive end user licensing agreements that make it illegal for you to compile and reuse the source code. The FreeBSD Project is also well structured, and there is much to learn beyond simply the operating system and source code. You can also learn about how the project is organized and engineered, and the tools (which are installed in every FreeBSD system), to build an operating system. These tried and tested practices will serve you well, when you start on your own large project.

Starting from a simple, yet usable basic base also allows a developer to pick up some lower level system knowledge. For those interested in server services, this gives you a balanced introduction to a FOSS operating system, as compared to one that has everything installed and configured for you which can be overwhelming, or one that has nothing installed and can take literally days to get up and running to a basic usable state.

For application developers whether desktop or web, FreeBSD provides good support for various languages and toolkits. You will not be without a GUI environment and applications for development, and you will have access to a ports system that allows you to setup software you need to get up to speed quickly. The time spent in initially learning to set up FreeBSD also gives you more knowledge regarding the operating system that your application runs on.

If you're interested in learning to be FOSS developer, FreeBSD is a good choice for your first FOSS operating system.

You can download and learn more about FreeBSD from http://www.freebsd.org

About Author

Khairil's primary interests are in the areas of IT capacity building through use of Free/Open Source Software. He currently works as a project consultant for the International Open Source Network (http://www.iosn.net) an initiative of UNDP's Asia-Pacific Development Information Programme (http://www.apdip.net) which is also supported by by the International Development Research Centre (IDRC) of Canada.

He can be reached at kaeru@pd.jaring.my

Blog feeds

  • Blog RSS Button
  • Blog RDF Button

Other sites

  • Free and Open Source Software Foundation Malaysia Web Button

My Profile

  • View Khairil Yusof's profile on LinkedIn

No to OOXML

 

Powered by Plone Section 508 WCAG Valid CSS Usable in any browser IOSN

Copyright respective authors. Unless otherwise specified, content licensed under Creative Commons Attribution License.

Legal Disclaimer