【说明】转载自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
Binder工作在linux层,是一个不需要硬件的驱动,从线程角度看,Binder代码运行在内核态,客户端程序使用Binder是通过系统调用完成的。 Binder是一种整体架构,包含服务端接口,Binder驱动,客户端接口三个模块。1. 服务端 一个Binder服务端实际上就是一个Binder类的....
分类:
其他好文 时间:
2015-03-16 20:59:45
阅读次数:
172
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
这些天在学习linux内核编程,就在这里小小的show以下。
首先编写如下的linux代码。并命名为hello.c
这里你应该注意亮点:
第一、linux内核编程,不同于普通的用户态下的编程;有一个入口的main函数;这里的“main”函数是module_init();同时还有一个善后处理的函数:module_exit()。
第二、linux内核编程在编译的时候,不同于用户...
分类:
系统相关 时间:
2015-03-15 16:55:45
阅读次数:
233
前面几章分析了Codec、Platform、Machine驱动的组成部分及其注册过程,这三者都是物理设备相关的,大家应该对音频物理链路有了一定的认知。接着分析音频驱动的中间层,由于这些并不是真正的物理设备,故我们称之为逻辑设备。
PCM逻辑设备,我们又习惯称之为PCM中间层或pcm native,起着承上启下的作用:往上是与用户态接口的交互,实现音频数据在用户态和内核态之间的拷贝;往下是触发co...
分类:
其他好文 时间:
2015-03-10 23:16:27
阅读次数:
258
1. 用户态和内核态的概念区别
究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子:
1)例子
void testfork(){
if(0 = = fork()){
printf(“create new process succe...
分类:
系统相关 时间:
2015-03-10 19:24:38
阅读次数:
171
进程、线程和协程要理解什么是goroutine,我们先来看看进程、线程以及协程它们之间的区别,这能帮助我们更好的理解goroutine。进程:分配完整独立的地址空间,拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程的切换只发生在内核态,由操作系统调度。
线程:和其它本进程的线程共享地址空间,拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程的切换一般也由操作系统调度(标准线程是的)。
协程...
分类:
其他好文 时间:
2015-03-05 22:26:19
阅读次数:
386
说明:喜欢写小程序的人都特别注重自己程序的执行效率,那么在Linux上,就有一个time的命令,用于测量命令的运行时间,还可以测量内存、I/O等的使用情况。一个程序在运行时使用的系统资源通常包括CPU、内存和I/O等;CPU资源的统计包括实际使用时间(real time)、用户态使用时间(the p...
分类:
系统相关 时间:
2015-03-05 18:38:35
阅读次数:
177