|<--Preface||Table of Contents||Next Chapter-->|
Linux uses GNU General Public License (GPL) and its source code is freely available to everyone. Linux distributions, CD-ROMs with the Linux kernel and various other software ready for installation, do not have to be free, but the Linux source code must remain available. Making source code available is known as 'open source'.
The word "Linux" is properly pronounced using a Swedish accent, making it difficult to pronounce in North America. It is most often pronounced with a short "i" and with the first syllable stressed, as in LIH-nicks, but it is sometimes pronounced LYE-nicks (the anglicized "Linus' UNIX") or LEE-nucks.
Strickly speaking, Linux refers to the operating system kernel that starts and manages other programs and provides access to system resources. The various open source shells, compilers, standard libraries and commands are a part of another project called GNU. The GNU project was started by the Free Software Foundation (FSF) as an an attempt to create a free version of UNIX. The main Linux C compiler, gcc, is a part of the GNU project.
There is also a GNU kernel project, but this has been largely superseded by the Linux kernel.
X Windows is also not strictly a part of Linux. Xfree86, the free version of X Windows, was adapted to the Linux operating system.
The original Ada had several shortcomings in the areas of software engineering: Ada programs tended to be big and awkward to maintain over time. In 1990, ANSI began a project to revise Ada, to include object oriented features, hierarchical program libraries, support for other languages, and add-ons for specialized applications like systems programming, real-time systems, distributed information (client/server) systems and scientific programming. The updated language is known as Ada 95.
GNAT is a GPL Ada compiler, available for Linux, Windows NT, and many other platforms. It was originally created at New York University. GNAT is owned by Ada Core Technologies (ACT, http://www.gnat.com): although gnat is free, companies who want support can purchase it for a fee. The Linux version of GNAT supports the entire Ada 95 standard, including all optional features. It includes many extensions, like cross-compiling and support for the C++ language. ACT also provides GLADE, a free RPC-based TCP/IP networking implementation Ada 95's distributed systems annex.
The GNAT manual describes their compiler as "an industrial-quality Ada 95 compiler, integrated into the GCC retargetable compiler system. GNAT is a complete compiler, validated on several platforms, that includes support for all the Ada 95 annexes specified in the Ada Reference manual. Because of its integration into the GCC system, GNAT is available on a large number of hardware/operating system platforms, and can be used as a cross-compiler from any of its targets to any other one. Because of the common code-generator technology of GCC, GNAT has excellent support for multi-language programming: Ada, C, C++, Fortran, etc.
GNAT also represents a substantial improvement in Ada compilation technology.
It's [sic] open-system philosophy stands in contrast with the opaque approach
of older Ada compilers. There are no hidden and complex central libraries
whose use requires a totally new set of commands, and no rigid development
environments that often force needless recompilations. While preserving
all of Ada's safety, GNAT's source-based model provides the flexibility
and efficiency typically encountered in C development environments. Furthermore,
GNAT's flexibility greatly facilitates its integration within third-party
development environments and CASE tools. A number of standard editors,
debuggers, profilers, memory analyzers, test coverage or configuration-management
tools, etc. can be used with GNAT, which coexists comfortably with familiar
programming tools (unlike older Ada compilation systems)."
|Fun Fact: When Gnat 3.11p was released, Robert Dewar said that Linux would never be a billion dollar platform and deserved no special consideration by ACT. By the time Gnat 3.12p was released just over a year later, the Red Hat company was worth more than 18 billion dollars, or 40% of the server market. The first platform supported by Gnat 3.12p was Linux.|
GNAT was developed closely with gcc, the native C compiler for Linux. Unlike some compilers that translate a program into C and then feed the C program into gcc, gcc has built-in support for the Ada language. Like g++, the GNU C++ compiler, gnat works with gcc, allowing it to produce fast, quality executables without any intermediate steps.
This integration gives a lot of flexibility to programmers who want or need to support multiple languages. GNAT has an extensive set of features for trading variables and function calls between Ada and C/C++. It can import C/C++ items into Ada, export Ada items to C/C++. You can also link Ada functions indirectly into Java, using Java's ability to import C++ functions.
GNAT comes with over 140 standard libraries. These include numeric and string libraries, file operations, hash tables and sorts. If you would rather work directly with Linux C libraries, a variety of "binding" libraries exist, available for download from the Public Ada Library or The Home of the Brave Ada Programmers. These include bindings for POSIX (that is, the Linux kernel), X Windows, Motif, TCL and WWW CGI applications. The Ada Linux Team prepackage many bindings for use with their version of the Gnat compiler.
More and more Linux libraries feature Ada bindings, including ncurses (a standard text screen drawing library) and GTK (the Gimp Toolkit, a graphics package).
Although gnat is distributed under the GPL license, gnat and its libraries may be used in commercial applications.
The GtkAda mailing list is at http://gtkada.eu.org.
The Gnat mailing list is at http://www.diax.ch/users/gdm/gnatlist.htm.
The Gnat Glade chat mailing list is at email@example.com.
One important resource is the comp.lang.ada newsgroup, which is frequented by many Ada celebrities, including Robert Dewar of Ada Core Technologies and Tucker Taft, the principle designer of Ada 95. If you have questions about the inner workings of Ada 95, this is the place to go.
Ada Linux Team (ALT) is a group of programmers dedicated to Linux programming specifically using Ada. This site is located at www.gnuada.org/alt.html, running on a Sun/Linux machine hosted by Sam Tardieu. ALT provides the latest versions of software and libraries for Linux, including bug fixes for Gnat, prepackaged and ready for installation.
The GNU Ada site, http://gnuada.sourceforge.net (formerly www.gnuada.org), on how to install Gnat.
The Ada Source Code Treasury at www.adapower.com provides examples of both Linux and Windows Ada applications. Included are examples of sockets, MD5 encryption and packages to work with Windows servers from a Linux computer.It also has a free, unsupported binding to Motif by Itermetric/Avestar.
If you are looking for general algorithms and source code examples, PAL (the Public Ada Library), is a large source code repository located at www.pegasoft.ca/pal/ada/pal.html . It includes thousdands of source code examples, bindings, compilers and the official Ada 95 documentation.
The Ada Software Engineering Library has over 1 Gig of files. It's available at http://unicoi.kennesaw.edu/ase/index.htm.
The Home for Brave Ada Programmers at www.adahome.com provides a lot of general reference material and bindings.
The Ada Information Clearinghouse (AIC) at www.adaic.com contains statistics, studies and other general information.
AdaCraft - http://www.it.bton.ac.uk/staff/je/adacraft/ and Ada Programming are online books on Ada.
Michael Feldman's Who's Using Ada List
http://www.skinner.demon.co.uk/aidan/programming/libra has a tool called Libra (Library of Reusable Ada Code) for many common data structures such as lists, queues, and Internet sockets such as HTTP and POP3.
http://www.ainslie-software.com has a tool called AdaJNI (Java
Native Interface) that lets you call java methods from Ada 95.
|<--Preface||Table of Contents||Next Chapter-->|