内核
文章平均质量分 66
野-百-合
在通往编程的路上,我且行且珍惜。
本博客的内容本人会保证开始可能是标题党,但是会不断更新的。
展开
-
深入理解了一下ioctl
常见使用场景ioctl通常用作用户空间对内核空间的设备进行操作的接口。也就是当有一些操作需要几个模块协同工作,或者说有些操作放在用户空间操作更合适的时候使用。比如我们想通过环境关照的明暗变化调整屏幕或者数码管的显示亮度的时候就可以通过ioctl获取周围环境光强度,然后通过ioctl对屏幕亮度或者数码管的亮度进行设置。连接纽带在使用ioctl为什么能够在用户空间控制内核空间的模块?1 内核模块必须是可操作的。首先模块必须注册为设备文件,这样用户空间才能打开文件。其次文件必须支持文件的基本操作,原创 2021-05-06 09:19:51 · 560 阅读 · 0 评论 -
linux五大模块概述-----只描述了进程(linux内存管理,进程调度模块,进程间通信,文件系统模块,网络模块)
首先描述进程调度策略:原创 2020-02-28 13:26:30 · 890 阅读 · 0 评论 -
PCIe学习笔记(一)——硬件设备识别扫盲篇(史无前例的好文章)
首先用一张图来直观的呈现出要了解PCIe,我们需要知道的一些基本概念。参考文章链接:https://www.cnblogs.com/szhb-5251/p/11620310.htmlhttps://www.cnblogs.com/yangxingsha/p/11551472.htmlhttps://blog.csdn.net/kunkliu/article/details/9438035...原创 2020-02-24 09:40:04 · 13398 阅读 · 4 评论 -
linux make menuconfig\Makefile\Kconfig 详解
在对linux进行编译的时候,经常会用到make menuconfig这样的图形化操作界面对系统进行剪裁。但是如果在采用图形化界面的情况下,通常会遇到需要在kernel文件夹之外的脚本文件中规定编译时所使用的*_defconfig文件。这样通常情况下,我们进行make menuconfig之后的文件会被arch/xxx/configs目录下的*_defconfig文件进行覆盖。而解决这个问题的办法就是在make menuconfig之后把文件中改动的部分merge到arch/xxx/configs目录下的*原创 2013-08-06 20:11:24 · 12623 阅读 · 0 评论 -
如何屏蔽LOGD\LOGI等打印输出
几天被打印信息的去除困扰了,想了想,如果靠一个一个的改动未免太繁琐。因此就仔细的看了下这部分的打印原理。当然下面只是简单的进行了知识罗列不过有需要的朋友可以随便看看。说不准会有些收获呢。Include/linux/printk.h中有如下定义:#defineKERN_EMERG""/* system is unusable */#defineKERN_ALERT原创 2014-04-29 18:47:46 · 5183 阅读 · 0 评论 -
linux内核启动过程中Warning: unable to open an initial console
在linux启动的过程中,当kernel中大部分驱动程序加载完成之后,也就是start_kernel完成到最后一步的过程中,报Warning: unable to open an initial console这样的打印信息,串口无法输入。网上没有找到比较好的解释,但是我不想轻易放弃这次深入了解用户空间启动的过程,因此决定要好好看一下问题到底出在哪里。网上很多人提供的解决方法创建conso原创 2014-01-10 20:51:24 · 6371 阅读 · 3 评论 -
什么是真正的实时操作系统
http://club.topsage.com/thread-513248-1-1.html什么是真正的实时操作系统http://club.topsage.com/thread-513248-1-1.html翻译 2012-04-15 13:05:17 · 1598 阅读 · 0 评论 -
Android4.0 多点触摸屏新手入门指南
1 前言 首先,说一段废话。CSDN注册有一段时间了,但是一直没有在上面发表博客,之前发布在其他博客上的文章,由于密码忘记了,所以也无法找回了。好,开始进入正题。本人也是初学者,并且入行不久。所以应该更适合初学的人学习。2 通观全局 我们将Android分为三个部分,kernel、framework、app三个部分。由于软件都是跑在硬件的基础之上原创 2012-03-01 12:49:17 · 5268 阅读 · 0 评论 -
触摸屏相关的一点拙见--以及android系统中linux内核部分的编译
今天一个小项目终于尘埃落定,虽然本人在其中从事的工作很简单,但是还是颇有一些心得想跟大家分享一下。 首先我们需要了解一下linux内核中驱动为何能被编译进内核,在这里有两个很重要的文件不得不提:Kconfig和Makefile。其中Kconfig是分布在各目录的,这些Kconfig文件构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文档相关的内核配置菜单,这就原创 2012-04-19 21:19:27 · 4534 阅读 · 1 评论 -
中断处理--上下半部机制
首先需要了解一下中断的概念:一个“中断”仅仅是一个信号,当硬件需要获得处理器对它的关注时,就可以发送这个信号。内核维护了一个中断信号线的注册表,该注册表类似于I/O端口的注册表。 模块在使用中断前要先请求一个中断通道(或中断请求IRQ),然后在使用后释放该通道。用到的API就是request_irq()以及free_irq()。注意在调用request_irq()和free_irq(原创 2012-04-19 21:36:30 · 4742 阅读 · 0 评论 -
返璞归真系列——————微内核与宏内核
我发现我一直是一个后知后觉的人。不知道是心里的浮躁还是自己脑子小装不下那么多知识。不过幸好我还是一个善于思考的人。现在重新想到了要区分一下这两个概念。也不至于稀里糊涂的过着。了解了如下的问题之后更有利于对linux架构的认识。 在通常情况下,我们会想到把凡是能够为进程服务的模块就应该放在操作系统的内核中。例如:文件管理模块是为进程服务的,所以放在内核中;各种驱动模块是为进程服务原创 2012-04-17 10:42:32 · 11552 阅读 · 3 评论 -
Android 4.0 suspend/resume (kernel part)
之前的一段时间,本人错误的任务休眠是在WindowManagerService中在消息的形成和消息的分发过程中进行截获的。但是经过实验之后,发现自己走上了一条错误的道路,幸好不是不归路。 言归正传,对于Android的休眠唤醒,本身有一套整体的电源管理方案。总体上讲,就是early_suspend和late_resume。从名称来看我们大体上会对休眠唤醒有个感性的认识就是。这两个过原创 2012-03-12 17:13:58 · 4921 阅读 · 2 评论