BootLoader 详解(2)】的更多相关文章

作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boot 源码 : http://download.csdn.net/detail/han1202012/8342761 -- S3C2440 文档 : http://download.csdn.net/detail/han1202012/8342701 -- S5PV210_iROM_Applicati…
1. Boot Loader的概念 BootLoader就是在操作系统内核运行前之前运行的一段小程序.通过这段小程序,可以初始化硬件设备.建立内存空间映射图,从而将系统的软硬件带到一个合适的状态,以便为最终 调用操作系统内核准备好正确的环境. 1.BootLoader 的安装媒介 系统加电或者复位后,所有的CPU通常都从某个由CPU制造商预先安排的地址取指令.比如,基于ARM7TDMI core 的CPU在复位时通常从地址0x00000000取它的第一条指令.而基于CPU构建的嵌入式系统通常都在…
BootLoader的stage2 stage2的代码是C语言来实现的,以便于实现更复杂的功能和取得更好的代码可读性和移植性.它与普通C语言程序不同的是,在编译和链接BootLoader这样的程序时,不能使用glibc库中的任何支持函数.这就带来了一个问题,从哪里跳转到main()函数呢?直接把main()函数的起始地址作为stage2执行映像的入口点.但这样做有2个缺点:1)无法通过main()函数传递函数参数: 2)无法处理main()函数返回的情况.一种更为巧妙的方法是利用trampoli…
BootLoader的stage1 1.基本的硬件初始化 这是BootLoader一开始就执行的操作,其目的是为stage2的执行以及随后的kernel的执行准备好一些基本的硬件环境.它通 常包括以下步骤 ①屏蔽所有中断.为中断提供服务通常是OS设备驱动程序的责任,因此在BootLoader的执行全过程中可以不比响应任何中断.中 断屏蔽可以通过写CPU的中断屏蔽寄存器或者状态寄存器(比如ARM的CPSR寄存器)来完成. ②设置CPU的时钟和频率 ③RAM初始化.包括正确地设置系统的内存控制器的功…
CFE命令 CFE引导过程 系统加电后,CFE从boot.S (src/shared/boot.S)开始执行,完成判断芯片类型.设置时钟.初始化缓存.把自身加载进RAM等任务后,跳转到c_main()(src/shared/load.c) void c_main (unsigned long ra) { …… /* Load binary */ load (); /* 加载CFE,并解压 */ …… ((void (*) (void)) LOADADDR) (); /* 跳转到CFE中执行cfe…
硬盘的0柱面.0磁头.1扇区称为主引导扇区,FDISK程序写到该扇区的内容称为主引导记录(MBR).该记录占用512个字节,它用于硬盘启动时将系统控制权交给用户指定的,并在分区表中登记了的某个操作系统区. 1.MBR的读取 硬盘的引导记录(MBR)是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它.但我们可以用ROM-BIOS中提供的INT13H的2号功能来读出该扇区的内容,也可用软件工具Norton8.0中的DISKEDIT.EXE来读取. 用INT13H的读磁盘扇区功能的调…
mkimage使用详解uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件. mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什么root@Glym:/tftpboot# ./mkimageUsage: ./mkimage -l ima…
引用 鱼 的 mkimage使用详解  uboot源代码的tools/目录下有mkimage工具,这个工具可以用来制作不压缩或者压缩的多种可启动映象文件. mkimage在制作映象文件的时候,是在原来的可执行映象文件的前面加上一个0x40字节的头,记录参数所指定的信息,这样uboot才能识别这个映象是针对哪个CPU体系结构的,哪个OS的,哪种类型,加载内存中的哪个位置, 入口点在内存的那个位置以及映象名是什么 root@Glym:/tftpboot# ./mkimageUsage: ./mkim…
Android的init过程详解(一) Android的init过程(二):初始化语言(init.rc)解析 本文使用的软件版本 Android:4.2.2 Linux内核:3.1.10 本文及后续几篇文章将对Android的初始化(init)过程进行详细地.剥丝抽茧式地分析,并且在其中穿插了大量的知识,希望对读者了解Android的启动过程又所帮助.本章主要介绍了与硬件相关初始化文件名的确定以及属性服务的原理和实现. Android本质上就是一个基于Linux内核的操作系统.与Ubuntu L…
黑苹果引导工具 Clover 配置详解及Clover Configurator使用  2017-03-11 14:01:40 by SemiconductorKING 转自:@三个表哥   简介: 可引导mac os 10.4-10.12,win efi,linux efi 可引导传统操作系统 (WindowsXP,Linux,DOS)的启动扇区 (mbr) EFI bootloader 提供 RuntimeServices 与 OS 运行,不可用于传统的引导器 默认侦测并设置硬件的大部份的属性…
1.nor硬件介绍: 从原理图中我们能看到NOR FLASH有地址线,有数据线,它和我们的SDRAM接口相似,能直接读取数据,但是不能像SDRAM直接写入数据,需要有命令才行 1.1其中我们2440的地址线共有27根(LADDR0~26),为什么是27根? 因为2440共有7个bank内存块,每个bank=128MB=(2^27)B,所以共有27根数据线 1.2为什么Nor Flash的地址线A0是接在2440的LADDR1上? 因为Nor Flash的数据共有16位,也就是每个地址保存了2B数…
adb的全称为Android Debug Bridge.是android司机经常用到的工具 . 你能在本篇文章中学到什么? adb基本指令 Shell AM&PM adb模拟用户事件 logcat日志 常用节点 远程ADB 常用命令集 一. 基本指令 进入指定设备 adb -s serialNumber shell 查看版本 adb version 查看日志 adb logcat 查看设备 adb devices 连接状态 adb get-state 启动ADB服务 adb start-serv…
/etc/inittab由/sbin/init程序解析调用,用于系统初始化,/sbin/init可参考源码busybox中init.c的实现方式. 原址如下: http://leejia.blog.51cto.com/4356849/788895 /etc/inittab文件详解 Linux系统的启动过程为:加电自检-->根据BIOS中的设置从指定的设备启动-->找到设备MBR中的bootloader引导启动系统-->启动kernel-->启动init进程     我们看到,Lin…
转自:https://blog.csdn.net/radianceblau/article/details/74722395 版权声明:本文为博主原创文章,未经博主允许不得转载.如本文对您有帮助,欢迎点赞评论. https://blog.csdn.net/RadianceBlau/article/details/74722395本系列导航: Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) Linux DTS(Device Tree Source)设备树…
Android ADB命令教程二——ADB命令详解 转载▼ 原文链接:http://www.tbk.ren/article/249.html       我们使用 adb -h 来看看,adb命令里面包含了多少子命令:   C:\Windows\System32>adb -h Android Debug Bridge version 1.0.31    -a - directs adb to listen on all interfaces for a connection  -d - dire…
Linux基础之LSB定义的基本目录详解 1.LSB中FHS(Filesystem Hierarchy Standard)定义的一些文件 /boot:主要是存放引导文件的目录,比如内核文件(vmlinuxz).引导加载器的静态文件(bootloader.grub),一般这个目录是一个独立分区 /bin:供所有用户使用的基本命令,不能关联至独立分区,操作系统启动即会用到的程序会放置在这个目录 /sbin:包含管理类的基本命令,不能关联至独立分区,操作系统启动即会用到的程序会放置在这个目录 /lib…
本文参考了如下文章 深入理解linux启动过程 mbr (主引导记录(Master Boot Record)) 电脑从开机加电到操作系统main函数之前执行的过程 详解linux系统的启动过程及系统初始化 linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: BIOS POST自检 BIOS(Boot Sequence) 引导操作系统 加载对应引导上的MBR(bootloader) 主引导设置加载其BootLoader 加载操作系统 启动BIOS,准备实模式下的中断…
软RAID管理命令mdadm详解 mdadm是linux下用于创建和管理软件RAID的命令,是一个模式化命令.但由于现在服务器一般都带有RAID阵列卡,并且RAID阵列卡也很廉价,且由于软件RAID的自身缺陷(不能用作启动分区.使用CPU实现,降低CPU利用率),因此在生产环境下并不适用.但为了学习和了解RAID原理和管理,因此仍然进行一个详细的讲解: 一.创建模式 选项:-C 专用选项: -l 级别 -n 设备个数 -a {yes|no} 自动为其创建设备文件 -c 指定数据块大小(chunk…
点评:如果你想了解linux分区,请务必认真阅读本文.对于初学者来说,linux分区不像windows下那么一目了解.    Linux 分区的规定      1. 设备管理 在 Linux 中,每一个硬件设备都映射到一个系统的文件,对于硬盘.光驱等 IDE 或 SCSI 设备也不例外.   如果你想了解linux分区,请务必认真阅读本文.对于初学者来说,linux分区不像windows下那么一目了解.    Linux 分区的规定      1. 设备管理 在 Linux 中,每一个硬件设备都…
本文装载自:http://blog.csdn.net/aaronychen/article/details/2270048#comments 在学习 Linux 的过程中,安装 Linux 是每一个初学者的第一个门槛.在这个过程中间,最大的困惑莫过于给硬盘进行分区.虽然,现在各种发行版本的 Linux 已经提供了友好的图形交互界面,但是很多的人还是感觉无从下手.这其中的原因主要是不清楚 Linux 的分区规定,以及它下面最有效的分区工具― Fdisk 的使用方法. 首先我们要对硬盘分区的基本概念…
/etc/inittab文件详解 Linux系统的启动过程为:加电自检-->根据BIOS中的设置从指定的设备启动-->找到设备MBR中的bootloader引导启动系统-->启动kernel-->启动init进程     我们看到,Linux系统启动的最后是启动init进程,而init进程是怎么工作的呢?init进程就是根据/etc/inittab这个文件来在不同的运行级别启动相应的进程或执行相应的操作.          /etc/inittab这个文件中定义的登记项都是以:隔开…
anaconda-ks.cfg详解 系统安装的时候生成的一个文件,通过这个文件可以修改成自动安装的脚本,用于自动安装同样配置的系统. 自动生成的启动文件anaconda# Kickstart file automatically generated by anaconda. 版本=开发 #version=DEVEL系统安装途径光盘 install cdrom语言和键盘布局 lang zh_CN.UTF- keyboard us网络配置 network --onboot no --device e…
Grub(GRand Unified Bootloader),统一资源引导器,它的工作是提供一个菜单,允许用户选择要启动的系统或不同的内核版本:把用户选定的内核装载到RAM中的特定空间中,然后解压.展开,而后把系统控制权移交给内核. Grub目前有两个版本: 1.GRUB 0.X:Grub Legacy(CentOS5.6,version 0.97): 2.GRUB 1.X:Grub2(CentOS7,version 1.96). Grub详解(Grub Legacy,CentOS6为例): 1…
adb详解 分类: android开发工具相关 2012-10-24 18:27 2822人阅读 评论(0) 收藏 举报 ADB全称Android Debug Bridge,是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器戒者真实的andriod设备它的主要功能有:  运行设备的shell(命令行)  管理模拟器戒设备的端口映射  计算机和设备之间上传/下载文件  将本地apk软件安装至模拟器戒android设备 ADB是一个“客户端-服务器端”程序,…
Linux 开机引导和启动过程详解 编译自:https://opensource.com/article/17/2/linux-boot-and-startup作者: David Both 原创:LCTT https://linux.cn/article-8807-1.html 译者: penghuster 本文地址:https://linux.cn/article-8807-1.html 你是否曾经对操作系统为何能够执行应用程序而感到疑惑?那么本文将为你揭开操作系统引导与启动的面纱.   理解…
CentOS系统启动流程图文详解. 原文:http://www.linuxidc.com/Linux/2017-03/141966.htm 熟悉系统启动流程对于我们学习Linux系统是非常有帮助的,虽然基础,但能帮助我们更加理解Linux系统的工作机制.以下将以CentOS发行版为例来介绍Linux系统的启动流程,因为在CentOS 5.CentOS 6以及CentOS 7使用的初始化程序init各不相同,虽然CentOS 6和CentOS 7都有向后兼容,但在工作机制上仍有一些差异,因此以下主…
kickstart是什么         许多系统管理员宁愿使用自动化的安装方法来安装红帽企业 Linux.为了满足这种需要,红帽创建了kickstart安装方法.使用kickstart,系统管理员可以创建一个文件,这个文件包含了在典型的安装过程中所遇 到的问题的答案.        Kickstart文件可以存放于单一的服务器上,在安装过程中被独立的机器所读取.这个安装方法可以支持使用单一kickstart文件在多台机器上安装红帽企业Linux,这对于网络和系统管理员来说是个理想的选择.   …
[PXE] Linux(centos6)中PXE 服务器搭建,PXE安装.启动及PXE理论详解 本篇blog主要讲述了[PXE] linux(centos)PXE无盘服务器搭建,安装,启动及pxe协议详解 , Kickstart (PXE+DHCP+TFTP+HTTP). PXE环境概述 作为中小公司的运维,经常会遇到一些机械式的重复工作.如何进行批量一次大批量部署服务器安装?方法: Kickstart (PXE+DHCP+TFTP+HTTP)  或  Cobbler 批量装机软件介绍 Redh…
ironic+nova详解 说明: Openstack 的安装步骤省略,按照社区的文档即可搭建出一套相对稳定的使用环境.本文档基于Newton版本. 假设现在已经有一套可用的Newton环境, 以下的操作均在环境安装完成后进行. 在ironic安装配置过程中, 社区文档Nova和ironic 结合时的配置部分有一个错误, https://docs.openstack.org/project-install-guide/baremetal/newton/configure-integration.…
目录 1. Docker镜像 1.1 镜像存储 1.2 base镜像 1.3 镜像Commit 2. Docker容器数据卷 2.1 基本介绍 2.2 数据卷 2.3 数据卷容器 序言:前两章我们主要介绍了Docker的概念和体系,以及Docker的镜像和容器命令,这一章我们将深入Docker镜像以及熟悉Docker的容器数据卷.OK,我们开始第三章的学习吧. 1. Docker镜像 1.1 镜像存储 要了解 Docker镜像的存储首先务必得了解联合文件系统 UnionFS(Union File…