天翼云内核知识文档专栏是天翼云为开发者提供的互联网技术内容平台。内容涵盖内核相关内容资讯。开发者在内核专栏是可以快速获取到自己感兴趣的技术内容,与其他开发者们学习交流,共同成长。
监控进程的启动与退出可以使用 PsSetCreateProcessNotifyRoutineEx 来创建回调,当新进程产生时,回调函数会被率先执行,然后执行我们自己的MyCreateProcessNotifyEx函数,并在内部进行打印输出。
内核层与应用层之间的数据交互是必不可少的部分,只有内核中的参数可以传递给用户数据才有意义,一般驱动多数情况下会使用SystemBuf缓冲区进行通信,也可以直接使用网络套接字实现通信,如下将简单介绍通过SystemBuf实现的内核层与应用层通
PEB结构(Process Envirorment Block Structure)其中文名是进程环境块信息,进程环境块内部包含了进程运行的详细参数信息,每一个进程在运行后都会存在一个特有的PEB结构,通过附加进程并遍历这段结构即可得到非常
Linux初始化过程页表建立Linux初始化过程,会依次建立如下页表映射:1.恒等映射:页表基地址idmap_pg_dir;2.粗粒度内核镜像映射:即上篇博文里的“第二次建立页表映射”,页表基地址init_pg_dir;3.fixmap映射
在上一篇文章《驱动开发:内核取ntoskrnl模块基地址》中我们通过调用内核API函数获取到了内核进程ntoskrnl.exe的基址,当在某些场景中,我们不仅需要得到内核的基地址,也需要得到特定进程内某个模块的基地址,显然上篇文章中的方法是
indent是linux下一个能力极强的代码整理软件。在/linux-2.6/scripts/Lindentindent -npro -kr -i8 -ts8 -sob -l80 -ss -ncs这一行就是linux内核使用indent整理
1. page cacheLinux读写文件过程;read:用户进程调用read命令,内核查询读取的文件内容是否在内存(内核page cache)中,若该页内容缓存在内存中,直接读取返回给用户进程;若缓存不存在,则启动BIO,从硬盘读取该页
上一节讲了内核如何管理物理内存,其实内核除了管理本身的内存外,还必须管理用户空间中进程的内存,这就是进程地址空间,也就是系统中每个用户空间进程所看到的内存。Linux采用虚拟内存技术,系统中所有进程之间以虚拟方式共享内存,对一个进程而言,可
作者:于连庆,华清远见嵌入式学院讲师。 u-boot引导Linux内核有两种方式,go命令或者bootm命令。go命令引导zImage格式的内核映像,默认方式下不向内核传递参数,需要我们修改,相应的修改也有两种选择。一种是用使用stru
1.临界区和竞争条件临界区:就是访问和操作共享数据的代码段。 如果两个执行线程有可能处于同一个临界区中同时执行,如果这个情况发生了,就叫做竞争条件。避免并发和防止竞争条件称为同步。我们必须在某些操作期间对数据加锁,确保每个事务相对其他操作是
内核枚举进程使用PspCidTable 这个未公开的函数,它能最大的好处是能得到进程的EPROCESS地址,由于是未公开的函数,所以我们需要变相的调用这个函数,通过PsLookupProcessByProcessId函数查到进程的EPROC
在内核编程中字符串有两种格式ANSI_STRING与UNICODE_STRING,这两种格式是微软推出的安全版本的字符串结构体,也是微软推荐使用的格式,通常情况下ANSI_STRING代表的类型是char *也就是ANSI多字节模式的字符串
在上一篇文章《驱动开发:内核字符串转换方法》中简单介绍了内核是如何使用字符串以及字符串之间的转换方法,本章将继续探索字符串的拷贝与比较,与应用层不同内核字符串拷贝与比较也需要使用内核专用的API函数,字符串的拷贝往往伴随有内核内存分配,我们
MDL内存读写是最常用的一种读写模式,通常需要附加到指定进程空间内然后调用内存拷贝得到对端内存中的数据,在调用结束后再将其空间释放掉,通过这种方式实现内存读写操作,此种模式的读写操作也是最推荐使用的相比于CR3切换来说,此方式更稳定并不会受
Linux内核实现了一些通用的数据结构,提倡大家在开发时重用,内核开发者应该尽可能地使用这些数据结构。最常用的有:链表、队列、映射、二叉树1.链表(1).链表是一种存放和操作可变数量元素(节点)的数据结构,动态创建,无需在内存中占用连续内存
摘要:以架构师的要求, 肢解linux文件系统的设计, 并进一步采取自己的文件系统文件系统:文件系统基本概念什么是文件系统文件系统的标准POXIS接口有哪些open/read/write/close如何做出一个抽象的文件系统以支持多种不同的
源代码在最后面实验题目:源代码打包下载链接: 点击此处下载 密码: i2ev(第一部分实验是虚拟机上操作,第二部分是真机操作)1,创建内核模块编译模块2,加载与卸载内核模块加载删除内核模块第二部分几个主要内核函数的功能1,brithday_
1.什么是进程?进程:资源的封装单位;linux用一个PCB来描述进程,即task_struct, 其包含mm,fs,files,signal…root目录,是一个进程概念,不是系统概念;apropos chrootman chroot 2
1一个块IO的一生从page cache到bio到request当APP打开一个文件,内核为文件维护一个pagecache(磁盘的一个副本);读写文件时如果page cache命中,只会读写内存不操作磁盘;没有命中,才操作磁盘。在内核用fi
Linux内核及发行版 1. Linux内核 Linux内核是操作系统内部操作和控制硬件设备的核心程序,它是由芬兰人林纳斯开发的。【g
2023-03-16 07:49:58
2024-07-01 01:32:23
2023-04-21 03:14:39
2023-05-12 07:20:42
2023-06-19 06:58:36
2024-07-01 01:32:08