自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Question for KVM VGA-Passthrough

1.如何编写systemd服务文件:http://zh.opensuse.org/index.php?title=openSUSE:How_to_write_a_systemd_service&variant=zh

2013-09-08 11:35:28 744

转载 Generic Netlink详解

netlink socket是一种用于用户态进程和内核态进程之间的通信机制。它通过为内核模块提供一组特殊的API,并为用户程序提供了一组标准的socket接口的方式,实现了全双工的通讯连接。Netlink的特点:双向传输,异步通信用户空间中使用标准socket API内核空间中使用专门的API支持多播可由内核端发起通信支持32种协议类型netlink仅支持32种协议类型

2013-08-23 14:17:13 3612

转载 对Linux内核中进程上下文和中断上下文的理解

内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序运行在用户空间。现代的CPU都具有不同的操作模式,代表不同的级别,不同的级别具有不同的功能,在较低的级别中将禁止某些操作。    Linux系统设计时利用了这种硬件特性,使用了两个级别,最高级别和最低级别,内核运行在最高级别(内核态),这个级别可以进行所有操作,而应用程序运行在较低级别(用户态),在这个级别,处

2013-08-22 09:53:27 522

转载 进程的通信方式

进程的通信方式    (1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。  (2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建。  (3)信号(

2013-08-18 20:25:00 428

转载 使用socket的Linux上的C语言helloworld多线程服务器和客户端测试程序

///////////////////////////////////////////////////////////////////////////////////服务器端程序的编译gcc -o multi_thread_server multi_thread_server -lpthread客户端程序的编译gcc -o multi_thread_client multi_thr

2013-08-18 11:06:17 564

转载 本地socket unix domain socket

socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIXDomain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进

2013-08-17 10:35:46 386

转载 Linux 用户态与内核态的交互 ——netlink 篇

作者:Kendo2006-9-3这是一篇学习笔记,主要是对《Linux 系统内核空间与用户空间通信的实现与分析》中的源码imp2的分析。其中的源码,可以到以下URL下载:http://www-128.ibm.com/developerworks/cn/linux/l-netlink/imp2.tar.gz参考文档《Linux 系统内核空间与用户空间通信的实现与分析》 

2013-08-16 09:31:18 899

原创 用户空间栈 & 系统空间栈

以下简称用户栈、内核栈1、用户栈和内核栈的区别       内核在创建进程的时候,在创建task_struct的同时,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。记住,进程对应的用户栈和内核栈都是进程私有的。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,c

2013-08-16 09:27:10 467

转载 printk和printf的区别

内核使用printk()打印!应用层使用printf()打印!&&& 大部分常用的C库函数在Linux内核中都已经得到了实现。在所有没有实现的函数中,最著名的就数printf()函数了。内核代码虽然无法调用 printf()函数,但它可以调用printk()函数。printk()函数负责把格式化好的字符串拷贝到内核日志缓冲上,这样syslog程序就可 以通过读取该缓冲区来获

2013-08-14 09:08:05 600

原创 C中的volatile用法

volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatile int i=10; int j = i; ... int k = i; 

2013-08-12 11:44:13 318

转载 一个最简单的Makefile例子

1.hello.c#include int main(){    printf("Hello World!\n");    return 0;}2.Makefilehello : hello.o    cc -o hello hello.ohello.o : hello.c    cc -c hello.cclean :     rm hel

2013-08-09 09:22:29 499

转载 exit()函数

函数名: exit()所在头文件:stdlib.h功 能: 关闭所有文件,终止正在执行的程序。exit(1)表示异常退出.这个1是返回给操作系统的不过在DOS好像不需要这个返回值exit(x)(x不为0)都表示异常退出exit(0)表示正常退出用 法: void exit(int status);参 数 : status //程序退出的返

2013-08-08 19:15:22 511

原创 (void)fprintf 里面的(void)有什么作用

fprintf()函数的原型如下: int fprintf(FILE *stream, const char *format, ...)      那么将int类型返回值强制转换成void类型有什么作用?答:void表示“空,不存在”。也就是说这个函数只是输出内容(执行语句),并不会真正返回内容。或者说,即便返回内容我不需要其它数值接受(无需判断是否成功,不需要0和-1

2013-08-08 19:02:11 833

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除