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

做排名出租网站教育视频网站开发

做排名出租网站,教育视频网站开发,如何设置网站布局,营销型网站方案ppt一、概述 在内核编译中如何将各个目录树中的文件组织起来编译是一个很重要的问题#xff0c;并且要根据用户配置来编译特有的内核。为了解决这个问题#xff0c;内核使用两种文件#xff0c;Makefie和Kconfig。分布到各目录的Kconfig构成了一个分布式的内核配置数据库#…一、概述 在内核编译中如何将各个目录树中的文件组织起来编译是一个很重要的问题并且要根据用户配置来编译特有的内核。为了解决这个问题内核使用两种文件Makefie和Kconfig。分布到各目录的Kconfig构成了一个分布式的内核配置数据库每个Kconfig分别描述了所属目录源文档相关的内核配置菜单就是我们使用命令 make menuconfig或者xconfig后产生的配置菜单此菜单包含多层每个层次都是由各个目录中的Kconfig产生的。用户根据需求来选择如何编译内核然后将配置结果保存到.config中然后执行Makefile时就会根据.config的结果来实现内核的编译。 这个过程是由kbuild系统来完成的Linux编译系统会两次扫描Linux的Makefile首先编译系统会读取Linux内核顶层的Makefile然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。内核编译系统或者说kbuild,是一种在编译内核时可以对内核配置选项进行选择的机制。2.6内核树中已经更新了这种机制新版本的kbuild 不仅高速而且备有更完善的文档。Kbuild机制完全依赖于源代码的层次结构。 二、Makefile文件 面对树状结构的内核源码目录内核编译采用了各个子目录拥有自己目录相关的Makefile被称为sub-Makefile或kbuild Makefile内核编译依赖于各个子目录下的子makefilesub-Makefile文件这些sub-Makefile定义了根据该子目录下的源码文件构建目标文件的规则并且仅对该目录下的文件作适当的修改。顶层Makefile采用递归的方式调用位于init/, drivers/, sound/, net/, lib/ usr/等目录下的各个子目录中的 Makefile文件。在递归调用之前kbuild首先要确定是否已经满足一些必要的条件包括在必要时更新include/Linux/version.h文件并设置符号链接include/asm使之指向与目标体系结构相关的文件。例如如果为PPC编译代码则include/asm指向include/asm-ppc。kbuild还要对文件include/Linux/autoconf.h和include/Linux/config进行编译。之后从根目录开始进行递归。 各个子Makefile文件比较简单指出了该如何编译目标文件例如/mm目录下的Makefile片段 16 obj-$(CONFIG_PROC_PAGE_MONITOR) pagewalk.o 17 obj-$(CONFIG_BOUNCE)    bounce.o 18 obj-$(CONFIG_SWAP)      page_io.o swap_state.o swapfile.o thrash.o 19 obj-$(CONFIG_HAS_DMA)   dmapool.o 20 obj-$(CONFIG_HUGETLBFS) hugetlb.o 三、Kconfig文件 Kconfig的作用就是为了让用户配置内核在Kconfig中定义了一些变量用户通过设置变量的值来选择如何个性化自己的系统内核。定义的变量将在 每个菜单都有一个关键字标识最常见的就是config 语法 config symbol是个新的标记的菜单项options是在这个新的菜单项下的属性和选项 其中options部分有 1、类型定义 每个config菜单项都要有类型定义bool布尔类型、 tristate三态内建、模块、移除 string字符串、 hex十六进制、 integer整型 例如config HELLO_MODULE bool “hello test module” bool 类型的只能选中或不选中tristate类型的菜单项多了编译成内核模块的选项假如选择编译成内核模块则会在.config中生成一个 CONFIG_HELLO_MODULEm的配置假如选择内建就是直接编译成内核影响就会在.config中生成一个 CONFIG_HELLO_MODULEy的配置. 2、依赖型定义depends on或requires 指此菜单的出现和否依赖于另一个定义 config HELLO_MODULE bool “hello test module” depends on ARCH_PXA 这个例子表明HELLO_MODULE这个菜单项只对XScale处理器有效。 3、帮助性定义 只是增加帮助用关键字help或—help— 四、.config文件 上面提到了利用内核配置工具自动生成名为.config的内核配置文件这是编译内核的第一步。.config文件位于源代码根目录下,描述所有内核配置选项,可以借助内核配置工具来选择这些选项。每个内核配置选项都有相关的名字和变量值。其名字形如CONFIG_NAME其中NAME是对相关选项的标识在Kconfig文件中定义变量可以有三个值ym或n。y代表“yes”表示该选项将会被编译到内核源代码中或者说会被编译到系统中。m代表“module” 表示该选项将会以模块的方式编译到内核中。如果未选择该选项即将该选项的变量值设为n代表“no”那么.config文件中就会出现下列注释“CONFIG_NAME is not set”。.config文件中选项的位置根据它们在内核配置工具中的位置进行排序注释部分说明该选项位于哪个菜单下。我们来看看一个.config文件的节选: 1 # 2 # Automatically generated make config: don’t edit 3 # 4 CONFIG_X86y 5 CONFIG_MMUy 6 CONFIG_UID16y 7 CONFIG_GENERIC_ISA_DMAy 8 9 # 10 # Code maturity level options 11 # 12 CONFIG_EXPERIMENTALy 13 CONFIG_CLEAN_COMPILE 14 CONFIG_STANDALONEy 15 CONFIG_BROKEN_ON_SMPy 16 17 # 18 # General setup 19 # 20 CONFIG_SWAPy 21 CONFIG_SYSVIPCy 22 #CONFIG_POSIX_MQUEUE is not set 23 CONFIG_BSD_PROCESS_ACCTy 上述.config文件指出第4到第7行的选项位于顶层菜单中第12到第15行的选项位于代码成熟度选项菜单中第20行到第23行的选项位于通用设置选项菜单中。 所有配置工具都会产生上述菜单并且已经看到前几个选项、代码成熟度选项、及通用设置选项都位于顶层。后面两个选项被扩展为包含多个选项的子菜单。这些菜单都是在调用xconfig命令时由qconf配置工具提供的。配置工具显示的菜单都默认用于X86体系结构。 五、DIY向内核添加自己的程序 A.在Linux内核中增加自己的程序步骤注意这里只是程序文件 1.将编写的源代码复制到Linux内核源代码的相应目录中。 2.在目录的Kconfig文件中增加新源代码对应项目的编译配置选项 3.在目录的Makefile文件中增加对新源代码的编译条目。 B.在Linux内核drivers/目录中增加目录和子目录步骤 1.所加目录为myDriver文件如下: myDriver$ tree |– Kconfig |– Makefile |– key |   |– Kconfig |   |– Makefile |   – key.c |– led |   |– Kconfig |   |– Makefile |   – led.c — test.c #注意此时各个目录中的Makefile和Kconfig文件是空的 2.在新增的相应目录添加Kconfig和Makefile文件上面的目录中已经添加。 3.修改新增目录的父目录的Kconfig和Makefile文件以便新增的Kconfig和 Makefile能被引用。向父目录中的Makefile添加 obj-y                           myDriver/ 表示在编译过程中包含子目录myDriver目录。然后修改Kconfig文件添加 source “drivers/myDriver/Kconfig” 表示在配置时引用子目录myDriver中的配置文件Kconfig。 4.经过上面一步父目录就可以找到所加的目录myDriver了然后就是编辑各个目 录中的Makefile和Kconfig文件在你添加的目录myDriver中的Makefile加入 obj-$(CONFIG_TEST) test.o #因为在myDriver目录中要编译test.c文件 #所以会根据CONFIG_TEST来决定编译选项 obj-y led/#编译myDriver目录中的子目录led obj-y key/#编译myDriver目录中的子目录key 然后Kconfig文件是 menu “TEST MyDriver”            #在make menuconfig时要显示的菜单入口 comment “Test myDriver”       #menu title config TEST tristate “MyDriver test” source “drivers/myDriver/led/Kconfig” #将led目录下的Kconfig添加进来 source “drivers/myDriver/key/Kconfig” endmenu 再看led目录下的Makefile和Kconfig Makefile为文件 obj-$(CONFIG_LED)led.o Kconfig文件 config LED tristate “led support” key目录下的Makefile和Kconfig类似。 5.现在可以make menuconfig来配置添加自己目录myDriver的内核了
http://www.pierceye.com/news/693072/

