Appendix A: Glossary of Terms

Abacus—earliest computing device; invented thousands of years ago.

Absolute path—directory path starting from the root of the file system. In Linux, this path would start with a /; in Windows it would start with the partition letter such as C:.

Access control list—means of controlling user permissions to access system resources, commonly, the list contains user names and access types such as read, read/write, execute; applied to files and directories.

Accessibility—the capacity of hardware, software, or website to be accessible by people with impairments.

Accumulator (AC)—a register in the CPU that stores data.

Ada—high-level programming language developed by the U.S. government named after Lady Ada Augusta Lovelace (a mathematician from the early nineteenth century considered to be the world’s first programmer).

Address bus—a portion of the computer’s bus used by the CPU to pass addresses to memory and I/O devices.

Administrator—a special user, the administrator is given access to all aspects of the computer system.

Alias—instance where two or more names point to the same entity such as hard links and soft links pointing to the same file.

ALU—arithmetic/logic unit of the CPU that performs all arithmetic and logic operations in the computer.

Analytical Engine—designed by Charles Babbage in the early 1830s to automate the computation of many mathematical equations. It was designed to be powered by a steam engine and perform all four parts of the IPOS cycle, making it a general-purpose computer. Babbage never completed it as he ran out of funds, but analytical engines have been constructed since then as proofs of the concept. Lady Ada Lovelace wrote programs for the Analytical Engine.

Anonymous user—a designation given to individuals who log into an FTP server with no account. They are given limited access.

Apache—open source web server that has become the most commonly used web server.

Application software—computer programs that users run to accomplish some task.

Archive—a bundled collection of files and directories.

ARPANET—Wide Area Network developed in 1968 connecting four computers in the western United States that eventually grew into the Internet.

ASCII—the American Standard Character Interchange Interface, a 7-bit representation for storing characters (letters of the alphabet, digits, punctuation marks) in binary.

Assembler—a computer program that translates an assembly language program into machine language.

Assembly language—a primitive programming language which uses mnemonics (abbreviations of operation names) and variable names to make it easier to use than machine language.

Assignment statement—a type of program instruction that assigns a value to a variable.

Asymmetric key encryption—a form of encryption where the key to encrypt the message differs from the key to decrypt the message.

Attribute—a field (column) in a database relation; for a student relation, examples might include “last name”, “major” and “GPA”.

Availability—a feature of information assurance and security that requires that data be available when that information is needed.

Background—a process that operates as the CPU has time for it, and does not require direct interaction with the user. Background processes essentially do not interfere with the user’s interaction with the computer.

Backup—storing a copy of files in the file system (perhaps the entire file system) elsewhere for security purposes. Backups used to be performed on magnetic tape, but today it is common to use an external hard disk or disk storage space available over the Internet.

Backward compatibility—the ability for a newer computer to run older software or for a new piece of software to be able to access files created by an older version of the software. Backward compatibility allows users of newer Windows-based computers to still run software from old Windows and DOS-based computers.

Bandwidth—the amount of data that can be transmitted over a unit of time, such as bits per second. Bandwidth is used to measure the performance of a computer network, MODEM, or other form of telecommunications.

Base—the radix of the numbering system that determines the legal digits in that numbering system and how those digits are interpreted. Decimal (base 10) is the primary base used by people, whereas binary (base 2), octal (base 8), and hexadecimal (base 16) are all used by humans to represent information stored in a computer.

Batch—a form of process management that would restrict the operating system in executing only one program at a time until it completed. Furthermore, in batch processing, all program input would have to be specified at the time the program was submitted and all output would be saved to file so that there would be no interaction.

Beta-release software—a release of software before a major distribution so that specific users could test the software to identify flaws such as logical and run-time errors.

Binary—the base 2 numbering system using only 0s and 1s; computers represent all information in binary.

BIOS—the basic input/output system is a program that computers use to communicate to their basic input and output devices such as the keyboard. Today, the BIOS is almost always stored in ROM.

Bit—the smallest unit of storage in a computer, a bit is either a 0 or a 1.

Bitmap—a type of image file.

Block—the physical unit of disk storage; all files are broken into fixed-sized blocks.

Boot Loader—a program used to load an operating system into memory when the computer is booted up.

Booting—the process of starting up the computer; booting tests the CPU and makes sure it can communicate with the various devices like memory and disk drive, and then runs the boot loader to load and start the operating system.

Brace expansion—a feature of the Linux Bash shell in which files and directories listed in {} are expanded before the instruction executes so that the instruction executes on all of the items in the expanded list.

Buffer overflow—a flaw in some programs that causes values to be placed in memory outside of a buffer; if the overflow are program instructions, it could potentially allow the processor to run what is in the overflow area, allowing an attacker to take control of the processor.

Bug—a slang term for an error found in a program.

Bus—the device in the computer that connects the hardware components together so that they can communicate with each other; the bus is made up of wires over which electrical current travels.

Bus network—a form of computer network in which devices are connected to a single communication line through T-connectors; the bus network is the simplest and cheapest form of network but is often inefficient because of message contention.

Byte—8 bits used to store a single piece of information which can be a number from –128 to +127, a number from 0 to +255, or a character in ASCII or EBCDIC.

Byte code—an intermediate form of code that is produced by a compiler so that a later virtual machine can interpret it. The Java programming language compiles source code into byte code permitted it to be platform independent as long as the platform has a Java Virtual Machine. Microsoft’s.net (dot net) platform can also compile into byte code.

Certificate—a means of identification used by websites as a digital signature to assure the client that the website is legitimate. The certificate may also include a public key for encryption.

Certificate authority—an organization that can sign certificates for authenticity.

Certification—an acknowledgement received by a person who successfully passes a class or examination in some IT-related area; often used as a means of advancing one’s career in IT.

