Follow the Embedded Learning Station, and get more fresh hot topics every day.
🤟 Consumption Tip: This article has a total of 8448 words and an estimated reading time of 20 minutes~
Understanding some basic concepts is essential for learning about embedded systems and computers. There are many concepts related to embedded systems and computers, and this time we have compiled and organized some for you:
PS: Here are the learning notes from an expert on embedded systems. Hurry up and take notes for your study!!!
01
Operating System (OS)
The operating system is system software that manages computer hardware and software resources, and it is also the kernel and foundation of the computer system. The operating system needs to manage and configure memory, determine the priority of system resource allocation, control input and output devices, operate networks, and manage file systems, among other basic tasks. The operating system also provides an interface for users to interact with the system.
02
Shell
It is a program that takes commands from the keyboard and provides them to the operating system for execution. In the past, it was the only user interface available on Unix-like systems. Today, in addition to the command line interface (CLI), we also have graphical user interfaces (GUI).

03
GUI (Graphical User Interface)
It is a user interface that allows users to interact with electronic devices through graphical icons and audio indicators.

04
Kernel Mode
Also known as supervisor mode, in kernel mode, the executing code has full and unrestricted access to the underlying hardware. It can execute any CPU instruction and reference any memory address. Kernel mode is typically reserved for the lowest-level, most trusted functions of the operating system. Crashes in kernel mode are catastrophic; they halt the entire computer. The superuser mode is the automatic mode selected when the computer starts.
05
User Mode
When the operating system runs user applications (e.g., text editors), the system is in user mode. A transition from user mode to kernel mode occurs when an application requests help from the operating system or when an interrupt or system call happens. In user mode, the mode bit is set to 1. When switching from user mode to kernel mode, it changes from 1 to 0.
06
Computer Architecture
In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of computer systems. It mainly includes instruction sets, memory management, I/O, and bus structures.

07
SATA (Serial ATA)
Serial ATA (Serial Advanced Technology Attachment) is a computer bus used for data transfer between the motherboard and large capacity storage devices (such as hard drives and optical drives), mainly used in personal computers.
08
Multiplexing
Also known as sharing, in operating systems, it mainly indicates the management of time and space. When resources are multiplexed, different programs or users take turns using them. The first one starts using the resource, followed by the next, and so on.
09
Mainframes
Mainframes are a class of computers known for their large size, storage capacity, processing power, and high reliability. They are primarily used by large organizations for critical applications that require extensive data processing.
10
Batch System
In a batch processing operating system, users do not interact directly with the computer. Each user prepares work on offline devices such as punch cards and submits it to the computer operator. To speed up processing, jobs with similar requirements are batch processed and run together. Programmers leave their programs for the operators, who then batch process programs with similar requirements.
11
OS/360
Officially known as the IBM System/360 Operating System, it is an obsolete batch processing operating system developed by IBM for its then-new System/360 mainframe released in 1964.
12
Computer Multitasking
It refers to the ability of a computer to run multiple programs simultaneously. The general approach to multitasking is to run a segment of code from the first program, save the working environment; then run a segment of code from the second program, save the environment; … restore the first program’s working environment, and execute the next segment of code from the first program.
13
Time-Sharing
In computing, time-sharing is a system that allows multiple users to share computing resources simultaneously through multiprogramming and multitasking.
14
Compatible Time-Sharing System
The first time-sharing operating system, designed and implemented by the Computer Center at the Massachusetts Institute of Technology.
15
Cloud Computing
Cloud computing is the on-demand availability of computer system resources (especially data storage and computing power) without direct active management by the user. This term is often used to describe data centers available to many users over the Internet. Today’s dominant large clouds typically have the capability to distribute from a central server across multiple locations. If the connection to the user is relatively close, it can be designated as an edge server.

16
UNIX Operating System
The UNIX operating system is a powerful multi-user, multi-tasking operating system that supports multiple processor architectures and is classified as a time-sharing operating system.
17
UNIX System V
It is a branch of the UNIX operating system.
18
BSD (Berkeley Software Distribution)
Derived systems of UNIX.
19
POSIX
The Portable Operating System Interface is a set of interrelated standards defined by IEEE for software to run on various UNIX operating systems.
20
MINIX
MINIX is a mini version of a UNIX-like operating system.
21
Linux
Finally, we come to the famous Linux operating system, which is incredibly powerful and needs no explanation; everyone understands.
22
DOS (Disk Operating System)
Disk Operating System (abbreviated as DOS) is a computer operating system that can use disk storage devices (such as floppy disks, hard drives, or CDs).
23
MS-DOS
It is an operating system developed by Microsoft that runs on Intel x86 personal computers. It is the most famous in the DOS operating system family. Before Windows 95, DOS was the basic configuration in IBM PCs and compatible machines, while MS-DOS was the most commonly used DOS operating system on personal computers.

