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