当前位置: 首页 > news >正文

潮流设计网站深圳网页设计培训中心

潮流设计网站,深圳网页设计培训中心,帝国cms转换wordpress,福州百度网站排名优化一、需求 有一段代码需要在运行时加载注入内核中#xff0c;当用户层需要访问时可以提供内核态环境去运行。 二、c代码构建 // #include errno.h // #include string.h // #include stdio.h // #include fcntl.h // #include stdlib.h…一、需求 有一段代码需要在运行时加载注入内核中当用户层需要访问时可以提供内核态环境去运行。 二、c代码构建 // #include errno.h // #include string.h // #include stdio.h // #include fcntl.h // #include stdlib.h // #include unistd.h #include linux/ioctl.h // #include sys/syscall.h #include linux/init.h #include linux/module.h #include linux/kernel.h #include linux/fs.h #include linux/time.h #include linux/sched.h #include linux/unistd.h // #include asm/uaccess.hstatic int sk_init(void) {printk(KERN_INFO sk:init.\n);return 0; } module_init(sk_init);static void sk_exit(void) {printk(KERN_INFO sk:exit.\n);return; } module_exit(sk_exit);MODULE_AUTHOR(Even); MODULE_LICENSE(GPL); // MODULE_DESCRITION(secure key get module); MODULE_ALIAS(a simplest module);三、c代码讲解 3.1头文件声明 关键代码 // #include errno.h // #include string.h // #include stdio.h // #include fcntl.h // #include stdlib.h // #include unistd.h #include linux/ioctl.h // #include sys/syscall.h #include linux/init.h #include linux/module.h #include linux/kernel.h #include linux/fs.h #include linux/time.h #include linux/sched.h #include linux/unistd.h // #include asm/uaccess.h由于此部分代码属于内核因此所有的函数都需要使用内核提供的库函数实现被屏蔽的头文件是首先从应用层移植过来的应用层函数库因此无法使用做屏蔽处理。已使用的函数库一般是在“linux/”目录下少数可能会用到的函数库会在asm/路径下。 3.2初始化与退出函数构建 关键代码 static int sk_init(void) {printk(KERN_INFO sk:init.\n);return 0; } module_init(sk_init);static void sk_exit(void) {printk(KERN_INFO sk:exit.\n);return; } module_exit(sk_exit); 此部分函数中首先定义初始化函数“sk_init”以及退出函数“sk_exit”注意其中使用的打印函数为内核打印函数“printk”。其次使用模块安装函数向内核声明安装时要执行的函数“module_init”此函数必须要写否则会导致模块装载找不到初始化函数。同理使用module_exit声明模块卸载函数。 3.3其他声明 关键函数 MODULE_AUTHOR(Even); MODULE_LICENSE(GPL); // MODULE_DESCRITION(secure key get module); MODULE_ALIAS(a simplest module); 不可省略此处会向模块声明作者、规范与介绍。 四、Makefile文件构建 在该c文件相同路径下新建Makefile文件。 关键代码 obj-m:secure_key.o KDIR : /home/Evenurs/f1c100s/dev/f1c100s/tina/lichee/linux-3.10 PWD :$(shell pwd) CROSS_COMPILE : /home/Evenurs/f1c100s/dev/f1c100s/tina/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-arm9-musl/toolchain/bin/arm-openwrt-linux-muslgnueabi- ARCH : arm all:make ARCH$(ARCH) CROSS_COMPILE$(CROSS_COMPILE) -C $(KDIR) M$(PWD) modules clean:rm -f *.ko *.o 五、Makefile讲解 第一行obj-m声明本文件以模块形式进行编译m表示“module”。 第二行KDIR声明内核路径即kernel dir。 第三行PWD声明当前工作目录绝对路径$(shell pwd)表示执行pwd命令。 第四行CROSS_COMPILE声明编译工具注意需省去末尾的gcc因为在编译时会自动补充“gcc”。 第五行ARCH声明架构为arm。 第六行及以后声明命令与执行的内容。 注意make指令的末尾的modules代表以模块形式进行编译。 六、目录结构 --root --*.c --Makefile 七、在Makefile文件目录下执行make命令会生成*.ko文件。 八、使用insmod指令装载ko 效果如下 九、结论 在处理ko时时刻记住此时身处内核态下操作都需要使用内核态的方法。
http://www.pierceye.com/news/400192/

相关文章:

  • 网至普的营销型网站建设扬州网站商城建设价格表
  • 成品网站价格表简答网站内容建设的时候内链重要性
  • 视频链接生成器某网站搜索引擎优化
  • flash网站案例vi设计是设计什么
  • ip查询网站备案查询企业网络营销推广平台
  • 多城市网站建设免费制作小程序的平台
  • 郑州网站建设出名吗?wordpress获取登录密码
  • 网站建设论文的开题报告重庆市工程建设信息
  • 商务网站设计方案门户网站的优点
  • 河津网站制作wampserver做的网站
  • 洛阳专业网站设计开发制作建站公司零陵区住房和城乡建设局网站
  • 在哪里可以学做网站游戏开发大亨下载
  • 找人做ps的网站无锡 做公司网站
  • 云速建站可以建个人网站吗wordpress仿站难吗
  • 如何取外贸网站域名凡科h5制作教程
  • 蜘蛛不抓取网站的原因中山h5网站建设
  • 百度免费推广网站建网站用的免费软件
  • 网站建设西安哪里好广州做企业网站的公司
  • 汉中市网站建设爱墙 网站怎么做
  • 失物招领网站开发项目需求分析搭建外文网站
  • 免费网站空间免备案自学php做网站
  • 南宁网站建设nnit30郴州市第一职业中专
  • 想开个影视网站 那有做的莱芜信息平台
  • js做网站登录有服务器了怎么做网站
  • 郑州餐饮网站建设哪家好零基础网站建设教学在哪里
  • 讲述做网站的电影建设工程公司名字大全
  • 易语言可以做网站管理系统吗网站备案查询工信部手机版
  • 珠海建站论坛淘宝客网站做一种还是做好几种
  • 杭州公司的网站建设公司教育网站制作运营
  • 福州手游网站建设长春火车站停运了吗