24
MacOS X
macOS is a graphical user interface-based operating system introduced by Apple as the main operating system for Macintosh.

25
Windows NT (Windows New Technology)
It is a pure 32-bit operating system core launched by Microsoft in 1993.
26
Service Pack (SP)
A service pack is a collection of updates, fixes, and/or enhancements to a program, released as a standalone installation package. Many companies, like Microsoft or Autodesk, typically release a service pack when the number of patches for a program reaches a certain threshold.
27
Digital Rights Management (DRM)
It refers to tools or technical protection measures (TPM), a set of access control technologies used to restrict the use of proprietary hardware and copyrighted works.
28
x86
x86 is a set of instruction set architectures originally developed by Intel based on the Intel 8086 microprocessor and its 8088 variants. It uses memory segmentation as a solution to handle more memory than the standard 16-bit address can cover. The default bit number for x86 is 32 bits, and in addition, there is an x86-64 bit, which is a 64-bit extension of the x86 architecture, backward compatible with the 16-bit and 32-bit x86 architectures.
29
FreeBSD
FreeBSD is a UNIX-like operating system and a product of the FreeBSD project.
30
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays that is commonly found on UNIX-like operating systems.

31
Gnome
GNOME is a desktop environment composed entirely of free software. Its target operating system is Linux, but most BSD systems also support GNOME.

32
Network Operating Systems
Network operating systems are specialized operating systems used for network devices (such as routers, switches, or firewalls).
33
Distributed Network Systems
Distributed operating systems are software on a collection of independent, networked, communication, and physically independent computing nodes. They handle jobs serviced by multiple CPUs. Each individual node has a portion of specific software from the global set of the operating system.

34
Program Counter
The program counter is a register in the CPU that indicates the position of the computer in its program sequence.
35
Stack Pointer
The stack pointer is a register in the CPU that tracks the call stack.
36
Program Status Word
It is a collection of data maintained by the operating system that is 8 bytes (or 64 bits) long. It tracks the current state of the system.
37
Pipeline
In computing, a pipeline is a set of data processing elements connected in series, where the output of one element is the input of the next. The elements of the pipeline are typically executed in parallel or time-sliced. A certain number of buffer stores are usually inserted between the elements.

38
Superscalar
Superscalar CPU architecture refers to a type of concurrent operation that implements instruction-level parallelism within a single processor core. This technology allows for higher CPU throughput at the same CPU clock frequency.
39
System Call
It refers to the request made by a program running in user space to the operating system kernel for services that require higher privileges. System calls provide an interface between user programs and the operating system. Most interactive operating system demands operate in kernel mode, such as device I/O operations or inter-process communication.
40
Multithreading
It refers to the technology that allows multiple threads to execute concurrently either from software or hardware. Computers with multithreading capabilities can execute multiple threads simultaneously due to hardware support, thereby improving overall processing performance.
41
CPU Core
It is the brain of the CPU, receiving instructions and performing calculations or operations to fulfill those instructions. A CPU can have multiple cores.
42
Graphics Processing Unit
Also known as display core, visual processor, display chip, or graphics chip; it is a microprocessor designed specifically to perform graphics calculations on personal computers, workstations, game consoles, and some mobile devices (such as tablets, smartphones, etc.).
43
Storage Architecture
The top layer of memory has the highest speed but the smallest capacity and is very expensive. The lower the hierarchy goes, the slower the access efficiency becomes, the larger the capacity, but the cost also decreases.

44
Cache Lines
They are simply fixed-size blocks that divide the cache, based on the size of burst reads or burst writes.
45
Cache Hit
A cache hit occurs when an application or software requests data. First, the CPU searches for the data in its most recent memory location (usually the main cache). If the requested data is found in the cache, it is considered a cache hit.

