由于GrapeOS目前只支持x86,所以本讲我们简单的介绍一下x86。

百度百科上是这样介绍的:x86泛指一系列基于Intel 8086且向后兼容的中央处理器指令集架构。

中央处理器就是我们平时说的CPU,英文全称是Central Processing Unit。

有人可能对指令集不是很清楚。计算机的运行过程主要就是CPU执行各种指令的过程,某种CPU能执行的所有指令的集合就叫该种CPU的指令集。但光这么说感觉有点泛泛而谈。其实指令集就是CPU的语言,就像人类的语言,我们可以从横向和纵向分别对比一下。从横向来说,人类的语言有很多种,不同的人群说着不同的语言,但可以用不同的语言来描述同一件事情。同样指令集也不止一种,不同架构的CPU用着不同的指令集。比如x86架构的CPU都用x86的指令集,ARM架构的CPU都用ARM的指令集。但一种指令集架构的CPU能做的事,理论上其它指令集架构的CPU也能做。从纵向来说,人类的语言是在不断发展的,同一种语言会随着社会的发展会不断增加新的词汇或新的用法,但不会丢弃之前的词汇或用法,就算部分旧的词汇和用法不常用了,但仍然可以理解其含义。指令集也是类似的,每一种指令集随着社会的发展,面对新的需求,需要增加一些新的指令或用法,同样一般会兼容旧有的指令或用法,否则很多旧软件就不能用了。

x86之所以叫x86是因为早期的x86系列CPU是用数字命名的,比如8086、80186、80286、80386以及80486,这些名字都是以86结尾,所以统称x86。虽然后来不用数字命名了,改叫奔腾、酷睿等,但仍然继续叫x86系列。

关于x86我们需要简单的了解一下它的历史,这里主要了解下面这三款CPU就够了:

  1. 英特尔于1978年推出型号为8086的CPU,是x86的开山鼻祖。8086是16位CPU,运行模式只有实模式,共1M内存地址空间。
  2. 英特尔于1982年推出型号为80286的CPU。80286是16位CPU,运行模式首次有了保护模式,共16M内存地址空间。
  3. 英特尔于1985年推出型号为80386的CPU。80386是32位CPU,可以运行在32位保护模式下,共4G内存地址空间。

以上3款CPU大家先有个印象就行,详细信息我们后面会介绍。我们这里需要明白的主要有两点:

  1. x86系列CPU中,每一代都兼容前面的所有CPU,直到现在最新的x86CPU仍然兼容四十多年前的8086。
  2. 虽然x86是英特尔首先发明的,但做x86CPU的企业不止英特尔一家,市场上常见的还有AMD。所以如果你的电脑用的是AMD的CPU,学习本套教程完全没有问题。

本讲对应的视频版地址:https://www.bilibili.com/video/BV1MM4y1Q7A1/

GrapeOS操作系统交流QQ群:643474045

自己动手从零写桌面操作系统GrapeOS系列教程——8.x86介绍的更多相关文章

  1. 《一步一步写嵌入式操作系统》读书笔记1—Skyeye介绍、安装和HelloWorld

    2013-11-14 最近在看<一步一步写嵌入式操作系统>,感觉此书甚好,许多地方讲得很清楚.可操作性强,计划边读边实践边写笔记,希望能够逐步熟悉嵌入式操作系统底层的东西,最终剪裁出一套实 ...

  2. 别人写的一个Bootstrap系列教程

    http://www.cnblogs.com/lansy/category/659061.html

  3. 一个人写的操作系统 - Sparrow OS

    一个人写的操作系统 - Sparrow OS 自己写一个操作系统,这是在过去的几年里我一直为之努力的目标,现在终于完成了. 缘起 自己动手写操作系统的动机最初来自于学习Linux遇到的困难. 我是一个 ...

  4. 自制 os 极简教程1:写一个操作系统有多难

    为什么叫极简教程呢?听我慢慢说 不知道正在阅读本文的你,是否是因为想自己动手写一个操作系统.我觉得可能每个程序员都有个操作系统梦,或许是想亲自动手写出来一个,或许是想彻底吃透操作系统的知识.不论是为了 ...

  5. 【操作系统】关于Linux桌面操作系统

    以前是Win+Ubuntu+黑苹果,周末想体验一下deepin,于是简单安装了一下,安装过程很简单,这里不再描述.安装之后,第一次打开系统,确实很惊艳,赏心悦目的操作系统. 之前用Ubuntu时候,C ...

  6. 盘点|2021年最受欢迎Linux桌面操作系统前十名

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 阿里云开源镜像站利用云服务上的优势,提供快速.稳定的镜像分发服务.和免费的CDN加速服务.更新频率高,基本上一天一更新,对于Centos/Ubun ...

  7. 手把手教你从零写一个简单的 VUE

    本系列是一个教程,下面贴下目录~1.手把手教你从零写一个简单的 VUE2.手把手教你从零写一个简单的 VUE--模板篇 今天给大家带来的是实现一个简单的类似 VUE 一样的前端框架,VUE 框架现在应 ...

  8. Python之美[从菜鸟到高手]--一步一步动手给Python写扩展(异常处理和引用计数)

    我们将继续一步一步动手给Python写扩展,通过上一篇我们学习了如何写扩展,本篇将介绍一些高级话题,如异常,引用计数问题等.强烈建议先看上一篇,Python之美[从菜鸟到高手]--一步一步动手给Pyt ...

  9. Zedboard学习(一):移植Ubuntu桌面操作系统 标签: ubuntu移植zedboardFPGA 2017-07-04 21:53 26人阅读

    环境准备: 首先,需要的肯定是Ubuntu操作系统.可以在自己的电脑上安装物理机,也可以是虚拟机下运行的.我的是在Vmware下运行的Ubuntu14.04 32位操作系统. 由于zedboard上的 ...

  10. 27、从零写UVC驱动之分析数据传输(设置ubuntu通过串口打印,指定打印到文件,ubuntu切换root用户)

    A. 设置ubuntu让它从串口0输出printk信息a. 设置vmware添加serial port, 使用文件作为串口(在vmware中设置,文件是保存在windows中)b. 启动ubuntu, ...