Checksum—a means of ensuring that data received from telecommunications is correct.

Child process—a process that was spawned by another process (the parent).

Circuit switching—a form of network in which the pathway from source to destination is established at the beginning of communication and retained until communication terminates; the public telephone network uses circuit switching.

Client—the name given to a computer (or user) requesting a service from another computer.

Client–server network—a network that consists of devices specifically designated as clients and servers.

Cloud computing—a recent development in computer networks where an organization offers services available over the Internet. The services include storage space and distributed processing.

Clustering—a form of data mining used to see how instances of data group together into possible categories.

Coaxial cable—a form of media used in telecommunications. Cable TV signals are commonly carried over coaxial cable. Using coaxial cable provides users with potentially larger bandwidth than twisted wire pair.

COBOL—Common Business Oriented Language, one of the earliest high-level languages, developed by the U.S. government for use in business. The language’s most unique feature is that it reads like English.

Collision detection—the ability of a computer network to detect if two or more messages have been placed on the network at the same time.

Command line—in some operating systems, commands can be entered by keyboard as textual commands rather than by using pointing devices and a GUI interface. Linux, Unix, and DOS all have command line interfaces.

Command line editing—a feature of the Bash interpreter that allows the user to edit the current command through a series of keystrokes.

Compatibility—software that can run on multiple platforms.

Competitive multitasking—a form of concurrent process management in which a timer interrupts the CPU to force it to perform a context switch from one process to another.

Compilation—the process of translating a high-level language program into machine language so that it can be executed.

Compiler—a program that translates high-level language programs into machine language. A specific compiler is needed for each language and each platform.

Compression—a means of reducing file sizes. Two forms of compression are lossy compression, in which data is lost in order to reduce the file size, and lossless compression, in which the file is not accessible until it is uncompressed.

Computer—a programmable device that performs the IPOS cycle; computers come in a variety of sizes, capabilities, and costs from supercomputers to handheld devices.

Computer forensics—an area of study (and career) that combines legal knowledge of law enforcement, evidence gathering, and courtroom processes with technical knowledge of computer functionality to support prosecution of computer crimes.

Computer scientist—an area of study (and career) that revolves around software development and software engineering; the field combines programming, computer organization, data structures, programming languages, mathematical concepts related to solvability, project management, and the software life cycle.

Computer security—providing proper mechanisms, physical and software, to ensure the integrity and safety of computer systems.

Computer support—IT support for organization members through training, help desk, and documentation.

Computer technician—an area of study (and career) in which a person understands the electronic nature of computer hardware and can diagnose, repair, and replace such components and assemble and repair computers.

Concurrent processing—a form of process management where multiple processes are active at a time but where the CPU switches off between them.

Condition—a test, used in a program instruction, that evaluates to true or false; conditions are used in selection statements (e.g., if–then, if–then–else) and loops to control the behavior of the program.

Conditional loop—a programming instruction that uses a condition to determine whether to repeat a body of code or exit the loop.

Confidentiality—a feature of information assurance and security that specifies that the information must not be disclosed to anyone other than authorized and legitimate users of that information.

Configuration file—a file that dictates settings to an operating system service. Configuration files are used in Linux so that, when a service is started, it reads its configuration file first.

Context switch—an event that causes the CPU to switch from one process to another.

Control bus—part of the computer bus used to send control information (commands) from the control unit to other devices in the computer, and used for devices to send back status information to the CPU.

Control unit—the portion of the CPU that is in charge of controlling the components within the computer by performing the fetch–execute cycle.

Cooperative multitasking—a form of concurrent process management in which processes can voluntarily give up access to the CPU.

Core dump—a file created in Linux when a program terminates with an abnormal error; the file contains process status information that might be useful in debugging the program.

Counting loop—a programming language instruction that continues to repeat over a set of code based on a starting and ending count value, such as 1 to 10 or 100 down to 1.

CPU—central processing unit, or processor; the component in a computer that executes programs.

CPU cooling unit—a hardware device placed on top of the CPU to keep it from overheating due to power consumption.

Cylinder—a reference to a common location (the same track and sector) across all disk surfaces.

Daemon—a service program in Linux; see service.

Data bus—a part of the bus used to move data (and program instructions) between the CPU and memory and I/O subsystem.

Data mining—a form of data processing that attempts to sift through huge collections of data to discover meaningful information.

Data warehouse—a collection of many databases making up the sum total of data that an organization may have in its holdings.

Database—a way to store data as records and relations, created and manipulated by a database management system; operations include restrictions, projections and joins.

Database administrator—an IT person whose job is to manage the database management system and database(s), and whose duties include software installation, security of data, creation of accounts to access the database, and configuring the database to be accessible over network.

Database server—a program, usually running on a server, that provides clients remote access to a database.

Deadlock—a situation in a concurrent processing operating system where two or more processes are holding on to resources that the other processes need; the result is that none of the processes involved can progress.

Debian Linux—one of the early and most popular distributions of Linux.

Decimal—the base 10 numbering system that most people use, consisting of digits 0–9.

Decision tree—a product of data mining that creates models from a collection of data that people can use to make decisions.

Decode—a step in the fetch–execute cycle where the machine language instruction is decoded into microcode.

Defragmentation—a disk utility that takes disk blocks and moves them closer together on a disk so that disk access becomes more efficient.

Delayed start—a selection by administrators whereby services in the Windows operating systems are started automatically shortly after system initialization time when there is time to start them.

Denial of service—a type of attack on a server whereby so much message traffic is received that the server denies legitimate client requests.

Device driver—a program added to the operating system that lets the computer communicate with a new piece of hardware.

