4.6. Programming

Topics covered in this section include:

Section 4.6.1 General
Section 4.6.2 Compilers
Section 4.6.3 Languages
Section 4.6.4 Libraries
Section 4.6.5 Interfaces / API / Protocols
Section 4.6.6 Security
Section 4.6.7 Tools
Section 4.6.8 Version Control
Section 4.6.9 DBMS / Databases
Section 4.6.10 Miscellaneous

4.6.1. General

  • Software-Building-HOWTO, Building and Installing Software Packages for Linux

    Updated: Jul 1999. A comprehensive guide to building and installing "generic" UNIX software distributions under Linux.

  • Software-Proj-Mgmt-HOWTO, Free Software Project Management HOWTO

    Updated: Apr 2002. A guide to the non-technical aspects of free software project the non-technical aspects of free software project management; and was written to be a crash course in the people skills that aren't taught to commercial coders but that can make or break a free software project.

  • Software-Release-Practice-HOWTO, Software Release Practice HOWTO

    Updated: Jan 2013. Describes good release practices for Linux open-source projects.

4.6.2. Compilers

4.6.3. Languages

  • Programming-Languages, Programming Languages mini-HOWTO

    Updated: Jul 2000. A brief comparison of major programming languages for Linux and major libraries for creating graphical user interfaces (GUIs) under Linux.

  • Adv-Bash-Scr-HOWTO, Advanced Bash-Scripting HOWTO

    A guide to shell scripting, using Bash.

    Replaced by the Advanced Bash-Scripting Guide.

  • Assembly-HOWTO, Linux Assembly HOWTO

    Updated: Mar 2013. How to program in assembly language using FREE programming tools, focusing on development for or from the Linux Operating System on IA-32 (i386) platform.

  • Bash-Prog-Intro-HOWTO, BASH Programming - Introduction HOWTO

    Updated: Jul 2000. This article intends to help you to start programming basic-to-intermediate shell scripts.

  • C++Programming-HOWTO, C++ Programming HOWTO

    Removed: November 2002. This HOWTO has been removed for review.

  • Enterprise-Java-for-Linux-HOWTO, Enterprise Java for Linux HOWTO

    Updated: Nov 2001. How to set up an Enterprise Java environment on Linux including a JDK, a Web server, supporting Java servlets, accessing a database via JDBC, and supporting Enterprise Java Beans (EJBs).


    Updated: Dec 1998. Explains how to set up your server to allow CGI programs written in Java and how to use Java to write CGI programs.

  • Lex-YACC-HOWTO, Lex and YACC primer/HOWTO

    Updated: Apr 2002. Helps you get started using Lex and YACC.

  • TclTk-HOWTO, The Linux Tcl and Tk HOWTO

    Updated: Nov 1998. Describes the Linux approach to Tcl, a scripting language.

  • Scripting-GUI-TclTk, Scripting Graphical Commands with Tcl/Tk Mini-HOWTO

    Updated: Aug 2003. This article provides an introduction to building graphical user interface frontends for command-line utilities using Tcl and the Tk toolkit.

  • VB6-to-Tcl, VB6 To Tcl mini-HOWTO

    Updated: Apr 2003. A 15 Minute Tcl Tour For Visual Basic and VBScript Programmers.

4.6.4. Libraries

  • Program-Library-HOWTO, Program Library HOWTO

    Updated: Apr 2003. This HOWTO for programmers discusses how to create and use program libraries on Linux. This includes static libraries, shared libraries, and dynamically loaded libraries.

  • C++-dlopen, C++ dlopen mini HOWTO

    Updated: Mar 2006. How to dynamically load C++ functions and classes using the dlopen API.

  • Glibc2-HOWTO, Glibc 2 HOWTO

    Updated: Jun 1998. Covers installing and using the GNU C Library version 2 (libc6) on Linux systems.

  • NCURSES-Programming-HOWTO, NCURSES Programming HOWTO

    Updated: Jun 2005. An "All in One" guide for programming with ncurses and its sister libraries.

