Glossary of open source, BSD, Linux, Unix, networking, and free software terminology |
A Apache - The Apache Web Server is software for listening to HTTP requests and sending files (i.e. HTML, images) over the network; it is the most commonly used web server software. A web browser communicates with a web server. BIND (Berkeley Internet Name Domain) - BIND is a commonly-used DNS (domain name system) server, resolver and cache. It is used to share hostname to IP mapping; for example, it is used to resolve the hostname "www.yahoo.com" to the appropriate numerical address. Browser - A browser lets you browse through directories and file listings to view files. A normal web browser (like Netscape Navigator) communicates with ftp and web servers to retrieve and then render (display) webpages. BSD - BSD is a family of complete operating systems using BSD-licensed code. BSD stands for Berkeley Software Distributions. Developers began in the late 1970's rewriting expensive and proprietary Unix utilities to develop a free Unix-like operating system. Common BSD operating systems include: NetBSD, FreeBSD, OpenBSD and BSDi's commercial BSD/OS. In addition, BSD code is used for several proprietary operating systems. In fact, BSD is used for the free Darwin project and its commercial sibling, Apple Mac OS X. BSD License - BSD is a type of software license for freely-distributed software. Basically, a BSD license contains a copyright, a notice of redistribution, a disclaimer of liability, and clauses (conditions) saying that the redistributed source code or binary form must contain the copyright, the list of conditions, and the disclaimer. The BSD License is useful for developers who want their code to be used in open source and closed source (proprietary) products. (An example would be implementations of internet protocols that have wide usage.) Cron - cron is used to run scheduled jobs. For example, cron can be configured via crontab (or /etc/crontab) to start a variety of important system tasks, such as nightly security checks, generating website analysis reports, rotating old log files (so they don't become to large and unmanageable) and doing backups. Daemon - A daemon is program that does a specific task. A daemon usually listens for certain information and then acts accordingly. A daemon is usually always running in the background. Examples: httpd (the web server daemon) listens for webpage requests and then sends them; crond wakes up every minute and checks for current tasks to do; sendmail (or smptd) listens for mail communication on port 25 and then relays or transfers the mail for delivery. DHCP (Dynamic Host Configuration Protocol) DHCP is used by client computers to retrieve and assign IP addresses, networking information and other configurations. The DHCP server listens for the DHCP request and sends the information. A DHCP client sends a request that a central DHCP server responds to. diff - A diff is another name for a patch file. A patch is source changes for a program (or documentation) that is applied to the original source to update it. The "diff" is the differences between the original and the patched (fixed or improved) version. (The diff program is used to create diffs.) DNS (Domain Name System) - DNS is the protocols and programs for converting recognizable hostnames (like www.msnbc.com) to the correct numerical IP address. The top level root servers (for .com, .net, etc.) tell which name servers have the authoritative information. (This distributes the DNS information over thousands of name servers.) In addition, IP addresses can be resolved (converted) back to hostnames. The BIND software is a commonly-used implementation of DNS. Emacs - Emacs is an advanced, customizable, extensible, display editor. (extensible means that its features can be expanded or improved.) Emacs includes the Lisp (programming language) interpreter to add new Emacs commands and functionality. Emacs is often called a "kitchen sink" -- it can be used to do many things, like browse the web, send and receive email and do document formatting. (A simpler editor is vi.) Exim - Exim is a MTA -- a mail transfer agent; it is used for sending mail. MTAs can be used as a mail server to listen for incoming email and/or to relay email to another server. (Some other popular MTAs include qmail, postfix and sendmail.) FTP (File Transfer Protocol) - FTP is commonly used for uploading and downloading files to and from remote computers. Firewall - Basically, a firewall is a barrier between the outside world and your internal (private) network. A firewall is made up of a variety of features and capabilites -- a lot of different software can be used to implement a complete firewall solution. For example, a firewall can filter network (IP) traffic, deny certain network requests or transfers, and masquerade externally-available IP addresses to internal, private IP addresses. GCC - GCC is the GNU Compiler Collecton (GNU project C, Objective C, C++ compiler, and more. It is used to build (compile) C (and C++) programs. GIMP - The GIMP is an image manipulation and painting program similar to PhotoShop. It includes a variety of tools and filters for image design. GNOME (The GNU Network Object Model Environment) - GNOME is a desktop environment. GNOME is a collection of libraries and applications, such as file managers, themes support, graphical toolkits, printing capabilities, reusable software components, and more. GNOME can use a GNOME-aware window manager. The GNOME desktop is usually not needed to run all GNOME-type applications. (GNOME is a competitor to KDE.) GNU - GNU is a project to provide freely-available Unix-like and other software applications and utilities. Linux systems use a variety of GNU software. Linux operating systems are often called "GNU/Linux". GPL - the GNU Public License; basically allows free redistribution of software and source code must be freely available; any publicized or commercial changes must be offered back to the original owner. hostname - A hostname is the name of a specific (and unique) computer. A hostname can be a sub-domain of a domain name (for example, "www" is the hostname of "www.domain.com"). IMAP - IMAP is the protocol for interactive remote retrieval of mail and storage of mail folders. It is usually used by mail customers who want (or need) to keep their mail on a remote server. The mail is stored in a variety of mail files. (Also see POP3.) inetd - inetd -- often called the "super-server" -- listens for network connections and then starts the appropriate corresponding program as configured. inetd is often used to listen for FTP, telnet and POP3 connections. (There are a few similar programs that are often used as alternatives, such as xinetd and tcpserver.) Java - Java is a programming language and virtual machine (VM). The Java code is compiled into Java bytecode. This bytecode is usually cross-platform and can be ran on any operating system using a Java virtual machine. (A Java applet is usually a simple Java bytecode that runs via a browser's Java VM.) (Javascript is not Java.) KDE - KDE is an integrated X11-based environment. KDE includes a window manager. KDE is usually not required to run KDE-type applications. (KDE is similar to GNOME.) Kernel - The kernel is the core, nucleus or center of an operating system. Basically, a kernel schedules and supervises how the computer's resources are used. (Linux is an example of a kernel.) A complete operating system includes various software beyond just a kernel. Linux - Linux is the core or base of the Linux-based, Unix-like operating systems. Linux is a kernel -- it provides interfaces to hardware and basic hardware scheduling, for example. Linux includes support (built-in or external modules) for a variety of hardware devices (like sound cards, ethernet adapters, etc.) A complete operating system includes various software beyond just a kernel. Linux operating systems use GNU (and other) software. Some popular Linux distributions (compilations) include Debian GNU/Linux, Slackware, SuSE Linux and Red Hat Linux. logs - Unix-type computers (by default) continually store a lot of information about system messages and server accesses. These "logs" are useful for troubleshooting, debugging and auditing computers; in addition, the logs can be used for analyzing performance, computer usage and for planning. Most logs are available under /var/log. (Also see syslog.) lpd - lpd is the line printer daemon -- basically it is for handling printer by managing spools (or queues). Mail Client - A mail client is used to compose and send email and to retrieve email from a mail server (like POP3 or IMAP). Mail Delivery Agent (MDA) - A MDA is used by a MTA to properly deliver (save) the mail message on the mail server. Mail Transfer Agent (MTA) - A MTA is used for sending mail. MTAs can be used as a mail server to listen for incoming email and/or to relay email to another server. (Some popular MTAs include sendmail, Exim, qmail and postfix.) NFS (Network File System) - NFS is used to easily share or access files on different systems. (It is similar to -- but not the same as -- Samba/CIFS/Windows file sharing.) NIS - NIS (formerly known as YP) is used for network management of configuration and authentication files. (But it can be used to share almost any information that can be mapped with a key, like a password file has unique names.) NIS includes servers for sharing the information and clients to ask for the information. Ogg Vorbis - Ogg is a project to develop an open multimedia system. Vorbis is the Ogg project focusing on the audio codec; for example, it competes against the AAC and TwinVQ MPEG-4 compressions. The technology is patent-free, the code is open source, and plugins for various popular audio players are available. It is a free streaming solution with code available for Windows, Macintosh OS, BEOS, OS/2 and, of course, Unix-type systems. Open Source - Open source software is software where the original code written in programming language is available. This is useful for peer review, security audits, porting to different platforms and operating systems, and reusing or enhancing ideas and code to create better software. Perl - Perl is a script-based programming language. It is (usually) not compiled, but an interpreter converts and runs the perl code on the fly. It contains a wide variety of capibilities and runs on a wide variety of free and proprietary operating systems. It is frequently used because programs and simple utilties can be quickly built in perl. PHP - PHP is another interpreted language, most commonly used with web-site development and automation. The PHP code and HTML layout code is contained in the same webpage. A PHP parser reads and executes the PHP code on the webserver -- and then the webserver just sends the HTML results. POP3 - POP3 is the commonly-used protocol (the standard) for allowing email users to retrieve their email. (SMTP is used for sending email.) (Also see IMAP.) postfix - Postfix is a MTA -- a mail transfer agent; it is used for sending mail. MTAs can be used as a mail server to listen for incoming email and/or to relay email to another server. (Some other popular MTAs include Exim, qmail and sendmail.) Python - Python is considered as an easy-to-learn, but powerful interpreted scripting language. (Also see Perl.) qmail - Qmail is a MTA -- a mail transfer agent; it is used for sending mail. MTAs can be used as a mail server to listen for incoming email and/or to relay email to another server. (Some other popular MTAs include Exim, postfix and sendmail.) quota - quotas are used to limit users (and groups) disk usage. (quotas can be used to define mailbox size limits.) RAID - RAID is used to improve disk efficiency (speed and performance) or to increase redundancy (mirroring backups) by combining multiple disks to create one disk. If one disk fails, the RAID disk is still usable. There are hardware and software-based RAID solutions. Samba - Samba is software for sharing and accessing SMB/CIFS shares and services. It is used to work with Windows file sharing. In other words, Samba can be used to share Unix and Windows resources (printers, files). sendmail - Sendmail is a MTA -- a mail transfer agent; it is used for sending mail. MTAs can be used as a mail server to listen for incoming email and/or to relay email to another server. (Some other popular MTAs include Exim, qmail and postfix.) Security - Security is a very broad subject. It covers firewalls, system and network planning and implementation, authentication methods, software updates and a lot more. Server - Server has two general meanings: a physical computer used to serve a variety of tasks or information for other computers; and server software is a program that does jobs for other programs and for multiple users or computers. (Also see Daemon.) shell - A shell is the user interface to the operating system. A shell can be a graphical, windowing environment, but usually "shell" refers to a command-line interpreter and environment. A command-line shell allows you to enter commands and simple scripts to start programs and to accomplish a wide variety of tasks. A shell has a few built-in commands, but most of the power is accomplished by using and joining a variety of outside utilities. (It is a simple programming language.) Some common shells are Bourne, BASH (Bourne Again), csh, ksh, tksh and ash. SMTP (Simple Mail Transfer Protocol) - SMTP is the standard method for sending and routing email over the internet. (Also see Mail Transfer Agent.) SSH (Secure Shell) - similar to telnet, used for remote logins. It provides a secure authentication methods and encrypted communications; and can be used to forward X11 and other TCP/IP traffic through a secure tunnel. (A popular implementation is OpenSSH.) syslog - syslogd is daemon that listens for logging messages and usually logs this information to certain files (under /var/log/). syslogd is important for recording system information, such as attempted logins, email activity and a wide variety of other information. TCP (Transmission Control Protocol) - TCP is the protocol (or method) for keeping track of individual IP packets (units of data) as they transfer across the internet via different routes. TCP wrappers - TCP wrappers (tcpd or libwrap) is a simple language that controls access to server programs (or daemon) based on hostname, IP or network addresses. (Also see firewall.) telnet - telnet was a commonly-used protocol for logging on to remote computers. A telnet client connects to a remote telnet server and usually gives you a shell (command-line) interface after authenticating (with a password). telnet is consider unsecure, because the password is sent as plain-text -- it is readable on the network. (SSH is the commonly-used secure alternative.) The telnet client is also useful to connect to different (non-telnet) services, like POP3, SMTP and HTTP.) TTY - Formerly, a TTY was a teletypewriter; now called a terminal. A terminal can be an external and remote computer or a shell window or console screen. Basically, the terminal displays output and the keystrokes are sent to a program to process them (on the same systems or via a serial line, for example). Different types of terminals can be emulated and used. A virtual teriminal is where you can have separate consoles (different logins) by switching to a different screen (by pressing CTRL-ALT and function key, for example). (Also see Shell.) UNIX - Unix is trademarked term used to officially designate or recognize certain types of operating systems. Unix itself has a wide and varied history with origins at Bell Laboratories and then AT&T. Official Unix's include IBM's AIX, Hewlett Packard's HPUX, Sun's Solaris and SCO Unix. Unix is also used generically to define systems that use the same routines or programs as old Unix systems. Unix is also a standard -- often ideas, techniques, and source code designed for one Unix can be used on another Unix. The BSD project -- previously called "Berkeley Unix" -- rewrote all the proprietary Unix code (to create freely-available Unix-like tools and operating systems). GNU (which stands for "GNU's Not Unix") also created various utilities and programs that mimicked and enhanced Unix utilities. (Also see shell, BSD, and GNU.) Users - Unix-type systems are based on having multiple users per one system. Files, hardware devices, and programs can have separate permissions for each user on the system to help secure or improve stability of the operating system. In addition, each user usually has their own "home" directory where they can store and use their own files and programs. vi - vi is a screen-oriented text editor which uses keystrokes to go into certain command modes. For example, you can use "i" to go into "insert" mode to begin entering data. vi can be hard to use for a beginner, but is extremely useful and quick for editing tasks. (Another popular and powerful editor is Emacs.) Window Manager - A window manager controls the layout of the windows on the screen. They can support overlapping windows, popup menus, point-and-click or click-to-type input models, title bars, icons and more. An X window manager can be used to look and act like the Windows 95, MacOS or other interfaces. Some popular window managers for X include blackbox, Enlightenment, KDE and icewm. (Also see X Window System.) X, X11, X Window System - X is a graphical user interface windowing system which can be used across networks and is multi-platform. An X client is the application software that uses the X protocol; for example: a graphical clock or Netscape Navigator. An X server is used to display and interact with the X client; the X server runs on the hardware with the video display and input devices. The actual look-and-feel of the X server (and X clients) is controlled by a Window Manager. (XFree86 is an implementation of X11.) YP (Yellow Pages) - YP is the network information system for providing and sharing information to clients on a network. (Yellow Pages is a trademarked term, so Sun's YP is known as NIS.) (See NIS for more information.) zip - zipping is used for shrinking a file size (for storing, saving space or transfering files). zip is a compression and file packaging utility available for several operating systems. It is not the standard for Unix systems. gzip is the compression (or expand) tool commonly used. gzip is not a file packaging utility, so tar (or another archiver) can be used.
|
Home | About | Services | Training | Contact |