Difference Engine—designed by mathematician Charles Babbage in the early 1800s to perform automated computation of a certain class of math problems; it was never constructed because Babbage abandoned it to design the Analytical Engine.

Digital divide—a phenomenon in our society whereby many in the lower class have limited or no access to computers and the Internet.

Directory—a logical division in a file system used by people to organize and collect their files into related categories.

Disaster recovery plan—a plan to describe the efforts taken to prepare for and recover from a disaster, whether man-made or natural.

DNS—a domain name system translates IP aliases to IP addresses; needed so that users of the Internet do not have to remember IP addresses.

Dot net (.net)—a programming platform developed by Microsoft that permits programs of one .Net language to call upon components written in other .Net languages.

Download—the action of copying a file from a remote computer over a network to a local computer. Alternatively, the file itself is sometimes referred to as a download.

DRAM—dynamic random access memory used to create the main (or primary form of) memory of a computer; it is known as dynamic because the technology used can only retain a charge for a short amount of time before the current is discharged and so it must be continually refreshed. As DRAM is slower than SRAM, modern computers use both SRAM and DRAM.

Dumb terminal—used starting in the third generation, the dumb terminal is an input/output device with no memory or processor, allowing a user to connect to a computer (mainframe or minicomputer) over a network.

EBCDIC—a form of character representation used on IBM mainframe computers; an 8-bit alternative to ASCII.

Else clause—a programming language instruction used in if statements to offer an alternate action.

E-mail server—a computer (or a program) whose job is to collect e-mail messages and let individual users view their messages and send outgoing messages to other servers.

ENIAC—the first general-purpose, electronic computer; first started in 1946, it was a large, expensive, and slow computer by today’s standards.

Environment variable—a variable storing a value that can be accessed by the user or running software, often used when writing Linux scripts.

Equivalence of hardware and software—the idea that any problem that can be solved using a computer program can also be solved by implementing that solution using computer hardware, and any problem that can be solved using computer hardware can also be solved by a computer program.

Ergonomics—the study of how to improve devices, whether computer, furniture, car, or other, to be easier for the human user and have less impact on the person’s health.

Ethernet—a type of local area network technology, introduced in 1980, it became one of the most common forms of local area network.

Executable—a program stored in the computer’s native machine language that can be executed on a computer.

Execute access—one of the levels of file/directory permissions; allows a user to execute the file or change into the directory.

Extranet—an intranet network that is extended to permit access from off-site.

FAT—the file allocation table is used in Windows operating systems to denote the physical location of all file blocks.

Fetch–execute cycle—the main execution cycle of the CPU, it fetches an instruction from memory, decodes the instruction, and executes it. The CPU repeatedly performs this cycle to execute any and all programs.

Fiber optic cable—a medium used for network communication, it carries data as light pulses and is thus faster than any other form of network cable.

Field—attributes that make up the database relation; these are the columns of a relation such as “first name”, “address”, “GPA”, “major”.

File—the logical unit of storage in the file system.

File extraction—removing files and directories from an archive.

File server—a computer dedicated to provide storage access over a network.

File system—the structure of storage for computers; commonly made up of one or more hard disk drives and possibly removable storage devices.

Filename expansion—prior to a command execution, any wildcards are replaced by all matching files; for instance, the * indicates “anything” whereas in Linux, the ? indicates “any 1 character”.

Firewall—software (or a server running software) that prevents malicious attacks over a computer network; the firewall consists of rules to determine what messages should be permitted and which should be rejected.

Firmware—programs stored in hardware (chips); although firmware is more expensive to produce and inflexible as compared to software, it executes faster than software.

Floating point—a representation to store a number with a decimal point (e.g., 123.456) using integers to represent the mantissa and exponent.

Folder—another name for a directory, a logical division in a file system.

Foreground—running processes that can directly interact with the user.

FORTRAN—the earliest high-level programming language, developed in 1958 by IBM, primarily used for mathematical and scientific computation.

Fragment—a leftover piece formed when contiguous allocation is used; fragments can be formed in memory or on disk.

Free software movement—movement created by programmers working on Unix and Linux operating system software so that software being produced would be made freely available in source code form so that others could modify the code and make new code available.

Freeware—a category of software that, although it may have licensing restrictions, is free of charge.

FTP—file transfer protocol, used for file uploading and downloading across a network; predates HTTP and web servers.

FTP server—a computer that hosts files to be transferred using FTP.

Gateway—a broadcast device used to connect different types of networks together so that messages of one protocol can be translated to another protocol.

GHz—abbreviation for “gigahertz” that specifies the frequency of clock “pulses”; 1 GHz is a clock pulse every 1 billionth of a second (1 nanosecond).

GIF—Graphics Interchange Format, a lossless form of image file compression that uses a standard palette of 256 colors.

Globbing—a slang expression used to describe filename expansion in Linux using wildcards.

GNU GPL—the General Public License, a “copyleft” (rather than a copyright) applied to open source software as well as other works so that they can be shared among the open source community. This license not only permits free access to the item, it also permits others to manipulate the item (software, image file, etc.) and share the result for free.

GO TO—a type of program instruction, first used in FORTRAN, to permit a programmer to specify an unconditional branch from any location in the program to any other location; use of GO TO statements leads to spaghetti code.

Grounding strap—a tool used by computer technicians to prevent static charges from damaging circuitry due to a static charge released when a person touches the computer.

Group—a classification used in Linux and Windows whereby users can be given some permission to files.

GUI—graphical user interface is the term given to windowing-based operating systems and programs so that the user can control the software easily through a pointing device rather than command line input.

Hard disk drive—the primary form of storage; the hard disk is sealed within the disk drive, permitting far greater storage capacity over outdated floppy disk drives.

Hard link—a pointer in a file system from the file’s name to the file’s location.

