
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
为什么需要裁剪?首先,裁剪并不一定是缩小内核镜像的大小,而是**移植和适配**。内核支持的特性很多,站在项目的角度,不一定全部需要这些特性和功能。这时候就需要将不需要的特性和功能剔除,随着这个过程的进行,内核的镜像会逐渐缩小。

一、背景在linux驱动开发中,肯定会接触到driver_register()和driver_unregister()函数,本文将从内核源码角度,来看看这两个函数的具体实现。在linux内核源码(/drivers/)目录中,放置的是某一类设备驱动框架,例如(spi、I2c,net)等。这些框架的核心大多都会调用到driver_register()函数。这两个函数的原型如下:int driver_r
一、开篇在《【linux kernel】linux内核如何启动用户空间进程-01》一文中,分析了start_kernel函数启动用户空间进程的入口点,本文将分析余下部分的启动过程。对于在linux内核启动主线start_kernel()函数中调用的run_init_process()函数,或者是execveat系统调用,这两个操作到最后都将会调用到do_execveat_common()这个重磅函
【qemu】以sd卡方式添加根文件系统运行linux内核【效果走一波】文章目录【qemu】以sd卡方式添加根文件系统运行linux内核一、开篇二、使用linux内核的回环设备创建文件系统镜像(2-1)创建一个文件(2-2)创建一个ext3的文件系统镜像(2-3)挂载ext3文件系统(2-4)填充文件系统内容三、qemu下以sd方式启动于宿主机上的文件系统镜像一、开篇在使用qemu运行linux内

linux内核的init线程(注)本文代码出自linux内核版本:4.1.15(小生的文章若无特别说明,都将基于此版本)本文代码的出处文件以(/)开头,代表linux内核的安装目录。(小生的文章若无特别说明,都有这样约定)文章目录linux内核的init线程一、概述二、init线程的入口函数kernel_init()三、kernel_init_freeable()分析四、kernel_init()
linux内核如何获取当前运行平台下的内存大小注1:本文章属于《linux内核管理》模块的系列文章注2:本文章中所有源码出自linux内核版本:4.1.15注3:本文内容基于ARM架构在支持设备树(DTS)的linux版本下,可以通过设备树将重要参数传递给linux内核。查看一下linux内核源码的设备树目录,如下图所示(/arch/arm/boot/dts):在该目录下,后缀为dtsi的为设备树

linux内核伪文件系统—proc分析文章目录linux内核伪文件系统—proc分析一、proc文件系统简介二、proc文件系统源码分析(2-1)linux内核下的/proc文件系统如何创建条目(2-2)linux内核如何初始化/proc文件系统三、总结一、proc文件系统简介首先/proc文件系统是一个接口,linux内核通过它可以获取一个linux系统上运行信息。很多用户空间程序都需要依靠/p
linux内核的kthreadd线程分析文章目录linux内核的kthreadd线程分析一、kthreadd线程的创建二、kthreadd线程入口分析三、新创建的内核线程入口函数```kthread```分析四、总结与补充(4-1)kthread_create()函数(4-2)kthread_create与kernel_thread的区别(4-3)kthread_run()函数(4-4)linux
linux内核中的系统调用文章目录linux内核中的系统调用一、简介二、【SYSCALL_DEFINE0】定义无参数的系统调用三、【SYSCALL_DEFINEx】定义有参数的系统调用四、SYSCALL_DEFINEx详细分析注:本文章所有源代码出自linux kernel,版本:4.1.15一、简介系统调用在内核中的入口都是sys_xxx,在linux内核中的系统调用由SYSCALL_DEFI
备注:linux 内核版本:4.19.4一、在rest_init()函数中会调用kernel_thread来进行init线程创建,kernel_init()为init线程的线程函数。在kernel_init()线程函数执行的最后,将启动第一个用户空间进程,启动第一个用户空间进程的操作执行详情如下:如上图所示,首先对命令行用户空间进程的路径进行判断处理:如果有路径对应的命令输入,则执行路径对应的用户







