随笔分类 -  linux内核

摘要:申请内存的函数有哪些,以及其特点其实总结起来,申请内存的函数主要有kmalloc,vmalloc,__get_free_page,malloc函数族,alloca。下面分别介绍:1. vmalloc:内核态的内存申请函数,也是基于slab机制。申请的物理内存并不连续,速度相比于kmalloc要慢。用于申请大块内存。其分配的内存在内核空间中的动态映射区。Vmalloc能分配的内存较大,可以通过命令“... 阅读全文
posted @ 2015-12-13 21:16 DChipNau 阅读(2120) 评论(0) 推荐(0)
摘要:内核空间与用户空间的通信方式 下面总结了7种方式,主要对以前不是很熟悉的方式做了编程实现,以便加深印象。 1.使用API:这是最常使用的一种方式了A.get_user(x,ptr):在内核中被调用,获取用户空间指定地址的数值并保存到内核变量x中。B.put_user(x,ptr):在内核中被调用,将内核空间的变量x的数值保存到到用户空间指定地址处。C.Copy_from_user()/copy_... 阅读全文
posted @ 2015-12-13 21:15 DChipNau 阅读(18960) 评论(0) 推荐(5)
摘要:Kmalloc申请的最大内存 以前虽然读过源码,但是对于它的申请上限确实没注意过。下面分析下,下面是kmalloc的源码。 可以看出,如果想知道kmalloc能申请的范围,需要跳转到文件中观察。下图便是包含的文件 可以看出,kmalloc一般情况下的上限是128K,但是如果打开了KMALLOC_MAX_SIZE这个宏,可以申请的内存会更大,如果想要知道上限的话,需要知道KMALLOC_MAX_S... 阅读全文
posted @ 2015-12-13 21:08 DChipNau 阅读(6245) 评论(0) 推荐(0)
摘要:如何在不重新编译内核,不rmmod内核模块的情况下修改系统调用为了解决这个问题,最终实现了两种解决方式:1.Linux系统调用劫持2.Kprobes内核调试技术(并非真正的修改)下面分别说下:Linux系统调用劫持:其实就是修改内核符号表,来达到一个劫持的作用。因为系统调用实际上是触发了一个0x80... 阅读全文
posted @ 2015-12-13 21:07 DChipNau 阅读(2639) 评论(1) 推荐(2)
摘要:这种问题就要和ucos结合起来嘛。 程序和进程:程序:存放在磁盘上的一些列代码和数据的可执行映像,是一个静止的实体。进程:是一个执行中的程序,它是动态的实体。 linux进程的四要素:1. 有一段程序供其执行。这段程序不一定是某个进程所专有,可以与其他进程共用。2. 有进程专用的内核空间堆栈。3. 在内核中有一个task_struct数据结构,即通常所说的“进程控制块”。有了这个数据结构,进程才能... 阅读全文
posted @ 2015-11-24 23:36 DChipNau 阅读(1601) 评论(0) 推荐(0)
摘要:能不能一种链表中链接不同的类型呢,相应这种号召,内核链表诞生了。内核链表之所以能够链接不同的类型的数据,是因为它和普通链表不一样,它链接的不是数据结构的起始地址,而是链接的该数据结构中的的list_head属性。 下面是比较重要的函数: 其他的都很简单,专门介绍一下list_entry函数: 函数最后返回的是这个结构体节点起始地址。Ptr是这个节点中list_head属性的地址,type是这个... 阅读全文
posted @ 2015-11-24 23:35 DChipNau 阅读(251) 评论(0) 推荐(0)
摘要:虚拟内存模型Linux 内核本身并不运行在虚拟空间中,其使用的是物理寻址模式。 物理内存被分割为界面,一个内存页面的大小由PAGE_SIZE宏决定。 虚拟地址空间的方式使程序员可以将巨大的结构用于连续的地址,而不必考虑物理内存上的限制。线性地址到物理地址线性地址需要由处理器或者一个单独的MMU转换为物理地址,转换方式如下: 解析的方式为:1.用线性地址中的第一个位段为下标可以在页面目录中找的... 阅读全文
posted @ 2015-11-22 21:49 DChipNau 阅读(310) 评论(0) 推荐(0)
摘要:Linux磁盘分区和目录 Linux发行版之间的差别很小,差别主要表现在系统管理的特色工具以及软件包管理方式的不同。 Windows的文件结构是多个并列的树状结构,最顶部是不同的磁盘(分区),如C,D,E等。而linux的文件结构是当个树状结构。 分区和目录的关系:1. 任何一个分区都必须挂载到某个目录上。2. 目录是逻辑上的区分,而分区是物理上的区分。3. 根目录是所有linux的文件和目录下... 阅读全文
posted @ 2015-11-22 21:43 DChipNau 阅读(434) 评论(0) 推荐(0)