1.U-Boot启动内核的过程可以分为两个阶段: 1)第一阶段的功能 硬件设备初始化 加载U-Boot第二阶段代码到RAM空间 设置好栈 跳转到第二阶段代码入口 2)第二阶段的功能 初始化本阶段使用的硬件设备 检测系统内存映射 将内核从Flash读取到RAM中 为内核设置启动参数 启动内核 关于uboot 启动分析以下这条链接写的不错,使用的是MINI2440平台: http://www.cnblogs.com/heaad/archive/2010/07/17/1779829.html 2.编译…
(1)内核默认运行地址和加载地址在哪里设置? 由 arch/arm/kernel/vmlinux.lds.S 生成的 arch/armkernel/vmlinux.lds决定   (2)从FLASH什么地址找内核和根文件系统,UBOOT在哪里设置? UBOOT里有环境变量,UBOOT启动后,会根据bootcmd这个环境变量来执行命令,通常这个命令中写明了从哪里读出内核:而至于文件系统在哪里,是由内核来确定的. 在Linux中规定每个分区的,只要把文件系统放到对应的分区,再默认指定就可以了,但是后…
问题描述 通过 Azure 平台部署的 Linux 虚拟机默认的根文件系统容量有限,需要进行扩展. 问题分析 由于 Azure 平台部署的 Linux 虚拟机默认根文件系统容量比较小,客户在使用过程中,经常会出现根文件系统用满,导致虚拟机不可用的情况,需要进行手动对根文件系统进行扩容. 解决方案 Important 在执行如下操作前,一定要针对虚拟机的系统盘进行备份.以下步骤基于 CentOS 6.8,其他 Linux 版本,可能会略有区别. Important 在 CentOS 7.x 中,默…
原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1  Linux版本 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLE…
1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1  Linux版本 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中: VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 29 EXTRAVERSION = .1 其 中的“VERSION”和“PATCHLEVEL”组成主版本号,比如2.4.2.5…
Btrfs 也有一个重要的缺点,当 BTree 中某个节点出现错误时,文件系统将失去该节点之下的所有的文件信息.而 ext2/3 却避免了这种被称为”错误扩散”的问题. Btrfs相关介绍: Btrfs 是一个 Linux 中的新的写时复制(copy-on-write (COW))的文件系统,目的是实现高级功能的同时着重与容错功能,修复功能以及易于管理.目前由Oracle, Red Hat, 富士通, Intel, SUSE以及其他组织共同开发,在 GPL 许可证下发行,同时向任何人公开代码.…
一.回顾 1.如何获取使用帮助 help,--help,man,info 官方文档,自带文档(README,CHANGELOG,INSTALL),官方文档 发行版的文档 Google Linux Kerenl:官方的Documentation manual:使用手册 whatis keyword man # KEYWORD SECTION: [],<>,|,{} 控制命令: Space,b Enter,k Ctrl+d,Ctrl + u q #G /keyword ?keyword 2.基础命…
前言: 在这篇文章中S3C6410公版的Linux BSP和U-Boot为了分析,名词和数据文件的所有内容本文是基于环境为例,所有的代码是在设置的示例进行分析的过程中.哈. 假设有不对或者不完好的地方,欢迎前来拍砖留言或者发邮件到guopeixin@126.com进行讨论,先行谢过. 简单的来说,根文件系统包含虚拟根文件系统和真实根文件系统. 在Kernel启动的初始阶段,首先去创建虚拟的根文件系统,接下来再去调用do_mount来载入真正的文件系统,并将根文件系统切换到真正的文件系统,也即真实…
本章学习如何启动第一个应用程序 1.在前面的分析中我们了解到,在init进程中内核挂接到根文件系统之后,会开始启动第一个应用程序: kernel_init函数代码如下: static int __init kernel_init(void * unused) //进入init进程 { prepare_namespace() //挂载根文件系统 { ... ... / /通过解析出来的命令行参数" root=/dev/mtdblock3"来挂接根文件系统 mount_root(); //…
上接博文<u-boot之u-boot-2009.11启动过程分析> Linux内核启动及文件系统载入过程 当u-boot開始运行bootcmd命令,就进入Linux内核启动阶段.与u-boot类似,普通Linux内核的启动过程也能够分为两个阶段,但针对压缩了的内核如uImage就要包含内核自解压过程了.本文以linux-2.6.37版源代码为例分三个阶段来描写叙述内核启动全过程.第一阶段为内核自解压过程,第二阶段主要工作是设置ARM处理器工作模式.使能MMU.设置一级页表等,而第三阶段则主要为…