From LQWiki
Source code is the uncompiled human-readable text which contains the code (ie. computer instructions) of a program, written in a programming language and typically contained in one or more source files. A source file generally cannot be used to run a program, and typically relies on a compiler to translate it ("compile" it) into a something that can.
However, a compiled program (a so-called "binary") cannot usually be understood in its compiled form nor can it (easily) be changed, so if a new feature is required or a bug needs fixing, the developer will adjust the source code accordingly, recompile, then test again.
Depending on the programming languages involved, the source may be
- run directly by an interpreter (ex. Bash)
- compiled just in time and immediately run (ex. Java)
- compiled to bytecode, which is later interpreted (ex. Java, Perl, Python
- compiled to a binary executable or library file (ex. C, C++, Pascal, Fortran)
Though, note that the above categories are not as distinct as they seem: for example, Java can be JIT compiled and then executed, or it can be compiled to bytecode and then executed -- even more, you could compile Java code directly into a binary using GCJ and then execute the resulting binary.
Most non-trivial programs rely on makefiles to instruct the compiler how to compile the program. The make program reads the makefile and perform the build. As a result, if a program is downloaded in source form, it may be very simple to compile it.
Source code may or may not be distributed with software, depending on whether the developer of the software has chosen to make it available. Even if a software developer has made the source code available to you, there may be restrictions on what you are legally allowed to do with it. However, among the unix fraternity there is a strong hacker tradition of users modifying software tools to suit their needs. It is helpful when modifying a software tool to see how the software developer wrote his program, and especially helpful to be able to read his code comments. Consequently, the source code for a large proportion of Linux software is publicly available to anyone that wants it, most commonly under the rules of the GPL distribution license.
When you really need to know what a Free program is doing, perhaps if the documentation is missing or incomplete, you can always look at the source for the final word on the matter. Hence the expression from a galaxy far, far away
- "Use the source, Luke!"

This page is available under a