CS9035-FREE/OPEN SOURCE SOFTWARE-ANNA UNIVERSITY SYLLABUS IT7/10/2012 12:30:00 PM
CS9035 FREE/OPEN SOURCE SOFTWARE L T P C
CS9035 FREE/OPEN SOURCE SOFTWARE L T P C
3 0 0 3
To understand the FOSS Philosophy and use a Linux distribution to learn installation, administration and programming in this environment
· To impart a first hand knowledge on the FOSS philosophy and methodology
· To enable the students to install and use Linux distribution
· To train the students in Linux desktop usage and some commonly used programs
· To encourage students to apply OSS philosophy and migrate to FOSS in their own domains
· To develop application programs using FOSS
UNIT I HISTORY AND OVERVIEW OF GNU/LINUX AND FOSS 3
Definition of FOSS & GNU, History of GNU/Linux and the Free Software Movement, Advantages of Free Software and GNU/Linux, FOSS usage , trends and potential— global and Indian.
UNIT II SYSTEM ADMINISTRATION 10
GNU/Linux OS installation--detect hardware, configure disk partitions & file systems and install a GNU/Linux distribution ; Basic shell commands -logging in, listing files, editing files, copying/moving files, viewing file contents, changing file modes and permissions, process management ; User and group management, file ownerships and permissions, PAM authentication ; Introduction to common system configuration files & log files ; Configuring networking, basics of TCP/IP networking and routing, connecting to the Internet (through dialup, DSL, Ethernet, leased line) ; Configuring additional hardware -sound cards, displays & display cards, network cards, modems, USB drives, CD writers ; Understanding the OS boot up process ; Performing every day tasks using gnu/Linux --accessing the Internet, playing music, editing documents and spreadsheets, sending and receiving email, copy files from disks and over the network, playing games, writing CDs ; X Window system configuration and utilities-- configure X windows, detect display devices ; Installing software from source code as well as using binary packages
UNIT III SERVER SETUP AND CONFIGURATION 10
Setting up email servers--using postfix ( SMTP services), courier ( IMAP & POP3 services), squirrel mail ( web mail services) ; Setting up web servers --using apache ( HTTP services), php (server-side scripting), perl ( CGI support) ; Setting up file services --using samba ( file and authentication services for windows networks), using NFS ( file services for gnu/Linux / Unix networks) ; Setting up proxy services --using squid ( http / ftp / https proxy services) ; Setting up printer services -using CUPS (print spooler), foomatic (printer database) ; Setting up a firewall -Using netfilter and iptables
UNIT IV PROGRAMMING TOOLS 12
Using the GNU Compiler Collection --GNU compiler tools ; the C preprocessor (cpp), the C compiler (gcc) and the C++ compiler (g++), assembler (gas) ; Understanding build systems --constructing make files and using make, using autoconf and autogen to automatically generate make files tailored for different development environments ; Using source code versioning and management tools --using cvs to manage source code revisions, patch & diff ; Understanding the GNU Libc libraries and linker -linking against object archives (.a libraries) and dynamic shared object libraries (.so libraries), generating statically linked binaries and libraries, generating dynamically linked libraries ; Using the GNU debugging tools --gdb to debug programs, graphical debuggers like ddd, memory debugging / profiling libraries mpatrol and valgrind ; Review of common programming practicies and guidelines for GNU/Linux and FOSS ; Introduction to Bash, sed & awk scripting
UNIT V APPLICATION PROGRAMMING 10
Basics of the X Windows server architecture ; Qt Programming ; Gtk+ Programming ; Python Programming ; Programming GUI applications with localisation support.
1 N. B. Venkateshwarlu (Ed); Introduction to Linux: Installation and Programming, B S Publishers; 2005.
2 Matt Welsh, Matthias Kalle Dalheimer, Terry Dawson, and Lar Kaufman, Running
Linux, Fourth Edition, O'Reilly Publishers, 2002.
3. Carla Schroder, Linux Cookbook, First Edition, O'Reilly Cookbooks Series,
1. Open Sources: Voices from the Open Source Revolution, First Edition, January
1999, ISBN: 1-56592-582-3. URL:
2. The Linux Cookbook: Tips and Techniques for Everyday Use, First Edition, Michael Stutz, 2001. URL: http://dsl.org/cookbook/cookbook_toc.html
3. The Linux System Administrators' Guide, Lars Wirzenius, Joanna Oja, Stephen
Stafford, and Alex Weeks, December 2003. URL: http://www.tldp.org/guides.html
4. Using GCC, Richard Stallman et al. URL: http://www.gnu.org/doc/using.html
5. An Introduction to GCC, Brian Gough. URL: http://www.network- theory.co.uk/docs/gccintro/
6. GNU Autoconf, Automake and Libtool, Gary V. Vaughan, Ben Elliston, Tom
Tromey and Ian Lance Taylor. URL: http://sources.redhat.com/autobook/
7. Open Source Development with CVS, Third Edition, Karl Fogel and Moshe Bar.
8. Advanced Bash Scripting Guide, Mendel Cooper, June 2005. URL:
9. GTK+/GNOME Application Development, Havoc Pennington. URL:
10. Python Tutorial, Guido van Rossum, Fred L. Drake, Jr., Editor. URL: