文档章节

LiteOS-grup引导

梦想游戏人
 梦想游戏人
发布于 2017/05/14 21:45
字数 298
阅读 77
收藏 0

上篇降到自己实现MBR的引导,但是要进入系统入口还需要做很多事情,利用grup来帮助我们引导系统,

grup 能引导多系统

http://blog.csdn.net/xiaoyi23000/article/details/50504527

MBOOT_MAGIC  equ 0x1BADB002;
MBOOT_FLAGS  equ 0x00;
MBOOT_CHECKSUM  equ -(MBOOT_MAGIC + MBOOT_FLAGS);

[BITS 32]

section .text
  dd  MBOOT_MAGIC
  dd  MBOOT_FLAGS
  dd  MBOOT_CHECKSUM
  dd  start

[GLOBAL start]
[EXTERN kernel_entry]
start:
  cli;禁止中断,保护模式下不能用bios提供的中断功能
  call kernel_entry; 调用内核入口函数
  jmp $

从这里开始就可以开始用C语言来写内核代码了。

由于windows 下的gcc还不支持elf_i386,只支持i386pe格式,因此要链接的话,只有在linux下的gcc来链接了。

kernel.c

const   char *VGA_BUFFER = (const char*)0x000b8000;// vga 显存开始地址

int kernel_entry()
{
	while (1);
	return 0;
}

编译引导:nasm -f elf boot.asm -o boot.o

编译内核代码:gcc -masm=intel -c -nostdlib kernel.c -o boot.o

链接引导和内核代码:ld  -T link.ld -m elf_i386 -nostdlib boot.o kernel.o -o kernel

mnt挂载后,然后把kernel放在grup的目录中,生成磁盘映像文件。卸载即可生成。如何制作映像文件在此不阐述。

生成的映像文件作为虚拟机的启动程序

引导成功

© 著作权归作者所有

共有 人打赏支持
梦想游戏人
粉丝 35
博文 435
码字总数 123998
作品 0
成都
私信 提问
加载中

评论(1)

动弹
动弹
GRUB?
物联网操作系统华为超轻量LiteOS解读

物联网终端设备开发遇到瓶颈 物联网经过这些年的发展,在终端设备开发中显现出诸多问题。 1、终端设备需要低成本、低功耗。由于多为小型便携产品,因而电池寿命和硬件成本就成了关键问题,降...

linuxCool
09/29
0
0
解码超轻量的华为LiteOS:为什么IoT需要专门的OS?

IoT设备真的需要OS吗?这是个问题。 物联网(IoT)作为拥有千亿级设备连接量的庞大市场,已经远超PC和移动手机市场体量。国内巨头在物联网平台已然较量了多个回合,而在此过程中,操作系统也...

王金旺
09/01
0
0
有人用过LiteOS 么?

有人用过LiteOS 么?

李勇2
2016/11/24
1K
6
豌豆机器小组发布最新 WRTnode2R,支持华为 Liteos、QQ物联与AllJoyn

5月26日,WRTnode在官方微博简单地曝光了新产品——WRTnode2R开发板。它在继续使用OpenWrt的同时,还嵌入了华为刚发布不久的物联网操作系统Liteos,封装了QQ物联的部分功能,并支持AllJoyn协...

观海yangquan
2015/06/09
4.9K
3
Contiki、TinyOS、LiteOS、Nano-RK、t-Kernel的操作系统性能和利弊

来至SICS的权威比较分析报告。 报告中比较了Contiki、TinyOS、LiteOS、Nano-RK、t-Kernel的操作系统性能和利弊,对于广大的物联网研究者和应用开发者不无裨益。 http://www.smeshlink.com/a...

龙鸟
2012/09/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

esxi 更换ssl证书

概述 就是想换一个证书而已,你可以通过下面的途径去申请一个泛解析域名的证书之后再esxi上安装上 使用阿里云域名api申请Let’s Encrypt泛域名免费ssl证书 申请完成证书之后进行下一步 操作 ...

bboysoulcn
11分钟前
0
0
PLC编程入门:梯形图

梯形图(LAD)是PLC编程的最佳可视化语言,它看起来非常类似于继电器电路图,因此如果 你对继电器控制和电子电路有所了解的话,那么学起来会非常容易! 在这个教程中,我们将学习关于使用梯形...

汇智网教程
14分钟前
0
0
Kubernetes 1.13.0的快速升级

Kubernetes 1.13.0已经正式发布,快速升级(含国内镜像快速下载链接)包括升级kubeadm/kubectl/kubelet版本、拉取镜像、升级Kubernetes集群三个主要步骤。注意Kubernetes 1.13.0版本暂时不支...

openthings
27分钟前
2
0
go的卸载和环境变量配个人.bashrc

若是用安装包直接解压 http://download.csdn.net/detail/u010026901/7592581 cd /usr/local tar -zxvf go1.1.2.linux-386.tar.gz(先把安装包移到这个目录) 3.安装 $ cd go/src,$ ./all.b......

dragon_tech
33分钟前
1
0
区块链安全 - 以太坊短地址攻击

1 基础知识 EVM虚拟机在解析合约的字节码时,依赖的是ABI的定义,从而去识别各个字段位于字节码的什么地方。关于ABI,可以阅读这个文档: https://github.com/ethereum/wiki/wiki/Ethereum-C...

HiBlock
43分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部