.. _glossary: Glossary ######## .. include:: /references.inc .. glossary:: :sorted: VM virtual machine virtual machines A program that emulates a real machine accurately enough to run real programs for that machine. virtual disk A :term:`virtual machine` manages a special disk file as though it was a physical disk. NAT Network Address Translation. A networking scheme where a :term:`virtual machine` can share the host network IP address. super user root The account on Linux system with administrator privileges. They can do anything! cloud We draw a picture of the Internet as a cloud. The cloud is a place "out there" where a number of servers live. We do not worry about where the physical servers are, we access them remotely. BIOS Basic I/O System. A ROM chip on all PC systems that provides the program run by the machine on power up. Originally, this program did a health check of the system, then loaded a :term:`boot loader` to load an operating system. In the early days of the PC it also provided a basic set of I/O services for applications. This code is rarely used today. MB Megabyte 1024 * 1024 = 1048576 bytes. GB Gigabyte 1 :term:`MB` * 1 :term:`MB` = 1099511627776 bytes GUI Graphicsl User Interface A user interface were the mouse and windows are used to control applications. boot loader A small program installed on a :term:`boot sector` of a physical disk that will be loaded by the :term:`BIOS` of the system. This program usually begins the loading of the operating system. boot sector The sector(s) identified to hold the :term:`boot loader`. Usually only one on track 0. sector 0 of a physical drive. IP Internet Protocol The rules that are used to specify the movement of data over the network. DHCP The system used to assign :term:`Internet Protocol` addresses to machines on a local network. This service is usually provided by a server or router in a network. bridged A networking scheme where a :term:`virtual machine` requests an IP address from the network DHCP server. bridged A form of networking where a :term:`virtual machine` gets an :term:`IP` address from the network as though it was a real computer NAT Network Address Translation A form of networking where a :term:`virtual machine` shares the host IP address and cannot be reached from outside the host. SSH secure shell A terminal interface designed to let users communicate with a server over an encrypted channel. Widely used by systems adminstrators to work on remote servers. system path Most operating systems search for files to execute by examining directories listed in a system variable called the ``PATH``. RAM Random Access Memory The most common form of memory in a computer. This memory is volatile. volatile The form of memory that loses contents when power is removed from the system. IDE Integrated Development Environment A tool used by programmers to manage software projects dependency dependencies A set of files needed to build a single program construct like an object file or executable console A simple text window which provides a textual interface to the operating system command prompt The "old fashioned" way of controlling a computer. On Windows systems, this involves using the "command prompt" window (found under ``Accessories``), and on Linux systems, the "terminal window". command line A text line that directs the operating system to perform same function. shell Another term for a program that gives you a :term:`command prompt` interface to your system. repository A text-based file system that serves as a database for a source-code control system like Subversion_. home directory Each user has a directory on the operating system where they normally store all their files. On a Linux system this is in ``/home/username``. On Windows, it is ``C:\Users\username``. working copy A copy of a project managed by a source code control system like Subversion_. This is the area where the code for the project is created. Changes are committed to the :term:`repository` at various times during development. command prompt The simple text only window where you can control the computer. On Windows, you get here using :menuselection:``Start --> All Programs --> Accessories --> Command Prompt``. On Linux, this is called the ``shell`` and you open a ``Terminal`` application to see it. batch file The Windows term for a :term:`script` script A file containing code usually processed by an operating system. Typically used by administrators to automate tasks. scripting Creating a :term:`script` to automate some activity. scripting language A programming language created primarily for creating system scripts functional programming An interesting form of programming where everything is a function. Languages like Scheme_ and caml_ are examples. They are used to get students going in programming at places like `Carnegie Mellon`_! object oriented Languages that focus on ``objects`` which usually represent some real world thing. We create a container for an object that holds the ``attributes`` (characteristics) of the ``object``, and we create code that can manipulate those attributes. However this code is executed by the ``object`` itself in response to a message sent to it by another ``object``. Interesting concept! meta-programming Programs that explore the characteristics of objects in the language itself. We might ask about the ``type`` of an ``object``, or ask what ``methods`` are recognized by an ``object``. introspection A feature of programming languages that let you ask questions about the program being run. We are looking ``inside`` the program as it runs! integer A number with no fractional part. floating point number A number with a fractional part imaginary number A number based on the square root of -1. Used in engineering. complex number A number with a ``real`` part and an ``imaginary`` part. Also used in engineering. real world A fictitious place you never seem to live in. You are always talking about how it is there, but no one knows for sure since no one has found it yet! voltage If you think of electrons moving through wires as water moving through pipes, then voltage is the pressure in the wire pushing the electrons along. system clock All computers have a clock module that "ticks" at some rate. The processor processes machine instructions in time to this clock. SCCS source code control system A tool that stores all code for a project in a database-like system that can show changes to the code over time. It also lets teams of programmers manage code for a single project. Common SCCS tools include Subversion and Git. IDE Integrated Development Environment A collection of common programmer's tools integrated into a single application with features that can greatly speed up program development. Unfortunately, typical IDE systems are complex and may not support all the languages you use, or be available on all the platforms you use. Open-Source Many developers code because they love the work they do. If the projects they build might be useful to othere, they publish the code for all to see. The licensing on such projects actually encourages others to join in and help with development. You need to read some of these licenses and then get involved!