随机推荐

  1. <七>lambda表达式实现原理

    C++11 函数对象的升级版=>lambda表达式 函数对象的缺点: 使用在泛型算法,参数传递, 比较性质/自定义操作 优先级队列, 需要专门定义出一个类 //lambda表达式语法: //[捕 ...

  2. 【py模板】xlsx转csv

    import numpy as np import pandas as pd def xlsx_to_csv(): data_xls = pd.read_excel('cupHaveHead1.xls ...

  3. .NET周报【12月第1期 2022-12-08】

    国内文章 CAP 7.0 版本发布通告 - 支持延迟消息,性能炸了? https://www.cnblogs.com/savorboard/p/cap-7-0.html) 今天,我们很高兴宣布 CAP ...

  4. 个人电脑公网IPv6配置

    一.前言 自己当时以低价买的阿里ECS云服务器马上要过期了,对于搭建个人博客.NAS这样服务器的需求购买ECS服务器成本太高了,刚好家里有台小型的桌面式笔记本,考虑用作服务器,但是公网IPv4的地址实 ...

  5. Qt多线程开发总览,既然用到了就记录一下

    多线程 在LBD_VM_Intercom中使用的一个简单的实例 陶工给的dll需要进行异步操作才可以将视频画面附到窗体上,必须得在画面出现之后才可以附加画面,否则就有可能出现意外bug,所以需要在这个 ...

  6. uni-app生命周期和路由跳转

    生命周期分为:应用生命周期和页面生命周期 具体内容可参考:uni-app官网Api 应用生命周期(仅可在App.vue中监听) (1)onLaunch:当uni-app 初始化完成时触发(全局之触发一 ...

  7. 解决多次重连rabbitMQ失败

    项目中有用到rabbitMQ,但由于防火墙原因只有在SIT环境下才能连上rabbitMQ,在本地是无法连上rabbitMQ的.如下: 为了不影响调试,临时解决方法为禁止rabbitMQ打印日志.在lo ...

  8. 【深入浅出Sentinel原理及实战】「基础实战专题」零基础实现服务流量控制实战开发指南(2)

    你若要喜爱你自己的价值,你就得给世界创造价值. Sentinel的组成部分 Sentinel 主要由以下两个部分组成. Sentinel核心库(Java客户端) :Sentinel的核心库不依赖任何框 ...

  9. C语言常用知识总结

    在 C 语言中,常量是一种固定值的标识符,它的值在程序执行期间不会改变. C 语言中有几种不同类型的常量: 字符常量:用单引号括起来的单个字符,例如 'A'.'b'.'1' 等. 字符串常量:用双引号 ...

  10. (转载)零日攻击(Zero-Day Attacks)

    零日攻击是网络安全行业中十分常见的攻击方式之一,其具有很大的突发性与破坏性,那么零日攻击是什么?如何防范零日攻击?以下是详细的内容介绍. 零日攻击是什么? 零日漏洞或零时差漏洞通常是指还没有补丁的安全 ...