Hardware—the physical components of a computer system which include the system unit and its components (motherboard, fan, disk drives, CPU, memory chips) and peripheral devices.

HCI—human–computer interaction studies how to improve our ability to use a computer—both to reduce strain that might be caused by poorly designed interface devices (such as the keyboard and mouse) and to make interaction more natural, particularly for people who have limited physical movement or disabilities.

Help desk—a call center staffed by IT personnel to help answer user questions.

Hexadecimal—the base 16 numbering system often used to group binary bits together to make it easier to read over binary.

High-level language—a class of computer programming language developed so that programmers would not have to write at the lower levels of machine and assembly languages; high-level languages often use English words and mathematical notation.

Hit rate—the percentage of accesses to a level of the memory hierarchy where the item sought is found there rather than having to move further down the hierarchy.

Horizontal software—software that is used throughout departments of an organization such as productivity software.

Host—a computer on a network that serves as a server or that can be logged into.

Hub—a type of network broadcast device that broadcasts any incoming message to all devices attached to it.

I/O queue—waiting lines, managed by the operating system, for processes that need servicing by an I/O device.

Infinite loop—a logical error in a program where a loop never exits because the loop’s condition is always true.

Information—processed data.

Information asset—a piece of information that an organization values and wishes to protect.

Information Technology—the term used to describe both the computer systems that organizations use to process their information and the information itself; also used to refer to the collective group of people who manage the organization’s IT infrastructure.

Initialization script—a set of instructions run after the operating system has been loaded to bring up services and prepare the computer for use by the user.

inode—the name given to a data structure that stores information about a Linux file; the inode also stores pointers to the file’s blocks.

Input—the process of taking information or data from outside the computer and bringing it into the computer.

Input statement—a programming language instruction that causes the program to pause while input is performed.

Installation—the process of adding new hardware or software to a computer.

Instruction register (IR)—a register in the CPU that stores the current machine language instruction. The IR is used by the control unit to determine what instruction is to be executed and what the data for the instruction are.

Integrated circuit—also known as a chip or IC, a semiconducting electronic device that contains logic gates to perform operations when current flows through them; the IC is used for many parts of modern computers.

Integrity—a feature of information assurance and security that requires that information of the organization be accurate.

Interactivity—the ability of a computer system to have real-time input and output with the user.

Internet—a global wide area computer network connecting billions of people that supports telecommunications, commerce, social networks, and numerous other human endeavors.

Internet addiction—a recent phenomenon, in part brought on by social networks and mobile devices, whereby a person tends to access one or more Internet accounts often (e.g., their Facebook page, their e-mail).

Interpreter—a form of programming language translator that translates one instruction or command immediately upon input into machine language and executes it; the interpreter offers the user a session to work in, unlike a compiler, which translates an entire program into machine language so that the translated program can be used at a later time.

Interrupt—a situation in which a hardware device requires the attention of the CPU so that the fetch–execute cycle must be interrupted, or a situation in which the software itself generates an interrupt because the program requires the attention of the operating system.

Interrupt handler—a part of the operating system set up to handle interrupts; each interrupt handler is designed to handle one type of interrupt (e.g., mouse moved, key pressed, disk drive fault).

Intranet—a type of local area network that uses TCP/IP so that the networked devices can communicate over the Internet.

Intrusion—an attack on a computer system whereby an unauthorized user has been able to log in and/or launch processes; usually intrusions have malicious intent.

IP address—a unique identifier given to each device on the Internet so that messages can be routed to the device; IPv4 addresses are 32 bits (4 octets) and IPv6 addresses are 128 bits.

IP alias—an English-like description of an Internet machine, used because IP addresses are hard to memorize; IP aliases must first be converted into IP addresses before communication can take place.

IPOS Cycle—input, processing, output, and storage, the four activities that all computers perform.

IT manager—an IT person who has an understanding of both the management side of the organization and the IT infrastructure so that the person can manage the IT staff and projects; IT management often requires an advanced business degree.

Iteration—a looping behavior in a program to repeat some section of code.

Iterator loop—a type of programming language instruction that loops over a set of code one time for each item in stored in a list.

Java virtual machine (JVM)—an interpreter that can execute Java byte code; the JVM is built into all web browsers so that Java programs can be executed on any platform.

Join—a database operation that combines two or more database relations together to withdraw data.

JPG—the Joint Photographic Experts Group image format (jpeg or jpg) is a form of lossy image compression most commonly used to reduce the storage size of digitized photographs.

Kernel—the portion of the operating system responsible for managing the computer’s resources (CPU, memory) and execute programs.

Kill (a process)—terminating a running process, usually because the process has stopped responding.

Language translator—a class of programs that translates a computer program from one format to another. The most common types are compilers, interpreters, and assemblers.

Last mile technology—a term that applies to the twisted wire cable that connects houses to the telephone network; as twisted wire offers lower bandwidth, unless households have other forms of media (e.g., coaxial cable, fiber optic cable, satellite), those households are limited to 56 Kbps Internet access.

Linux—an operating system that competes with Windows and MacOS; noteworthy because it (and much of the application software available in Linux) is available for free.

LISP—an early interpreted high-level programming language developed to support artificial intelligence research.

Live CD—an optical disc storing a bootable operating system; many operating systems can only be booted from hard disk.

Load—the operation of reading a datum from memory and moving it into the CPU.

Local area network—a network within one location/site, such as one room, one floor, one building.

Local computer—the computer that the user is on, to differentiate it from a remote computer.

Log file—a file of messages automatically generated from software to record meaningful events that arise during program execution.

Logging—the process of writing information to a log file.

Logical error—a type of error in a program where the logic is incorrect, leading to the program not functioning correctly.

