Edit History Actions

FOSS_Syllabus

  • FOSS Elective-I Syllabus

1. Unit

  • Overview of Free/Open Source Software-- 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.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).

2. Unit

  • 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. 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)

3. Unit

  • Setting up a firewall - Using netfilter and ip tables; 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.

4. Unit

  • 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. Basics of the X Windows server architecture.

5. Unit

  • Qt Programming ; Gtk+ Programming ; Python Programming ; Programming GUI applications with localisation support.

REFERENCES

Text Book :

1. Introduction to Linux: Installation and Programming N. B. Venkateshwarlu (Ed); B S Publishers; 2005. (An NRCFOSS Publication)

Reference Books :

2. Running Linux, Fourth Edition, Matt Welsh, Matthias Kalle Dalheimer, Terry Dawson, and Lar Kaufman, O'Reilly Publishers, December 2002, ISBN: 0-596-00272-6.

3. Linux Cookbook, First Edition, Carla Schroder, O'Reilly Cookbooks Series, November 2004, ISBN: 0-596-00640-3.

On-line materials

1. Open Sources: Voices from the Open Source Revolution, First Edition, January 1999, ISBN: 1-56592-582-3. URL: http://www.oreilly.com/catalog/opensources/book/toc.html

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. URL: http://cvsbook.red-bean.com/

8. Advanced Bash Scripting Guide, Mendel Cooper, June 2005. URL: http://www.tldp.org/guides.html

9. GTK+/GNOME Application Development, Havoc Pennington. URL: http://developer.gnome.org/doc/GGAD/ 10. Python Tutorial, Guido van Rossum, Fred L. Drake, Jr., Editor. URL: http://www.python.org/doc/current/tut/tut.html