也许这只是一本书,也许这只是一堆代码,但更可能会帮助你了解、领悟计算机操作系统原理。

什么是操作系统?计算机相关专业的读者们在大学时候都会有《操作系统》这门课程,但是在课上老师讲的大多数内容都是一些理论性的概念,比如:什么是进程?什么是线程?文件系统结构、内存管理单元、进程调度、为什么要空间换时间?当时对这些问题也只是一知半解,想知道这些问题,但是又无从下手。就算有一些思路,也因为学艺不精,半途而废了。问老师也只是理论性的解答,无法得到一个清晰的答案。我想,正在读此书的你也不一定能把这些问题全部都细细道来,就更别提具体到代码级了。

可能有些人觉得这些问题没有必要弄得非常清楚,当时我也是这么觉得。等到了工作中,有幸做了几年linux内核级的开发工作,对这些问题渐渐的有了比较直观深刻的理解。在工作过程中也慢慢发现了,操作系统的重要性,有些问题在不了解操作系统原理的时候,是很难解决的,就更别提具体到某一款操作系统了。

由于中国在计算机的发展方面还是落后于发达国家的,师资力量不足是在所难免的,有的学校甚至将微机原理、汇编语言、计算机组成原理等基础课程讲的很概括不够深入。当时觉得这些课程不重要,没有细心认真的学习。但是,等到工作了以后,你才会发现你能在计算机行业中走多远,往往都是由这些基础知识决定的,这些问题已经渐渐的影响了我们一代人。而且,中国目前的软件行业环境也主要是以外包为主,能够独立自主进行开发的公司少之又少,大部分还是以盈利为主,能够静下心来做技术储备,培训这些基础知识的公司就更屈指可数了。

目前网络上或者书店里也会有一些关于操作系统实现的书籍,如果读者拿来作为入门学习是很不错的选择。但是,这些书籍的一个通病是采用的intel 32位处理器进行开发的。虽然学起来简单,但是真正的拿到工作和生活中举一反三的话,还是有一定差距的。比较典型的例子就是多核处理器间的通信机制,高级中断控制器的设置,先进的64位处理器体系结构,这些问题都会造成理论与实践脱节,遇到问题无法正确推理及解决。

处于这些原因作者想通过一系列书籍,把现代操作系统的真实面目展示给读者。并希望通过这套书籍寻找有能力和有兴趣的朋友一起开发这款操作系统。

这是一个基于intel IA32e架构的操作系统雏形,对于IA32e可以简单理解成大家口中经常说的X64架构,读过intel技术文档的人可能会知道,X64是在原有X86系统的基础上进行的扩展。它对于32位操作系统来说,在执行速度、数据带宽以及执行时候的简便性、安全性上面都进行了优化。所以,64位操作系统比32位操作系统快不是一句话就能表述明白的。

本书从电脑上电启动开始,循序渐进的完成了一个64位操作系统的雏形。至今我还记得当初写这个操作系统时候遇到的困难,饱受一次次的挫败与崩溃,今天读者看到这本书的时候,说明这些困难已经是历史了。失败不可怕,害怕失败才真正可怕,当你意识到失败只是弯路,那么你就已经走在成功的直道上了。(出自电影《中国合伙人》)希望这句话可以与读者互勉。

好了,言归正传。介绍一下硬件环境,作者使用的物理平台是Lenovo thinkpad X220T笔记本电脑,处理器是Intel (R) Core (TM) i7-2620M CPU @ 2.70GHz(这串字符会在以后的章节中,通过程序从处理器中获得到)。如果条件允许的话,还可以准备一台电脑作为编译环境,不然在一台电脑里经常重启电脑的话会影响效率。除此之外呢,还应该准备一个U盘,U盘容量不需要太大,16MB或者8MB基本就够了,作者目前使用的是16MB的U盘。说好的嘛,要用物理平台在真实的电脑上运行,怎么能少得了U盘引导呢!

结伴冒险即将开始,希望读者能和作者痛快的走一遭。

本文已在图灵出版社社区连载中,欢迎大家前去阅读。

网址:http://www.ituring.com.cn/minibook/29303

