操作系统
要饭真得好难
这个作者很懒,什么都没留下…
展开
-
全面剖析《自己动手写操作系统》第四章--FAT12文件系统
一、 FAT12FAT12是DOS时代就开始使用的文件系统(File System),直到现在仍然在软盘上使用,FAT12软盘的被格式化后为:有两个磁头,每个磁头80个柱面(磁道),每个柱面有18个扇区,每个扇区512个字节空间。所以标准软盘的总空间为:2 * 80 *18 * 512=1474560B=1440K=1.44M下面是FAT12的结构图:1、引导扇区原创 2012-02-22 21:52:10 · 11650 阅读 · 6 评论 -
VMware: Cannot open file "C:\VMware\dndlogs\dndlog.conf"
VMware问题: Cannot open file "C:\Documents and Settings\All Users\Application Data\VMware\dndlogs\dndlog.conf": 系统找不到指定的路径.Cannot connect virtual device ide1:0 because no corresponding device is av原创 2014-02-13 22:17:12 · 2829 阅读 · 0 评论 -
《一个操作系统的实现》读书笔记--第三章--“实模式--保护模式--实模式”转换过程
下面以pmtest2.asm为例,来讲述“实模式--保护模式--实模式”的转换过程。1、“实模式--保护模式--实模式”的转换过程。2、介绍段描述符属性3、pm.inc 中的宏定义4、pmtest2.asm源代码一、“实模式--保护模式--实模式”的转换过程1、“实模式--保护模式”的跳转(1)关中断(2)打开地址线A20(3)置cr0寄存器的末位为1原创 2012-02-13 18:39:15 · 5932 阅读 · 10 评论 -
《一个操作系统的实现》读书笔记--第三章--堆栈段的工作方式
堆栈段在实模式和保护模式下的工作方式相同,下面我们只介绍在实模式下的工作方式:其中SS 堆栈段寄存器,用来存储堆栈段的初始地址;SP 堆栈指针寄存器,用来存储堆栈段的栈顶偏移量。堆栈段初始化的工作如下: SS定位到堆栈段的起始地址(基地址,低地址),栈底位于堆栈段的有效地址的最末端(高地址)。SP初始化为堆栈段的大小,SS:SP永远指向堆栈的栈顶。在初始化时,SS:SP原创 2012-02-13 21:46:50 · 6717 阅读 · 1 评论 -
《一个操作系统的实现》读书笔记--第三章---不同特权级代码段之间的跳转
1、特权级2、一致代码段和非一致代码段3、DPL、RPL、CPL分别代表的含义,存储在什么位置,以及它们之间的关系4、不同特权级数据段之间的访问规则5、不同特权级代码段之间的转移6、代码段之间的转移对堆栈的影响7、结合pmtest5.asm来见证不同特权级代码段之间的跳转一、特权级在IA32的分段机制下,特权级总共有4个特权级别,从高到低分别是0、1、2、3。数原创 2012-02-15 23:26:07 · 6197 阅读 · 5 评论 -
《一个操作系统的实现》读书笔记--第三章--分页机制
1、逻辑地址、线性地址和物理地址2、分页管理机制3、PDE、PTE、cr34、如何初始化页目录表与页表一、逻辑地址、线性地址和物理地址1、在未开启分页机制情况下2、在开启分页机制情况下二、分页管理机制下图向大家展示,如何通过分页管理机制,将线性地址转换为物理地址的。转换使用两级页表,第一级叫做页目录,大小为原创 2012-02-18 22:28:51 · 4941 阅读 · 10 评论 -
《一个操作系统的实现》读书笔记--第三章--中断机制
1、中断产生的原因2、如何将中断向量与中断服务程序关联起来3、外部中断一、中断中断产生的原因有两种:一是外部中断,就是由硬件产生的中断;另一种是由指令int n产生的中断。二、如何将中断向量与中断服务程序关联起来1、实模式下:这个过程很简单,就是通过int n中的n,去中断向量表中获取该中断的中断服务程序的CS和IP,然后加载CS和IP,原创 2012-02-20 16:05:38 · 3614 阅读 · 6 评论 -
《一个操作系统的实现》读后感ˇˇˇ
于渊自述—— 性懒,好静,涉猎甚广,然所精者少。遇所好之事,譬如程序,必沉迷其中,恍恍然如癫如痴。 读书非多,然每读必思,偶有心得,自得其乐。遇知其所云者,欣然以为知音,必邀之共饮,所饮不必多,喜闻觥筹铿锵之声,与谈笑交错,快意淋漓。 本性固执,喜钻研,求本质,不满于浮光掠影,故凡可能之事,必躬亲而后快。以求甚解之心,究操作系统之原委,并亲为之,耗时原创 2011-12-10 17:27:57 · 4994 阅读 · 2 评论 -
《一个操作系统的实现》读书笔记-- 第一章--最小的“操作系统”
一、最简单的“操作系统”最最简单的“操作系统”就是一个最最简单的引导扇区(Boot Sector)。虽然它不具有任何功能,但是它却能够直接在裸机上运行,不依赖其他软件。一个引导扇区是512个字节,并且以0xAA55为结束标识的扇区。下面就是那个最最简单的引导扇区。org 07C00h ; 告诉编译器程序加载到07C00处 mov a原创 2011-12-10 18:54:29 · 12233 阅读 · 4 评论 -
《一个操作系统的实现》读书笔记--第三章--保护模式
下面我以pmtest1.asm为例,回答下面的问题。(1)[SECTION .XXX]为何物?(2)段描述符(Descriptor)、全局描述符表(GDT)、全局描述符表寄存器(GDTR)、选择子(SelectorXXX) 为何物?有什么作用?(3)实模式下的寻址方式与保护模式下的寻址方式的区别?(4)段描述符宏定义和初始化段描述符(5)加载GDTR原创 2011-12-24 00:30:24 · 8189 阅读 · 40 评论 -
全面剖析《自己动手写操作系统》第四章---加载Loader.bin
全面剖析《自己动手写操作系统》第四章--FAT12文件系统 http://blog.csdn.net/zgh1988/article/details/72848341、突破512字节的限制2、加载Loader进入内存一、突破512字节的限制一个操作系统从开机到开始运行,大致经历"引导—》加载内核入内存—》跳入保护模式—》开始执行内核"这样一个过程。也就是说,在原创 2012-02-24 20:17:47 · 8858 阅读 · 7 评论 -
linux环境下的IPC通信
转自于 http://blog.csdn.net/xiaoweibeibei/article/details/6552498 引用标识符:引用标识符是一个整数,表示每一个SYSV子系统的对象(共享内存,信号量,消息队列),它用于访问对象是在系统中的传递。 键:在SYSV子系统中用于定位系统中的应用标识符,它相当于一种路由算法,用来决定如何访问一个SYSV子系统的对象。 ip转载 2012-11-24 20:39:34 · 1583 阅读 · 0 评论 -
VxWorks的环境配置
转载请标记出处: http://blog.csdn.net/zgh1988/article/details/79945381. 准备工作(1) VMWare(2) 一台安装Windows XP或Window 7系统的PC机(3) Tornado 2.2 for pcPentium CD1 和Tornado 2.2for pcPentium CD2分别原创 2012-09-19 10:12:37 · 11593 阅读 · 0 评论 -
全面剖析《自己动手写操作系统》第五章--Red Hat 9.0 的安装过程
《自己动手写操作系统》中,对Red Hat 9.0的安装过程中局部重要的选择给出了图示和选择,下面是我自己动手安装Red Hat 9.0的整个过程的图示。因为只想它能够完成此书中提到的功能,所以整个安装过程很简单,基本都是选择Next,我会随着对Linux的学习,对部分选择进行详细叙述,暂时就这样姑且混过去吧!1、选择安装方式:[Enter] in graphical mode | li原创 2012-03-03 20:07:56 · 2756 阅读 · 2 评论 -
全面剖析《自己动手写操作系统》第五章--加载内核Kernel.bin
1、Linux系统的安装 和 与宿主计算机共享文件夹2、global 和 extern 关键字的作用3、C调用规范(C Calling Convention)4、ELF文件5、Loader.bin进行加载内核——进入保护模式——向内核交出控制权一、Linux系统的安装 和 与宿主计算机共享文件提到Linux系统的安装,我们需要回归到第2章中2.3节——"安装虚拟原创 2012-03-07 22:04:04 · 4645 阅读 · 1 评论 -
全面剖析《自己动手写操作系统》第五章---makefile文件
转载请标注: 全面剖析《自己动手写操作系统》第五章---makefile文件 http://blog.csdn.net/zgh1988/article/details/73383801、make概述2、编译和链接3、makefile规则4、自己动手写makefile文件5、后记一、make概述 作为程序员,我们都有使用过Visualstdio原创 2012-03-09 22:20:16 · 4683 阅读 · 2 评论 -
全面剖析《自己动手写操作系统》第六章--中断处理程序
转载请标注:http://blog.csdn.net/zgh1988/article/details/7389329下面我将分别以c和d为例,来讲述单进程切换和多进程切换下的中断处理程序1、单进程环境下的中断处理程序2、多进程环境下的中断处理程序一、单进程环境下的中断处理程序 在这里我们只考虑利用时钟中断来进行进程切换。 我们知道进程是运行在ring1环境下原创 2012-03-24 21:34:43 · 3634 阅读 · 3 评论 -
全面剖析《自己动手写操作系统》第六章---进程
转载请标注:http://blog.csdn.net/zgh1988/article/details/7371754在一开始学习进程的时候,我们大概每个人都会遇到过这样的问题,下面就让我们带着这些问题来认识认识进程。1、进程是什么?2、什么是多进程?3、执行一个进程需要什么?4、多进程之间是如何调度的?5、进程的上下文环境是什么?6、如何创建一个新的进程?一、进程是原创 2012-03-20 10:22:33 · 3487 阅读 · 3 评论 -
内存分配中的堆和栈
转载请标注:http://blog.csdn.net/zgh1988/article/details/74701661、什么是堆栈?2、一道微软的笔试题。3、自己写的两个关于堆栈的例子?4、如何动态申请二维数组?一、什么是堆栈?1、内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参原创 2012-04-17 22:41:25 · 6080 阅读 · 1 评论 -
“Hello World”背后的那些事
转载请标注 http://blog.csdn.net/zgh1988/article/details/7863888#include int main(){ printf("Hello World"); return 0;}这是一个“Hello World”程序,相信大家对它再熟悉不过了。现在就让我们来探讨该程序是如何输出“Hello World”,在控制台输出原创 2012-08-14 14:44:02 · 1743 阅读 · 0 评论 -
VxWorks中WindML3.0的配置
转载请标识出处:http://blog.csdn.net/zgh1988/article/details/80003091. WindML的安装2. WindML的配置(1) D:\Tornado2.2\target\config\pcPentium\config.h打开config.h文件,查找#include "pc.h", 在这之后添加原创 2012-09-20 15:22:59 · 6252 阅读 · 0 评论 -
VxWorks下载程序
转载请标识出处: http://blog.csdn.net/zgh1988/article/details/79980541. 在Tornado环境下可以创建两种工程,一是a bootable VxWorks image(可引导工程),二是downloadable application modules(可下载工程)。2. 可下载工程在上一节中,我们已经成功得运原创 2012-09-19 22:26:42 · 7111 阅读 · 0 评论 -
《一个操作系统的实现》读书笔记--第二章--搭建工作环境
一、 熟悉Bochs虚拟机第一章我们使用虚拟机VMware运行了该最最简单的操作系统,由于VMware虚拟机不具备调试操作系统的功能,因此对于开发操作系统的程序员来说,VMware是不完备的,故本章介绍另一款虚拟机Bochs。下面我们就介绍如何使用Bochs运行该最最简单的操作系统Tinix。(计算机系统是Windows操作系统)1、安装Bochs下载Bochs安装程序,在Wind原创 2011-12-11 22:55:52 · 5662 阅读 · 3 评论