文档章节

LiteOS-grup引导

梦想游戏人
 梦想游戏人
发布于 2017/05/14 21:45
字数 298
阅读 66
收藏 0
点赞 0
评论 1

上篇降到自己实现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的目录中,生成磁盘映像文件。卸载即可生成。如何制作映像文件在此不阐述。

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

引导成功

© 著作权归作者所有

共有 人打赏支持
梦想游戏人
粉丝 34
博文 402
码字总数 115594
作品 0
成都
加载中

评论(1)

动弹
动弹
GRUB?
无华为,不智慧:智慧城市建设为何少不了华为?

2016年11月17日,深圳,高交会,一向低调、内敛的华为出人意料地喊出了一个霸气的口号:无华为,不智慧!与笔者预想的一样,这个口号一亮,立即霸占了各大媒体的头条,并刷爆了IT通信人士的朋...

玄学酱 ⋅ 05/07 ⋅ 0

仅研发就投入3300人 华为如何掘金物联网?

近年来的科技互联网领域,物联网(IoT)无疑是最热门的词汇之一。早在2015年,华为就预测,到2025年全球将有1000亿联接。其中,90%的联接属于人与人之外的人与物、物与物的联接。同年晚些时候...

玄学酱 ⋅ 04/19 ⋅ 0

1.13单用户模式 1.14 救援模式 1.15 克隆虚拟机 1.16 Linux机器相互登录

1.13 单用户模式 1.重启linux系统命令reboot=〉重启init 6=〉重启shutdown -r now=〉重启init 0=〉关机poweroff=〉关机2.由于虚拟机Linux不能直接重启,所有使用以下方法,将光标移到lin...

cwliang ⋅ 2017/12/14 ⋅ 0

2016OSC源创会年终盛典-主会场-杜玉杰

主会场 讲师/SPEAKERS 杜玉杰 Huawei LiteOS开源社区总监 《Huawei LiteOS开源物联网操作系统》 Huawei LiteOS开源社区总监,华为开源能力中心主任工程师、开源专家,华为开源战略管理核心团...

OSC源创君 ⋅ 2016/12/08 ⋅ 0

[转]华为和他小伙伴们的九大物联网解决方案

这篇文章转自物联网智库,http://www.iot101.com/news/2017-08-04/13482.html,文章中提供的九大解决方案的架构和功能集合是值得我们研究的部分 在平台层中的“IoT连接管理平台”,又被分成了...

lihongzhai ⋅ 05/25 ⋅ 0

华为物联网操作系统--LiteOS

Huawei LiteOS 是华为面向IoT领域,构建的"统一物联网操作系统和中间件软件平台",以轻量级(内核小于10k)、低功耗(1节5号电池最多可以工作5年),快速启动,互联互通,安全等关键能力,为...

匿名 ⋅ 2016/11/15 ⋅ 7

Ubuntu12.04 开机不登录图形界面的设置

编辑grup文件 sudo vim /etc/default/grup 找到这行 GRUBCMDLINELINUX_DEFAULT="quiet splash" 修改文件中的GRUBCMDLINELINUX_DEFAULT的值 GRUBCMDLINELINUX_DEFAULT="text" 更新grup sudo u......

wake123 ⋅ 2014/03/16 ⋅ 0

centos 修改字符界面分辨率

启动是在kernel 的最后追加 vga= ask ,任何启动后系统会显示所有支持的分辨率,这是选取一个进入系统,然后修改 /boot/grup/grup.conf 中的kernel vga=0x你选取的值...

invictus_lee ⋅ 2014/04/13 ⋅ 0

豌豆机器小组发布最新 WRTnode2R,支持华为 Liteos、QQ物联与AllJoyn

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

观海yangquan ⋅ 2015/06/09 ⋅ 3

centos 启动流程及grub、initramfs修复

启动流程、grub配置及修复、initramfs修复 目录: centos启动流程 grup配置及修复 2.1 grub配置 2.2 grub命令启动 2.3 grub修复 initramfs修复 boot破坏修复 1.centos启动流程 在centos5和6...

心的哲学 ⋅ 2017/09/01 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

开启Swarm集群以及可视化管理

在搭建的两台coreos服务器上开启swarm集群 前置条件: docker均开启2375端口 同一个局域网内 主服务器上安装Portainer容器 安装Portainer容器执行: docker run -d -p 9000:9000 --restart=a...

ykbj ⋅ 9分钟前 ⋅ 0

单例设计模式

1、单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例 2、饿汉式单例类 在这个类被加载时,静态变量instance会被初始化,此时类的私有构造子会被调用 饿汉式是典型...

职业搬砖20年 ⋅ 14分钟前 ⋅ 0

前端基础(四):前端国际规范收集

字数:1142 阅读时间:5分钟 前言 由于前端技术的灵活性和杂乱性,导致网上的许多解决方案不够全面甚至是完全错误,容易起到误导作用。所以,我对搜索到的解决方案往往是存疑态度。那么,如何...

老司机带你撸代码 ⋅ 16分钟前 ⋅ 0

Failed to open/create Network-VirtualBox Host-Only

虚拟机版本 : Oracle Vm VirtualBox 5.2.12 报错时机:开网卡二,重启虚拟机报错 "Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Ada......

p至尊宝 ⋅ 19分钟前 ⋅ 0

三分钟学会如何在函数计算中使用 puppeteer

摘要: 使用 puppeteer 结合函数计算,可以快速的构建弹性的服务完成各种功能,包括:生成网页截图或者 PDF、高级爬虫,可以爬取大量异步渲染内容的网页、模拟键盘输入、表单自动提交、登录网...

阿里云云栖社区 ⋅ 23分钟前 ⋅ 0

springMVC接收表单时 Bean对象有Double Int Char类型的处理

前台ajax提交表单price为double类型 后台controller就介绍不到 400错误 前台 实体类: public class ReleaseMapIconConfig{ private String id; private long maxValue; private long minVal......

废柴 ⋅ 25分钟前 ⋅ 0

ZOOKEEPER安装

工作需要在ubuntu上配置了一个zookeeper集群,有些问题记录下来。 1. zookeeper以来java,所以首先要安装java。但是ubuntu系统有自带的jdk,需要通过命令切换java版本: $ sudo update-alter...

恰东 ⋅ 28分钟前 ⋅ 0

linux 进程地址空间的一步步探究

我们知道,在32位机器上linux操作系统中的进程的地址空间大小是4G,其中0-3G是用户空间,3G-4G是内核空间。其实,这个4G的地址空间是不存在的,也就是我们所说的虚拟内存空间。 那虚拟内存空间...

HelloRookie ⋅ 28分钟前 ⋅ 0

myatis #{}与${}区别及原理

https://blog.csdn.net/wo541075754/article/details/54292751

李道福 ⋅ 31分钟前 ⋅ 0

三分钟学会如何在函数计算中使用 puppeteer

摘要: 使用 puppeteer 结合函数计算,可以快速的构建弹性的服务完成各种功能,包括:生成网页截图或者 PDF、高级爬虫,可以爬取大量异步渲染内容的网页、模拟键盘输入、表单自动提交、登录网...

猫耳m ⋅ 32分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部