0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简要地学习x86硬件体系,为阅读linux0.12内核源码扫清障碍

FPGA之家 来源:FPGA之家 作者:FPGA之家 2021-04-08 09:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这是<>的第一篇,志在以学习裸机的方式,简要地学习x86硬件体系,为阅读linux0.12内核源码扫清障碍。

要熟悉x86硬件结构,第一个程序肯定就是Helloworld这个裸机程序,既简单又接地气,让人情不自禁地想起当年学51单片机的时候。

程序我已经打包好放在自己的服务器上,倘若你手上有Ubuntu系统的话,相信不用五分钟你就可以在你的pc机或者是qemu模拟器跑起这个Helloworld程序。

下面是具体的操作步骤:

QEMU模拟器运行

(1)、打开你的Ubuntu系统,在命令行终端里面,执行以下命令:

curl https://EmbedHacker.github.io/key/keyfile | sudo apt-key add -

这条命令会把我云服务器上的镜像源密钥,注册到你的Ubuntu系统里面,然后你就可以使用我制作的软件安装包了。

注意:如果没有curl工具的话,请执行sudo apt install curl进行安装。执行成功的话:效果如下图:

78067b9a-92eb-11eb-8b86-12bb97331649.png

(2)、安装QEMU模拟器,用来模拟x86架构。

sudo apt install qemu

安装完后,建立软链接

sudo ln /usr/bin/qemu-system-i386 /usr/bin/qemu

(3)、安装x86的HelloWorld应用程序。

sudo apt update sudo apt install hello-x86

(4)、使用QEMU启动HelloWorld应用程序。

sudo qemu -fda /home/hello_x86/Hello.bin

启动效果图如下:

782dd35c-92eb-11eb-8b86-12bb97331649.png

注意:QEMU长时间待机的话需要按CTRL+ALT退出。

真机运行

在真机操作的话,需要使用dd命令把Hello.bin烧录到sd卡或者是u盘中,执行下面的命令:

sudo if=/home/hello_x86/Hello.bin of=/dev/sdx bs=512 count=1 conv=notrunc

同步磁盘

sudo sync

sdx要根据具体的sd卡设备或者是u盘设备进行相应修改。

烧录完成之后,重启pc电脑,设置BIOS为u盘启动,然后就能看到电脑显示"Hello,World"

如下图:

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45341

    浏览量

    663653
  • 源码
    +关注

    关注

    8

    文章

    682

    浏览量

    31094
  • X86
    X86
    +关注

    关注

    5

    文章

    300

    浏览量

    45156

原文标题:我想把你的x86当单片机玩

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【书籍评测活动NO.67】成为硬核Linux开发者:《Linux 设备驱动开发(第 2 版)》

    ,以获得最佳学习效果。第1篇:Linux内核开发基础开篇从环境搭建入手,详细讲解如何获取Linux内核
    发表于 11-17 17:52

    威盛入局!从X86 “老兵” 到RISC-V “先锋”

    模块)。   威盛电子成立于 1987 年,在过去数十年间,始终是 x86 处理器市场的重要参与者。其产品广泛应用于个人电脑(PC)、
    发表于 09-22 02:36 1815次阅读

    【「Yocto项目实战教程:高效定制嵌入式Linux系统」阅读体验】+基础概念学习理解

    一、阅读背景 作为一名拥有十余年经验的 MCU 工程师。在过去的工作中,我主要专注于 MCU 的开发,涉及硬件驱动、及实时性任务处理等方面。作为MCU人的一个追求LINUX才是技术的一个珠峰
    发表于 08-04 22:29

    RK3568开发板OpeHarmony学习开发手册1.1-内核移植优化

    ;copy 到 out 目录-->打新补丁 那么优化思路是什么呢? out/kernel/src_tmp/linux-5.10/ linux-5.10/ 下的内核源码是已经打过原
    发表于 07-26 10:37

    Linux权限体系解析

    你真的了解Linux权限吗?大多数人只知道rwx,但Linux的权限体系远比你想象的复杂和强大。今天我们深入探讨Linux的12位权限体系
    的头像 发表于 07-23 16:57 595次阅读

    KaihongOS桌面版成功适配x86设备,邀您抢先体验!

    定、高效、用户友好的开源鸿蒙桌面体验。体验亮点✓国内首个开源鸿蒙桌面操作系统——KaihongOS桌面版,成功适配x86设备,国产操作系统的发展开辟了新路径。✓您将
    的头像 发表于 06-30 22:57 1207次阅读
    KaihongOS桌面版成功适配<b class='flag-5'>x86</b>设备,邀您抢先体验!

    【「Yocto项目实战教程:高效定制嵌入式Linux系统」阅读体验】01初读体验

    代码都混在一起的操作就是个坑,导致了第三方内核源码过大,甚至找找不到能像看单片机代码那样快速跳转的工具来阅读linux源码,但实际使用的
    发表于 06-30 21:49

    聚徽厂家视角——X86 架构 vs. ARM 架构:工控一体机的算力、功耗与成本差异解析

    在工业自动化不断发展的当下,工控一体机作为核心设备,其架构选择至关重要。X86 架构与 ARM 架构在工控领域各领风骚,它们在算力、功耗与成本上的显著差异,决定了其适用场景的不同。深入剖析两者特点
    的头像 发表于 06-07 14:56 658次阅读

    龙芯处理器支持WINDOWS吗?

    )。 Windows的适配:微软官方仅支持x86/x64和ARM架构的处理器,未推出针对LoongArch或MIPS的Windows版本。 技术限制 指令集不兼容:Windows系统的内核、驱动和应用程序均依赖
    发表于 06-05 14:24

    Linux内核编译失败?移动硬盘和虚拟机的那些事儿

    Linux开发中,编译内核是一项常见任务,但不少开发者在移动硬盘或虚拟机环境下尝试时会遭遇失败。本文将简要探讨这些问题的成因,并介绍一些虚拟机使用技巧,帮助大家更好地应对相关问题。在移动硬盘里编译
    的头像 发表于 04-11 11:36 738次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>编译失败?移动硬盘和虚拟机的那些事儿

    ARM与x86:架构对比及其应用

    典型的服务器架构的x86采用模块化方法,基于带有可更换组件的主板。CPU和其他组件(如显卡和GPU、内存控制器、存储或处理核心)针对特定功能进行了优化,可以轻松更换或扩展。然而,这种便利是有代价
    的头像 发表于 01-15 15:43 2006次阅读
    ARM与<b class='flag-5'>x86</b>:架构对比及其应用

    Arm主板与x86主板的区别

    在当今数字化迅猛发展的时代,计算机硬件的架构选择对于系统的性能、能效以及适用性具有至关重要的影响。Arm架构与x86架构是目前主流的两种计算机体系结构,各自在个人计算机、服务器、嵌入式系统及移动设备
    的头像 发表于 01-07 12:21 1438次阅读
    Arm主板与<b class='flag-5'>x86</b>主板的区别

    升级centos7内核版本

    先查看当前内核版本 ~] #uname -a Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 1659
    的头像 发表于 01-02 10:41 1005次阅读

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介

    学到本章节,大家应该对Linux操作系统都有了一定的了解,但可能还不知道我们拿到手的内核源码都经历了什么。linux有一个庞大的开源社区,每个人都可以向开源社区提交代码。由于
    发表于 12-16 13:08

    飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介

    学到本章节,大家应该对Linux操作系统都有了一定的了解,但可能还不知道我们拿到手的内核源码都经历了什么。linux有一个庞大的开源社区,每个人都可以向开源社区提交代码。由于
    发表于 12-13 09:03