摘要: 本节进一步解释Kconfig中配置项的细节,如depends、select等关键字的作用。 2.15.8.1、depends的含义 (1)depends中文意思是“取决于”或者“依赖于”,所以depends在这里的意思是:本配置项依赖于另一个配置项。如果那个依赖的配置项为Y或者M,则本配置项才有意义 阅读全文
posted @ 2018-06-26 16:19 Ocean&Star 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 本节详解Kconfig文件的格式、作用等 2.15.7.1、Kconfig的格式 (1)Kconfig按照一定的格式来书写,menuconfig程序可以识别这种格式,然后从中提取出有效信息组成menuconfig中的菜单项。 (2)将来在做驱动移植等工作时,有时需要自己添加Kconfig中的一个配置 阅读全文
posted @ 2018-06-26 16:17 Ocean&Star 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 本节讲解menuconfig的工作原理,主要揭示了menuconfig和.config、Kconfig文件的关联。 2.15.6.1、menuconfig本身由一套软件支持 (1)linux为了实现图形化界面的配置,专门提供了一套配置工具menuconfig。 (2)ncurses库是linux中用 阅读全文
posted @ 2018-06-26 16:11 Ocean&Star 阅读(817) 评论(0) 推荐(0) 编辑
摘要: 2.15.5.1、使用说明解释 (1)make ,menuconfig中本身自带的提示就有所有的用法,这里只要全部理解就可以了。 (2)menuconfig中间的选择区中有很多个选择项,每个选择项对应.config文件中的一个配置项,每一个选择项都可以被选择和配置操作,选择区中的每一项都是有子目录的 阅读全文
posted @ 2018-06-26 15:57 Ocean&Star 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 2.15.4.1、烧写测试 2.15.4.2、配置的关键是得到.config文件 (1).config以.开头,是一个隐藏文件,因此平时是看不到的,需要ls a来看 (2)当我们make distclean后(也就是说默认情况下)是没有.config文件的,我们配置的两步过程就是为了得到内容合适的. 阅读全文
posted @ 2018-06-26 15:28 Ocean&Star 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 本节进行内核的三步配置编译过程,目的是让大家学会内核的配置编译操作,方便之后学习原理。 2.15.3.1、先确认Makefile (1)主要是检查交叉编译工具链有没有设置对。CROSS_COMPILE ?= /usr/local/arm/arm 2009q3/bin/arm none linux g 阅读全文
posted @ 2018-06-26 15:20 Ocean&Star 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 本节讲解内核源码根目录下的各个文件夹,并且把一些重要文件夹的作用简单讲解。 (1)arch。arch是architecture的缩写,意思是架构。arch目录下是好多个不同架构的CPU的子目录,譬如arm这种cpu的所有文件都在arch/arm目录下,X86的CPU的所有文件都在arch/x86目录 阅读全文
posted @ 2018-06-26 15:18 Ocean&Star 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 2.15.1.1、源码从哪里来 (1)之前讲过,我们使用2.6.35.7版本的内核。这个版本的内核有三种:第一种是kernel.org上的官方版本,第二种是三星移植过的,第三种是九鼎X210的移植版本。我们讲课时使用第三种内核来讲解,后面的移植实验使用第二种内核来移植。 (2)源码在开发板光盘中有。 阅读全文
posted @ 2018-06-26 15:16 Ocean&Star 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 2.14.5.1、linux内核版本变迁简史 (1)linux0.01。初版 (2)linux0.11。很多讲linux内核源代码解析的书都是以这个版本为原本来讲。《图解linux内核设计的艺术》 (3)linux2.4。比较接近现代的版本,很多经典的书都是以2.4版本内核为参照的,譬如《LDD3》 阅读全文
posted @ 2018-06-26 15:09 Ocean&Star 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 2.14.4.1、什么是模块化设计 (1)因为linux内核很庞大,代码量很大、东西很多,如果设计时完全设计成一体(各个文件、各个函数之间紧耦合),复杂度超出了人所能理解的范围。所以模块化设计也是一种必要。 (2)模块化设计就是内核中各个功能模块在代码上是彼此独立的,譬如说调度系统和内存管理系统之间 阅读全文
posted @ 2018-06-26 15:07 Ocean&Star 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 2.14.2.1、学习linux的思路 (1)对庞大的整体要有个认识。学习路线就是先建立框架和整体,然后逐渐去学习各个细节部分,逐步细化。 (2)对各分层的作用要清楚。 (3)对层次间的关联和互相调用要理解。 2.14.2.2、驱动属于内核的一部分 (1)驱动就是内核中的硬件设备管理模块 (2)驱动 阅读全文
posted @ 2018-06-26 15:04 Ocean&Star 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 2.14.1.1、到底什么是操作系统 (1)linux、windows、android、ucos就是操作系统 (2)操作系统本质上是一个程序,由很多个源文件构成,需要编译连接成操作系统程序(vmlinz、zImage) (3)操作系统的主要作用就是管理计算机硬件,给应用程序提供一个运行环境。 2.1 阅读全文
posted @ 2018-06-26 15:02 Ocean&Star 阅读(641) 评论(0) 推荐(0) 编辑
摘要: 1. mke2fs:相当于一个压缩软件,Ubuntu默认安装了,是用来制作镜像格式的根文件系统的。 查看ubuntu是否安装了软件 mke2fs(Usage: mke2fs [ c| l filename] [ b block size] [ C cluster size]) mkfs.ext2 w 阅读全文
posted @ 2018-06-26 14:58 Ocean&Star 阅读(1709) 评论(0) 推荐(0) 编辑
摘要: 1、 根文件系统本质 (1)(根)文件系统本质是一个目录结构 2、根文件系统的形式 (1) 镜像形式:将文件夹形式的rootfs用特定的工具压缩而来的,可以烧录。烧录后系统会挂载rootfs。 (2)文件夹形式:里面包含特定内容 3、注意 (1)rootfs相当于一个软件,可以管理存储设备的扇区,把 阅读全文
posted @ 2018-06-26 14:53 Ocean&Star 阅读(374) 评论(0) 推荐(0) 编辑