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

云南照明网站建设/免费独立站自建站网站

云南照明网站建设,免费独立站自建站网站,企业做增资 网站平台,网站做签到功能1、内核空间与用户空间数据交换方式 分两种情况: 1> 需要交换的数据量较大时; 2> 需要交换的数据量较小时; 第一种情况使用以下的函数: unsigned long copy_to_user(void __user* to, const void* from, unsigned long n)…

1、内核空间与用户空间数据交换方式

分两种情况:
1> 需要交换的数据量较大时;
2> 需要交换的数据量较小时;

第一种情况使用以下的函数:

unsigned long copy_to_user(void __user* to, const void* from, unsigned long n);
unsigned long copy_from_user(void* to, const void __user* from, unsigned long n);

返回值表示成功拷贝的字节数。

第二种情况则使用以下所示的宏定义:

#include <asm/uaccess.h>
put_user(local, user);
get_user(local, user);

2、MKDEV申请的设备号与register_chrdev_region申请的设备号有什么区别?

两种方式所描述的“设备号”是相同的。其区别用一句话概括就是:是否得到了系统的承认。

MKDEV(ma, mi) 是一个宏定义,其作用就是将参数 major 和 minor 由两个分散的数值组合成统一的 dev_t 类型(unsigned long)。执行此宏定义后得到的“设备号”表示你想要得到这个设备号,想向全世界声明它属于我,不过此时它仅仅是你单方面的声明而已。

register_chrdev_region() 的用法通常是将 MKDEV() 出来的设备号作为参数传入。可以理解成是在开发者单方面声明想独占某个设备号后,将此设备号交由操作系统审批。当函数返回值为0时,表示Linux系统通过了开发者的申请,前面由 MKDEV() 出来的设备号就得到开发者以及操作系统的共同认可。

3、register_chrdev_region() 与 alloc_chrdev_region() 有什么区别?

两函数的原型分别如下所示:

int register_chrdev_region(dev_t from, unsigned int count, const chr* name);
int alloc_chrdev_region(dev_t* dev, unsigned int baseminor, unsigned int count, const char* name);

两个函数的目的一样,都是从系统中得到(申请)一个专属设备号。但前者用于“静态申请”,而后者用于“动态申请”。

静态申请则表示开发者为某设备静态指定一个设备号,直接提交给系统审批。

但设备号资源是有限的,对某些动态加载的驱动来说可能会遇到静态指定的设备号已被占用的情况。此时最好的解决办法就是直接向系统申请一个可用的设备号。

4、创建内核线程

可以使用 kthread_run 宏定义来创建。其原型如下
#define kthread_run(threadfn, data, namefmt, …)
  参数 threadfn 表示用于在子线程中执行的函数名。子线程函数的原型为:int (*threadfn)(void *data)
  参数 data 表示要传递到子线程函数去的数据地址。
  参数 namefmt 及后面的可变长度个参数用于组合成此子线程的名称。
  
  此宏定义返回值为一个 struct task_struct 结构体地址。可以用 IS_ERR(ts)来判断子线程是否成功创建。

5、内核中的内存分配

内核开发中常见的分配内存的函数有两个:

static inline void* kmalloc(size_t size, gfp_t flags);
void* vmalloc(unsigned long size);

kmalloc函数与malloc函数类似,它所分配的内存空间在物理上是地址连续型的。但是它在内核中最大只能分配128KB的内存空间。此函数第二个参数常用的值有两个:1、GFP_KERNEL;2、GFP_ATOMIC;分别对应于在内存不足是是否阻塞调用。
vmalloc函数分配的内存空间在虚拟地址上是连续的,但是在物理地址上却不一定。因此此函数可用于分配大内存空间,最大可达1GB。

如果在内核开发中要涉及到频繁的申请与释放内存空间的,为避免产生内存碎片,可以使用内存池技术来解决。

http://www.jmfq.cn/news/5355595.html

相关文章:

  • 安徽网站建设外贸/新站整站快速排名
  • 淘宝建设网站首页/互动营销经典案例
  • mac os网站建设/国内新闻大事20条简短
  • 永泰县建设局网站/百度竞价开户费用
  • 中国建设银行新闻网站/宁波seo关键词
  • 建设农产品网络营销网站/搜索引擎查重
  • 玩具网站建设方案/网站推广优化
  • 选择网站建设公司应该注意什么/seo哪家公司好
  • 网站的建设背景/百度客户管理系统登录
  • 学院宣传网站建设简介/色盲眼镜
  • 企业内网 网站建设的解决方案/seo快速优化报价
  • 营销型网站建设排名/武汉seo首页优化技巧
  • 南昌网站建设优化/顾问式营销
  • 西安网站建设动力无限/友情链接是免费的吗
  • 网站建设及数据分析/设计网站用什么软件
  • 会议网站建设方案/百度明星人气榜排名
  • 营销网站建设培训学校/企业网站怎么推广
  • 四川城乡建设部网站首页/搜索推广渠道
  • 北京市建设局网站首页/外贸平台排名
  • 无锡赛孚建设工程有限公司网站/舆情监测系统排名
  • 鲜花店网站建设的规模设想/天津seo排名公司
  • 网站建设 数据上传 查询/网络服务商在哪咨询
  • 网站了建设/小米的推广软文
  • 口碑好的网站建设服务/网站查询ip地址查询
  • 为什么建设部网站进不去/最吸引人的营销广告文案
  • 网站建设的需求是什么/网络推广引流是做什么工作
  • 河南专业网站建设公司/网上营销培训课程
  • 家居网站建设营销推广/哪个公司网站设计好
  • 加大整合力度网站集约建设/叶涛网站推广优化
  • 建设一个网站系统要多久/什么是网站优化