kernel
文章平均质量分 66
adaptiver
是非审之于己毁誉听之于人得失安之于数所谓男儿要锐气藏于胸和气浮于脸才气见于事义气施于人如此方能成就大事
展开
-
netlink学习小结
概述内核态与用户态通信有多种方式,例如系统调用,ioctl,procfs/sysfs,uevent等,netlink也是内核态和用户态通信的一种重要方式,而且它提供全双工的工作模式,用户态和内核态都可主动向对方发送信息。netlink接口简介数据结构用户态数据结构:struct sockaddr_nl{ sa_family_t nl_family; /* AF_NETLINK */ unsigned short nl_pad; /* zero原创 2022-03-23 00:12:26 · 1149 阅读 · 0 评论 -
syscore
struct syscore_ops里有四个成员,一个list,三个函数指针(suspend, resume and shutdown)。模块定义一个struct syscore_ops型变量(可只给部分函数指针赋值),然后使用register_syscore_ops进行注册,反之也可用unregister_syscore_ops解除注册。syscore_suspend/syscore转载 2016-07-24 11:54:00 · 2459 阅读 · 0 评论 -
记录一下下载内核的命令
记录一下下载内核的命令,以免每次都去找。git clone linux官方内核http://blog.csdn.net/junmuzi/article/details/8518696Git clone git://git.kernel.org/pub/scm/Linux/kernel/git/stable/linux-stable.git克隆rt linux s转载 2017-06-16 13:43:35 · 1251 阅读 · 0 评论 -
ARM平台下独占访问指令LDREX和STREX的原理与使用详解
LDREX Rx, [Ry]读取寄存器Ry指向的4字节内存值,将其保存到Rx寄存器中,同时标记对Ry指向内存区域的独占访问。STREX Rx, Ry, [Rz]如果执行这条指令的时候发现已经被标记为独占访问了,则将寄存器Ry中的值更新到寄存器Rz指向的内存,并将寄存器Rx设置成0。指令执行成功后,会将独占访问标记位清除。而如果执行这条指令的时候发现没有设置独占标记,转载 2017-05-17 15:27:22 · 3034 阅读 · 0 评论 -
原子操作--ARM架构
http://www.cnblogs.com/liuhailong0112/p/5745509.html说明:内核版本号为3.10.101一、ARM架构中的原子操作实现 在原子操作(一)中我们已经提到,各个架构组织为“复仇者”联盟,统一了基本的原子变量操作,这里我们就拿atomic_dec(v)来看看通天ARM的实现。首先是atomic_dec(v)原子减一操转载 2017-05-17 15:29:41 · 2552 阅读 · 0 评论 -
Linux Kernel之spin_lock之ARM64实现
注意arch_spin_lock中的注释,可解释为何一般sevl指令放在wfe指令之前。* No: spin on the owner. Send a local event to avoid missing an* unlock before the exclusive load.如果event寄存器的值不为零,则wfe指令不会进入low power standby mode。转载 2017-05-17 15:21:50 · 2612 阅读 · 1 评论 -
arm架构下spinlock原理 (代码解读)
http://blog.csdn.net/longwang155069/article/details/52055876自旋锁的引入原子变量适用在多核之间多单一共享变量进行互斥访问,如果要保护多个变量,并且这些变量之间有逻辑关系时,原子变量就不适用了。例如:常见的双向链表。假设有三个链表节点A、B、C。需要将节点B插入节点A、C之间。如果CPU A刚好将A节点的后向指针指向转载 2017-05-17 15:13:14 · 14868 阅读 · 1 评论 -
深入解析 ext2 文件系统
http://blog.chinaunix.net/uid-24774106-id-3266816.html首先生成一个ext2文件系统。我在我磁盘空间有限的Ubuntu中,划出500M的空间来从头学习ext2 文件系统。 dd命令用来创建一个文件,不多说了,通过执行这个dd命令生成了一个全零的大小为512000*1KB的文件,即500MB 的文件。转载 2016-06-20 14:45:03 · 1200 阅读 · 0 评论 -
dymamic debug
copy some text from kernel/Documentation/dynamic-debug-howto.txt.// enable the message at line 1603 of file svcsock.cnullarbor:~ # echo -n 'file svcsock.c line 1603 +p' > /dynamic_debug/contro转载 2015-11-26 11:18:51 · 690 阅读 · 0 评论 -
overcommit_memory/overcommit_ratio/overcommit_kbytes
http://blog.csdn.net/jollyjumper/article/details/24127009新配的服务器内存128G,但在空余内存还有20G,page cache 60G时jps启动不了,提示java heap space,c中调用malloc无法分配5G以上的内存。发现是系统参数overcommit_memory和overcommit_ratio搞的鬼。grep转载 2015-02-13 22:09:03 · 1564 阅读 · 0 评论 -
dumpsys batterystats
使用batterystats可了解系统中wakelock的详细持有时间,有助于power和sleep调试。关注一下。http://blog.csdn.net/oujunli/article/details/37563067http://www.2cto.com/kf/201510/445482.htmldumpsys batterystats --enable full-w转载 2015-11-27 18:40:01 · 6889 阅读 · 0 评论 -
VDSO/linux-gate.so/sysenter
背景可看看下面link:http://blog.csdn.net/juana1/article/details/6904932往往内核添加了一个功能,glibc要花很久才会用上。本来linux那边为这个功能是否进入内核已经吵半天了,glibc这边又要为是否使用这个内核新特性再次吵架半天(glibc不是Linux专有的,还得考虑BSD(虽然人家也不用glibc),SysV Windows(诶转载 2015-12-16 16:01:34 · 2402 阅读 · 0 评论 -
linux内核线程对信号的处理过程
http://blog.csdn.net/dog250/article/details/5303238linux中的线程分为用户线程和内核线程,用户线程是标准的线程,完全的自主性,完全的抢占性;但是内核线程就不那么好了,某种意义上没有用户线程那么清闲,这个怎么理解呢?用户线程的编写者只需要实现应用逻辑就可以,至于调度,信号处理等工作完全有内核代劳,用户进程根本不需要操这些心,比如说调度, 在2转载 2016-05-27 11:36:49 · 1006 阅读 · 0 评论 -
switch_set_state/netlink/kmod
许多代码调用接口 switch_set_state 向用户态传递消息,在 switch_set_state 中:switch_set_state 调用接口 kobject_uevent_env在 kobject_uevent_env 中,如果定义了 CONFIG_NET ,则会通过netlink向用户态发送消息;在kernel3.4上,不判断,直接调用call_usermodehelp转载 2016-07-24 09:42:18 · 2599 阅读 · 0 评论 -
linux的early printk的探讨
http://mcuos.com/thread-8169-1-1.html(一)知识背景:[color=Red]Uncompressing Linux... done, booting the kernel.------------setup_arch------------------------setup_machine_fdt return 0----转载 2016-07-14 17:42:50 · 2895 阅读 · 0 评论 -
Linux kernel Low Level debug (DEBUG_LL)
http://blog.csdn.net/cpuwolf/article/details/4492822如果你运气不太好,那么第一次启动kernel,最多看见uncompressing linux...ok, booting the kernel从串口ttyS0出来,然后你什么都没了。这总情况遇见的机会还是很多的。多数原因是内核卡住了。你可能会问,内核卡住了不要转载 2016-07-14 17:32:24 · 1679 阅读 · 0 评论 -
Linux内核模块模型面向对象分析
http://www.cnblogs.com/wenhuisun/archive/2013/02/22/2921781.htmlLinux内核模块模型面向对象分析C到C++,它们的关系演变过程是怎样的。从Linux的内核代码里面你可以了解到更深的编程层次的面向对象,而不是简单的封装、继承、多态。首先这个题目有点大,而且过于深,而我能了解到的也只是冰山一角,不过我觉得转载 2016-06-12 14:03:51 · 1226 阅读 · 0 评论 -
Linux的Proc文件系统详解
http://blog.chinaunix.net/uid-23046336-id-3255640.htmlLinux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系 统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变转载 2016-05-29 00:20:38 · 727 阅读 · 0 评论