kiwi
wenshizhang
这个作者很懒,什么都没留下…
展开
-
当我们谈论开机的时候我们在谈论什么(三)——段页式存储
本文谈论的PC都是基于X86架构,本文谈论的实现段页式存储都是基于32位操作系统。首先说一点题外话:我在写这篇文章的时候并没有实现我想要的段页式存储。本来规划的是写一个段页式存储的,后来觉得这样我后边每一个程序都要分一个段,填充一个选择子、一个描述符(这些都是程序员手动实现的,不理解原理,没有关系,后边我会讲一点原理的部分,以及我实现的并不是我想要的段页式存储)。本文主要讲这几个内容: 1、段页式原创 2015-12-18 22:25:21 · 1296 阅读 · 0 评论 -
当我们谈论开机的时候我们都在谈论什么(二)——保护模式
本文所谈论到的cpu是Intel的x86体系架构的cpu,作者才疏学浅,其他体系的暂不讨论。读者可以未经作者允许随意转载,但请注明出处并且保证文章的完整性本文主要谈一下几个方面: 1、保护模式和实模式是个什么鬼 2、怎么由保护模式进入实模式 3、实模式跳转到保护模式的示例代码在讲之前照例讲几句闲话: 1、实模式是操作系统之源,没有它,操作系统就是无本之木、无水之源 2、现在操作系统的书很少原创 2015-12-05 11:48:29 · 922 阅读 · 0 评论 -
当我们谈论开机的时候我们在谈论些什么(三)——特权级(未完成)
注:本文所有说到特权级大小的地方都是指的数字。本文阐述了两部分内容: 1、一致代码段和非一致代码段 2、怎么设置特权级特权级这部分比较绕,说起来并没有很多东西,但是需要整理整理。一、一致代码段和非一致代码段代码段分为一致代码段和和非一致代码段(只有代码段才区分这个,数据段并不区分)。一般我们认识一个新事物需要搞懂两个问题:为什么和怎么做。所以本文会解释为什么做这个区分,和怎么区分的。 做出这个原创 2015-12-07 21:36:52 · 689 阅读 · 0 评论 -
阅读linux0.11——boot
linux0.11boot主要分为三个部分,分别在三个程序里面实现,bootsect.s、head.s和setup.s。下面我们简单来分析分析这三个文件。一、bootsect.s这个程序是最先被执行的,根据linus的解释说,这个程序会被BIOS启动例程(bios-startup routines)加载到内存的0x7c00处(不明白为什么都是加载在这个位置,于渊的《一个操作系统的实现》也是说这么说的原创 2016-03-16 18:04:46 · 1070 阅读 · 0 评论 -
操作系统还原真相阅读笔记(一)——答疑解惑
说明1、本书真是好书 2、想到再补充一、为什么库函数可以调用系统调用 之前看APUE的时候看到的,exit(库函数)实现实际上还是调用了系统调用sys_exit。按照常理来说,标准C库函数应该具有可移植性,为什么就能调用UNIX系统专用的系统调用呢?C语言编译器也是通用的啊,比如说这个exit函数我在VC下编译能不能通过呢? 这个问题其实一句话就大概解释清楚了,那就是C语言编译器提供库函数有一原创 2016-04-25 20:37:11 · 4550 阅读 · 0 评论 -
阅读Linux0.11——main.c
目录:1、前言 1、main.c功能描述 2、main.c代码分析一、前言 这个前言的目的就是解释清楚理解main运行的一些基本的概念。如下:1、Linux0.11也是有CPU负载均衡的的 很神奇吧,最开始Linus已经考虑了CPU负载均衡这一点了,先别急着惊叹,我来跟你说说是怎么一回事。 基本上现在的linux里,都有0号进程,进程调度的时候,如果检测到就绪队列为空,就会一直执行0号进程原创 2016-04-19 11:57:13 · 2580 阅读 · 0 评论