4.6.5. Interfaces / API / Protocols

  • 3D-Modelling, 3D Graphics Modelling and Rendering mini-HOWTO

    Updated: Mar 2001. Details download and installation instructions for a graphics rendering and modelling development environment using RedHat Linux.

  • Implement-Sys-Call-Linux-2.6-i386, Implementing a System Call on Linux 2.6 for i386

    Updated: Oct 2006. Information about implementing system calls in the Linux operating system for i386 architecture with 2.6 kernels.

  • IO-Port-Programming, Linux I/O port programming mini-HOWTO

    Updated: Dec 2000. Describes programming hardware I/O ports and waiting for small periods of time in user-mode Linux programs running on the Intel x86 architecture.

  • Kerneld, The Linux kerneld mini-HOWTO

    Updated: May 2000. Explains how you can use the kerneld function in the Linux kernels.

  • Lego, Lego Mindstorm with Linux Mini-HOWTO

    Updated: Oct 2000. Intended to serve as a very brief introduction to the options available for using the Lego Group's Mindstorm Robotics Invention System (RIS) from within Linux. It also can be used as a gathering point for more information.

  • Module-HOWTO, Linux Loadable Kernel Module HOWTO

    Updated: Sep 2006. Explains what Linux loadable kernel modules (LKMs) are, and how to use and create them.

  • NCURSES-Programming-HOWTO, NCURSES Programming HOWTO

    Updated: Jun 2005. An "All in One" guide for programming with ncurses and its sister libraries.

  • NLM-HOWTO, NetWare Loadable Module Programming HOWTO

    Updated: Jan 2007. How to develop NetWare Loadable Modules under Linux, using GNU CC and nlmconv(1) from GNU binutils.

  • Parallel-Processing-HOWTO, Linux Parallel Processing HOWTO

    Updated: Jun 2004. Discusses the four basic approaches to parallel processing that are available to Linux users: SMP Linux systems, clusters of networked Linux systems, parallel execution using multimedia instructions (i.e., MMX), and attached (parallel) processors hosted by a Linux system.

  • Querying-libiptc-HOWTO, Querying libiptc HOWTO

    Updated: Apr 2002. Explains how to use the libiptc library included in the iptables package and how to use programs to query the internal structures.

  • RTLinux-HOWTO, RTLinux HOWTO

    Updated: Aug 2002. RTLinux Installation and writing realtime programs in Linux.

  • SCSI-2.4-HOWTO, The Linux 2.4 SCSI subsystem HOWTO

    Updated: Aug 2004. Describes the SCSI subsystem as the Linux kernel enters the 2.4 production series. An external view of the SCSI subsystem is the main theme. Material is included to help the system administration of the Linux SCSI subsystem.

  • SCSI-Generic-HOWTO, The Linux SCSI Generic (sg) HOWTO

    Updated: May 2002. Describes the SCSI Generic driver (sg) found in the Linux 2.4 production series of kernels. Focuses on the interface and characteristics of the driver that application writers may need to know.

  • Serial-Programming-HOWTO, Serial Programming HOWTO

    Updated: Aug 2001. How to program communications with devices over a serial port on a Linux box.


    Updated: Apr 2000. How to use the Server Message Block (SMB) protocol, also called the Session Message Block, NetBIOS or LanManager protocol, with Linux using Samba.


    Updated: Apr 2001. Describes how to use XML-RPC to implement clients and servers in a variety of languages. Provides example code; applies to all operating systems with XML-RPC support.

4.6.6. Security

  • Secure-Programs-HOWTO, Secure Programming for Linux and Unix HOWTO

    Updated: Mar 2003. Provides a set of design and implementation guidelines for writing secure programs for Linux and Unix systems.

