<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>裸机开发 on 软件开发大郭的技术博客</title>
		<link>https://blog.grabbyte.com/categories/%E8%A3%B8%E6%9C%BA%E5%BC%80%E5%8F%91/</link>
		<description>Recent content in 裸机开发 on 软件开发大郭的技术博客</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<lastBuildDate>Tue, 04 Feb 2025 18:02:33 +0800</lastBuildDate>
		
			<atom:link href="https://blog.grabbyte.com/categories/%E8%A3%B8%E6%9C%BA%E5%BC%80%E5%8F%91/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>UEFI的GOP图形输出协议</title>
				<link>https://blog.grabbyte.com/p/2025/02/04.html</link>
				<pubDate>Tue, 04 Feb 2025 18:02:33 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2025/02/04.html</guid>
				<description>&lt;p&gt;GOP（Graphic Output Protocol），是用来将图形驱动程序延伸至UEFI固件的接口，借以取代传统VBIOS（视讯BIOS）在开机资源要求等初始化行为。&lt;/p&gt;</description>
			</item>
			<item>
				<title>X86 PC模拟器JPC的使用</title>
				<link>https://blog.grabbyte.com/p/2023/02/04-1423.html</link>
				<pubDate>Sat, 04 Feb 2023 14:23:37 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2023/02/04-1423.html</guid>
				<description>&lt;p&gt;PC，类似于Bochs，采用Java语言编写。O’reilly的《Beautiful Architecture》一书中对其有详细介绍。&lt;/p&gt;&#xA;&lt;p&gt;不仅可以用JPC来调试操作系统，还可以研究它的代码，学习如何将一个复杂的计算机硬件系统分解成一个个小模块，组装起来。&lt;/p&gt;</description>
			</item>
			<item>
				<title>JPC是一个快速的现代x86 PC模拟器</title>
				<link>https://blog.grabbyte.com/p/2023/02/04-1416.html</link>
				<pubDate>Sat, 04 Feb 2023 14:16:39 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2023/02/04-1416.html</guid>
				<description>&lt;h2 id=&#34;网站&#34;&gt;网站&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/ianopolous/JPC&#34;&gt;github.com/ianopolous/JPC: JPC - The fast x86 PC emulator in 100% pure Java (github.com)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;最快的x86-pc模拟器纯java开发&#34;&gt;最快的X86 PC模拟器，纯JAVA开发&lt;/h2&gt;&#xA;&lt;p&gt;JPC是一个快速的现代x86 PC模拟器，能够启动Windows到Windows 95（以及安全模式下的Windows 98）和一些图形Linux。它具有功能齐全的图形调试器，具有时间旅行模式以及休息和观察点等标准功能。&lt;/p&gt;</description>
			</item>
			<item>
				<title>谢煜波《操作系统引导探究》笔记</title>
				<link>https://blog.grabbyte.com/p/2022/09/30-144723.html</link>
				<pubDate>Fri, 30 Sep 2022 14:47:23 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2022/09/30-144723.html</guid>
				<description>&lt;p&gt;谢煜波《操作系统引导探究》读后笔记，在此记录。&lt;/p&gt;&#xA;&lt;h1 id=&#34;前言&#34;&gt;前言&lt;/h1&gt;&#xA;&lt;p&gt;本篇文章并不旨在完整的讨论一个多引导系统程序怎样去引导不同的操作系统，而只打算从编写操作系统的角度出发，谈谈计算机怎样从加电开始，从无到有，将操作系统运行起来，在其中将尽量详尽的描述从实模式到保护模式的过渡，目的只在于能将所学与广大爱好者更享，为希望开发操作系统的朋友留下一点资料，也为自己留下一点心得。&lt;/p&gt;</description>
			</item>
			<item>
				<title>GDT（全局描述符表）和LDT（局部描述符表）</title>
				<link>https://blog.grabbyte.com/p/2022/01/875.html</link>
				<pubDate>Sun, 30 Jan 2022 10:00:00 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2022/01/875.html</guid>
				<description>&lt;p&gt;GDT（全局描述符表）和LDT（局部描述符表）&lt;/p&gt;&#xA;&lt;p&gt;每个程序都有自己的LDT，但是同一台计算机上的所有程序共享一个GDT。&lt;/p&gt;&#xA;&lt;p&gt;LDT描述局部于每个程序的段，包括其代码、数据、堆栈等。&lt;/p&gt;</description>
			</item>
			<item>
				<title>两张图看懂GDT、GDTR、LDT、LDTR的关系</title>
				<link>https://blog.grabbyte.com/p/2022/01/885.html</link>
				<pubDate>Sun, 30 Jan 2022 10:00:00 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2022/01/885.html</guid>
				<description>&lt;h2 id=&#34;段选择符&#34;&gt;段选择符&lt;/h2&gt;&#xA;&lt;p&gt;32位汇编中16位段寄存器(CS、DS、ES、SS、FS、GS)中不再存放段基址,而 是段描述符在段描述符表中的索引值,D3-D15位是索引值,D0-D1位是优先级(RPL)用于特权检查,D2位是描述符表引用指示位TI,TI=0指 示从全局描述表GDT中读取描述符，TI=1指示从局部描述符中LDT中读取描述符。这些信息总称段选择符(段选择子).&lt;/p&gt;</description>
			</item>
			<item>
				<title>C语言与汇编语言相互调用原理以及实例</title>
				<link>https://blog.grabbyte.com/p/2022/01/783.html</link>
				<pubDate>Fri, 28 Jan 2022 10:00:00 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2022/01/783.html</guid>
				<description>&lt;p&gt;下面两个分别是一个foo.asm（汇编语言文件），bar.c（c语言文件）&lt;/p&gt;&#xA;&lt;p&gt;首先来了解C语言为什么能调用汇编语言，以及汇编语言为什么能调用C语言。其实不管是C语言还是汇编语言想要执行都是最终编译链接成为二进制文件。&lt;/p&gt;</description>
			</item>
			<item>
				<title>应用空间（AppSpace）开发环境搭建</title>
				<link>https://blog.grabbyte.com/p/2022/01/781.html</link>
				<pubDate>Fri, 28 Jan 2022 10:00:00 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2022/01/781.html</guid>
				<description>&lt;h1 id=&#34;起因&#34;&gt;起因&lt;/h1&gt;&#xA;&lt;p&gt;现在操作系统越来越庞大，我们自己写的个小程序可能就只做一件事情，完全没有必要外带安装一个大几十G的操作系统，而且为了操作系统，要投入一笔不小的用于高性能硬件和购买操系统费用，这在很多时候是没有必要的，特别是工业设备上。&lt;/p&gt;</description>
			</item>
			<item>
				<title>应用空间的Makefile</title>
				<link>https://blog.grabbyte.com/p/2022/01/788.html</link>
				<pubDate>Fri, 28 Jan 2022 10:00:00 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2022/01/788.html</guid>
				<description>&lt;p&gt;这是一个基于Ubuntu和GCC的操作系统编译Makefile&lt;br&gt;&#xA;可以用来生成二进制程序和APP，以及Image镜像文件。&lt;br&gt;&#xA;详细的Makefile内容如下：&lt;/p&gt;</description>
			</item>
			<item>
				<title>主引导扇区（MBR），分区表（DPT）及活动分区(DBR)</title>
				<link>https://blog.grabbyte.com/p/2022/01/733.html</link>
				<pubDate>Tue, 25 Jan 2022 10:00:00 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2022/01/733.html</guid>
				<description>&lt;p&gt;主引导扇区：&lt;br&gt;&#xA;硬盘的0柱面、0磁头、1扇区（也叫主引导记录MBR），大小为512Byte。&lt;/p&gt;&#xA;&lt;p&gt;分区表（DPT）：位于主引导分区，从偏移01BEH开始到偏移01FDH结束的64字节。&lt;/p&gt;</description>
			</item>
			<item>
				<title>硬盘分区基础知识</title>
				<link>https://blog.grabbyte.com/p/2022/01/741.html</link>
				<pubDate>Tue, 25 Jan 2022 10:00:00 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2022/01/741.html</guid>
				<description>&lt;h2 id=&#34;硬盘分区基础知识&#34;&gt;硬盘分区基础知识&lt;/h2&gt;&#xA;&lt;p&gt;硬盘安装于计算机中用于存储数据，出厂(初始)状态时犹如一张白纸，是不能直接往其中写入数据的，必须经过分区及格式化之后才能使用，分区及格式化相当于为白纸划分了不同区域(如正文区、注释区等)并分别在不同区域内画上了线条格以便于书写。格式化之后的分区就是我们通常见到的硬盘分区，如Windows系统中的C盘、D盘等等。&lt;br&gt;&#xA;传统硬盘采用MBR（Master Boot Record，主引导记录）分区方式引导操作系统，与之配套使用的是BOIS(Basic Input Output System，基本输入输出系统)主板，随着技术和需求的不断发展，GPT(GUID Partition Table，全局唯一标识分区表)硬盘及UEFI(Unified Extensible Firmware Interface，统一可扩展固件接口)主板逐渐流行，后者现已常见并将成为今后的主流方向。BOIS、UEFI是主板相关术语，MBR、GPT属于硬盘相关术语，其不同组合及区别如下：&lt;/p&gt;</description>
			</item>
			<item>
				<title>编写可将数据写入U盘启动扇区的程序</title>
				<link>https://blog.grabbyte.com/p/2022/01/728.html</link>
				<pubDate>Tue, 25 Jan 2022 10:00:00 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2022/01/728.html</guid>
				<description>&lt;h1 id=&#34;起因&#34;&gt;起因&lt;/h1&gt;&#xA;&lt;p&gt;在写裸机系统的时候，需要用到的从U盘启动到系统的情况，这时候&lt;br&gt;&#xA;写一个U盘写入小工具很有必要，下面是将引导程序写入U盘的简单代码&lt;/p&gt;&#xA;&lt;p&gt;假如已经有一个boot.bin的引导程序，需要写入U盘。&lt;/p&gt;</description>
			</item>
			<item>
				<title>应用空间-AppSpace</title>
				<link>https://blog.grabbyte.com/p/2022/01/702.html</link>
				<pubDate>Mon, 24 Jan 2022 10:00:00 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2022/01/702.html</guid>
				<description>&lt;h1 id=&#34;缘起&#34;&gt;缘起&lt;/h1&gt;&#xA;&lt;p&gt;现在操作系统越来越庞大，我们自己写的个小程序可能就只做一件事情，完全没有必要外带安装一个大几十G的操作系统，而且为了操作系统，要投入一笔不小的用于高性能硬件和购买操系统费用，这在很多时候是没有必要的，特别是工业设备上。&lt;/p&gt;</description>
			</item>
			<item>
				<title>如何读emmc里的引导程序_自制操作系统学习1 引导程序</title>
				<link>https://blog.grabbyte.com/p/2022/01/369.html</link>
				<pubDate>Wed, 05 Jan 2022 10:00:00 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2022/01/369.html</guid>
				<description>&lt;h1 id=&#34;起因&#34;&gt;起因&lt;/h1&gt;&#xA;&lt;p&gt;自制操作系统系列的第一课：加电之后 CPU 到底做了什么、怎么让它跑起我们自己的程序。这条链路的第一棒就是引导程序（boot sector）。&lt;/p&gt;&#xA;&lt;p&gt;本系列学习有前面的汇编学习基础最好，如果没有影响也不大本系列学习主要资源来自《[30天自制操作系统].(川合秀实)》，《自己动手写操作系统》两本书&lt;/p&gt;</description>
			</item>
			<item>
				<title>[VBE图形界面开发介绍]做一个支持图形界面的操作系统（上）</title>
				<link>https://blog.grabbyte.com/p/2021/08/2801.html</link>
				<pubDate>Sat, 28 Aug 2021 10:00:00 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2021/08/2801.html</guid>
				<description>&lt;h1 id=&#34;前言&#34;&gt;前言&lt;/h1&gt;&#xA;&lt;p&gt;图形界面（GUI）几乎被现在所有的主流操作系统及应用程序使用，这是因为它提供了极好的人机交互接口，微软大名鼎鼎的Windows就是一个非常成功而明显的例子，据说微软的理念有一条就是“让电脑变得越来越傻瓜，任何人都可以操作它”，很显然，要实现这个梦想，GUI界面是必须的。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