Logon type—the specification of the owner of a Windows service so that it can acquire a certain level of access.

Loop body—in a programming language’s loop, the loop body is the code to be repeated.

Loop index—for counting and iterator loops, a variable is often used to store the value of the iteration, for instance, the count (1 to 10) or the current value in the list.

Lossless compression—a form of compression where data/content is not lost when the file is compressed.

Lossy compression—a form of compression where data/content is purposefully discarded in order to reduce the file’s storage size, resulting in a blurrier image or an audio file that has a more limited range.

MAC address—the Media Access Control address is assigned to network interfaces (e.g., network cards in computers) and used for communication at the lowest level(s) of the network (as opposed to the network addresses used at higher levels like IP addresses).

Machine language—the programming language native to the given processor; a computer can only execute a program written in machine language such that a program written in any other language must be translated first.

Macintosh OS—a GUI operating system; with MacOS X (version 10), the OS sits on top of a Unix-like operating system.

Magnetic core memory—form of main memory used in the second generation of computers, composed of small, iron rings (cores), each of which would store 1 bit; 1 MB of magnetic core memory could cost up to $1 million in the early 1960s.

Mainframe—primary form of commercially marketed computers from the 1950s through the 1980s, these computers are expensive but powerful, supporting hundreds to thousands of users; have largely been replaced by personal computers and servers since the 1990s.

Malware—a class of software that has malicious intent; includes Trojan horses, viruses, worms, and spyware.

Megaflops—millions of floating point operations per second, a rate used to express the performance of a processor on programs that contain floating point computations.

Memory—hardware used to store program code and data; there are many forms of memory that make up the memory hierarchy.

Memory chips—memory stored in integrated circuits that are plugged into the motherboard of a computer.

Memory hierarchy—the organization of the different types of memory (registers, cache, main memory, swap space, hard disk file system, removable storage) such that the higher forms of memory are faster but more expensive and so there is less of it in the typical computer system.

Memory management—an operating system task to handle memory accesses of running processes, typically composed of virtual memory mapping, swapping, and the prevention of memory violations.

Memory violation—a situation in which a process requests access to memory owned by another process; if not prevented, a memory violation could corrupt the memory owned by another process, and therefore memory violations usually lead to run-time errors and termination of the process that causes the violation.

Mesh network—a topology of computer network in which all resources have a direct connection with all other resources. Although this presents an optimal means of communication, it is prohibitively expensive.

Metacharacters—characters used in regular expressions to describe how to interpret literal characters; metacharacters can express such notions as “1 or more instances of” or “match any character in the given list”.

Microcomputer—a class of computers whose CPU is built using a microprocessor so that the computer can be relatively small in size; all personal computers and laptop computers are of this category.

Microprocessor—a CPU placed entirely on one chip; the earliest microprocessor was the Intel 4004, released in 1971.

Minicomputer—a category of computer, the minicomputer is a scaled-back mainframe. It has less power and fewer resources to keep the cost down.

Minix—a Unix-like operating system developed by Andrew Tanenbaum to accompany an operating system textbook and used in college courses.

MIPS—millions of instructions per second, a rate used to express the performance of a processor when executing an integer-based program.

MODEM—a piece of hardware used to convert digital information to an analog form to be broadcast over the telephone network, and to convert received analog messages back to digital; MODEM stands for MOdulation and DEModulation.

Motherboard—the printed circuit board that houses the CPU, memory chips, and expansion cards in any computer.

Mount point—the physical location in a file system where a partition is added.

Mounting—the process of adding a partition to a file system.

MS-DOS—Microsoft Disk Operating System, the original IBM PC operating system; it is text-based and single tasking.

Multiprocessing—a form of processing in which there are multiple processors (CPUs) to execute multiple processes simultaneously.

Multiprogramming—a form of concurrent processing in which the CPU switches off between processes whenever one process surrenders the CPU either because it needs to perform time-consuming I/O, is waiting for an event to happen, or is of lower priority than other waiting processes; also known as cooperative multitasking.

Multitasking—a form of concurrent processing in which the CPU switches off between processes; the two forms are competitive multitasking and cooperative multitasking.

Multithreading—a form of concurrent processing in which the CPU switches off between both processes and threads.

Mutually exclusive—a restriction placed on processes when attempting to access a shared resource in a computer system; access of the resource must be wholly performed by one process at a time to ensure that the shared resource is not corrupted in case one process is interrupted mid-access and another process is then given access.

Nearest neighbor—a form of computer network topology in which each computer connects only to the nearest computers/resources near it; nearest neighbor can be one-, two-, three-, or four-dimensional.

Netmask—a sequence of binary bits applied to an IP address using the AND operation to return a portion of the IP address that either matches the resource’s network address or the address of the resource on the network.

Network—a collection of computers and resources connected by various media so that they can communicate with each other.

Network address translation (NAT)—a process of converting an external address into an internal local area network address; the many-to-one variation of NAT permits an organization to have a single external IP address but multiple internal addresses.

Network administrator—a role in IT whereby a person (or people) is responsible for installation, configuration, maintenance, securing, and troubleshooting of the computer network.

Network handshake—in network communication, the sending device must establish a connection with the recipient through a two-way or three-way handshake.

Network topology—a way to categorize the structure of a network.

NFS—the network file system, often used in local area networks for Unix and Linux machines.

Non-volatile memory—a form of memory that does not require a constant power supply to retain its contents; both read-only memory (ROM) and solid state memory (e.g., flash drives) are of this form.

Obscenity—a piece of information (image, communication, video, etc.) found to be unacceptable by a community because it violates that community’s acceptable standards; obscenity is a concern of IT in that content may need to be blocked to protect some members of the community (particularly children).

