Disclaimer: The content of this page is generated by GitHub copilot.
Computer Systems
Processor
Processor is the brain of the computer. It is the part that executes instructions. It is the part that does the work.
CPU
CPU is the central processing unit of a computer. It is the part of the computer that executes instructions. It is the brain of the computer.
CPU clock
The CPU clock is the rate at which the CPU executes instructions. It is measured in Hertz (Hz). The CPU clock is the number of cycles per second. The CPU clock is also known as the CPU frequency. The CPU clock is also known as the CPU speed. CPU clock is measured in GHz (GigaHertz). 1 GHz = 1 billion cycles per second.
Modern CPUs have a clock speed from 1 GHz to 5 GHz.
CPU cache
CPU cache is a small amount of fast memory that is built into the CPU. CPU cache is used to store data that is frequently used. CPU cache is used to speed up the CPU. CPU cache is used to reduce the number of times the CPU has to access the main memory.
CPU core
CPU core is the part of the CPU that executes instructions. CPU core is the part of the CPU that does the work. CPU core is the part of the CPU that does the calculations.
Modern CPUs can have from 1 to even 64 CPU cores.
CPU architecture
CPU architecture is the design of the CPU.
CPU architecture types
There are 3 main types of CPU architectures:
- CISC (Complex Instruction Set Computer)
- RISC (Reduced Instruction Set Computer)
- EPIC (Extremely Parallel Instruction Computer)
Main RISC architectures: - ARM (Advanced RISC Machine)
Main CISC architectures: - x86 (Intel) / x64 (AMD)
Main EPIC architectures: - Cell (Sony) - Itanium (Intel)
CPU instruction
CPU instruction is a command that is executed by the CPU. CPU instruction is a command that is executed by the CPU core. CPU instruction is a command that is executed by the CPU architecture.
Instruction
An instruction is a command that tells the processor what to do. It is a sequence of bits that is interpreted by the processor. It is stored in memory. It is divided into two parts: opcode and operands.
Opcode
Opcode is the part of the instruction that tells the processor what to do. It is a sequence of bits that is interpreted by the processor.
Operands
Operands are the parts of the instruction that tell the processor what to do with. They are a sequence of bits that is interpreted by the processor.
Common CPU instructions:
- add - adds two numbers
- sub - subtracts two numbers
- mul - multiplies two numbers
- div - divides two numbers
- mov - moves data from one place to another
- cmp - compares two numbers
- jmp - jumps to a different location in the program
- call - calls a function
- ret - returns from a function
- push - pushes data to the stack
- pop - pops data from the stack
Units of CPU
CPU is divided into 3 main units:
- ALU (Arithmetic Logic Unit)
- CU (Control Unit)
- Registers
Registers
Registers are used to store data and instructions. They are faster than memory.
Arithmetic Logic Unit
The ALU is the part of the processor that performs arithmetic and logical operations.
Memory and instructions
Memory is divided into two parts: RAM and ROM. RAM is volatile, meaning that it loses its contents when the power is turned off. ROM is non-volatile, meaning that it retains its contents when the power is turned off.
RAM
RAM is divided into two parts: registers and main memory. Registers are small, fast, and expensive. Main memory is large, slow, and cheap.
ROM
ROM is divided into two parts: read-only memory and programmable read-only memory. Read-only memory is used to store the BIOS. Programmable read-only memory is used to store the operating system.
Cache
Cache is a small, fast memory that is used to store recently used data and instructions.
L1 cache is the fastest cache, but it is also the smallest. Estimated size is 32-64 kilobytes. L2 cache is slower than L1 cache, but it is larger. Estimated size is 256 kilobytes to 2 megabytes. L3 cache is the slowest cache, but it is the largest. Estimated size is 4 megabytes to 32 megabytes.
Other parts of the computer
- Motherboard - connects all the parts of the computer together
- Sound card - used to play sound, usually part of the motherboard
- Network card - used to connect to the network, usually part of the motherboard
- Graphics card - used to display graphics
- Parts of the graphics card:
- GPU (Graphics Processing Unit)
- VRAM (Video RAM)
- Parts of the graphics card:
- Storage
- Hard drive - used to store data
- SSD - used to store data, faster than hard drive.
- SATA - used to connect SSD to the motherboard. SATA 3 is the fastest.
- NVMe - used to connect SSD to the motherboard. Faster than SATA. Writing speed can be up to 7000 MB/s.
- Power supply - provides power to the computer
- Cooling - keeps the computer cool.
- Case - protects the computer
Busses
Busses are used to connect the processor to the memory. There are three types of busses: address bus, data bus, and control bus.
Address Bus
The address bus is used to send the address of the memory location to the memory.
Data Bus
The data bus is used to send the data to the memory.
Control Bus
The control bus is used to send control signals to the memory.
PCI Express
PCI Express is a bus that is used to connect devices to the motherboard. PCI Express 4.0 x16 is the fastest with a bandwidth of 32 GB/s.
Devices and Connections
Devices are connected to the computer through ports. There are two types of ports: input and output.
Input Ports
Input ports are used to send data to the computer. Examples of input ports are the keyboard and the mouse.
Output Ports
Output ports are used to send data from the computer. Examples of output ports are the monitor and the printer.
Operating System
Operating system is the software that manages the hardware and software resources of a computer.
Kernel
Kernel is the core of the operating system. It is the part of the operating system that manages the hardware and software resources of a computer. It is the brain of the operating system.
Level 0
Level 0 is the lowest level of the operating system. It is the part of the operating system that manages the hardware and software resources of a computer. It is the brain of the operating system.
File System
File system is used to store files. It is divided into two parts: file and directory. File is used to store data. Directory is used to store files and directories. It is divided into two parts: current directory and parent directory. Current directory is used to store the current directory. Parent directory is used to store the parent directory.
Security
Security is used to protect the computer from unauthorized access. It is divided into two parts: authentication and authorization. Authentication is used to verify the identity of the user. Authorization is used to verify the permissions of the user.
Firewall
Firewall is used to protect the computer from unauthorized access. It is divided into two parts: packet filter and stateful inspection. Packet filter is used to filter packets. Stateful inspection is used to inspect the state of the connection.
Antivirus
Antivirus is used to protect the computer from viruses. It is divided into two parts: signature-based and heuristic-based. Signature-based is used to detect viruses based on their signatures. Heuristic-based is used to detect viruses based on their behavior.
Encryption
Encryption is used to protect the computer from unauthorized access. It is divided into two parts: symmetric and asymmetric. Symmetric is used to encrypt and decrypt data using the same key. Asymmetric is used to encrypt and decrypt data using different keys.
Communication, Protocols and Networks
Communication
Communication is the process of exchanging information. It is divided into two parts: transmission and reception. Transmission is the process of sending information. Reception is the process of receiving information.
Protocols
Protocols are a set of rules that define how data is exchanged between two or more entities. They are divided into two parts: syntax and semantics. Syntax is the structure of the data. Semantics is the meaning of the data.
Examples of protocols:
- HTTP - Hypertext Transfer Protocol
- HTTPS - Hypertext Transfer Protocol Secure
- FTP - File Transfer Protocol
- SSH - Secure Shell
- SMTP - Simple Mail Transfer Protocol
- POP3 - Post Office Protocol 3
- IMAP - Internet Message Access Protocol
- DNS - Domain Name System
- DHCP - Dynamic Host Configuration Protocol
- ARP - Address Resolution Protocol
- ICMP - Internet Control Message Protocol
- SNMP - Simple Network Management Protocol
- NTP - Network Time Protocol
Networks
Networks are a set of devices connected to each other. They are divided into two parts: local area network and wide area network. Local area network is a network that covers a small area. Wide area network is a network that covers a large area.
Virtualization
Virtualization is the creation of a virtual (rather than actual) version of something, such as an operating system, a server, a storage device or network resources.
Virtual Machine
A virtual machine (VM) is an emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination.
Hypervisor
A hypervisor is a piece of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine.
Container
A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings.
Docker
Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels. All containers are run by a single operating-system kernel and are thus more lightweight than virtual machines.
Emulation
Emulation is the imitation of the behavior of one system (called the “target” system) by another (called the “host” system). The term is most often applied to the imitation of a computer system, but it may also apply to other systems such as a hardware platform, an operating system, a video game console, or a smartphone.
Emulator
An emulator is hardware or software that enables one computer system (called the host) to behave like another computer system (called the guest). The term is most often applied to application software that enables the host system to run software or use peripheral devices designed for the guest system.
Interpreter
An interpreter is a computer program that directly executes, i.e. performs, instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program. The interpreter executes the program directly, translating each statement into a sequence of one or more subroutines of the host environment.
Compiler
A compiler is a computer program that transforms source code written in a programming language (the source language) into another computer language (the target language), with the latter often having a binary form known as object code. The most common reason for converting source code is to create an executable program.
IT Infrastructure and future
IT Infrastructure
IT infrastructure is the fundamental computer and network resources and the supporting physical components that enable the delivery of all IT services. IT infrastructure includes the hardware, software, networks, facilities, and procedures required to support the computing needs of an organization.
A typical IT infrastructure consists of the following components:
- Servers
- Storage
- Networking
- Virtualization
- Security
Future
Main field of research in computer science:
- Artificial intelligence
- Computer vision
- Machine learning
- Natural language processing
- Robotics
- Virtual reality
- Augmented reality
- Quantum computing
- Blockchain
- Internet of things
- Big data
- Cloud computing
- Cybersecurity
- Data science
Disclaimer: The content of this page is generated by GitHub copilot.