![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内核和模块编程
zjhqlmzldx
这个作者很懒,什么都没留下…
展开
-
Linux内核钻研好的书籍
Linux内核钻研过程中遇到的好书记录:《ARM Linux内核源代码分析》《Linux内核深度解析》《奔跑吧 Linux内核:基于Linux 4.x内核源代码问题分析》《深入Linux内核架构》《深入理解Linux内核》《Linux内核设计与实现》《Linux设备驱动程序》《深入理解Linux虚拟内存管理》...原创 2020-07-25 10:28:13 · 167 阅读 · 0 评论 -
linux内核常见问题
0x00 题目总览主要有哪几种内核锁?Linux 内核的同步机制是什么? Linux 中的用户模式和内核模式是什么含义? 怎么申请大块内存?vmalloc 和 kmalloc 有什么区别? 进程间通信主要有哪几种方式? 伙伴系统申请内存的函数有哪些? 通过 slab 分配器申请内存的函数有哪些? Linux 的内核空间和用户空间如何划分的?进程地址空间布局图? vmalloc() 申请内存有什么特点? 用户程序使用 malloc() 申请的内存空间在什么范围? 在支持并使能 MMU 的原创 2020-07-24 09:17:12 · 309 阅读 · 0 评论 -
用户态和内核态
1.一句话概括:用户模式只能通过系统调用操作硬件资源,内核模式可以直接操作硬件资源。2.具体介绍:内核态:cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序。用户态:只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取。3.为什么要有用户态和内核态?由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级原创 2020-07-24 09:16:44 · 99 阅读 · 0 评论 -
内核启动之start_kernel()和rest_init()函数
start_kernel启动过程分析start_kernel()函数在init/main.c文件里。内核的初始化程序在start_kernel这个函数中,可以在线查看这些代码: start_kernel。通过阅读start_kernel代码,可以大致了解到内核在初始化的时候,做了以下工作:1. lockdep_init():初始化内核依赖关系表,初始化hash表boot_init_st...原创 2019-03-01 19:01:27 · 1966 阅读 · 0 评论 -
struct timer_list定时器使用
内核模块源码实例:/* 内核定时器测试模块 */#include <linux/kernel.h> //内核#include <linux/module.h> //内核模块#include <linux/init.h> //模块初始化和注销#include <linux/slab.h> //屋里内存分配管理#include <linux/list.h>...原创 2020-07-20 10:36:04 · 1172 阅读 · 0 评论