![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
bootstrap
文章平均质量分 77
千重浪_WaterStone
这个作者很懒,什么都没留下…
展开
-
从Nand Flash启动U-BOOT的基本原理
Cited from http://hi.baidu.com/zengzhaonong/blog/item/4b901ee9b5ef343cb90e2d16.html前4K的问题 如果S3C2410被配置成从Nand Flash启动(配置由硬件工程师在电路板设置), S3C2410的Nand Flash控制器有一个特殊的功能,在S3C2410上电后,Nand Flash控制器会自转载 2013-09-27 10:00:47 · 806 阅读 · 0 评论 -
uboot下载内核和文件系统的步骤
1)下载linux到系统的SDRAM运行(仅做测试之用,断电或退出后就会消失)1>运行Uboot,设置环境变量Uboot>setenv bootargs root=/dev/ram rw initrd=0x21100000,6000000 ramdisk_size=15360console=ttyS0,115200,mem=32M 启动系统环境变量Uboot>set转载 2013-09-27 10:15:04 · 866 阅读 · 0 评论 -
Linux Init and System Initialization
Init and RunlevelsThe init process reads the file "/etc/inittab" and uses this file to determine how to create processes. Read the init man page for more information. Also note that init is always转载 2013-09-27 11:35:21 · 860 阅读 · 0 评论 -
linux 0.11 内核学习 -- head.s
## 这段代码被连接到system模块的最前面,这也是它为什么称之为head.s的原因。# 从这里开始内核完全运行在保护模式下。head.s采用的是at&t格式的# 汇编。注意的是代码中的赋值方向是从左到右。## 这段程序实际上是出于内存的绝对地址0开始处。首先是加载各个数据段寄存器。# 重新设置全局描述符表gdt --> 检测a20地址线是否真的开转载 2013-09-27 11:48:29 · 661 阅读 · 0 评论 -
保护模式下三个重要的系统表——GDT、LDT和IDT
这三个表是在内存中由操作系统或系统程序员所建,并不是固化在哪里,所以从理论上是可以被读写的。这三个表都是描述符表。描述符表是由若干个描述符组成,每个描述符占用8个字节的内存空间,每个描述符表内最多可以有8129个描述符。描述符是描述一个段的大小,地址及各种状态的。 描述符表有三种,分别为全局描述符表GDT、局部描述符表LDT和中断描述符表IDT。 1. 全局描述符表GDT:转载 2013-09-27 11:49:16 · 1317 阅读 · 0 评论 -
系统启动bootsect.s linux
一般pc在电源一开时,是由内存中地址ffff:0000开始执行(这个地址一定在rom bios中,rom bios一般是在feoooh到fffffh中),而此处的内容则是一个jump指令,jump到另一个位於rom bios中的位置,开始执行一系列的动作,包括了检查ram,keyboard,显示器,软硬磁盘等等,这些动作是由系统测试代码 (post,system test code)来执行的,转载 2013-09-29 09:34:38 · 625 阅读 · 0 评论 -
x86寄存器说明
x86寄存器说明ebp和esp是32位的SP,BP esp是堆栈指针 ebp是基址指针 ESP与SP的关系就象AX与AL,AH的关系.32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EI转载 2013-09-29 09:36:34 · 557 阅读 · 0 评论 -
BIOS(ROM)和RAM统一编址or独立编址?
计算机启动时,执行的第一条指令的地址是固定的,这个地址是内存地址吗?但内存这时候是没有内容的,bios和内存是统一编址吗?[/quote]以下只是个人见解,不一定完全准确,只供参考。1.“内存这时候是没有内容的”,准确的说应该是 RAM中无有意义的内容。但是BIOS ROM和显存ROM等内存中是有一些重要的系统程序和系统数据的。rom和ram一样都是内存。2.“执行的第一条指令的地转载 2013-09-29 09:37:58 · 6149 阅读 · 0 评论 -
X86 bios介绍
Cited from http://topic.csdn.net/u/20080328/10/3bd77205-d58e-4aac-a8c0-9c431a57302c.html而系统运行必须是从rom的0x0开始的,因此应该利用remap把放中断向量的初始地址映射到rom的0x0处,以使程序进行正确的初始化.这样既可以初始化,有可以使程序运行的快一些,因为毕竟rom的速度是比较慢的.第二个转载 2013-09-29 09:38:44 · 3404 阅读 · 0 评论 -
Linux 引导过程内幕
Cited from http://www.ibm.com/developerworks/cn/linux/l-linuxboot/index.html引导 Linux? 系统的过程包括很多阶段。不管您是引导一个标准的 x86 桌面系统,还是引导一台嵌入式的 PowerPC? 机器,很多流程都惊人地相似。本文将探索 Linux 的引导过程,从最初的引导到启动第一个用户空间应用程序。在本文介转载 2013-09-29 09:39:38 · 541 阅读 · 0 评论 -
linux启动流程分析
Cited from http://www.ibm.com/developerworks/cn/linux/kernel/startup/ 本文以Redhat 6.0 Linux 2.2.19 for Alpha/AXP为平台,描述了从开机到登录的 Linux 启动全过程。该文对i386平台同样适用。Bootloader在Alpha/AXP平台上引导Linux通常有两种转载 2013-09-29 09:44:06 · 543 阅读 · 0 评论 -
linux 内核启动代码解释网站
http://tldp.org/HOWTO/Linux-i386-Boot-Code-HOWTO/kernel_head.htmlhttp://bbs.tongji.net/thread-258437-1-1.htmlhttp://www.diybl.com/course/6_system/linux/Linuxjs/200871/129588_6.htmlhttp://mmdoc.s转载 2013-09-29 09:44:52 · 570 阅读 · 0 评论 -
8088汇编指令速查手册
jmpi是段间跳转指令,用于x86实模式下, 如:BOOTSEG = 0x0c70 jmpi 4, #BOOTSEG 假如当前段CS==00h,那么执行此指令后将跳转到段CS==0x0c70,当然段cs的值也变为0x0c70,接下来将执行指令0x0c70:0004处的指令。8088 汇编速查手册转载 2013-09-29 09:33:49 · 758 阅读 · 0 评论 -
Cited from http://hi.baidu.com/zengzhaonong/blog/item/4b901ee9b5ef343cb90e2d16.html
0.交叉编译环境的搭建 1.环境变量设置 2.busybox移植及根文件系统的构建 3.Xserver移植 4.matchbox移植 5.gtk移植 6.测试 0.交叉编译环境的搭建 ------------------------------------- 所需要的交叉编译工具链:S3C6转载 2013-09-27 10:14:10 · 2730 阅读 · 0 评论 -
Uboot和kernel对于Nandflash分区
1. Uboot没有对Nandflash进行分区,通过bootargs参数将file system信息传递给kernel2. 在kernel中对Nandflash分区信息:arch/arm/mach-s3c6410/mach-smdk6410.c中struct mtd_partition s3c_partition_info[] = { {原创 2013-09-27 09:59:33 · 1187 阅读 · 0 评论 -
Linux下系统调用的实现
Unix/Linux操作系统的体系结构及系统调用介绍参考Chapter 5. System Calls of 《Linux.Kernel.Development》 什么是操作系统和系统调用 操作系统是从硬件抽象出来的虚拟机,在该虚拟机上用户可以运行应用程序。它负责直接与硬件交互,向用户程序提供公共服务,并使它们同硬件特性隔离。因为程序不应该依赖于下层的硬件,只有这样应用程序才转载 2013-09-27 10:20:59 · 553 阅读 · 0 评论 -
如何自动登录linux
本文以redhat 8.0操作系统平台为背景,阐述如何实现启动级别为3时的自动登录,及自动运行相应程序,并简要介绍了如何在redhat 8.0下自动登录X window(系统启动级别为5),并自动运行指定的应用程序。 一、启动级别为3时自动登录的实现 启动级别为3时自动登录的实现涉及两个软件包:mingetty-1.00-3.src.rpm软件包及util-linux-2.转载 2013-09-27 11:37:20 · 849 阅读 · 0 评论 -
如何实现自动登录Linux
一、linux启动的最后阶段的工作linux 在启动过程的最后阶段(具体启动步骤略),init 会根据 /etc/inittab文件的最后一行x:5:respawn:/etc/X11/prefdm -nodaemon运行/etc/X11/prefdm脚本,(Red hat 7.2缺省时是这样的)。prefdm脚本的主要任务是完成X window的启动,可以有几种启动X window的方法,都包转载 2013-09-27 09:57:54 · 564 阅读 · 0 评论 -
U-BOOT下使用bootm引导内核方法
注: u-boot 使用的是打上: http://www.hhcn.com/cgi-bin/topic.cgi?forum=3&topic=651&show=0 上keety大侠提供的补丁生成的u-boot-1.1.3这段时间不断有人问我u-boot启动内核的问题,记得在上次提供的u-boot源码中提到了go的方案,不过其实u-boot本来有一种更好的方案: bootm转载 2013-09-27 10:18:10 · 558 阅读 · 0 评论 -
保护模式下DPL,RPL,CPL的区别
1.当前特权CPL(Current Privilege Level) CPL是当前进程的权限级别(Current Privilege Level),是当前正在执行的代码所在的段的特权级,存在于cs寄存器的低两位。 2.描述符特权级DPL(Descriptor Privilege Level) DPL存储在段描述符中,规定访问该段的权限级别(Descriptor Privilege转载 2013-09-27 11:35:51 · 1776 阅读 · 0 评论 -
实例分析Linux0.11内核中断机制
http://blog.csdn.net/lijingze2003/archive/2005/04/10/342523.aspx 异常就是控制流中的突变,用来响应处理器状态中的某些变化。当处理器检测到有事件发生时,它就会通过一张叫做异常表的跳转表,进行一个间接过程调用,到一个专门设计用来处理这类事件的操作系统子程序,这张表即中断描述符表IDT。本文将针对Linux0.11代码进转载 2013-09-27 11:41:28 · 857 阅读 · 0 评论 -
利用Bochs调试linux的启动过
摘要:现在hack linux kernel的人很多,而调试工具很少,Bochs的最大的好处就是它的调试功能,它能仿真IA-32的全部指令,所有这些都是用C++写成的,并且开源。 名词:Bochs Bochs是Kevin Lawton 用C++语言开发的一个仿真软件系统。主要用来仿真x86的系统软件。和VMware,Virtual PC 仿真软件相比,速度很慢,但Bochs的最大好转载 2013-09-27 11:49:59 · 697 阅读 · 0 评论 -
s3c2410 uboot启动分析
本文以流行的Samsung公司的S3C2410,openmoko平台和u-boot-1.3.2(2008.5 发布)为例,介绍如何在ZIX嵌入式开发环境下探索u-boot启动过程。虽然u-boot已经广泛应用,由于其相对的复杂性使用户在了解其内部机理和进行u-boot的移植工作时还是会碰到困难。u-boot已有一些分析文档,但多数和真正的代码不能同步或者版本老旧,难以将概念和现实的代码匹配——转载 2013-09-27 10:16:19 · 757 阅读 · 0 评论 -
移植OK6410'S dm9000ae驱动到u-boot
Cited from: http://blog.csdn.net/willand1981/archive/2010/07/01/5706424.aspxu-boot版本1.1.6(1)在smdk6410.h中注释掉CS8900信息,添加DM9000信息注意参考原理图,DM9000使用了CSn1,基地址为18000000//#define CONFIG_DRIVER_CS8900转载 2013-09-27 10:17:09 · 1376 阅读 · 0 评论 -
linux 启动流程详解之/init/main.c:init调用/etc/rc.d/rc.sysinit
linux 启动流程详解本文转载自:http://www.linuxfans.org/bbs/thread-126676-1-1.html一、从哪里到哪里本文旨在描述linux中内核如何调用启动,然后如何从img的文件系统切换到硬盘的过程。描述起于:linux-2.6.11/init/main.c中函数 static int init(void * unused)描述止于:转载 2013-09-27 11:32:08 · 2965 阅读 · 0 评论 -
Linux操作系统中/sbin/init程序的执行过程
当init启动后,它通过执行各种启动事务来继续引导进程(检 查并监视文件系统,启动后台程序daemons,等等),直至完成用户所有操作环境的设置工作。这里主要涉及4个程序:init、 getty(agetty)、login和shell程序。这4个程序之间的关系见下图所示。init进程的主要任务是根据/etc/rc文件中设置的信息,执行其中设置的命 令,然后根据/etc/inittab文件中转载 2013-09-27 11:34:24 · 601 阅读 · 0 评论 -
IDT表的初始化
Cited from http://blog.chinaunix.net/u2/73528/showart_1132752.html linux内核的中断描述符表IDT是一个全局的数据,在i386平台上被定义为:struct desc_struct idt_table[256] __attribute__((__section__(".data.idt"))) = { {0,转载 2013-09-27 11:50:55 · 2856 阅读 · 0 评论 -
MBR和grub工作原理
Cited from http://hi.baidu.com/leembong/blog/item/ca6e954f7179fec1d1c86ab3.html能正常工作的grub应该包括一下文件:stage1、stage2、*stage1_5、menu.lst。 其中stage1要被安装(也就是写入)某个硬盘的主引导记录,或者某个活动分区(这个分区要用fdisk标记成可启动的)的启转载 2013-09-29 09:43:15 · 721 阅读 · 0 评论