随笔分类 -  Linux系统移植之kernel

1 2 下一页
2.16.13.内核中架构相关代码简介
摘要:2.16.13.1、内核代码基本分为3块 (1)arch。 本目录下全是cpu架构有关的代码 (2)drivers 本目录下全是硬件的驱动 (3)其他 相同点是这些代码都和硬件无关,因此系统移植和驱动开发的时候这些代码几乎都是不用关注的。 2.16.13.2、架构相关的常用目录名及含义 (1)mac 阅读全文
posted @ 2018-06-27 22:13 Ocean&Star 阅读(268) 评论(0) 推荐(0)
2.16.12.cmdline常用参数
摘要:2.16.12.1、格式简介 (1)格式就是由很多个项目用空格隔开依次排列,每个项目中都是项目名=项目值 (2)整个cmdline会被内核启动时解析,解析成一个一个的项目名=项目值的字符串。这些字符串又会被再次解析从而影响启动过程。 2.16.12.2、root= (1)这个是用来指定根文件系统在哪 阅读全文
posted @ 2018-06-27 22:12 Ocean&Star 阅读(353) 评论(0) 推荐(0)
2.16.11.init进程详解2
摘要:2.16.11.1、打开控制台 (1)linux系统中每个进程都有自己的一个文件描述符表,表中存储的是本进程打开的文件。 (2)linux系统中有一个设计理念:一切届是文件。所以设备也是以文件的方式来访问的。我们要访问一个设备,就要去打开这个设备对应的文件描述符。譬如/dev/fb0这个设备文件就代 阅读全文
posted @ 2018-06-27 22:10 Ocean&Star 阅读(250) 评论(0) 推荐(0)
2.16.10.init进程详解1
摘要:2.16.10.1、init进程完成了从内核态向用户态的转变 (1)一个进程2种状态。init进程刚开始运行的时候是内核态,它属于一个内核线程,然后他自己运行了一个用户态下面的程序后把自己强行转成了用户态。因为init进程自身完成了从内核态到用户态的过度,因此后续的其他进程都可以工作在用户态下面了。 阅读全文
posted @ 2018-06-27 21:59 Ocean&Star 阅读(301) 评论(0) 推荐(0)
2.16.9.内核启动的C语言阶段6
摘要:本节重点讲解了rest_init函数中创建三个内核线程以及对这三个内核线程的介绍,本节课听完后就明白了操作系统最终的走向和归宿。 2.16.9.内核启动的C语言阶段6 2.16.9.1、操作系统去哪了 (1)rest_init中调用kernel_thread函数启动了2个内核线程,分别是:kerne 阅读全文
posted @ 2018-06-27 21:48 Ocean&Star 阅读(169) 评论(0) 推荐(0)
2.16.8.内核启动的C语言阶段5
摘要:本节讲解start_kernel函数中剩余部分函数调用直到rest_init的部分,并无太多重点细节。 2.16.8.1、setup_command_line (1)也是在处理和命令行参数cmdline有关的任务。 2.16.8.2、parse_early_param&parse_args (1)解 阅读全文
posted @ 2018-06-27 21:32 Ocean&Star 阅读(177) 评论(0) 推荐(0)
2.16.7.内核启动的C语言阶段4
摘要:本节讲解setup_arch函数中对cmdline的处理,重点讲解了cmdline的传递方式、确认方式和其对内核的影响和意义。 2.16.6.3、setup_arch函数进行了基本的cmdline处理 (1)这里说的cmdline就是指的uboot给kernel传参时传递的命令行启动参数,也就是ub 阅读全文
posted @ 2018-06-27 21:16 Ocean&Star 阅读(141) 评论(0) 推荐(0)
2.16.6.内核启动的C语言阶段3
摘要:本节讲解setup_arch函数中的machine查找的部分,初步分析了内核对机器码的定义和存储方式、比对方式、获取方式。 2.16.6.1、setup_arch函数简介 setup_arch(&command_line); (1)从名字看,这个函数是CPU架构相关的一些创建过程。 (2)实际上这个 阅读全文
posted @ 2018-06-27 21:13 Ocean&Star 阅读(173) 评论(0) 推荐(0)
2.16.5.内核启动的C语言阶段2
摘要:本节开始按照代码执行路径分析内核的C阶段。本节课主要讲了printk函数的工作原理和内核初始化打印出banner信息的部分。 参考:http://blog.chinaunix.net/uid 20543672 id 3157283.html 2.16.5.1、杂碎 (1)smp。smp就是对称多处理 阅读全文
posted @ 2018-06-27 21:05 Ocean&Star 阅读(170) 评论(0) 推荐(0)
2.16.4.内核启动的C语言阶段1
摘要:本节讲述内核学习的学习思路、学习方法和主体线路。本节课程的学习目的是让大家对内核的特点和不同的学习思路有个认识。 2.16.4.1、这一块的学习思路 (1)抓大放小,不深究. (2)感兴趣可以就某个话题去网上搜索资料学习 (3)重点局部深入分析 2.16.4.2、具体学习方法 (1)顺着代码执行路径 阅读全文
posted @ 2018-06-27 21:02 Ocean&Star 阅读(191) 评论(0) 推荐(0)
2.16.3.内核启动的汇编阶段
摘要:参考https://blog.csdn.net/skyflying2012/article/details/41344377 本节是内核启动的汇编阶段剩余内容,主要是cpu的校验、机器码的校验、传参tag的校验、页表的创建、各种段的处理等。 2.16.3.1、__lookup_processor_t 阅读全文
posted @ 2018-06-27 21:01 Ocean&Star 阅读(282) 评论(0) 推荐(0)
2.16.2.head.S文件分析1
摘要:本节开始分析head.S文件,主要分析了内核运行的虚拟地址与物理地址,内核真正入口以及启动条件等。 2.16.2.1、内核运行的物理地址与虚拟地址 (1)KERNEL_RAM_VADDR(VADDR就是virtual address),这个宏定义了内核运行时的虚拟地址。值为0xC0008000 (2 阅读全文
posted @ 2018-06-27 20:43 Ocean&Star 阅读(262) 评论(0) 推荐(0)
2.16.1.做好内核分析的准备工作
摘要:本节课开始建立工程、分析Makefile等,主要目的是为开始内核代码的分析扫清障碍,做好准备工作。 2.16.1.1、删除无用文件 (1)官方版本的kernel中是支持各种硬件架构、各种开发板的,因此有很多文件夹和文件和我们无关,在建立SI工程前应该删掉这些家伙。 (2)我们现在分析的是开发板厂商九 阅读全文
posted @ 2018-06-27 20:37 Ocean&Star 阅读(213) 评论(0) 推荐(0)
Linux内核中Makefile、Kconfig和.config的关系
摘要:转载:http://emb.hqyj.com/Column/7565.html 1、Linux内核如此庞大(几万个文件),目录又分为很多层,它是如何将各层目录下的文件关联起来的? linux内核通过层层目录管理,形成了一个树形目录[内核源码树],这是一个树形结构。从数据结构管理方面看,对于一颗非标准 阅读全文
posted @ 2018-06-27 20:22 Ocean&Star 阅读(1461) 评论(0) 推荐(1)
Linux 内核中的 kconfig 原理
摘要:转载:https://blog.csdn.net/qqliyunpeng/article/details/50858075 内核源码中是怎么实现menuconfig 1、第一步:配置生成.conf 当执行make menuconfig时,调用的是scripts/Kconfig/Makefile文件中 阅读全文
posted @ 2018-06-27 20:15 Ocean&Star 阅读(1013) 评论(0) 推荐(0)
2.15.9.menuconfig的实验学习思路
摘要:本节总结menuconfig的原理并且提出一些验证思路并去实际验证,目的是让大家加深理解menuconfig的同时学会通过实验验证的方法进行学习。 2.15.9.1、验证menuconfig和.config的关系 (1)make menuconfig时,会读取.config中的配置值来初始化menu 阅读全文
posted @ 2018-06-27 20:09 Ocean&Star 阅读(237) 评论(0) 推荐(0)
2.15.8.Kconfig文件详解2
摘要:本节进一步解释Kconfig中配置项的细节,如depends、select等关键字的作用。 2.15.8.1、depends的含义 (1)depends中文意思是“取决于”或者“依赖于”,所以depends在这里的意思是:本配置项依赖于另一个配置项。如果那个依赖的配置项为Y或者M,则本配置项才有意义 阅读全文
posted @ 2018-06-26 16:19 Ocean&Star 阅读(223) 评论(0) 推荐(0)
2.15.7.Kconfig文件详解1
摘要:本节详解Kconfig文件的格式、作用等 2.15.7.1、Kconfig的格式 (1)Kconfig按照一定的格式来书写,menuconfig程序可以识别这种格式,然后从中提取出有效信息组成menuconfig中的菜单项。 (2)将来在做驱动移植等工作时,有时需要自己添加Kconfig中的一个配置 阅读全文
posted @ 2018-06-26 16:17 Ocean&Star 阅读(326) 评论(0) 推荐(0)
2.15.5.menuconfig的使用和演示
摘要:2.15.5.1、使用说明解释 (1)make ,menuconfig中本身自带的提示就有所有的用法,这里只要全部理解就可以了。 (2)menuconfig中间的选择区中有很多个选择项,每个选择项对应.config文件中的一个配置项,每一个选择项都可以被选择和配置操作,选择区中的每一项都是有子目录的 阅读全文
posted @ 2018-06-26 15:57 Ocean&Star 阅读(799) 评论(0) 推荐(0)
2.15.4.内核的配置原理1
摘要: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 阅读(210) 评论(0) 推荐(0)

1 2 下一页