分类分类
大小:3.10 MB更新:2016/12/07
类别:操作系统系统:Winll
提取密码: yhwv

bochs linux3.0 镜像是安卓手机bochs运行linux的img文件,3.0版本已经过验证,下面给出手机安装bochs镜像文件的具体操作方法,有需要的用户欢迎来IT猫扑下载~
1. 构造调试环境
由于bochs内建调试功能, 且支持gdb, 用它调试内核会很方便.
(文章中大部分命令的运行需要root权限,以sudo方式运行)
1.1 构建磁盘镜像
Shell代码
dd if=/dev/zero of=hd0.img count=$((63*16*100))
用这个命令可以构建一个50MB左右的磁盘镜像, 输出结果如下:
100800+0 records in
100800+0 records out
51609600 bytes (52 MB) copied, 0.734578 s,70.3 MB/s
注意count必须为63*16的倍数, 否则bochs识别硬盘会有问题.
1.2 挂载磁盘镜像
Shell代码
losetup /dev/loop0 hd0.img
这个命令可以将文件绑定到一个loop设备. 如果/dev/loop0不存在, 可以尝试 modprobe loop.
然后进行设备初始化:
Shell代码
cfdisk -s 63 -h 16 /dev/loop0
只创建一个主分区就可以. 写入后, 用命令fdisk检查结果:
Shell代码
fdisk -lu /dev/loop0
Disk /dev/loop0: 51 MB, 51609600 bytes
16 heads, 63 sectors/track, 100 cylinders, total 100800 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/loop0p1 63 100799 50368+ 83 Linux
将分区1挂载到/dev/loop1.
Shell代码
losetup /dev/loop1 hd0.img -o $((63*512))
格式化/dev/loop1为ext3格式.
Shell代码
mkfs.ext3 /dev/loop1
在mnt下创建img目录, 做以后维护用.
Shell代码
mkdir -p /mnt/img
将loop1挂载到/mnt/img
Shell代码
mount /dev/loop1 /mnt/img/
安装引导程序. 因为我狂热倾向于模块化架构, 所以选择GRUB2.
本文以grub-1.97~beta3为示例, 读者可自行安装其他的引导系统如lilo.
Shell代码
mkdir /mnt/img/boot
cp -r /usr/lib/grub/i386-pc/ /mnt/img/boot/grub
生成一个core.img, biosdisk负责读取磁盘, part_msdos负责处理MBR, ext2负责读取ext3分区.
Shell代码
cd /mnt/img/boot/grub/
grub-mkimage -O i386-pc -o core.img biosdisk part_msdos ext2
Shell代码
ls -lh core.img
-rw-r--r-- 1 root root 25K Sep 21 14:28 core.img
只有区区的25K.. 里面甚至还包含一个小的应急shell, 不过作用不大.
安装grub2到(hd0), 根目录在(hd0,1)
Shell代码
echo &(hd0) /dev/loop0& > ./device.map
grub-setup -m ./device.map -d /mnt/img/boot/grub/ -r '(hd0,1)' '(hd0)'
检查一下安装成果:
Shell代码
hexdump -C /dev/loop0 | less
如果你能看到:
Shell代码
00000180 7d e8 2e 00 cd 18 eb fe 47 52 55 42 20 00 47 65 |}.......GRUB .Ge|
00000190 6f 6d 00 48 61 72 64 20 44 69 73 6b 00 52 65 61 |om.Hard Disk.Rea|
就说明安装成功.
清理一下.
Shell代码
cd
umount /mnt/img
losetup -d /dev/loop1
losetup -d /dev/loop0
1.3 启动测试.
给上面的hd0.img配一个bochsrc文件, 可以拿bochs示例dlxlinux的配置文件来改, 只需将硬盘换为:
Shell代码
ata0-master: type=disk, path=&hd0.img&, cylinders=100, heads=16, spt=63
然后启动Bochs, 顺利的话, 你能看到传说中的grub2 shell.
2. 从启动到保护模式.
为我们的bochs虚拟机编译一个内核. 不必太复杂, 目前我们只关心启动部分.
2.1 安装内核
退出bochs, 挂载hd0.img:
Shell代码
mount hd0.img /mnt/img/ -o loop,offset=$((63*512))
拷贝bzImage.
Shell代码
cp /usr/src/linux/arch/i386/boot/bzImage /mnt/img/boot/vmlinuz-3.0.00
这两个步骤可以放到内核的Makefile中, 以后每次编译完成后, 自动更新到hd0.img里.
然后将下列配置写到/mnt/img/boot/grub/grub.cfg
Shell代码
# Timeout for menu
set timeout=10
# Set default boot entry as Entry 0
set default=0
# Entry 0 - Load Linux kernel
menuentry &Linux-3.0.00& {
set root=(hd0,1)
linux /boot/vmlinuz-3.0.00 root=/dev/hda1
}
卸载/mnt/img, 启动测试一下, 顺利的话, 你能看到一个panic.
2.2 从loader到内核
先测试一下bochs的调试能力. bochs以调试模式启动后, 会自动停在BIOS中Reset代码, 地址为0xFFFFFFF0. 我们在bochs console里输入:
Shell代码
pb 0x00007c00
在0x7c00设置一个断点, 这正式GRUB2 MBR代码的入口点. GRUB2负责加载自己的core.img, 在core.img里读取hd0, 解析MBR里的分区信息, 并利用ext2模块找到配置文件, 显示主界面,
并加载用户的选择内核文件(vmlinuz-xxx).
loader和内核之间的协议, 在内核源码Document/x86/boot.txt里有详尽的描述.
内核文件包括实模式代码和保护模式代码. loader读取内核文件的头部信息, 从而得知实模式和保护模式代码的大小. 保护模式部分被加载到0x100000(1MB), 实模式启动代码和数据/
堆栈段位置可以重定位在0x10000开始的低端内存的任何位置.
2.3 内核是怎样链成的...
首先编译内核的保护模式代码, 生成源码根目录的vmlinux. 这是一个elf格式的文件, 可以用readelf查看.
Shell代码
readelf -a /usr/src/linux/vmlinux | less
这个文件包含所有的符合信息, 容量巨大.
Shell代码
ls -lh /usr/src/linux/vmlinux
-rwxr-xr-x 1 root root 4.8M Sep 10 17:28 /usr/src/linux/vmlinux
文件内容会在后面章节细述.
接着vmlinux洗净压缩. 这个工作在 arch/x86/boot/compressed目录进行. 读Makefile可以看到先进行objcopy操作, 在compressed目录下生成vmlinux.bin.
Shell代码
ls -lh /usr/src/linux/arch/x86/boot/compressed/vmlinux.bin
-rwxr-xr-x 1 root root 3.7M Sep 10 17:28 /usr/src/linux/arch/x86/boot/compressed/vmlinux.bin
因为去掉了调试信息, 文件稍小了一些.
接着根据用户的选择进行压缩, 目前支持gz, bz2, lzma三种方式. 我用默认方式, 生成vimlinux.bin.gz.
Shell代码
#ls -lh /usr/src/linux/arch/x86/boot/compressed/vmlinux.bin.gz
-rw-r--r-- 1 root root 1.9M Sep 10 17:28 /usr/src/linux/arch/x86/boot/compressed/vmlinux.bin.gz
可以看到也有近50%的压缩率.
紧接着加入自解压部分, 生成新的vmlinux.
Shell代码
ls -lh /usr/src/linux/arch/x86/boot/compressed/vmlinux
-rwxr-xr-x 1 root root 2.0M Sep 10 17:28 /usr/src/linux/arch/x86/boot/compressed/vmlinux
这也是一个elf文件, 可以用readelf查看.
接着工作转移到boot目录, 对上面的vmlinux进行strip操作, 生成二进制格式的vmlinux.bin. 这里面包括全部的包含模式代码, 启动时第一条语句会被加载到0x100000(1MB).
然后编译实模式代码, 包括已无用的引导扇区和setup部分, 生成setup.elf. 然后进行strip, 生成setup.bin.
最后, 利用内核工具&build&, 将setup.bin和vmlinux.bin拷贝在一起, 并填上必要的信息如setup部分的大小等, grub等引导程序可以使用的bzImage诞生了.
2.3 内核实模式代码
实模式代码位于arch/x86/boot. 记得Linux2.6.18之前所有的代码都用汇编写成, 2.6.18之后大部分替换成了C.
入口点在header.S文件, 即包含了无用的&引导扇区代码&, 也包含了引导程序能识别的头部信息. 第一条可执行语句在偏移0x200的位置(跳过引导扇区), 执行必要的初始化操作, 然后将控制权交给C程序, 即main.c里的main()函数.
有了main()函数, 接下来的过程就像读文档一样方便了心情好 利用实模式的优势, 调用BIOS执行必要的初始化和参数获取, 并将结果存到结构体boot_params.
在main()的最后调用go_to_protected_mode(). 这个函数位于pm.c, 它打开A20, 初始化协处理器(如果有), 关掉所有中断, 设置空的IDT和最基本的GDT, 接着调用protected_mode_jump跳转到保护模式的入口代码0x100000. 这个函数定义在pmjump.S. 注意跳转的时候, boot_params被放在esi寄存器.
2.4 保护模式:自解压过程
内核保护模式的入口在arch/x86/boot/compressed/head_32.S (32位架构). 我们利用bochs的调试功能, 跟着走一遍:
Shell代码
pb 0x100000
c
接着grub会运行, 选择我们编译的kernel, 等实模式代码运行完毕, 就会断在保护模式的入口. 反汇编看一下:
Shell代码
u /16 0x100000
可以看到反汇编代码和head_32.S一样. (如果不一样.. 报告一起UFO目击事件吧)
在这里, esi还是指向来自与实模式的boot_params. 接下来的任务, 就是拷贝和解压. 目的地在0x1000000(16MB). 解压部分是C语言函数.
最后跳转到0x1000000.
3. 内核启动
3.1 平台相关的初始化
我们将断点设在内核的入口点 0x1000000(16MB), 继续执行, 内核会自己解压, 并停在入口点.
执行反汇编操作:
Shell代码
u /16 0x1000000
对应的汇编文件在 arch/x86/kernel/head_32.S. 这个是真正的内核入口点. 在这里初始化页表, 并启动分页机制. 打开SMP的化, 进行必要的CPU初始化. 然后初始化IDT, 检查CPU类型, 最后跳转到C语言的i386_start_kernel(). 这个函数位于head32.c. 它保留一些内存并做标记后, 跳转到平台无关的start_kernel(), 位于init/main.c.
Windows 98 SE 中文第二版ISO镜像操作系统307.35 MB附安装教程
详情Ghost XP SP3系统操作系统636.00 MBv10.0 GHO镜像纯净版
详情Windows 2000 Professional操作系统128.00 MBWith SP4 中文MSDN原版光盘
详情kalilinux最新版本操作系统2.41 GBv2022.3 官方版
详情Windows Xp Sp3操作系统625.94 MB官方简体中文版(原版)
详情windows95操作系统操作系统580.80 MB完整简体中文版
详情华为鸿蒙系统安装包操作系统156.46 MBv3.3.5 官方正式版
详情vmware虚拟机win7镜像文件操作系统2.21 GBvmdk格式
详情WindowsXP精简版iso操作系统75.00 MB超级精简版
详情windows 10 ltsc 2019企业版操作系统3.54 GBvBuild 17763.2746 官方版
详情vmware虚拟机xp镜像vmdk操作系统1.00 KBwinxp专用
详情安卓android x86 7.1 rc1全集(iso与rpm版本)操作系统785.00 MB32/64位
详情bochs xp镜像可上网版操作系统2.05 GBimg文件
详情andows.img镜像操作系统1.51 GB支持xp系统
详情大白菜win7PE启动镜像操作系统218.00 MBiso格式
详情凝思Linux操作系统操作系统3.58 GBv6.0.80 官方最新版
详情android x86 7.0 iso操作系统560.00 MB官方最新版
详情Windows 8.1/Win10/7/XP/Vista 虚拟机镜像操作系统2.25 GB支持vmware/Vitrualbox/Hyper-V
详情android x86 4.4 r5 iso镜像操作系统356.00 MB
详情bochs xp精简镜像操作系统124.88 MB流畅版
详情OpenHarmony华为鸿蒙源码操作系统1.34 GBv2.0 正式版
详情Windows 2003 server Ent SP2操作系统20.25 MB纯净安装版
详情bochs xp镜像完整版操作系统54.00 MB正式版
详情android x86 6.0 iso系统操作系统520.00 MBRC1 版
详情bochs win7镜像完整版操作系统502.00 MBimg文件
详情深度windows XP sp3操作系统217.73 MBv6.2 安装版
详情FydeOS for PC操作系统1.90 GBv13.1 官方版
详情win98系统ghost版操作系统248.00 MB纯净版
详情完美者 Windows XP PE操作系统35.90 MB35M精简版
详情统信uos桌面操作系统家庭版(uniontechos desktop home)操作系统3.43 GBv21 64位安装版
详情雨林木风win2000纯净版64ghost操作系统654.80 MBv2.6 官方正式版
详情bochs win7镜像可上网版操作系统502.00 MBimg文件
详情红旗Linux7.0桌面操作系统操作系统1.30 GBv7.0 官方免费版
详情windows 3.1操作系统操作系统8.03 MB
详情不忘初心win10系统操作系统2.28 GBv21H2(19044.1618) 纯净精简版
详情U盘魔术师USM操作系统5.98 GBv6.0.2019.0404 特别版
详情VMware虚拟机系统镜像大全操作系统1.90 GBvmdk文件
详情Windows Server 2016操作系统5.10 GB官方中文正式版
详情chrome os完整版系统镜像操作系统976.00 MBv2.4.1290 官方U盘启动版
详情Windows Server 2012 R2激活工具操作系统71.00 MBv2.6.6 绿色版
详情点击查看更多
Ghost XP SP3系统操作系统636.00 MBv10.0 GHO镜像纯净版
详情Windows XP SP3纯净装机版操作系统1.40 GB个人专用版
详情Windows server2008 r2 镜像操作系统2.98 GBiso简体中文版
详情深度windows XP sp3操作系统217.73 MBv6.2 安装版
详情Windows 2000 Professional操作系统128.00 MBWith SP4 中文MSDN原版光盘
详情雨林木风Windows Server 2003 SP2操作系统693.65 MBY1.0 企业安装版
详情Windows 98 SE 中文第二版ISO镜像操作系统307.35 MB附安装教程
详情Windows Xp Sp3操作系统625.94 MB官方简体中文版(原版)
详情bochs win7镜像完整版操作系统502.00 MBimg文件
详情Windows 2003 server Ent SP2操作系统20.25 MB纯净安装版
详情bochs xp精简镜像操作系统124.88 MB流畅版
详情android x86 7.0 iso操作系统560.00 MB官方最新版
详情雨林木风Ghost_XP_SP3绿色纯净完整装机版操作系统581.10 MBYN16.0_2010.6月更新[NTFS]
详情WindowsXP精简版iso操作系统75.00 MB超级精简版
详情vmware虚拟机win7镜像文件操作系统2.21 GBvmdk格式
详情bochs win7镜像可上网版操作系统502.00 MBimg文件
详情kalilinux最新版本操作系统2.41 GBv2022.3 官方版
详情vmware虚拟机xp镜像vmdk操作系统1.00 KBwinxp专用
详情bochs xp镜像可上网版操作系统2.05 GBimg文件
详情bochs win10精简镜像操作系统1.12 GB精简版
详情win98系统ghost版操作系统248.00 MB纯净版
详情bochs xp镜像完整版操作系统54.00 MB正式版
详情Ubuntu 12.10操作系统753.00 MBISO镜像官方中文正式版
详情完美者 Windows XP PE操作系统35.90 MB35M精简版
详情雨林木风win2000纯净版64ghost操作系统654.80 MBv2.6 官方正式版
详情深度技术 WINDOWS XP SP2 珍藏版操作系统642.60 MBv5.10 简体中文版_集成2008年4月
详情安卓android x86 7.1 rc1全集(iso与rpm版本)操作系统785.00 MB32/64位
详情windows 3.1操作系统操作系统8.03 MB
详情win7 64位极度精简版操作系统400.00 MB400M 免费版
详情bochs win95精简镜像操作系统76.70 MB精简版
详情windows95操作系统操作系统580.80 MB完整简体中文版
详情android x86 6.0 iso系统操作系统520.00 MBRC1 版
详情bochs win98中文镜像操作系统255.00 MB精简版
详情红帽6.5 64位镜像操作系统3.59 GBlinux6.5 iso官方版
详情android x86 4.4 r5 iso镜像操作系统356.00 MB
详情雨林木风Windows XP SP3操作系统1.40 GBv1.0 精简安装版
详情微软最新4合1算号器操作系统38.00 KBWindows xp
详情bochs win7镜像精简版操作系统502.00 MBimg文件
详情andows.img镜像操作系统1.51 GB支持xp系统
详情msdos7.10.iso中文版操作系统7.92 MB完全安装版
详情点击查看更多
vmware虚拟机win7镜像文件操作系统2.21 GBvmdk格式
详情Ghost XP SP3系统操作系统636.00 MBv10.0 GHO镜像纯净版
详情Red Hat Enterprise Linux AS4_U2 第二张光盘操作系统628.19 MB官方iso镜像版
详情Red Hat Enterprise Linux AS4_U2 第四张光盘操作系统631.98 MB官方iso镜像版
详情windows7 sp1 专业版操作系统3.12 GB64位微软官方原版
详情mac os x snow leopard.iso操作系统7.03 GBv10.6 正式版
详情宝龙bolod XOS系统操作系统42.80 MBv1.0 官方正式版
详情雨林木风Windows XP SP3操作系统1.40 GBv1.0 精简安装版
详情erd commander 2003操作系统74.51 MB汉化版
详情深度官方装机PE系统操作系统46.23 MBv2.0 简体中文版
详情Windows 10 21H2 正式版官方镜像操作系统4.39 GBBuild 19044.1682 RTM 简体中文版
详情vmware win2003镜像文件操作系统371.10 MBvmdk格式
详情Oracle Enterprise Linux操作系统2.27 GBv7.2 官方正式发行版
详情windows server 2012 标准版操作系统2.00 KB64位简体中文版
详情Windows11专业版操作系统3.58 GBv21H2 Build 22000.832 RTM 最新版
详情kali linux系统操作系统248.00 KBv2.0 官方版
详情雨林木风Windows Server 2003 SP2操作系统693.65 MBY1.0 企业安装版
详情Windows Xp Sp3操作系统625.94 MB官方简体中文版(原版)
详情绝对PE工具箱(win7内核 支持 硬盘/U盘/光盘PE系统)操作系统92.53 MBv1.6 中文官方版
详情影子系统2012(shadow mode)操作系统3.10 MB中文免费版
详情WindowsXP模拟安装程序操作系统503.00 KBv1.0 绿色版
详情希望汉字系统ucdos7.0完全版操作系统744.00 KB
详情电脑市场Ghost XP SP3纯净版操作系统1.23 GBv3.9 NTFS 装机版
详情windows10教育版系统操作系统3.08 GBx86 x64 MSDN官方原版
详情android x86 4.4 r5 iso镜像操作系统356.00 MB
详情Windows 7 Home Basic x86(家庭普通版)操作系统2.43 GB简体中文msdn原版
详情Windows server2008 r2 镜像操作系统2.98 GBiso简体中文版
详情远航技术版 Windows 11 21H2企业版(支持老电脑MBR安装)操作系统5.42 GBOS build 22000.318 正式版
详情Cygwin完整离线安装包操作系统162.00 MBx86 32位完整版
详情远航技术 Ghost XP Sp3 纯净版/装机版操作系统1.14 GBv2020.5.3 正式版
详情Windows 7专业版系统操作系统2.31 GB64位简体中文版
详情Windows 10 LTSC 2019不忘初心美化精简版操作系统2.05 GB
详情ubuntu-16.04.2-desktop-amd64.iso操作系统161.13 MB64位/32位LTS官方正式版镜像
详情Windows错误代码查询系统操作系统33.00 KBv2.0 绿色版
详情Windows8 PE操作系统248.00 MB32BIT 精简版
详情windows 10技术预览简体中文版操作系统2.92 GB原版ISO镜像
详情橙子装机大师操作系统29.30 MBv8.2.1 官方版
详情完美者 Windows XP PE操作系统35.90 MB35M精简版
详情2017海蜘蛛破解版(无WEB认证无广告)操作系统25.20 MB绿色免费版
详情WINXPLITE封装专用母盘操作系统310.90 MB终结版
详情点击查看更多



















































71
回复中国ITMOP.COM - 网友
好的很 好
71
回复四川巴中 - 网友
linux系统3.0镜像,找了很久了,还是喜欢bochs