School in a Book: Computer Science

Computer science just isn’t a specialty anymore. Most companies create and/or manage several websites and computer programs, meaning that if you want to be successful in business, it’s helpful to understand these common terms.

How a computer works: When the computer is turned on, some of the microchips in the hard drive start the computer, then pass the control over to the boot loader. The boot loader initializes the hardware, loading the first sector of the hard drive to the memory. After this, it loads the operating system, the kernel, the computer settings and the shell. The shell presents the login screen to the user. After the user logs in, the operating system tells the driver to start talking to the hardware. After the user opens a program, the driver detects the clicks and talks to the kernel. The kernel then passes the information to the shell. The shell interprets it, then communicates it to the program. Finally, the program interprets it and the program is launched. The program loads the needed threads and processes into the RAM. Threads are run and interrupted on a regular basis according to how many time slices they’re allotted. The system clock tells the operating system when to stop each process, which is done after each time slice, no matter what. Each time this happens the OS checks to see if the program’s time is up or if it has more. It adjusts priorities and may switch to a different process. This activity is done in kernel mode, a mode in which the program isn’t allowed to control anything. After this, the operating system switches back to user mode and gives control back to the program. Computers running with multiple CPUs must share the kernel between them. Mistakes in this management can lead to crashes.

ESSENTIAL KNOWLEDGE: COMPUTER SCIENCE

Parts of a computer: Hard drive; memory storage; input/output unit; CPU; monitor; operating system (OS); software applications

Hardware: The physical components of a computer, such as the input/output unit and the monitor

Software: A set of instructions to be executed on a computer, usually with a particular use. These are also called applications or programs.

Hard drive: The physical place in the computer in which memory is located

Central processing unit (CPU): The place in the computer that loads instructions from memory, parses them, then executes them

The shell: The OS’s user interface; the part of the OS that the user sees and interacts with

Internal memory: Applications, programs and other data and instructions located within a computer, including ROM and RAM

External memory: Applications, programs and other data and instructions located on external hard drives, USB keys, etc.

Virtual memory: located in the internal memory but is made up of addresses that point elsewhere in the memory for the purposes of convenience and security.

RAM: fast copied temporary memory located on the hard drive disc or in microchips which is lost when the computer is shut down

ROM: long-term stored read-only memory, usually unalterable, containing system-level instructions

Operating system (OS): The software that runs all the basic operations of the computer; provides a secure, reliable environment for programs to run on; and grants programs access to inputs, outputs, memory, system software like drivers, and networking features. It also schedules processes when more than one application competes for time on the CPU. It contains a system clock; a file system; a user interfaced called the API that includes a set of calls or methods app programmers use to interact with the OS; and more.

Windows: The operating system Microsoft computers use

OSX: The operating system Apple computers use

Linux: A popular open-source operating system

Executable file (.exe): A file that talks to the operating system

The kernel: The part of a Windows computer that loads drivers, handles hardware, enforces security, enables network communication–anything the application needs permission to do, even just opening MS Office. (Accessing memory is not included in this.)

Service: A background process run by the OS. (Example: system clock, firewall, window update checks.)

Kernel mode: The mode an application goes into when it is accessing the computer’s kernel. A program can only go into kernel mode when allowed and only run the kernel code, not its own code at all.

User mode: App mode in which the OS can be accessed through an app can switch back and forth from kernel to user frequently.

Boot loader: The software program that the hard drive passes the control to right after starting the computer. It loads the fist sector of the hard drive to memory and passes control to it.

Native system services/executive system services: OS services that are callable from user mode

Kernel support functional routines: Subroutines inside the OS that are callable only from kernel mode

Computer architecture: The way the parts of a computer interact with each other, including which parts of the memory are able to communicate with which other parts and in which order. There are many different working computer architectures.

Virtual machine: A remotely located package of software that presents itself to the local machine as a complete separate machine. Virtual machines are highly convenient for purposes of testing code, working on a networked machine with network privileges, and on other occasions when a second or different computer/operating system package is needed.

Database: An organized collection of data, usually stored electronically. If available on the Internet, it can be accessed through servers.

Cookie: A small text file with various fields that is stored in the web browser and/or on the client’s computers. Normally, it is used to manage a session (keeping a user logged in across multiple pages, etc.).

Session: All of the applications running on a single user ID between login and logout

Programming language: A set of standardized rules for coding that results in functional source code. There are many programming languages, including C# and C++.

Source code: The human-readable instructions that make up a software program, which are written in a standard programming language

Script: A language that is Internet-appropriate, like JavaScript

Binary code: A language made up entirely of 0s and 1s, which are the only units a computer can directly work with (execute on its CPU). These true/false or 1/0 binary choices are also called boolean expressions. All other programming languages are made into source code, then finally parsed (interpreted by the computer) as binary code by a compiler. This is also called machine language or machine code.

Bit: The basic unit of information in computing, expressed as either a 0 or a 1

Byte: A unit of 8 bits

Kilobyte: A unit of 1,024 bytes

Megabyte: A unit of 1,024 kilobytes

Gigabyte: A unit of 1,024 megabytes

Terabyte: A unit of 1,024 gigabytes