Octal—the base 8 numbering system which uses digits 0–7 and is often used in place of binary because it is somewhat easier to read.

Octet—a portion of an IPv4 address equivalent to 8 bits or a single number from 0 to 255.

Off-chip cache—added SRAM in a computer because the on-chip cache must be limited due to space restrictions on the CPU.

OLAP—online analytical processing, used in business to analyze large collections of data for decision making.

On-chip cache—small SRAM placed on the CPU to help support fast memory access.

Open architecture—publishing the details of a computer architecture to make it available to others; IBM did this with the IBM PC, which resulted in many compatible computers (clones).

Open source—software that is made available as source code.

Open source initiative—to support Unix and later Linux, a number of early programmers were willing to make their code available as open source and for free.

OSI—the open systems interconnections network model, a seven-layer model, often used when developing new computer networks.

Output—taking computer processed results and delivering them to the outside world; common forms of output are displayed via the monitor, printed output, and audio over speakers.

Output statement—an instruction that will deliver output to an output device (or stored to a file).

Owner—the user who has full access and authority to a resource.

Package manager program—a program that allows a user to easily install, uninstall, or upgrade software packages.

Packet—the unit of information to be transmitted over the Internet.

Packet switching—a type of network routing in which a packet sent over the network finds its way en route, rather than having a pre-established route.

Page—a piece of an executable program; used to support virtual memory; a page is loaded from swap space into a free frame in memory upon demand.

Page fault—a situation where the address generated by the CPU is of a page that is not currently in memory and so must be swapped into memory from swap space by the operating system.

Page table—mapping information so that a CPU address, which specifies locations by page number, can be converted into a physical memory address, specified by frame number.

Parameter—a piece of information passed from one program routine (procedure, function, method) to another.

Parent process—a process that starts (spawns) another process.

Parity—the evenness or oddness of a value, used for error detection and correction.

Parity bit—a simple form of error detection that is an added bit to a byte such that the 9 bits contain an even number of 1s.

Partition—divisions of the file system such that each partition can be handled independently of others; for instance, one partition can be removed to perform a backup without impacting the other partitions.

Password—a mechanism used in operating systems to authenticate users.

Patch—a software update released to fix bugs or security flaws.

PATH variable—an operating system environment variable that stores directories that should be searched whenever any instruction or file name is entered at the command line prompt.

Peer-to-peer network—a type of network in which all computers are roughly equivalent peers (i.e., there is no server in the network).

Peripheral—a hardware device connected to the computer outside of the system unit.

Permission—a means of allowing users to control who can access their resources (files, directories). Permissions are usually limited to read, write, and execute.

Phishing—a means of obtaining secure information from a computer user by tricking the user through a fraudulent e-mail or website.

PID—process ID, a unique identifier assigned to each executing process.

Ping—a network program that allows one to determine if a network resource is responding.

Pixel—picture element, the smallest part of an image as stored by a computer.

Platter—one disk within a hard disk drive.

Port—a portion of a network address used to specify the intended application that should handle the message.

Portability—the capability of software to be run on multiple platforms.

Priority—as used in scheduling processes, the higher the process’ priority, the sooner the CPU will get to it.

Private key—the key used to decrypt messages and must be kept secure.

Private key encryption—symmetric encryption in which one key (the private key) is used to both encrypt and decrypt messages.

Process—a program that is in some state of execution.

Process management—the operating system task of running processes on the computer; two basic categories are single tasking (which includes batch processing) and concurrent tasking (which includes multiprogramming, multitasking, and multithreading).

Process status—the current execution status of a process, commonly one of waiting, ready, running, suspended, or terminated.

Process tree—the relationships between parent and child processes.

Processing—executing programs.

Processor—also known as the central processing unit or CPU, the hardware device responsible for processing (executing) programs.

Productivity software—the category of software that contains the types of software found useful for most individuals and companies: word processing, spreadsheet software, database management system software, presentation graphics software.

Program—a listing of instructions that the computer is to execute to accomplish a task.

Program counter (PC)—a register in the CPU storing the location in memory of the next program instruction.

Projection—a database operation to retrieve specified fields of all records in a relation.

Proprietary software—programs that are sold. Purchasing the software does not give you ownership, just the right to use the software.

Protection—an operating system task that ensures that a user or a user’s process does not incorrectly use system resources.

Protocol—rules for communication, commonly referred to as how an operating system packages up (or unpackages) a message to be sent over a network.

Protocol attack—a type of network attack that exploits a weakness in the network protocol.

Proxy server—a type of program used by organizations so that recently accessed web pages are cached for efficiency. The proxy server can also be used to filter content.

Public domain software—a category of software that is freely available to use any way you wish.

Public key—the key used to encrypt messages in public key encryption; the public key can be made available to anyone as it cannot be used to decrypt messages.

Public key encryption—an asymmetric form of encryption using two keys, a public key for encryption and a private key for decryption.

Query—a command sent to a database to retrieve, insert, delete, or modify records.

Queue—a waiting line, used in operating systems to organize waiting processes.

RAID—redundant array of independent (or inexpensive) disks, a form of storage used to ensure that data are reliably stored; extra disks are used to provide the opportunity for multiple disk accesses at a time and for storing redundancy (error correction) information.

Read—a type of programming language instruction that accepts input from the user.

Read access—the ability to read (input) a file.

Read/write head—the mechanism in a disk drive that reads and writes magnetic information from and onto the surface of the disk.

Ready queue—the waiting line in the operating system that stores the processes that the CPU is currently switching off between.

Record—a row in a database relation pertaining to an individual (e.g., a customer, a student, a piece of inventory).

Recovery—the amount of time that the Windows operating system should wait before attempting to restart a service that has stopped working.

Red Hat Linux—a distribution or dialect of Linux, one of the most popular (along with Debian).