相关文章:

  • 茂名建站公司南通长城建设集团有限公司网站
  • 网络平台怎么建立网站吗做暧暧视频网站安全吗
  • 免费域名x网站网站前期准备工作
  • 陕西网站建设公司排名智能优化网站
  • 做瞹瞹网站萍乡做网站的公司有哪些
  • 网站建设的类型有几种wordpress搜索返回页面内容
  • 建设网站备案与不备案区别招远建网站首选公司
  • 四川住房和城乡建设厅网站三类人员软文网站备案如何查询
  • 个人与企业签订网站开发合同网页制作教程实例
  • 做网站遇到竞争对手怎么办wordpress中文版邮件发送
  • 美橙互联旗下网站渐变网站
  • 做网站域名需要在哪里备案微信答题小程序
  • 购物网站页面布局个人站长做导航网站
  • wordpress 增强编辑器网站暂时关闭 seo
  • 重庆网站设计开发培训广西省住房和城乡建设厅官网
  • 购物网站模板免费下载网站排名快速提升工具
  • 中山制作网站的公司滨江区网站开发公司
  • 申请建设工作网站的函酒店网站建设方案策划方案
  • 宠物店网站模板你是网站设计有限公司的项目经理
  • 潍坊网站开发公司2018做网站还赚钱吗
  • 做化妆品网站怎样wordpress映射到外网访问
  • 关于加强门户网站建设爱客crm客户管理系统
  • 网站备案的是域名还是空间电子商务网站建设携程
  • 建设企业网站管理系统目的开发一个网站的费用
  • 网站开发和浏览器兼容问题软文广告案例分析
  • 更新网站的方法自贡网站建设哪家好
  • 沈阳网络建网站个人电子商务网站建设的总体目标
  • asp 大型网站开发优化公司治理结构
  • 做外贸 建网站要注意什么ssr网站怎么做
  • 杭州做兼职网站建设老五wordpress