Command: A computer instruction. Many put together make up an algorithm.

Algorithm: A complex logic-based instruction set that plays a specific role in a computer program

Computer code: The set of instructions forming a computer program that is read and carried out by a computer, which is used in turn to make up computer programs

Procedure: A reusable block of code that performs a specific task in a program. It might be part of an object in object-oriented programming and is also called a function or a subroutine.

Thread: A single sequence of instructions that can be executed independently within a program and that together make up processes, which together make up programs

Multi-threading: Running more than one process simultaneously in the same program using a single CPU, which schedules these processes to occur successively but seamlessly

Object-oriented programming: A way of designing software by making reusable data objects (files, data units, independent procedures or a procedure/data object that perform a particular function) that interact with one another

Pointer: An object that contains the address of each piece of memory

The leap section: The place in memory that stores dynamically allocated variables needed by a program

The stack section: The place in memory that store info in stacks, with the lowest addresses (oldest) on bottom, like cafeteria trays

Buffer: A place in memory that receives and holds data until it can be handled by requested processes. Each process can have its own set of buffers. Each buffer has a predetermined length and data type

Bug: Any kind of error in a software program. It may cause a program to unexpectedly quit, to be vulnerable to attack, or to work improperly.

Debugging: The process of removing computer program bugs

Testing: Reviewing programs to find bugs and other problems

Crash dump: A record of a program’s slate system memory at the time of a crash. It can be analyzed to figure out why it occurred.

Deadlock: A conflict of needs and allocations that stops all computing

Network: A group of computers that talk to each other and share resources through one or more shared computers called servers

Virtual private network (VPN): A type of computer network that allows users to connect to remotely

Local area network (LAN): A type of computer network that is smaller than a wide area network and that includes WiFi and ethernet

Wide area network (WAN): A type of computer network that is larger than a local area network and that includes the Internet

Server: A computer that provides information to other computers or allows other computers to connect to each other, usually remotely over the Internet or in a smaller computer network.

Clients: The individual computers that the server talks to. Some computers have both a client side and a server side.

Proxy server: A backup server used on corporate networks to protect against web attacks

Domain controller: The main server in a group of servers

Administrator: The manager of a domain (or any group of users)

Internet: The global collection of computer networks and their connections, all using shared protocols to communicate

Internet 2: A second, higher-speed Internet that is used to send very large files, such as research data between universities

Protocol: Rules to standardize processes in networks. They are used on both the sending and the receiving ends of the communication.

HTTP (Hypertext Transfer Protocol): The set of rules for transferring files (text, graphic images, sound, video, and other multimedia files) on the Internet.

HTTPS (Hypertext Transfer Protocol Secure): HTTP, but with encryption

Uniform Resource Locator (URL): An internet address that is used by the browser to look up the IP address of the server and the server’s name so that it can talk to that server and retrieve the page’s HTML

Packet: A small chunk of information that has been carefully formed from larger chunks of information in order to more efficiently communicate over a network. If not encrypted, they are vulnerable to capture. They might be distributed over multiple routers according to which is currently available.

Router: A machine that captures and sends on data packets. Most internet communications require many routers along the way.

Switch: A smart hub/router that connects network segments, thereby routing packets more efficiently

Modem: A router used on a small scale, as between private homes or small networks

Bandwidth: The maximum rate of data transfer across a given path

Cyber security: Practices that mitigate internet exploits, including Web development and application development practices

Computer vulnerability: A mistake or oversight in computer code that exposes the program to attack

Computer exploit: An attack on a local computer or many local computers that either damages it or allows the attacker to make use of it in any way without permission. The three most common types are exploitation of browser vulnerabilities, exploitation of email application vulnerabilities, and social engineering exploits.

Firewall: A network device used to prevent unauthorized incoming traffic. It is usually located between a private network and a link to the internet.

Social engineering: Gaining compromising information by exploiting human vulnerabilities, such as tricking people into sharing sensitive information

Encryption: The process of converting plaintext or readable data into an encoded form called ciphertext, which is not easily understandable without the decryption key. It is a security technique used to protect sensitive information from unauthorized access or interception, ensuring confidentiality and data integrity.

Cryptography: The process of encrypting plain text messages that are then sent and unencrypted on the receiving end with the use of a text key

Piracy: The illegal copying, distribution, or use of software

Direct memory access: Writing directly to RAM without going through the hard drive, as when a network file system is doing a transfer, over the internet

Active directory: A directory service that contains a database that stores security info about objects in a domain, inc users, computers, security IDs, etc.

Hacking: Using a computer to gain unauthorized access to data. The term is also sometimes used for creative problem-solving in coding.

Black hat hacking: The unauthorized and malicious activities carried out by individuals or groups with the intent to exploit computer systems, networks, or software for personal gain, disruption, or other harmful purposes

White hat hacking: Ethical hacking or penetration testing, involves authorized and legal activities performed by cybersecurity professionals to identify vulnerabilities and weaknesses in computer systems, networks, or applications

***

Babies come. But babies don't go. Get Fights You’ll Have After Having a Baby: A Self-Help Story on Amazon now.

***

COMMENTS