中断/异常/陷入机制是操作系统由用户态转为内核态的唯一途径,是操作系统的驱动力。 中断、异常机制有以下特征:随机发生自动处理(硬件完成)可恢复 中断、异常的区别:中断属外部事件,是正在运行的程序所不期望的异常由正在执行的指令引发 在中断、异常过程中,软件和硬件分别担任什么角色:硬件--中断...
分类:
其他好文 时间:
2015-04-09 13:42:46
阅读次数:
158
http://blog.chinaunix.net/uid-14528823-id-4136760.html Linux中有多种栈,很容易弄晕,简单说明一下:1、用户态栈:在进程用户态地址空间底部,跟平时我们简单和理解的一样,就是虚拟地址空间中的一段,不多说~2、内核栈:跟用户态栈是独立的,在用户态...
分类:
系统相关 时间:
2015-04-02 18:22:16
阅读次数:
180
1.linux的的用户态与内核态 Intel x86架构的CPU有0~3四种执行级别,0级最高,3级最低, linux只使用0级和3级,分别表示内核态和用户态。linux中,只有内核态能访问逻辑地址为0xc0000000以上的空间。执行一个程序时,大部分时间是运行在用户态下的,在其需要操作系统帮助....
分类:
系统相关 时间:
2015-03-29 01:50:29
阅读次数:
214
Linux将虚拟地址空间划分为两个部分,分别称为内核空间和用户空间 各个系统进程的用户空间是完全彼此分离的,而虚拟地址空间顶部的内核空间总是同样的,无论当前执行的是哪个进程。尽管Intel处理器区分4中特权级别,当Linux只使用两种不同的状态:核心态和用户态。两种状态的关键差别在于对高于TASK_...
分类:
系统相关 时间:
2015-03-28 15:41:43
阅读次数:
245
进程对象,线程对象都是在系统空间,但是peb,teb却是在用户空间。因为它们需要一些用户态的代码来修改它们。 csrss会为该会话中每个进程创建一个CSR_PROCESS的结构。 win32k.sys 会为那些第一次使用GUI的线程所属的进程创建 W32PROCESS结构。 windbg查看: d....
一、首先获取一块物理上连续的物理内存
有多种方法。
(a)通过kernel命令行参数预留一些内存
这种方法,适合于需要大块的物理连续的内存。
假设物理内存总量为256M。命令行参数中,指定 mem=224M。即只让内核使用前224M内存,忽略其余的内存。
这样,我们就有了32M的内存可用,内存起始物理地址为224*1024*1024。
在内核态,通过ioremap,就可以将此物理地址处...
分类:
其他好文 时间:
2015-03-17 20:18:43
阅读次数:
169
【说明】转载自http://my.oschina.net/liubin/blog/27795究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子:1)例子C代码1...
分类:
系统相关 时间:
2015-03-17 17:41:08
阅读次数:
140
1.memcmp可否用来比较结构体?strcmp和memcpy的区别?
2.软中断和硬中断的区别?
3.进程间通信的几种方式?
4.kmalloc和vmalloc差别?
5.应用层的mmap和内核态的vmalloc对内存访问的差别?
6.用户态是否可以直接访问内核态内存?
7.PCIe中MSI中断如何触发?
8.怎么知道一个文件的大小?
9.spin_lock在单核和多核模式下的区...
分类:
系统相关 时间:
2015-03-17 00:53:02
阅读次数:
190
Linux CPU占用率原理与精确度分析1 CPU占用率计算原理在Linux/Unix 下,CPU 利用率分为用户态、系统态和空闲态,分别表示CPU 处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。 下面是top显示的值1.1%us, 1.6%sy, 0.0%ni, 97.2%i...
分类:
系统相关 时间:
2015-03-16 16:20:06
阅读次数:
251
花几天写了个so easy的Linux包过滤防火墙,估计实际意义不是很大。防火墙包括用户态执行程序和内核模块,内核模块完全可以用iptable代替。由于在编写的过程一开始写的是内核模块所以就直接用上来。代码结构如下:.├── kernelspace│ ├── Makefile│ ├── Makefi...
分类:
系统相关 时间:
2015-03-15 22:53:24
阅读次数:
1178