ssingularity的个人日志

怕什么真理无穷,进一步有进一步的欢喜

操作系统学习笔记(2) —— 操作系统启动流程

启动流程在机器加电后,BIOS 会进行自检以及初始化等操作,接下来BIOS根据保存在CMOS中的引导设备信息决定了是从哪个引导设备(磁盘、USB、网络)开始引导,如果决定从硬盘启动OS,BIOS就会加载安装在硬盘的MBR上的GRUB的Stage 1模块,进而把整个GRUB加载起来,GRUB可以看作是

操作系统学习笔记(1)—— 架构与硬件

操作系统概述操作系统主要由两个职责:对硬件进行管理和抽象,为应用提供服务并进行管理,即使一个应用希望并且也实现了直接操纵硬件也需要操作系统的支持,因为操作系统除了硬件还提供了应用的管理能力(加载,启动,调度,销毁等)广义的操作系统可以进一步分为操作系统内核和操作系统框架两层:内核负责对硬件资源进行抽

计算机组成原理学习笔记(6)——输入输出设备

输入输出设备组成为了简化CPU与输入输出设备通信的方式,输入输出设备划分成了IO接口以及设备本身两大块。在IO接口中存在输入寄存器、输出寄存器、状态寄存器、控制寄存器以及中断控制逻辑,通过IO接口,CPU只需要和IO接口上的寄存器打交道了,从而简化了通信方式,其基本结构如下图所示:一般计算机上都会有

计算机组成原理学习笔记(5)——流水线冒险

虽然流水线设计相较于单周期处理器带来了成倍的性能提升,但这个提升并不是绝对的。并不是所有的指令都是可以按照流水线设计的那样部分并行,因此在结构上、数据上以及控制上,都会给流水线设计带来挑战进而造成性能无法达到预期的成倍提升。在这篇博文中,我们首先给出一种通用的流水线冒险解决方案:流水线停顿,然后我们

计算机组成原理学习笔记(4)——流水线设计

单指令周期处理器正如前面的博文所说,最简单的CPU执行方式就是每一个时钟周期执行一条指令,也就是所谓的单指令周期处理器,通过将数据通路连接起来,其大致示意图如下图所示:其中红色的是控制信号,结合N-1选择器,控制信号可以决定每个逻辑电路单元的输入是什么,而黑色的则代表数据或者地址的传递。可以看到在每

计算机组成原理学习笔记(3)——CPU组成

从物理电路到数字电路首先说明一下:数字电路中的0和1代表的是低电压和高电压,而非是电流,但是正是电压形成了电流才能使得对应电路可以联通。实际的物理电路是是由大量的晶体管构成的,而每个晶体管(这里以三极管举例子,别的还有CMOS、二极管等等)都可以看作一端接地(低电压)或者接电源(高电压),一端作为输

计算机组成原理学习笔记(2)——程序是怎么跑起来的

指令集常见的机器码或者汇编指令可以分成五大类:算术类指令:加减乘除数据传输类指令:给变量复制、在内存里读写数据逻辑类指令:逻辑上的与或非条件分支类指令:if/else无条件跳转指令:函数跳转不同的 CPU 有不同的指令集,也就对应着不同的汇编语言和不同的机器码,因此在不同的CPU上面编译出来的程序不

计算机组成原理学习笔记(1)——计算机的基本组成与性能

冯诺依曼体系结构冯诺依曼体系结构其实不是直接无中生有提出来的,一开始是图灵大佬提出了一种理想中的机器:图灵机,来模拟程序的装载执行,该模型是这样的:有一条无限长的纸带,纸带上有无限个小格子,小格子中写有相关的信息,纸带上有一个读头,读头能根据纸带小格子里的信息做相关的操作并能来回移动虽然图灵机的模型

计算机网络学习笔记(5)—— 虚拟网络设备

在计算机网络中,TUN与TAP是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。其中TAP等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN模拟了网络层设备,操作第三层数据包

计算机网络学习笔记(4)—— 应用层协议

HTTPHTTP是基于TCP协议的,因此需要事先建立TCP连接,目前使用的 HTTP 协议大部分都是 1.1。在 1.1 的协议里面,默认是开启了 Keep-Alive 的,这样建立的 TCP 连接,就可以在多次请求中复用。HTTP请求的格式如下图所示:HTTP 的报文大概分为三大部分。第一部分是请