Redundancy—a means of ensuring data availability and integrity by adding extra data in the form of either an exact duplicate of the file (a mirror), or error detection and correction information through Hamming code bits or parity bits.

Register—temporary storage in the CPU used to store data or to support the fetch–execute cycle.

Regular expressions—a means of expressing a search pattern in strings.

Relation—a table in a database, consisting of records and fields.

Relational database—a database that stores relations; the most popular format of database.

Relative path—a specification of a file or directory as indicated from the current directory.

Remote access—the ability to access a computer over a network.

Remote computer—the computer being accessed over the network.

Rendezvous—through synchronization, this is a situation in which one process (or thread) must wait for another to produce a result.

Repetitive stress injuries—a class of injury that arises from performing a repetitive motion over and over in such a way that it damages some part of the body.

Resident monitor—the earliest form of operating system, it remained resident in memory to start new processes and handle user I/O requests.

Resource management—a task of the operating system to allocate and deallocate system resources from program requests.

Resources—components of a computer system including disk access, file access, network access, and memory access.

Restriction—a type of database operation to retrieve records that match given criteria.

Ring network—a computer network topology in which all computers are connected to their nearest two neighbors so that messages must be transmitted from component to component around the ring until the destination is reached; this is a cheap but not very efficient topology.

Risk assessment—a step in risk management where the organization specifically focuses on the risks and vulnerabilities of their assets.

Risk management—a process that most organizations will undergo to determine their threats and vulnerabilities, critical to ensuring information assurance and security.

Root—the name given to the Linux/Unix system administrator(s); also the name given to the top-most point in the Unix/Linux file system (/).

Rotational delay—the time it takes for the proper disk sector to rotate underneath the read/write head as the disk spins (also known as rotational latency).

Round-robin scheduling—the scheduling algorithm used in multitasking whereby the processes in the ready queue are rotated through one at a time, moving to the front of the queue after visiting the last process in the queue.

Router—a network broadcast device that takes the destination address of a message to select a network to pass the message on to.

Routing—the process of a router moving a message onto the appropriate network.

Runlevel (Linux)—the start level used in Linux to select which services should be started or stopped at system initialization time.

Run-time error—an error in a computer program that arises during program execution, typically causing the program to terminate abnormally.

Scheduling—an operating system task that places waiting processes in the order that the processor will execute them.

Script—a small, interpreted program often used to automate simple tasks.

Scripting language—a class of interpreted programming language used to write script programs.

Sector—a region on a disk surface used for addressing.

Security—an operating system task that extends resource permission across networks to ensure that people who remotely access the computer are authorized to do so.

Seek time—the time it takes to relocate the read/write head to the proper track of a hard disk.

Selection statement—a type of programming language instruction that, based on a condition, takes one of two (or more) paths through the code.

SELinux—security enhanced Linux offers a different mechanism for permissions by using access control lists.

Semantic web—extending the World Wide Web to include automated reasonsers so that the knowledge can be more readily processed by computer rather than human.

Server—a stand-alone computer (and the software it runs) that provides a service for remote users; examples include file server, web server, and e-mail server.

Service—a program that runs in the background of an operating system, responding to requests from users and software alike.

Shareware—a category of free software with restrictions placed on the usage of the software such as a limited number of uses or a time limit that, once exceeded, causes the software to be unusable; typically made available to entice the user to buy the full version.

Shell—an environment in an operating system like Linux/Unix, controlled by an interpreter, in which the user has a session.

Shortcut icon—a soft link in Windows to permit easy access to starting programs.

Shut down—the process of stopping the operating system and shutting down the hardware. The process is useful in that it ensures that all files are closed to avoid file corruption problems.

Single tasking—a form of process management in which the operating system only allows one program to execute at a time from start to completion.

Sleeping—when a process (or thread) moves itself to a waiting queue to await some situation such as a rendezvous with another process (or thread) or for a specified time interval.

Social engineering—the effort of a person to obtain confidential information from a user by posing as a person in authority, such as calling someone at home, claiming to be from IT and requesting the person’s password.

Soft Link—a pointer used in a file system to point from a filename to another filename; in Linux, these are called symbolic links, and in Windows, these are called shortcut icons.

Soft skills—skills that employers often seek in employees that are not technical in nature. The most useful forms of soft skills revolve around the ability to communicate (speaking, listening and writing skills).

Software—the name we give to computer programs to differentiate them from hardware.

Software engineering—the field of software development, often made up of people who have computer science degrees.

Software exploit—a known security flaw in some software used to attack a computer system or network.

Software release—a major distribution of a piece of software that has new features (perhaps a new look) and has resolved problems of older distributions of the software.

Source code—a program written in a high-level language; the program must be translated into machine language before it can be executed on a computer.

Spaghetti code—the result of using unconditional branches such as GO TO statements in a program so that tracing through the program begins to look like a pile of spaghetti.

Spawn—an event where one process starts another process; the original process is often called the parent and the spawned process is called the child.

Spindle—a motorized cylinder that rotates all hard disk platters at the same time.

SQL injection—an attack on a website where the attacker enters an SQL command as part of a URL (or part of a web form) in an attempt to access the backend database.

SRAM—static RAM, a fast form of memory used to build registers and cache.

Star network—a computer network topology in which all resources in the network connect to a central server. Today, that server is usually a network hub or switch.

Startup level—the level that a service should be started as in Windows, which provides the service with a set of access rights.

Status flags (SF)—a register in the CPU that stores results of the most recent arithmetic or logic operation such as “positive”, “negative”, “zero”, “carry out”, “overflow”, and “interrupt”.

Storage—long-term memory used for permanence, unlike main memory, which is volatile; storage devices include the hard disk, flash memory, and optical disk.