46
L1 Cache
L1 cache is a storage repository built into the CPU chip. L1 cache is also known as the main cache, which is the fastest memory in a computer and is closest to the processor.
47
L2 Cache
L2 cache is a storage repository built into the CPU chip, either packaged in the same module or built on the motherboard. L2 cache provides data to L1 cache, which in turn provides data to the processor. L2 memory is slower than L1 memory.
48
L3 Cache
L3 cache is a storage repository built on the motherboard or within the CPU module. L3 cache provides data to L2 cache, which is usually slower than L2 memory but faster than main memory. L3 cache provides data to L2 cache, which in turn provides data to L1 cache, which then provides data to the processor.
49
RAM (Random Access Memory)
Random Access Memory, also known as main memory, is the internal memory that exchanges data directly with the CPU. It can be read and written at any time and is very fast, typically serving as temporary data storage for the operating system or other running programs. RAM can write (store) or read (retrieve) information from any specified address at any time. Its main difference from ROM is the volatility of data, i.e., the stored data will be lost once the power is cut off. RAM is used in computers and digital systems to temporarily store programs, data, and intermediate results.
50
ROM (Read Only Memory)
Read-only memory is a type of semiconductor memory characterized by the inability to change or delete stored data, and the content does not disappear when the power is turned off. In electronic or computer systems, it is typically used to store programs or data that do not require frequent changes.
51
EEPROM (Electrically Erasable PROM)
Electrically Erasable Programmable Read-Only Memory is a type of semiconductor storage device that can be rewritten multiple times electronically.
52
Flash Memory
It is a form of electronic erasable programmable read-only memory that allows multiple erase or write operations during operation. This technology is primarily used for general data storage and for transferring data between computers and other digital products, such as storage cards and USB drives.
53
SSD (Solid State Disks)
Solid State Drive is a computer storage device that primarily uses flash memory as permanent storage.
54
Virtual Memory
Virtual memory is a mechanism of memory management in computer systems. It allows applications to believe they have continuous available memory (a contiguous complete address space), while in reality, it is often divided into multiple physical memory fragments, with some temporarily stored on external disk storage for swapping when needed. Compared to systems that do not use virtual memory technology, systems that use this technology make it easier to write large programs and use actual physical memory (such as RAM) more efficiently.
55
MMU (Memory Management Unit)
The memory management unit, sometimes referred to as the paging memory management unit, is a computer hardware responsible for handling memory access requests from the CPU. Its functions include translating virtual addresses to physical addresses (i.e., virtual memory management), memory protection, and controlling the CPU cache.

56
Context Switch
Context switching, also known as environment switching, is a mechanism for storing and reconstructing the CPU state. When swapping processes on the CPU, the current process state must be stored first before reading the process state back into the CPU.
57
Device Driver
A device driver, or simply a driver, is a program that allows high-level computer software to interact with hardware. This program creates an interface for communication between hardware and hardware, or hardware and software, using mechanisms that connect with hardware via buses or other communication subsystems on the motherboard, enabling data exchange on hardware devices.

58
Busy Waiting
In software engineering, busy waiting, also known as spinning, is a condition where a process repeatedly checks whether a certain condition is true, which may involve checking for keyboard input or whether a lock is available.
59
Interrupt
Typically, upon receiving an asynchronous signal from peripheral hardware (relative to the CPU and memory) or a synchronous signal from software, the processor will perform the corresponding hardware/software processing. Such signals are called interrupt requests (IRQ). Hardware interrupts cause the processor to save the execution state (mainly using registers like the program counter and program status word) through a context switch; software interrupts are usually a direct instruction in the CPU instruction set that indicates such a context switch in a programmable manner, directing processing to a segment of interrupt handling code. Interrupts are particularly useful in multitasking and real-time systems.
60
Interrupt Vector
The interrupt vector is located in the interrupt vector table. The interrupt vector table (IVT) is a data structure that associates a list of interrupt handlers with a list of interrupt requests in the interrupt vector table. Each entry in the interrupt vector table (known as an interrupt vector) is the address of an interrupt handler.

