Linux 内核
文章平均质量分 50
内核笔记
rjszcb
不断学习变成牛
展开
-
Linux 系统框架分析(一)
内核的源代码是 modulized 的,允许添加或删除特定功能的模块,以适应不同的需求。内核是一个很厉害的超级逻辑,把硬件底层的东西抽象化,对用户来说只需要调API就好了,根本不需要管寄存器,协议,总线…Linux 内核是操作系统的核心部分,它负责管理系统的资源、进程调度、设备驱动程序等核心功能。对内核结构框图有个总体的把握,有助于理解为什么驱动要这样写,为什么写的应用程序所用的C库接口能够产生这么多的事情。虚拟文件系统(VFS): 提供文件系统的抽象接口,使得不同类型的文件系统可以共享相同的 API。原创 2024-08-09 18:23:30 · 413 阅读 · 0 评论 -
嵌入式linux系统快速启动优化的方法思路
原文链接:https://blog.csdn.net/weixin_42031299/article/details/128810365。转载 2024-09-22 17:49:11 · 868 阅读 · 0 评论 -
Linux,uboot,kernel启动流程,S5PV210芯片的启动流程,DRAM控制器初始化流程
S5PV210内部有 iROM 和 iRAM,因此启动时分两个阶段:内部启动阶段和外部启动阶段。对于内部启动阶段各种S5PV210的开发板都是相同的,对于外部启动阶段,不同开发板会有不同。因为 iROM 可以使 SOC 从各种外设启动,因此可以省下一块 boot rom(专门用来启动的rom,一般是norflash)SoC 中第一启动介质故障而导致不能启动时,可以从备用启动介质启动。如果成功,BL1开始。拷贝BL1后,将复制的BL1的iROM数据求和,并将其与BL1头数据中的校验和数据进行比较。原创 2024-09-22 16:08:07 · 1105 阅读 · 0 评论 -
Linux启动流程,0,1,2进程,init进程,idle进程,内核态到用户态的kernel_execve(一)
api系统调用如,read,open,等等。shell命令也可以如ls,cat,等等。=是,如果定义了,就按Makefile的,如果如下make编译时,就按如下。一生二,二生三,三生万物,生出很好应用程序。运行用户空间的进程1,跟文件下的,init。进程0在用户空间看不到,因为他是内核进程。如果没有linuxrc,就指向下面备用的。进程2就是守护进程,维护内涵运转的。原创 2024-09-21 14:42:22 · 233 阅读 · 0 评论 -
FreeRTOS介绍,于Linux的区别
2.2 将 RCC 里的 HSE 设置为 Crystal/Ceramic Resonator。具体freertos,不写了,看其他博主,freertos很简单。具体移植,看第一个链接。原创 2024-09-21 11:23:35 · 206 阅读 · 0 评论 -
Linux /proc目录和 /sys目录(一)
由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。该文件指定了可以分配的文件句柄的最大数目。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的 PID号为目录名,它们是读取进程信息的接口。如下,可以看到proc,证明proc是个虚伪文件系统,还有debugfs,sysfs,ext3,等这些熟悉的系统。下面是一部分信息,太多了,启动时显示log图片,设置堆栈,设置文件系统,挂载,注册鼠标,键盘,usb驱动等等,原创 2022-11-25 15:45:52 · 1094 阅读 · 0 评论 -
Linux内核.之用户空间和内核空间的区别,以及用户空间访问内核空间的方法
Linux内核.之用户空间和内核空间的区别,以及用户空间访问内核空间的方法。原创 2024-08-31 08:02:34 · 127 阅读 · 0 评论 -
Linux内核.之kobj ,struct file、struct inode、struct file_operations、struct cdev之间的关系
这就达到一个目的,当应用的任何一个操作设备文件的指令,如read(fd) , write(fd)等,都可以通过文件描述符表数组的fd下标对应的元素找到内核 的file_operations结构体指针,这样就可以调用该结构体内对应.read()和.write()的成员函数指针,从而完成实质的对字符设备的读,写操作。在/sys目录下,bus用于存放各类总线,其中总线中会存放挂载在该总线上的驱动和设备,比如serial8250,devices存放了系统中的设备信息,class是针对不同的设备进行分类;原创 2024-08-30 21:03:13 · 124 阅读 · 0 评论 -
Linux内核.之驱动模块的启动机制module_init,__initcallx_start,attribute(一)
原文链接:https://blog.csdn.net/weixin_45499326/article/details/131370815。头文件在include/linux/init.h。module_init宏。原创 2024-08-25 21:29:12 · 88 阅读 · 0 评论 -
Linux 内核目录结构,编译,及顶层Makefile,Kconfig,.config,子目录kconfig,Makefile,kbuild的关系
lib是库的意思,这里面都是一些公用的有用的库函数,注意这里的库函数和C语言的库函数不一样的。选中我们需要的soc,如三星的s5pv210,hisi的soc,和其他和cpu核心代码相关的代码,这些是设计cpu的厂家,如华为,三星做的事,外部人配置是很麻烦的事,因为很多不开放,我熟悉的代码,只有他们才知道,当他们配置好后,会保存配置到.congfig文件,在内核主根目录下,ls -a命令,可以看到这个文件,这个就是soc厂家配置好的,发布内核时,给我们的,我们一般在此基础上开发我们自己需要的驱动。原创 2021-11-03 15:59:35 · 879 阅读 · 0 评论 -
Linux驱动.之中断系统,裸机下设置寄存器,绑定中断处理函数hander(一)
Linux驱动.之中断,外部中断,内部中断控制器,本篇讲1、arm裸机,轮询的方式,点亮led2、ARM裸机 通过按键,中断的方式,点了led灯,3、单片机,中断的方式4、CPU。裸机,的中断系统一、在开始前,先回顾下51单片机中断,单片机有5个中断,1个uart中断,2个定时器中断,2个外部中断,在发生中断时,单片机内部会自动跳转到hander处理函数,怎么实现的,不知道,是不是硬件自动跳转到中断处理函数的,还是软件查询后,去跳转,找到中断处理函数的。如下,定时器,点了led灯#incl原创 2024-08-09 12:45:37 · 892 阅读 · 0 评论 -
Linux内核.之 时间系统、进程管理,进程调度
https://www.cnblogs.com/alantu2018/p/8472028.htmlLinux 时间系统、进程的调度与切换。原创 2024-08-08 16:54:52 · 355 阅读 · 0 评论 -
Linux驱动.之中断系统.内核框架下,中断的处理request_irq,中断上下文Workqueue、Threaded IRQs、Softirq和Tasklets(三)
https://blog.csdn.net/suifen_/article/details/135434176?spm=1001.2014.3001.5502原文链接:https://blog.csdn.net/weixin_55796564/article/details/120129404开篇前workque工作队列是另外一种下半部执行方式,工作队列在进程上下文执行,工作队列将要推后的工作交给一个内核线程去执行,因为工作队列工作在进程上下文,因此工作队列允许睡眠或重新调度。因此如果你要推后的工作可原创 2024-08-08 15:45:47 · 137 阅读 · 0 评论 -
设备模型六(bus, device, driver)sysfs
https://blog.csdn.net/mxgsgtc/article/details/62042436?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-4-62042436-blog-136435704.235v43pc_blog_bottom_relevance_base2&spm=1001.2101.3001.4242.3&utm_relevant_index=7原创 2024-08-08 15:05:39 · 186 阅读 · 0 评论 -
Linux 配置dns覆盖默认127.0.0.53
Linux dns默认127.0.0.53,在/etc/resolve.conf中存在 nameserver 127.0.0.53,手动修改无果,每次重启依旧127.0.0.53,因为这是系统生成的文件,resolvectl命令来查dns的配置。ping www.baidu.com #用ping连接百度验证,成功连接,能够解析域名。如果是自己的dns服务器,就换成公司的,之后查询,已生效。要修改dns,先暂停dns服务,如下操作,#然后重启网络服务器;原创 2023-07-06 10:56:01 · 4565 阅读 · 1 评论 -
Linux内核并,发同步机制,自旋锁spinlock ,信号量,互斥锁mutex,原子操作,竞争和互斥,内核抢占入临界区,详解(一)
我们要坐火车从南京到新疆,这个’任务’特别的耗时,只能在车上等着车到站,但是我们没有必要一直睁着眼睛等着车到站,最好的情况就是我们上车就直接睡觉,醒来就到站,这样从人(用户)的角度来说,体验是最好的,对比于进程,程序在等待一个耗时的任务的时候,没有必须要占用CPU,可以暂停当前任务使其进入休眠状态,当等待的事件发生之后再由其他任务唤醒,这种场景采用信号量比较合适。由于自旋锁的这个忙等待的特性,注定了它使用场景上的限制 —— 自旋锁不应该被长时间的持有(消耗 CPU 资源),一般应用在中断上下文。原创 2024-08-02 22:38:16 · 208 阅读 · 0 评论 -
linux内核,中断上下文,中断下半部的处理2种方法: tasklet_schedule,工作队列workqueue
因此,为了避免被中断的代码延迟太长的时间,中断服务程序需要尽快运行,而且执行的时间越短越好,所以中断程序只作必须的工作,其他工作推迟到以后处理。上半部就是中断处理程序,它需要完成的工作越少越好,执行得越快越好,一旦接收到一个中断,它就立即开始执行。需要时间比较长,中断期间不能打断,则会影响其他进程的响应,把中断分为上下半部,上半部执行紧急的响应中断,时间比较短,如果中断要处理的事情比较多,比如,有一包数据要读取。1)中断上下文,不能和用户空间进行数据交互,不能被打断,不能做其他事,否则可能交出cpu,原创 2024-08-02 22:33:27 · 262 阅读 · 0 评论 -
关键字__attribute__
关键字__attribute__原创 2024-08-02 22:10:55 · 90 阅读 · 0 评论 -
linux内核,fs,app ,debug调试手段
追加打印消息到控制台。原创 2023-11-02 15:26:42 · 254 阅读 · 0 评论 -
问题记录 bug4-linux网卡初始化失败(四)
系统启动后,网卡设备驱动加载失败,这是个隐蔽的问题,外接Switch,phy,未及时上电,导致初始失败。是mcu控制外接网卡芯片供电,导致的问题。原创 2023-05-31 18:40:31 · 152 阅读 · 0 评论 -
问题记录 bug3-linux磁盘分区lsblk与df查看空间大小不一样(三)
问题记录 bug3-linux磁盘分区lsblk与df查看空间大小不一样。原创 2023-05-31 18:39:07 · 918 阅读 · 0 评论 -
问题记录 bug2-linux磁盘分区/格式化/挂载(二)
linux磁盘分区/格式化/挂载,明天写,原创 2023-05-31 18:38:00 · 60 阅读 · 0 评论 -
问题记录 bug1-系统上电挂载异常分区,df与du命令查看文件使用大小显示不一样
我们分配的block0p1,是给根文件系统用的,kernel启动后,会将/root挂载在这个分区,这样,后面kernel挂载完驱动后,就会去启动第一个进程,并使用/etc下的各种配置文件,对系统进行配置,比如配置网卡ip,配置log日志,并启动各种脚本,各种用户程序。根据这个博主说的,确实解决了问题,所以,这里提一下,为啥会出现这种损坏文件,导致磁盘分区异常的呢,有可能是系统关机过程,正在写文件,突然断电了,就会导致这个文件的损坏,所以一般正常的关机,都会去umount 驱动,挂载文件,原创 2023-05-31 18:35:13 · 1250 阅读 · 0 评论 -
Linux loglevel日志等级设置
最新的操作系统大都已经采用了rsyslog取代syslog,作为新的系统日志程序,rsyslog支持将日志存储到远端的日志服务器中,但这不是本文介绍的重点,本文主要介绍rsyslog的七种级别的日志如何各自记录到指定的文件中。系统支持按不同log输出方式配置不同等级输出,如串行口的输出等级配置为2,则只有0,1等级的Log会输出到串行口,以此类推;如何触发,可参考iptables的LOG操作,该操作默认的级别为4级,也即warning级别。0 debug –有调式信息的,日志信息最多。原创 2023-05-10 16:10:02 · 3855 阅读 · 0 评论 -
mtdparts分区设置(cmdline,uboot,Linux-kernel)
mtdparts分区设置原创 2022-12-09 17:30:26 · 593 阅读 · 0 评论 -
linux kernel内核、驱动日志调试方法(一)
对于正在运行的内核,所谓的core文件就是这个内核在内存中的核心映像,即/proc/kcore。proc文件系统是一种无存储的文件系统,当读其中的文件时,其内容由文件关联的读函数动态生成,当写文件时,文件所关联的写函数被调用。printk是打印内核消息的函数,printk通过附加不同日志级别(loglevel)或者说消息优先级,让printk对消息进行分类,这是与printf最大的区别,在编译时,日志级别宏会被展开为一个字符串,然后与消息本文拼接在一起,因此printk中优先级和格式字符串之间没有逗号。原创 2022-11-25 17:33:10 · 5768 阅读 · 1 评论 -
inux 2.6中断下半部机制分析
inux 2.6中断下半部机制分析Posted on 2013-03-12 23:46 feisky 阅读(369) 评论(0) 编辑 收藏Linux 2.6中断下半部机制分析作者:流星摘要 本文主要从使用者的角度对Linux 2.6内核的下半部机制softirq、tasklet和workqueue进行分析,对于这三种机制在内核中的具体实现并未进行深入分析,倘若读者有兴趣了解,可以直接阅读Linux内核源代码的相关部分。说明 本文档由流星自网上收集整理,按照自由软件开放源代码的精神发布,原创 2022-11-20 14:30:26 · 112 阅读 · 0 评论 -
linux 网络协议.深入内核理解sk_buf
后面看内核,再总结写https://blog.csdn.net/u012658346/article/details/17370447原创 2022-01-10 11:09:38 · 817 阅读 · 0 评论 -
linux 常见锁的用法
linux 常见锁的用法内核锁,应用层锁互斥锁,自旋锁原创 2022-01-10 11:07:14 · 558 阅读 · 0 评论 -
为什么Linux的音频驱动位于sound目录下而不是driver/sound
为什么Linux的音频驱动位于sound目录下而不是driver/sound来自百度百科:https://zhidao.baidu.com/question/1766959028556770020.html1、早期的2.4内核所有的音频驱动和其他驱动一样都是位于drivers目录下的:drivers/sound2、到了2.5开发版内核,所有的音频驱动包括音频框架代码由drivers/sound移到了sound目录下:(1)2.6内核之前的git记录查找:http://git.kernel.org/?转载 2021-11-03 17:40:34 · 755 阅读 · 1 评论 -
Linux2.6版本内核编译配置选项(中文翻译一)
Linux2.6版本内核编译配置选项原文: https://www.cnblogs.com/lcw/p/3159396.htmlDevice Drivers设备驱动程序Generic Driver Options驱动程序通用选项Select only drivers that don’t need compile-time external firmware只显示那些不需要内核对外部设备的固件作map支持的驱动程序,除非你有某些怪异硬件,否则请选上Prevent firmware from转载 2021-11-03 17:38:49 · 845 阅读 · 0 评论 -
linux下kernel,fs,dts,驱动加载的关系
linux启动时,启动uboot,给内核传参,uboot可以自己定制,给内核传需要的参数,内核启动后,会到uboot指定的分区,加载dts,来启动内核,加载驱动,,最后到指定的地址,挂载fs,配置系统,创建设备节点,最后进入用户态启动应用程序。没写完,在酝酿,他们启动过程和关系。初稿...原创 2021-07-03 11:07:32 · 431 阅读 · 0 评论 -
linux下启动过程中,创建很多文件夹,并加载东西,分区,挂载fs
在酝酿原创 2021-07-03 10:59:34 · 86 阅读 · 0 评论 -
内核调试
本文基址:http://blog.csdn.net/cugxueyu/archive/2007/12/21/1957740.aspx※ 调试工作艰苦,是内核级开发区别于用户级开发的一个显著特点。※ 驾驭内核调试的能力,很大程度上取决于经验和对整个操作系统的把握。一、调试前的准备内核级bug具有行为不可靠,定义不清晰或者说很难再现的诸多特定,为内核级的bug跟踪和调试带来了很大的困难。※ 对于一些定义不清楚地bug,问题的关键就是找到bug的源头,很多时候,当你精确地重现一个bug的时候,你就离成功转载 2021-05-13 10:34:37 · 102 阅读 · 0 评论 -
linux 中断上下文tasklet与workqueue和延时
//博文参考链接地址https://www.pianshen.com/article/403383439/原创 2021-01-27 11:15:58 · 150 阅读 · 0 评论