4.6.7. Tools

  • C-C++Beautifier-HOWTO, C-C++ Beautifier HOWTO

    Removed: November 2003. This HOWTO has been removed for review.

  • C-editing-with-VIM-HOWTO, C editing with VIM HOWTO

    Updated: Jan 2001. An introduction to editing C and other language files whose syntax is similar like C++ and Java in vi/VIM.

  • Java-Decompiler-HOWTO, Java Decompiler HOWTO

    Removed: November 2003. This HOWTO has been removed for review.


    Updated: Nov 1999. RPM is the RPM Package Manager. It is an open packaging system available for anyone to use. It allows users to take source code for new software and package it into source and binary form such that binaries can be easily installed and tracked and source can be rebuilt easily. It also maintains a database of all packages and their files that can be used for verifying packages and querying for information about files and/or packages.

  • RPM-for-Unix-HOWTO, RPM-for-Unix HOW-TO

    Removed: November 2003. This HOWTO has been removed for review.

  • Valgrind-HOWTO, Valgrind HOWTO

    Updated: Sep 2002. A guide to Valgrind, the malloc debugger.

  • Vim-HOWTO, Vim Color Editor HOWTO (Vi Improved w/syntax color highlighting)

    Removed: November 2003. This HOWTO has been removed for review.

4.6.8. Version Control

  • CVS-RCS-HOWTO, CVS-RCS HOWTO for Linux (Source Code Control System)

    Removed: November 2003. This HOWTO has been removed for review.

  • RCS, The RCS mini-HOWTO

    Updated: Aug 1997. Covers basic installation and usage of RCS, the GNU Revision Control System, under Linux.

  • Secure-CVS-Pserver, Secure CVS Pserver Mini-HOWTO

    Updated: Mar 2003. Will help you set up a more secure CVS Pserver for anonymous CVS access.

4.6.9. DBMS / Databases

  • DB2-HOWTO, IBM DB2 Express-C for Linux HOWTO

    Updated: Aug 2007. Intended for anyone interested in installing and using IBM DB2® Express-C 9 database on Linux®.

  • IngresII-HOWTO, Ingres II HOWTO

    Updated: Sep 2001. Helps install the Ingres II Relational Database Management System on Linux.

  • Oracle-7-HOWTO, Oracle 7 Database HOWTO

    Updated: Aug 1998. A guide to installing and configuring the Oracle 7 Database Server on a Linux system.

  • Oracle8-on-RH7X-HOWTO, Oracle 8i on Linux RH7.X Installation HOWTO

    Updated: Jul 2002. Following this HOWTO you should be able to get "Oracle 8i, version 8.1.7, Enterprise Edition for Linux" installed on a RedHat 7.X distribution.

  • PostgreSQL-HOWTO, Database-SQL-RDBMS HOWTO for Linux

    Removed: Jan 2002. This HOWTO has been removed for review. Please visit the official PostgreSQL site for information on this topic.

  • WWW-mSQL-HOWTO, A mSQL and perl Web Server HOWTO

    Updated: Sep 1997. How to build a SQL client/server database using WWW and HTML for the user interface.

4.6.10. Miscellaneous

  • Accessibility-Dev-HOWTO, How to Develop Accessible Linux Applications

    Updated: May 2002. Provides Linux software developers with guidelines and test cases for developing accessible Linux applications.

  • AI-Alife-HOWTO, Linux AI & Alife HOWTO

    Updated: Mar 2013. Information about, and links to, various AI related software libraries, applications, etc. that work on the Linux platform.

  • Apache-Compile-HOWTO, Apache Compile HOWTO (Linux edition)

    Updated: Feb 2003. Describes how to compile the Apache Webserver with important modules like mod_perl, mod_dav, mod_auth_ldap, mod_dynvhost, mod_roaming, mod_jserv, and mod_php.

  • Debian-Binary-Package-Building-HOWTO, Debian Binary Package Building HOWTO

    Updated: Aug 2005. Shows how to build a minimal Debian .deb package.

  • HighQuality-Apps-HOWTO, Creating Integrated High Quality Linux Applications HOWTO

    Updated: Aug 2002. Tries to clarify some issues and give tips on how to create Linux applications highly integrated to the Operating System, security and easy of use.

  • Multi-Distro-Dev, Development for Multiple Linux Distributions mini-HOWTO

    Updated: Aug 2002. Outlines a quick hack to aid in developing and testing user-space programs for multiple Linux distributions.

  • Tango-HOWTO, Tango 2000 HOWTO

    Updated: Jul 2000. Describes the installation, configuration, and basic troubleshooting of Pervasive Software's Tango Application Server on Sun Solaris and various flavours of Linux.