61
DMA (Direct Memory Access)
Direct Memory Access is a memory access technique in computer science that allows certain internal hardware subsystems (computer peripherals) to read and write to system memory independently without the need for CPU intervention.
62
Bus
A bus refers to a standardized way of exchanging data between computer components, providing a common method for data transfer and control logic among components.
63
PCIe
Officially abbreviated as PCIe, it is an important branch of computer buses that retains existing PCI programming concepts and signal standards while constructing a higher-speed serial communication system standard.
64
DMI (Direct Media Interface)
The Direct Media Interface is Intel’s proprietary bus used for connections between the southbridge chip and the northbridge chip on computer motherboards.
65
USB (Universal Serial Bus)
USB is a serial bus standard for connecting computer systems to external devices, also a technical specification for input/output interfaces, widely used in personal computers and mobile devices, and extended to photography equipment, digital televisions (set-top boxes), game consoles, and other related fields.
66
BIOS (Basic Input Output System)
It is the firmware that runs during the power-on bootstrap phase to initialize hardware and provide runtime services for the operating system. It is the first software that runs when the computer is powered on.
67
Hard Real-Time System
Hard real-time means that you must complete tasks absolutely before each deadline. Very few systems have this requirement. Examples include nuclear systems, some medical applications (such as pacemakers), many defense applications, and avionics.
68
Soft Real-Time System
Soft real-time systems may miss certain deadlines, but if too many are missed, performance will eventually degrade. A good example is the sound system in a computer.
69
Process
A program itself is just a description of instructions, data, and their organization; a process is the actual running instance of a program (those instructions and data). Processes may relate to the same program, and each process can run independently in a synchronous (sequential) or asynchronous manner.
70
Address Space
The address space is the range of valid addresses in memory available for a program or process to use. In other words, it is the memory that a program or process can access. The memory can be physical or virtual, used for executing instructions and storing data.
71
Process Table
The process table is a data structure maintained by the operating system, where each entry (commonly referred to as a context block) contains information about the process, such as the process name and status, priority, registers, and any signals it may be waiting for.
72
Command-Line Interpreter
It was the most widely used user interface before the graphical user interface became popular. It typically does not support a mouse; users input commands via the keyboard, and the computer executes the received commands.

73
Interprocess Communication
It refers to some techniques or methods for transmitting data or signals between at least two processes or threads.
74
Superuser
Also known as the administrator account, it refers to a special user used for system administration in the field of computer operating systems, with actual names varying by system, such as root, administrator, and supervisor.
75
Directory
In a computer or related device, a directory or folder is a virtual container that holds a digital file system. It contains a set of files and other directories.
76
Path Name
A path is a general representation of the name of a computer file or directory, pointing to a unique location in the file system.
77
Root Directory
The root directory refers to the top-level directory in a computer system, such as the C and D drives in Windows, and the / in Linux.
78
Working Directory
It is a computer term. The directory where the user is located within the operating system, allowing access to files using relative file names within this directory.
79
File Descriptor
A file descriptor is a term in computer science that is an abstract concept used to refer to a reference pointing to a file.
80
Inode
Short for index node, an inode contains information in the UNIX system, including details about each file, such as the node, owner, file, file location, etc.
81
Shared Library
A shared library is a file containing object code that may be used simultaneously by multiple a.out files during execution.
82
DLLs (Dynamic-Link Libraries)
Dynamic-link libraries are a way Microsoft implements the concept of shared function libraries in operating systems. These library functions have extensions such as .DLL, .OCX (which includes ActiveX control libraries), or .DRV (old-style system drivers).
83
Clients
A client is a computer hardware or software that accesses services provided by a server.
84
Servers
In computing, a server is a computer program or device that provides functionality for other programs or devices, known as the server side.
85
Client-Server Architecture
Client-server architecture, also known as C/S architecture, is a network architecture that distinguishes between clients and servers. Each instance of client software can send requests to a server or application server. There are many different types of servers, such as file servers, game servers, etc.

86
Virtual Machines
In computer science architecture, it refers to a special software that creates an environment between the computer platform and the end user, allowing the end user to operate other software based on the environment created by the virtual machine.

87
Java Virtual Machines
Java Virtual Machines have their own complete hardware architecture, such as processors, stacks, registers, etc., and have corresponding instruction systems. JVM masks information related to specific operating system platforms, allowing Java programs to generate target code (bytecode) that can run on various platforms without modification.
88
Object File
An object file is a file containing object code, which means it is typically in a relocatable format of machine code that cannot be executed directly. Object files come in various formats, and the same object code can be packaged in different object files. Object files can also function like shared libraries.
89
C Preprocessor
The C preprocessor is a preprocessor for the C and C++ languages. It is used to pre-scan source code before the compiler processes the program, completing header file inclusion, macro expansion, conditional compilation, line control, and other operations.