The Hopeful Hacker Binaries

 

Home

    Tech Basics

    Boot Camp

    Computer Programs

    From Program to Process

    Passwords

    API

    Wireless Networking 

    Free Email

    Linux

Related Links

    Hopeful Hacker Blog

Other Sites

 Brain Dump

Binaries

You see the term "binaries" a lot.  If you're downloading open source software, one of the options is often to download the binary.  There's also a binaries directory in Linux.

In these cases, binaries are executable programs.  Executable just means that you can easily run the program.  When you download the binary for a software program, you can usually just click on it and it will automatically install itself on your computer.

 

Compiling

The other option is to download the source code and compile it yourself.

A program (like a word processor or a web browser) is a series of instructions that tell your computer what to do.  That series of instructions is called the source code.  To use the program, it has to be put together in a way that you're computer's operating system can understand it.  That process is called compiling.  It's done by programs called compilers.

Here's how it works.  A developer writes the source code for, say, a program that lets you put little notes on your computer screen.  He's written in in a programming language, so it looks like a series of sentences.  Then he compiles the source code so it will work under a specific platform (e.g. an Intel Pentium CPU and the Windows XP operating system).

You download the binary, click on it, and it installs.

 

Porting 

Now lets say the author wants to make a version of the program that will run on Linux.  He has to recompile the source code to work with Linux.   That's called porting, as in: "are you going to port that sticky note software into Linux?"  Porting can be relatively easy or relatively difficult depending on how the developer wrote the original source code.  Programs written to be easily ported to other platforms are called "portable."

People who work with software aa lot often just exchange source code.  Everyone assumes that everyone else can compile it to suit their own purposes.  Where does that leave you and me?  Usually it leaves us looking for binaries.  If we can't find a binary for the program we want, we have to learn how to compile the source code.  Or choose a different program.