(0)操作系统+处理器
文章平均质量分 60
tomjourney
积善之家 必有余庆
展开
-
转:认识cpu、核与线程
转自: https://www.cnblogs.com/-new/p/7234332.html前言:作为一个后台开发人员,我想有必要了解这些基础知识。如果本文有不严谨或者疏忽的地方,请指正。目录认识cpu、核心与线程 java多线程系列(一)之java多线程技能 java多线程系列(二)之对象变量的并发访问 java多线程系列(三)之等待通知机制 java多线程系列(四)之ReentrantLock的使用 java多线程系列(五)之synchronized Reentrant.转载 2020-08-05 23:08:50 · 167 阅读 · 0 评论 -
8核、6核、4核、双核CPU是什么意思
转自: https://blog.csdn.net/he_jian1/article/details/41208915 对于初学者来说,CPU是什么、什么是双核、4核、6核、8核等。下面,就以上的问题,我们做出一一解答。概念:CPU是什么、做什么用、一般CPU是接在哪里的,我们先来看看CPU是什么,CPU既中央处理器、电脑中一个最重要,最核心的东西,市面上能买到的CPU只有两种,一种是INTEL公司生产的,另一种是AMD公司生产的。如图1-1:上图分别是INTEL和AMD公司两个厂家生产.转载 2020-08-05 13:06:32 · 5423 阅读 · 0 评论 -
建立文件系统
【0】README0.1) source code and text description are from orange’s implemention of a os and for complete code, please visit https://github.com/pacosonTang/Orange-s-OS/blob/master/orange_s_fs.tar; 0.2原创 2015-10-05 23:05:39 · 1432 阅读 · 2 评论 -
在diy的文件系统上创建文件的流程
【0】README0.1) source code are from orange’s implemention of a os , and for complete code , please visit 我明天早上 上传,oh so busy; 0.2)本文总结的内容是干货, 而且 创建文件所涉及的代码调用太复杂,整理了出来,生怕它含在嘴里化了,所以发表上来; 0.3) 本创建文件的代码or原创 2015-10-06 22:18:06 · 631 阅读 · 0 评论 -
分页机制总结
【0】写在前面(分页机制)0.0) source code from orange’s implemention of a os and text description from Zhaojiong’s perfect analysis of Linux kernel0.1)本代码旨在演示 怎样开启分页机制 + 怎样构建页目录和页表 0.3)本文 只对 与 分页机制的 代码进行简要注释,言简原创 2015-09-08 17:16:30 · 714 阅读 · 0 评论 -
汇编操作显存
【0】README0.1)本文转自:http://www.cnblogs.com/youxin/archive/2012/05/21/2512329.html for relative source code , please visit https://github.com/pacosonTang/Orange-s-OS/blob/master/lib.inc【1】关于 80*25彩色字符模式显转载 2015-10-08 19:44:21 · 3973 阅读 · 0 评论 -
os如何处理键盘的所有按键,显示or不显示,显示是如何显示
【0】README0.1) source code and text decription are from orange’s implemention of a os , and for complete code , please visit 我待会上传;【1】 键盘输入缓冲区step1)缓冲区的数据结构如下: step2)对缓冲区进行添加操作:(只是对 keyboard_handler原创 2015-10-08 20:15:58 · 1023 阅读 · 0 评论 -
A20地址线问题
【0】READMEtext description from Zhaojiong’s perfect analysis of Linux kernel【1】A20地址线问题(干货来了)1981年8月,IBM公司最初推出的个人计算机IBM PC 使用的CPU 是 Intel 8088。在该微机中地址线只有20根(A0~A19)。在当时内存 RAM 只有几百 KB 或不到1MB时,20 根地址线已足够用转载 2015-09-19 08:18:28 · 832 阅读 · 0 评论 -
os引导程序boot 在根目录区寻找os加载程序文件loader 对应的根目录条目
【0】README 0.0) source code from orange’s implemention of a os and for complete code , please visit https://github.com/pacosonTang/Orange-s-OS/blob/master/p109.asm0.1)本代码仅用于在 根目录区条目中寻找 与 boot代码定义的Load原创 2015-09-19 10:51:58 · 960 阅读 · 0 评论 -
os引导程序boot从扇区拷贝os加载程序loader文件到内存(boot copy kernel to mem in the same method)
【0】README0.1) 本代码旨在演示 在boot 代码中,如何 通过 loader文件所在根目录条目 找出该文件的 在 软盘所有全局扇区号(簇号),并执行内存中的 loader 代码;0.2) 此代码非常重要,关系到bootloader的加载和运行(打印字母 L)(干货)0.3) source code from orange’s implemention of a osAttenti原创 2015-09-15 16:05:43 · 1058 阅读 · 0 评论 -
A20地址线问题
【0】READMEtext description from Zhaojiong’s perfect analysis of Linux kernel .【1】A20地址线问题(干货来了)1981年8月,IBM公司最初推出的个人计算机IBM PC 使用的CPU 是 Intel 8088。在该微机中地址线只有20根(A0~A19)。在当时内存 RAM 只有几百 KB 或不到1MB时,20 根地址线已足转载 2015-09-22 10:14:00 · 824 阅读 · 0 评论 -
特权级概述(哥子就想知道CPU是如何验证特权级的)GATE+TSS
【0】READMEtext description from orange’s implemention of a os .【1】特权级概述当当前代码段试图访问一个段或者门时,目标段的DPL将会和 CPL 以及段或门选择子的RPL相比较,如何比较:(这里是干货)(1)数据段: DPL规定了可以访问此段的最低特权级;如一个数据段的DPL=1,那么只有CPL=0或1的程序才有权访问;(2)调用门:转载 2015-09-22 15:15:15 · 1515 阅读 · 0 评论 -
为什么引入TSS
【0】READMEtext description from orange’s implemention of a os .【1】 回忆——关于堆栈通过调用门进行有特权级变换的转移——理论篇(1)出现的问题: call 指令 执行前后的堆栈已经不再是同一个堆栈 了,那么我们在堆栈A中压入参数和返回地址, 需要出栈(ret or retf)时,堆栈却变成了堆栈B, 这该怎么办呢?(2)解决方法:转载 2015-09-22 17:47:27 · 2083 阅读 · 2 评论 -
如何编译文件(gcc + nasm)
【0】README编译文件(nasm + gcc),特别是编译目标文件的依赖文件;本文旨在回顾 gcc 和 nams 编译器的编译命令,以及如果有多个依赖文件该如何编译;【1】编译文件1.1)编译 lib/syscall.asm(lib/syscall.asm)nasm -I include/sys/ lib/syscall.asm -o syscall.o 1.2)编译 lib/string.a原创 2015-10-12 09:44:56 · 1497 阅读 · 0 评论 -
知识复习(LDT+TSS+GATE+INTERRUPT)
【1】README1.0)由于实现进程的切换任务,其功能涉及到 LDT + TSS +GATE + INTERRUPT;下面我们对这些内容进行复习; 【2】知识复习(LDT+TSS+GATE + INTERRUPT)2.1)LDT的复习(1)在GDT中定义 LDT 描述符;(2)然后在实模式下,初始化 GDT中的LDT描述符;(3)还要初始化 LDT中的段描述符(用局部任务代码去初始化原创 2015-09-23 17:43:46 · 607 阅读 · 0 评论 -
C打印函数printf的一种实现原理简要分析
【0】README0.1)本文旨在对 printf 的 某一种 实现 原理进行分析,做了解之用;0.2) vsprintf 和 printf.c 的源码,参见 https://github.com/pacosonTang/dataStructure-algorithmAnalysis/tree/master/p309【1】printf函数代码分析:https://github.com/paco原创 2015-10-03 21:58:38 · 1060 阅读 · 0 评论 -
计算机器内存数量+引入和显示ARDS成员
【1】README1.1) 本代码在于读取内存中多个 内存段的地址范围描述符结构体(ARDS),有多少个内存段可以用;Other)要知道,os 必须要知道内存的内容,以便进行内存管理。【2】source code2.1)得到内存数; 得到内存数 begin mov ebx, 0 mov di, _MemChkBuf ; _MemChkBuf: times 256 db原创 2015-09-16 21:43:24 · 651 阅读 · 1 评论 -
局部描述符表LDT的作用+定义+初始化+跳转相关
【0】写在前面0.1)本代码的作用: 旨在说明局部描述符表的作用,及其相关定义,初始化和跳转等内容;0.2)文末的个人总结是干货,前面代码仅供参考的,且source code from orange’s implemention of a os.0.3)由于本文中代码和 “实模式和保护模式切换的步骤”的源代码 有90%之多的相似之处,参见http://blog.csdn.net/pacosonswj原创 2015-08-27 10:07:04 · 1961 阅读 · 0 评论 -
(实模式+保护模式)模式切换的过程步骤(代码+文字解析)
【0】写在前面文末的个人总结是干货,前面代码仅供参考的,且source code from orange’s implemention of a os. ; ========================================== ; pmtest2.asm ; 编译方法:nasm pmtest2.asm -o pmtest2.com ; ====原创 2015-08-26 20:03:15 · 4746 阅读 · 0 评论 -
调用门的定义+调用
【0】写在前面0.1)本代码,添加了门描述符的相关代码,旨在说明 怎样 对门转移的目标段 进行定义,调用;0.2)本文 只对 与 门相关的 代码进行简要注释,言简意赅;0.3)文末总结是干货(from orange’s implemention of a os),前面代码仅供参考的,且source code from orange’s implemention of a os.; =====转载 2015-08-28 09:14:17 · 979 阅读 · 0 评论 -
高特权级代码段转向低特权级代码段(利用 ret(retf) 指令实现 jmp from ring0 to ring3)
【0】写在前面0.1)本代码旨在演示 从 ring0 转移到 ring3(即,从高特权级 转移到 低特权级)0.2)本文 只对 与 门相关的 代码进行简要注释,言简意赅;0.3)文末的个人总结是干货,前面代码仅供参考的,且source code from orange’s implemention of a os.; =====================================转载 2015-08-31 17:37:00 · 1262 阅读 · 0 评论 -
不同特权级间代码段的跳转{ 门 + 跳转(jmp + call) + 返回(ret) }
【0】写在前面0.1)我们讲 CPU的保护机制,它是可靠的多任务运行环境所必须的;0.2) CPU保护机制:分为段级保护 + 页级保护; 0.2.1)段级保护分为:段限长 limit 检查、段类型 type 检查、特权级检查、等等……0.3)我们着重讲 段特权级检查(bit 6~5): 特权级检查又分为:访问数据段时的特权级检查 + 代码段之间转移控制时的特权级检查;(这里,我们着重讲 代码转载 2015-09-02 10:14:47 · 1438 阅读 · 0 评论 -
x86 的 TSS 任务切换机制
转自:http://blog.chinaunix.net/uid-587665-id-2732907.html 【0】写在前面segment descriptors 构建保护模式下的最基本、最根本的执行环境。system descriptors 则构建保护模式下的核心组件:1、TSS descriptor 提供硬件级的进程切换机制2、LDT descriptor 供进程使用多个 descri转载 2015-09-03 09:40:59 · 1029 阅读 · 0 评论 -
关于一致/非一致代码段与TSS 关系的个人看法
【0】概念定义0.1)一致代码段: 简单理解,就是操作系统拿出来被共享的代码段,可以被低特权级的用户直接调用访问的代码, 但是特权级高的程序不允许访问特权级低的数据. 通常这些共享代码,是”不访问”受保护的资源和某些类型异常处理。比如一些数学计算函数库,为纯粹的数学运算计算, 被作为一致代码段. 一致代码段的限制作用 1.特权级高的程序不允许访问特权级低的数据:核心态不允许调用用户态的原创 2015-09-08 15:32:08 · 595 阅读 · 0 评论 -
如何从文件系统中读取文件内容
【0】写在前面0.0) text description from orange’s implemention of a os ,文末总结系个人臆测出的干货【1】intro to FAT12(file allocation table 12)文件系统格式(from Baidu Baike)(1)FAT12定义: FAT12是DOS时代就开始使用的文件系统(File System),直到2009年仍原创 2015-09-12 09:13:41 · 3259 阅读 · 0 评论 -
Makefile浅尝
【0】READMEmakefile定义: 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要一先编译,哪些文件需要后编译,哪些文件需要重新编译;【1】看个荔枝荔枝解析-Analysis:loader.bin : loader.asm include/load.inc include/fat12hdr.inc include原创 2015-09-29 11:45:24 · 500 阅读 · 0 评论 -
制作FAT12软盘以查看软盘的根目录条目+文件属性+文件内容
【-1】Beforefor specific info , please visit http://wiki.osdev.org/Loopback_Device【0】我们先上干货,看到效果后,我们再说明每个步骤的缘由;【1】进入挂载目录,添加相关文件(依个人意愿)Attention):要知道,以上文件和文件目录往 /tmp 的写入 就相当于写入到 floppy.img 文件夹了,我们再看看挂载信息原创 2015-09-12 23:58:18 · 3192 阅读 · 1 评论 -
FAT12中,如何定位大于一个扇区(512B)的文件内容
【0】README0.1)本文旨在于 演示在FAT12中, 如何取定位大于 512B 的文件内容,和查看它;0.2)如何制作FAT12文件系统,以及如何向文件中添加temp.txt文件,参见: { http://blog.csdn.net/pacosonswjtu/article/details/48403031 }【1】我们看到 temp.txt 所在 根目录区条目的初始簇号为 0003h=原创 2015-09-15 12:13:29 · 1595 阅读 · 0 评论 -
如何创建虚拟硬盘 + os 读取硬盘参数代码
【0】README0.1) 本文旨在演示如何利用 bximage 创建虚拟硬盘;0.2) 利用 os 读取硬盘参数, source code from orange’s implemention of a os , for complete code , please visit https://github.com/pacosonTang/Orange-s-OS/blob/master/a.t转载 2015-10-01 16:49:53 · 1347 阅读 · 0 评论 -
浅尝硬盘分区表
【0】READMEtext description from orange’s implemention of a os【1】intro to disk partioning tab1.1) 硬盘分区表其实就是一个数据结构,数组的每个成员是一个 16字节的结构体;这个结构体数组位于引导扇区的1BEh处,共有四个成员——因为IBM 当时觉得一台PC最多会装四个os;1.2) 现在我们的计算机中 每原创 2015-10-01 16:30:06 · 901 阅读 · 2 评论 -
进程间通信(IPC)+进程加锁解锁
【0】README0.1) source code and text description are from orange’s implemention of a os;0.2) for complete code , please visit https://github.com/pacosonTang/Orange-s-OS/tree/master/ipc_8 【1】看看,我们的进程代码原创 2015-10-04 10:09:14 · 984 阅读 · 0 评论 -
实模式切换到保护模式,为什么要开启A20地址线(系统升级产生的兼容性问题)
【-1】写在前面:以下部分内容总结于 http://blog.csdn.net/ruyanhai/article/details/7181842【0】看看intel处理器的发展历程【1】8086/8088的寻址和问题1.1)寻址:在8086/8088中,只有20根地址总线,所以可以访问的地址是2^20=1M,但由于8086/8088是16位地址模式,能够表示的地址范围是0-64K,所以为了在8086原创 2015-08-26 16:47:46 · 3199 阅读 · 1 评论