一个64位操作系统的实现相关推荐

  1. 一个64位操作系统的设计与实现 源代码,效果图

    一个64位操作系统的设计与实现 源代码 相关下载:https://download.csdn.net/download/qq_35540932/10588541?utm_source=bbsseo 一 ...

  2. 2018/11/29 一个64位操作系统的设计与实现 02 (安装nasm)

    操作系统: Centos7 在nasm官网上的到通过yum安装nasm的方法 首先在/etc/yum.repos.d/目录下 新建一个名为nasm.repo的文件, 在这么文件中写入内容如下 : [n ...

  3. 《一个64位操作系统的设计与实现》学习实践3-boot加载loader

    1.boot.asm源码开发,编写一个能加载loader的boot. root@ubuntu:~# vi boot.asm org 0x7c00 BaseOfStack equ 0x7c00BaseO ...

  4. 2018/11/29 一个64位操作系统的设计与实现 03 (在Bochs上运行Boot程序)

    使用命令dd强制将引导程序boot.bin写入引导扇区: dd if=boot.bin of=/home/parallels/Documents/bochs-2.6.9/boot.img bs=512 ...

  5. 32位操作系统和64位操作系统的区别

    文章目录 一.32位和64位的关系 二.32位和64位的"位"是什么 三.32位和64位操作系统的区别 1.支持的系统不同 2.运行数据的速度不同 3.支持内存大小不同 4.软件 ...

  6. 32位和64位操作系统的区别

    简单的说x86代表32位操作系统 x64代表64位操作系统.如果你的CPU是双核以上,那肯定支持64位操作系统了.如果你的电脑内存大于4G,那就要用64位的系统了,因为32位的Windows 7也好, ...

  7. 32位和64位操作系统的最大内存计算方法

    课前小知识: 1.众所周知,1B(byte字节)=8bit(比特,也叫"位") 2.字节(B)是内存的最小信息存储单位,每个字节表示1个地址 ----------------> ...

  8. 32位/64位操作系统的最大支持内存的空间

    32位/64位操作系统的最大支持内存的空间 计算机能单独处理的最小内存单位为字节 所以 32位操作系统最大支持:2^32Byte = 2^2 x 2^10 x 2^10 x 2^10Byte = 4G ...

  9. 电脑32位和64位操作系统的区别

    "位",简单地理解就是CPU的寻址空间.在计算机技术的发展史上,位的演变起到了举足轻重的作用.从1971年的4位计算到如今已来临的64位计算时代,这中间经历了漫长的演变过程. 19 ...

最新文章

  1. ListView、AdapterView、RecyclerView全面解析
  2. 查询数据库游标使用情况以及sql
  3. 品牌到底要不要做全渠道?且听他们怎么说……
  4. Angular 开发中的 Source Map
  5. DIY人脸跟踪电风扇送女朋友(2)
  6. java中System.exit(1)、System.exit(0)、以及return的区别
  7. [BUGKU][CTF][PWN][2020] PWN writeup
  8. leetcode13. 罗马数字转整数
  9. 使用Docker快速搭建生产环境
  10. Robotium 数据驱动测试框架
  11. Android ADT插件更新后程序运行时抛出java.lang.VerifyError异常解决办法
  12. 中低频量化交易策略研发06_推进的择时策略
  13. 伪指令相当于c语言的什么,ARM汇编中关于“.word”伪指令的概念(转)
  14. PIM SM报文抓包和总结
  15. 计算机辅助档案管理文字说明,计算机辅助档案管理
  16. 电信IHO-3000机顶盒高安版 悦ME刷机固件
  17. 小程序如何推广?这里有5招
  18. Linux下查看CPU、内存、磁盘使用情况,并计算其使用率
  19. 算法导论-----最长公共子序列LCS(动态规划)
  20. mysql group concat 去重,MySQL group_concat() 函数用法

热门文章

  1. 手把手打造 vue ssr
  2. ORACLE 11G 闪回数据归档
  3. 版本兼容业务(版本一致、强制升级、版本兼容)
  4. 财经365:2022巴菲特致股东的信最新解读
  5. 安卓PDF阅读器使用技巧Ⅱ:PDF文档添加批注、添加下划线及删除技巧
  6. 语音信号处理复习2、语音声学基础
  7. 创业公司 Logo 设计指南
  8. 金和单点自动判断内外网
  9. CISP与CISP-PTE有什么区别?
  10. 活体识别1:近红外(NIR)图像特性