- 博客(6)
- 资源 (3)
- 收藏
- 关注
原创 内核驱动开发注意事项
1、内核的栈空间非常小,可能只有4K大小,因此内核函数中尽量不要用递归,不要声明大的临时变量,尽量用堆空间; 2、Documentation/Changes中有构造内核模块之前需要的工具版本;
2017-02-18 23:01:46
415
原创 内核驱动hello world模块
#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_ALERT "hello, world!\n"); return 0;}static void hello_exit(void){
2017-02-18 22:20:08
260
原创 内核Makefile基本写法
KERN_DIR = /usr/src/$(shell uname -r) //此处为内核树所在目录obj-m := hello.o //此处表示最终由.o文件生成动态加载的模块all: make -C $(KERN_DIR) M=$(shell pwd) modulesclean: make -C $(KERN_DIR) M=$(shell pwd) modules cle
2017-02-18 22:17:03
587
1
原创 Linux编译动态链接库和使用
1、编译动态链接库,将lib_a.c和lib_b.c编译成动态库 lib_common.h#ifndef __LIB_COMMON_H#define __LIB_COMMON_Hvoid liba_printf();void libb_printf();#endiflib_a.c#include <stdio.h>#include "lib_common.h"void liba_printf
2015-12-08 15:07:34
276
原创 Linux系统调用sysconf
1、sysconf背景 现在的计算机一般都是多核的,linux2.6提供了进程绑定cpu功能,将进程指定到某个core上执行,方便管理进程。Linux提供了系统调用sysconf来获取cpu的个数和当前可用的cpu个数。 2、sysconf函数简介 包含头文件unistd.h即可直接调用,原型为: long sysconf(int name);
2015-12-01 15:51:57
478
原创 Linux共享内存示例,使用信号量同步
1、shm_test1.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <stddef.h>#include <errno.h>#include <sys/un.h>#include <sys/types.h>#include <sys/sem.h>#inclu
2015-11-26 16:42:47
1158
基于Socket编程的微博模拟程序
2011-12-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人