Home  >  Article  >  System Tutorial  >  Is non-MMU support provided by the uClinux port of the Linux kernel?

Is non-MMU support provided by the uClinux port of the Linux kernel?

WBOY
WBOYforward
2024-01-26 17:18:20688browse

It’s long and has a lot of technical content, so click to follow it and you won’t get lost.

Preface: Understanding the Linux Kernel

A computer system is a symbiosis of hardware and software. They are interdependent and inseparable. Computer hardwareLinux kernel transplantation steps is rich in peripheral devices, processors, memory, hard drives and other electronic devices that make up the computer cylinder. And without software to operate and control it, it cannot work by itself. The software that completes this control work is called the operating system. In Linux terminology, it is called the "kernel" or "core". The main modules (or components) of the Linux kernel are divided into the following parts: storage management, CPU and process management, file system, device management and driver, network communication Linux forum, and system initialization (boot), system calls, etc.

The Linux kernel implements many important architectural properties. At a higher or lower level, the kernel is defined into subsystems. Linux can also be viewed as a whole, since it integrates all those basic services into the kernel. This is different from the microkernel architecture. The former will provide some basic services, such as communication, I/O, memory and process management, and more specific services are inserted into the microkernel layer.

Over time, the Linux kernel has become more efficient in video memory and CPU usage, and is very stable. And for Linux, the most interesting thing is that despite these size and complexity, it still has good portability. Linux is compiled to run on a large number of processors and platforms with different architectural constraints and requirements. A counterexample is that Linux can run on a processor that has a graphics memory management unit (MMU), or it can run on those processors that do not provide an MMU. The uClinux port of the Linux kernel provides support for non-MMUs. In the IT industry

Such as: embedded development, driver development, Android development, c development, Java development if you come into contact with the underlying aspects

so

Understand the kernel: it will bring corresponding benefits to your development work.

Understand the kernel: It will make you better understand the underlying principles and development source code.

The core is a bonus item for the written test.

The kernel is the only way to become an expert.

Whether you are engaged in kernel development or not, kernel technology is the best choice to reserve skills, broaden your horizons, and expand your technical skills.

linuxkernel移植_linux内核移植步骤_linux内核移植的一般步骤Learn next:

Analysis of Linux Kernel "Vulnerability Security and Virtual Video Memory"

Analysis of Linux kernel socket principle and architecture

Analysis of Linux kernel "Physical Memory Model"

Recommended kernel learning route. If you like to study the kernel and want to learn more about the kernel, you can refer to it. 1: Operating System Principles/Compilation Topic 1: Operating System Principles

Process management: process status and switching, process mutual exclusion and synchronization, processor scheduling, process deadlock

Video memory management: storage structure, partition storage management, segment management, page management, virtual storage

Device management: c drive cache, RAID (c drive array), I/O buffer

File management: file organization structure, heap file principle, storage space management, file directory management

2: Intensive lecture on assembly language

x86/x86_64 architecture: x86/x86_64 architecture, assembly language basics, data transfer, arithmetic operations, addressing, procedure and condition processing, floating point processing and instruction encoding

ARM architecture: ARM core microprocessor, ARM common instruction system, ARM assembly program and debugging, exception interrupt/reset handler/SWI exception interrupt, RealViewMDK installation and configuration, ARM assembly and C hybrid implementation, data loading and Storage command implementation

2: Process Management Topic 1: Process Basics

Linux kernel source code organization structure

Process principle and process status

Life cycle and system call: copy-on-write principle, process memory layout, process stack management, system call implementation

Task_struct data structure analysis

2: Process Scheduling

Scheduling strategies: SCHED_DEADLINE, SCHED_FIFO, SCHED_RR, SCHED_NORMAL

Process priority: scheduling priority, static priority, normal priority, real-time priority

Scheduling class analysis: stop_sched_class, dl_sched_class, rt_sched_class, cfs_sched_class, idle_shced_class

SMP scheduling: migrating threads/isolating processors, processor load balancing for deadline scheduling, processor load balancing for real-time scheduling, and processor load balancing for fair scheduling

3: Video Memory Management Topic 1: Video Memory Principles

SMP/NUMA model organization

Chemical memory organization structure and model

Page table/page table cache: page table framework directory structure, TLB entry format and management, address space identifier (ASID), virtual machine identifier (VMID)

Processor cache: cache structure and strategy, SMP cache consistency, cache and TLB control

Video memory mapping: data structure analysis, creation of video memory mapping, deletion of video memory mapping, system call implementation

2: Virtual video memory

Block allocator: principle of video memory allocator, page allocation and page release, SLAB block allocator, SLOB block allocator, SLUB block allocator, system scheduling socket

Comprehensive page module: standard giant page, transparent giant page, LRU algorithm and reverse mapping, direct and asynchronous page recycling principle, implementation plan for recycling inactive pages, page exchange principle, recycling slab cache principle, page fault exception handling, Memory defragmentation, initiating video memory recycling, swap area data structure/creation/activation, technical principles of memory exhaustion, page missing exception calibration method, KASAN inspection tool, handling swap page missing exception