Storage capacity—the amount that can be stored on the given device.

Store—a CPU operation of taking a result stored in a register and copying it into memory.

Strong password—the requirement that passwords meet certain restrictions such as at least 8 characters in length and a combination of upper- and lower-case letters and non-letters; these restrictions make passwords much harder to crack.

Subroutine—a piece of a larger program that solves a specific subproblem, invoked from the main program or another subroutine via a subroutine call; subroutines are often named functions, procedures, or methods depending on the language.

Suspended—a process that has voluntarily stopped processing for the time being; also, in Linux, a process is suspended when the user types control+z in the shell running the process.

Swap space—an area of the hard disk reserved to store program pages as an extension to main memory; swap space supports virtual memory.

Swapping—the process whereby the operating system moves pages between swap space and memory.

Symmetric key encryption—a form of encryption that uses a single, private key for both encryption and decryption.

Synchronization—a requirement in operating systems whereby two or more processes that share some common resource must access that resource one at a time.

Syntax error—an error in a program that is a misuse of the syntax of the language; syntax errors are usually caught at compile time by the compiler.

System administrator—a person in charge of administering a computer system or a collection of computer systems.

System software—software that supports the use of the computer system; in other words, the operating system and other supporting software.

System unit—the main cabinet in which the primary components of a desktop computer are housed including the motherboard, the hard disk and optical disk, a power supply unit, and one (or more) fan(s).

Tab completion—an editing feature of the Bash shell in Linux in which the user can type part of a file name and press the <tab> key and the interpreter will attempt to complete the file’s name.

Task manager—a Windows utility that allows the user to control running applications, processes, and services.

TCP/IP—a pair of protocols (TCP and IP) used by all computers on the Internet.

Then clause—the portion of an if–then or if–then–else statement that executes when the condition is true.

Thread—an instance of a process that shares the same process code with other running instances; each thread has its own data.

Timer—a hardware device in a computer used to count clock cycles so that the CPU can be interrupted to force a context switch to another process; used in multitasking/multithreading.

Track—a subdivision of a disk surface for addressing; essentially, tracks are concentric rings.

Transfer time—the time it takes for the operating system to move a block of information between memory and a storage device.

Transmission media—the physical connection between components in a network; the most common forms are twisted wire pair, coaxial cable, and fiber optic although wireless uses radio signals.

Tree topology—a nearest-neighbor form of computer network organization where resources are arranged hierarchically.

Twisted wire pair—a form of transmission media used in computer networks and telecommunications; it is cheap but has low bandwidth.

Two’s complement—a binary representation that can store positive and negative integers.

Type mismatch—a syntax error in which a program instruction attempts to place the wrong type of value in a variable, such as attempting to put a real number into an integer.

Ubuntu Linux—a popular distribution platform of Linux based on Debian Linux.

UDP—a protocol used in place of TCP when packet delivery is less important than speed of delivery.

Unconditional branch—a form of program instruction that branches to another location in a program; in FORTRAN, these types of instructions are called GO TO statements.

Unicode—an extension of the ASCII character representation set from 7 bits to 16 bits.

Unix—a popular operating system for mainframe computers developed starting in the late 1960s, it eventually became a model for Linux. Unix and Linux developers are often part of the open source community.

Upgrade—a minor release in software to fix known problems including security holes.

User—a person who uses a computer. Typically, a user is given a user account.

User account—a collection of access rights and login information for a user.

User name—the name associated with a user account.

User interface—the means by which a user interacts with the computer hardware and software. The common two forms of interface are the command line and the graphical user interface (GUI).

Utility program—a piece of system software that the user might decide to run from time to time to help manage some aspect of the system.

Vacuum tube—a hardware component used in first-generation computers used as part of the computer’s computational unit; vacuum tubes had short shelf lives such that first generation computers were not very reliable.

Variable declaration—specifying the name and type of a variable in a program; many programming languages require a variable declaration before the variable can be used.

Vertical software—software used within a specific division of an organization or by a single profession.

Virtual machine—an illusionary computer that is stored in computer memory and made available by software in order to permit a computer user to use multiple computers and multiple platforms without the expense of purchasing multiple computers.

Virtual memory—the extension of main memory onto swap space so that the user can run more programs than would normally fit in memory.

Virtual private network—a local area network that permits secure remote access through an authentication mechanism.

Virtual reality—a combination of software and I/O devices that give a user the illusion of being in a world created by the software; often used to control devices remotely and to explore locations that might be too remote or dangerous to reach.

Visual programming—a form of programming in which GUI components are added to software through a “drag-and-drop” approach.

Volatile memory—memory that requires electrical power to retain its contents; if power is turned off, the contents disappear from memory.

Waiting—a process that is not in the ready queue because it is either waiting on I/O to complete, suspended, or waiting for a rendezvous.

Waiting queue—a waiting line for processes in a waiting state.

Wearable—a newer form of I/O device in which the interface device is something that a person would wear on their body.

Web developer—a person hired to build web pages and web sites through the use of html, css, and a variety of scripting languages.

Web server—a hardware device that stores an organization’s web site, or the software that provides the service of responding to HTTP requests from clients.

Website administrator—a person in charge of administering, configuring, installing, monitoring, and troubleshooting the hardware and software of a web server.

White space—spaces, tab keys, and return keys in a program that are placed there to make the program more readable, but are ignored by the compiler.

Wide area network—a type of computer network that is distributed across a large geographical area.

Windows—a common platform of operating system, introduced in the mid-1980s.

Windows installer—a program that allows a user in the Windows operating system to easily install new software.

Word—the storage size of the common datum in a computer. Today, typical word sizes are 32 or 64 bits.

Write—the ability to store something to a file.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.97.216