89 Embedded Concepts You Should Know

Follow the Embedded Learning Station, and get more fresh hot topics every day.

89 Embedded Concepts You Should Know

🤟 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!!!

89 Embedded Concepts You Should Know

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).

89 Embedded Concepts You Should Know

03

GUI (Graphical User Interface)

It is a user interface that allows users to interact with electronic devices through graphical icons and audio indicators.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

24

MacOS X

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

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

89 Embedded Concepts You Should Know

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.

Leave a Comment