Video memory barrier and kernel mutual exclusion technology

Learn next:

Kernel must learn|"Physical video memory and virtual video memory"|VMA management/malloc/mmap

Linux kernel technology points|page allocation path|slab allocator implementation

3: Video memory system call

kmalloc/vmalloc

Principle and implementation operation of video memory pool

linuxkernel移植_linux内核移植的一般步骤_linux内核移植步骤

Video memory optimization parameters and implementation

Implementation of page cache

Implementation of block cache

4: perf performance analysis tool

perf principle mechanism and installation configuration

perf data collection command 29 tool applications

perf collects data to flame graph analysis

4: Network Contract Stack Topic 1: Network Infrastructure

ICMP CONTRACT

User Datagram Contract (UDP)

Transmission Control Contract (TCP)

Stream Control Transmission Contract (SCTP)

Datagram Crosstalk Control Contract (DCCP)

IPv4 Policy Routing

Wireless subsystem module: 802.11MAC frame structure analysis, scanning/authentication/association, mac80211 reception and transmission implementation, high throughput (802.11n), mesh network (802.11s)

IPv4 redirect message/FIB table

2: Network contract stack

ARP (Address Resolution Contract)

User Datagram Contract (UDP)

Transmission Control Contract (TCP)

Intermediate routing: multicast routing, policy routing, multipath routing

Receive/Send IPv4 packets

Receive/Send IPv6 packets

InfiniBand stack architecture: RDMA (Remote Direct Memory Access) structure, InfiniBand components and addressing, InfiniBand functions and data packets, protocol stack registration/receiving packets/sending packets process scheme

Learn next: Master the Linux kernel contract stack architecture in 90 minutes

linux内核移植步骤_linux内核移植的一般步骤_linuxkernel移植

3: System API call

POSIX Network API Call

epoll kernel principle and implementation

Network system parameter configuration

5: Device driver topic 1: Device driver subsystem

I/O mechanism principle

Resource Allocation and Management

Character device subsystem

Block Device Subsystem

Network interface card driver

2: Linux device model

In-depth analysis of LDM: LDM data structure, device driver, kobject structure, kobj_type, kernel object collection

Device model and sysfs: sysfs files and properties, allowing addressing of sysfs property files,

3: Character device operation

Main device and secondary device

Open device file

Allocating and registering character devices

Writing file operation implementation: open/release mode, read/write mode, llseek/poll method, filling file_operations structure

Inserting and deleting modules

4: Block device operations

Block device representation and data structure

BIO data structure

ioctl system call

Bus module: ISA bus, PCI/PCI-E bus, USB bus, VESA bus, I2C bus

5: Network card device driver

Data structure: socket buffer structure, network socket structure

Buffer management and concurrency control

ISA Network Driver

ATM asynchronous transfer mode

Network Throughput

Learn next: Analysis of Linux kernel socket communication process source code analysis

6: Kernel Component Topic 1: Time Management

Universal time subsystem

High frame rate timer

Dynamic clock data structure

Timer system call

2: Page and block cache

Page cache structure operation and implementation

Block cache structure and implementation

Address space data structure and page tree

3: Data synchronization

Number system synchronization mechanism

inode synchronization and crosstalk

Forced writeback and full synchronization

4: Kernel Activity

Interrupt Type/Hardware IRQ

irq_desc data structure

Handling IRQ and soft interrupt

Create/Register/Execute tasklet

Waiting queue and completion amount

linuxkernel移植_linux内核移植的一般步骤_linux内核移植步骤

Seven: File system topic

1: Virtual File System VFS

Research on file system types and file models

Data structure: super block (super_block), mount descriptor (mount structure), index node (inode structure), directory entry (dentry structure)

File system calls: open/close files, create/delete files, read/write files, file write-back technical principles/socket implementation

Mount file system: system call mount processing process, bind mount/mount namespace, mount/register rootfs file system

No persistent file system: proc file system (proc data structure, loading proc/managing proc data items, data reading and writing implementation), simple file system (sequential file, scheduling file system, pseudo file system)

2: c drive file system

Ext2 file system: chemical structure and data structure, creating file system, operating file system

Ext3 ​​File System

Ext4 File System

LogJBD2

3: User space file system

Fuse Architecture Design and Principle

Fuse core five queues

Fuse user space process and implementation plan

Eight: Kernel Project Practical Topic

1-Linux kernel compilation and system replacement implementation method

2-Inter-process communication/management (permission/priority) implementation plan

3-NIC network card driver implementation

4-mmap system call/mapping user video memory implementation

5-Linux memory parameter system implementation

6-Debugging and performance optimization (debugfs/printk/ftrace)

7-Slab block allocator video memory allocation implementation mechanism

8-tasklet/frontline thread and timer implementation

9-Linux kernel proc file system implementation

10-Linux kernel firewall iptables implementation

The above is the detailed content of Is non-MMU support provided by the uClinux port of the Linux kernel?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:itcool.net. If there is any infringement, please contact admin@php.cn delete