OS实战笔记
文章平均质量分 92
开这个专栏纠结了一段时间,最终决定在2022年6月4号这天开始做专栏。由于本专栏为工作之余的爱好,同样工作之余也在学习UNITY,因此专栏更新时间可能会不规律。不过我会坚持下去。这个专栏主要是为了复盘并实践一些OS相关的内容。会涉及多个方面,计算机原来,内存管理,文件系统,设备驱动等。
亦枫Leonlew
嵌入式开发相关工作10+年,熟悉ARM/RISC-V架构,曾在展讯、华为工作
热爱技术,喜欢分享
喜欢自驾游和户外徒步,成都的朋友可以约起来
目前方向是3D视觉
展开
-
OS实战笔记(9)-- 构建二级引导器
Grub工作的时候,需要一个内核映像文件,其中包括了二级引导器模块、内核模块、图片和字库等。这些不同的文件都被放到了一个映像文件中,为了Grub能够正常加载,需要一个预先定义好的格式,以便Grub能解析。上图中,Grub头为4KB大小,Grub会用这一小段代码来识别映像文件。根据映像文件头描述符和文件描述符的信息,这一小段代码还可以解析映像文件中的其它文件。知道了映像文件格式,我们还需要有工具能够打包出映像文件才行。原创 2023-05-30 21:02:04 · 714 阅读 · 0 评论 -
OS实战笔记(8)-- 设置基本OS基本工作环境
本笔记会搭建OS实战所需的虚拟机环境,主要是创建好虚拟机,设置虚拟机启动硬盘,在启动盘上安装Grub。原创 2023-04-23 17:11:09 · 616 阅读 · 0 评论 -
OS实战笔记(7)-- Linux同步机制
上一篇笔记中对x86平台上原子变量、关中断、自旋锁和信号量的原理做了复习,本笔记回顾一下Linux使用的几种常用的同步机制。原创 2022-10-26 09:37:50 · 360 阅读 · 0 评论 -
OS实战笔记(6)-- 同步机制
本篇笔记主要复习四种常见的数据同步机制:原子变量、关中断、锁、信号量。原创 2022-10-24 19:40:20 · 640 阅读 · 0 评论 -
OS实战笔记(5)-- Cache和内存
最近工作忙,业余时间也基本投入到了Unity中,OS实战笔记看着要烂尾了,提醒自己要抽时间把这个专题补上,今天先更一篇关于Cache和内存的。 本篇笔记主要复习几个点: 1. 程序局部性原理 2. CPU和内存的速度瓶颈 3. Cache是如何利用局部性原理加速的 4. Cache基本结构 5. Cache一致性问题简介 6. x86中cache开启方法 7. x86中获得内存视图的方法原创 2022-10-19 10:33:05 · 1392 阅读 · 0 评论 -
OS实战笔记(4)-- 虚拟地址和物理地址的转换
本笔记会先从个人角度出发谈谈虚拟地址出现的原因,然后会对X86的保护模式和长模式下虚拟地址相关知识进行总结。原创 2022-07-31 18:12:54 · 3521 阅读 · 1 评论 -
OS实战笔记(3) -- X86 CPU三种工作模式(实模式,保护模式,长模式)
X86 CPU三种工作模式(实模式,保护模式,长模式)原创 2022-07-18 22:24:36 · 3791 阅读 · 0 评论 -
OS实战笔记(2)-- 利用grub启动一个最简单的Tiny System
本小节,做一个实验,利用grub来启动一个最简单的小系统,这个系统的功能非常简单,先使用汇编初始化好C语言的运行环境(主要是配置好栈),然后向显示器输出Tiny System这几个字符。 注意,本小节笔记只是为了简单做实验的目的,其中有很多细节暂时还不会提及。在后续笔记中,介绍完很多基础细节后,会详细做解释。如果不清楚某些细节也可以跳过。 实验环境: Oracle VM VirtualBox虚拟机运行ubuntu 16.04 此流程仅为了Tiny System阐述,原创 2022-06-18 13:57:39 · 613 阅读 · 0 评论 -
OS实战笔记(1) -- 从代码到程序运行
相信每个学习编程的朋友,都应该会写过hello world。但各位在第一次写这个程序的时候,有没有产生过一个疑问,计算机是如何识别出我们用英文字符写出的代码,并最终运行起来的呢?老实说,我第一个写hello world的语言是C语言,在写这个程序的时候,只是机械敲完代码,大概了解了每行代码的意思,然后编译运行看了效果之后。没有更多地去想这个问题了,当时只是知道要经过一个编译器编译阶段,才能让机器明白我们想干的事情。今天这篇笔记先从程序的编译过程说起。 我们以这个经典的C语言版本的hello w原创 2022-06-04 17:56:42 · 215 阅读 · 0 评论