计算机基础:操作系统
文章平均质量分 74
通用的核心技能,要求掌握
hinzer
HINZER,坐标北京,我在芯片设计行业,目前做 GPU 固件和驱动开发,对嵌入式 OS 感兴趣。
展开
-
GPU虚拟化
文章内容大程度参考B站王利明老师对《GPU虚拟化技术分享》的演讲:https://b23.tv/uQKBpcKGPU 有什么用?GPU可以用于图形渲染,也能够用于高性能计算和编解码等场景。图:GPU 的典型软件架构(不含虚拟化)GPU 虚拟化是什么?虚拟化使用软件在计算机硬件上创建抽象层,能够将单个计算机的硬件元素(包括处理器、内存、存储器等)分成多个虚拟计算机,通常称为虚拟机 (VM)。GPU虚拟化是系统软硬件模拟 GPU 资源,支持虚拟机方案。为什么要GPU虚拟化?资源共享的需求:原创 2023-01-25 18:56:07 · 4711 阅读 · 0 评论 -
xv6 - lab0 - 页表
页表实现虚拟地址到物理地址的映射,维护这种映射关系对于 隔离性 是有帮助的。原创 2023-01-19 00:33:42 · 262 阅读 · 0 评论 -
内存一致性模型概念
内存一致性模型(Memory Consistency Models)提供内存一致性保证,一致性结果体现在程序内存操作是可预测的。例如在多核或多处理器硬件上,在编写并行的程序时,如果理解当前系统所使用的一致性模型,有助于使程序按的预期运行,有助于减少性能开销。可参考词条。原创 2023-01-17 21:32:22 · 672 阅读 · 0 评论 -
内存管理中的 Page 和 Zone 概念
MMU(Memory Management Unit,内存管理单元)配置为页表映射模式时,系统为物理内存划分成物理页,物理页是内存管理的基本单元,系统通过物理页来管理物理内存。从进程的视角,进程需要有独立地址空间(支持进程的内存隔离性),进程对实际内存的分配和读写基于虚拟内存。因此需要有一套机制来维护虚拟内存到物理空间的映射,这套机制就是页表和 MMU,软件上页表是由系统来建立和维护的,硬件上是通过 MMU 完成的。原创 2023-01-14 20:34:28 · 679 阅读 · 0 评论 -
异构硬件的地址空间概念
简单笔记。梳理下硬件异构场景下的几类地址空间,包括使用 MMU 时的虚拟地址,不带 MMU 时的物理地址。原创 2023-01-14 20:32:34 · 487 阅读 · 0 评论 -
OOM 机制
这是关于 Linux 内核的学习笔记,重点要了解 OOM 这块的相关知识点。原创 2023-01-13 19:31:23 · 554 阅读 · 0 评论 -
CACHE 概念
CPU 读写指令或者数据,可能直接从寄存器查取,也可能经过 TLB ,经过 MMU,经过高速缓存,经过内存,经过外部存储器。这里面有一个 Cache 的概念,想多了解下了,于是有这这一篇笔记。原创 2023-01-13 07:55:33 · 538 阅读 · 0 评论 -
TEE 背景知识
计算机世界的安全,是保护计算机系统和网络免受攻击者的攻击,这些攻击可能导致未经授权的信息泄露、窃取或损坏硬件、软件或数据,以及它们所提供的服务的中断或误导。原创 2023-01-08 17:06:53 · 1113 阅读 · 0 评论 -
xv6 - lab0 - 实验环境
为了能够在RISC-V模拟器环境中实验XV6操作系统,我需要配置的工具软件有:QEMU 5.1+, GDB 8.3+, GCC, and Binutils。原创 2023-01-08 08:55:28 · 698 阅读 · 0 评论 -
xv6 - lab0 - 操作系统组织
MIT 6.S081 操作系统组织和系统调用原创 2023-01-08 08:54:30 · 397 阅读 · 0 评论 -
xv6 - lab0 - 课程介绍
MIT 6.S081 课程介绍,围绕 xv6 操作系统设计的一系列课程,十分经典。原创 2023-01-08 08:52:23 · 521 阅读 · 0 评论 -
内存模型和多处理器架构
对 平坦内存模型 和 非一致性内存访问模型 的些许理解原创 2023-01-08 07:58:19 · 268 阅读 · 0 评论 -
内存碎片概念
内存碎片是无法被系统利用的内存区域,分为外部碎片和内部碎片。原创 2023-01-08 07:57:05 · 791 阅读 · 0 评论 -
内存域概念
整个存储体系由多个域组成,包括几类:存储域、DDR域、PCI域、设备域原创 2023-01-07 09:00:00 · 578 阅读 · 0 评论 -
seL4 背景知识
微内核发展到目前为止经历了三代, 这里做一些归纳。参考《现代操作系统: 原理与实现》中操作系统结构一章, 关于微内核架构发展的介绍。原创 2023-01-07 09:00:00 · 1639 阅读 · 0 评论 -
seL4 实验环境
在正式进行项目的 下载/编译/开发/测试 之前,需要准备好系统环境,安装一些依赖软件和基本的配置。比较快速的方式是使用 Docker 部署实验环境原创 2023-01-07 09:00:00 · 1038 阅读 · 1 评论 -
seL4 构建系统
seL4 构建系统原创 2023-01-07 09:00:00 · 226 阅读 · 0 评论 -
认识 TEE OS
关于本文,是一篇,会议主题是《从 Linux Kernel 角度看 TEE》,主讲人是周贺贺。它适用于嵌入式系统开发/驱动开发/内核设计/安全业务设计从业者,目的是让自己掌握 TEE 基本概念,知道大系统软件架构。同时也解答下面几个问题。原创 2022-12-24 14:31:42 · 3183 阅读 · 0 评论 -
Linux0.11 考古笔记
最近读完《Linux 内核完全注释》和《品读 Linux0.11 核心代码》,大致理解下 Linux0.11 内核的全貌。在我理解这些属于计算机基础类的知识,所以在未来的工作场景不太可能会直接用到它们,如果用不到的话这些知识可能会随着时间的推进慢慢从我的记忆中消失,出于功利的角度我当然不希望学的东西过后就把它给忘记了原创 2022-12-24 14:00:23 · 1077 阅读 · 0 评论 -
Linux系统基础——线程机制
特此说明: 刘超的趣谈linux操作系统是比较重要的参考资料,本文大部分内容和所有图片来源于这个专栏。原创 2022-12-24 13:43:03 · 146 阅读 · 0 评论 -
Linux系统基础——系统调用
特此说明: 刘超的是比较重要的参考资料,本文大部分内容和所有图片来源于这个专栏。原创 2022-12-24 13:42:10 · 568 阅读 · 0 评论 -
Linux系统基础——系统综述
特此说明: 刘超的是比较重要的参考资料,本文大部分内容和所有图片来源于这个专栏。原创 2022-12-24 13:41:06 · 128 阅读 · 0 评论 -
Linux系统基础——程序和进程
特此说明: 刘超的趣谈linux操作系统是比较重要的参考资料,本文大部分内容和图片来源于这个专栏。原创 2022-12-24 13:39:50 · 848 阅读 · 0 评论 -
Linux系统基础——知识背景
操作系统是程序员基本功课,linux内核是非常关键的一环,我想要把它搞得扎实一些,缓慢整理。目前看到刘超老师的,将是比较重要的参考资料,后面的记录主要根据他的课程来展开。原创 2022-12-24 13:38:41 · 219 阅读 · 0 评论 -
Linux系统基础——文件子系统
特此说明: 刘超的趣谈linux操作系统是比较重要的参考资料,本文大部分内容和图片来源于这个专栏。原创 2022-12-24 13:36:59 · 1124 阅读 · 0 评论 -
Linux系统基础——常用命令
特此说明: 刘超的趣谈linux操作系统是比较重要的参考资料,本文大部分内容和图片来源于这个专栏。原创 2022-12-24 13:35:36 · 153 阅读 · 0 评论 -
Linux系统基础——内核初始化
特此说明: 刘超的是比较重要的参考资料,本文大部分内容和所有图片来源于这个专栏。原创 2022-12-24 13:35:10 · 1123 阅读 · 0 评论 -
Linux系统基础——内存管理
特此说明: 刘超的是比较重要的参考资料,本文大部分内容和所有图片来源于这个专栏。原创 2022-12-24 13:33:31 · 940 阅读 · 0 评论 -
Linux系统基础——任务数据结构
特此说明: 刘超的是比较重要的参考资料,本文大部分内容和所有图片来源于这个专栏。原创 2022-12-24 13:32:04 · 178 阅读 · 0 评论 -
Linux系统基础——IO子系统
特此说明: 刘超的是比较重要的参考资料,本文大部分内容和所有图片来源于这个专栏。原创 2022-12-24 13:30:40 · 260 阅读 · 0 评论 -
Linux系统基础——BIOS和Bootloader
特此说明: 刘超的是比较重要的参考资料,本文大部分内容和所有图片来源于这个专栏。原创 2022-12-24 13:28:39 · 1897 阅读 · 0 评论 -
认识 Fuchsia OS
Fuchsia 是 Google 开发的一个开源的基于 Capability 的操作系统。与谷歌基于 Linux 的操作系统(如 ChromeOS 和 Android)相比,Fuchsia 基于名为 Zircon 的自定义内核。简单、安全、可更新、高性能。原创 2022-12-24 08:31:29 · 1492 阅读 · 0 评论 -
认识 微内核架构
关于宏内核、微内核、混合内核,都是相对而言的概念。原创 2022-12-23 21:29:57 · 2448 阅读 · 0 评论 -
认识 操作系统
背景信息原创 2022-12-23 07:00:00 · 8930 阅读 · 0 评论 -
linux的命令行操作和shell的区别
转载原文链接:https://blog.csdn.net/LJFPHP/article/details/78292943 一、什么是shell答: shell翻译成壳的意思,它是包裹在linux内核外层的,一个可通过一系列的linux命令对操作系统发出相关指令的人机界面。 shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的...转载 2018-06-25 11:46:23 · 2416 阅读 · 0 评论 -
Linux系统开发 | 进程管理
并发程序是应用开发中非常重要的一部分内容,如何实现程序的并发?包括多进程编程、进程间通信机制、多线程编程、线程间同步和异步机制等等。fork创建进程exit/_exit结束进程exec函数族让进程执行指定程序wait/waitpid回收一个已经结束了的进程如何创建一个守护进程系统调用fork允许一个进程(父进程)创建一个新进程(子进程)。通过fork,子进程几乎是父进程的复制版本,子进程获得父进程的栈、数据段、堆和执行文本段的拷贝。原创 2018-07-31 21:11:59 · 1689 阅读 · 1 评论 -
Linux系统开发 | 线程同步与互斥
拥有梦想是一种智力,实现梦想是一种能力。概述线程共享同一进程的地址空间,线程间通过全局变量交换数据进行通信。为了避免多个进程同时访问同一个共享资源而引发冲突,多个线程访问共享数据时需要同步或互斥机制同步机制:指的是多个任务按照约定的先后次序相互配合完成一件事情互斥机制:一次只允许一个任务(进程、线程)访问的共享资源同步机制信号量:代表某一类资源,其值表示...原创 2018-08-01 22:49:39 · 1918 阅读 · 1 评论 -
Linux系统开发 | 进程通信之无名管道
概述拥有梦想是一种智力,实现梦想是一种能力概述若是一个多线程的进程,由于各个线程共享一个地址空间,可以直接通过变量的形式进行通信。而进程,由于各个进程独占一个地址空间,我们需要一种通信机制来完成进程间的数据交互。之间有区分与各自的运用场景,其中套接字通常使用在网络服务,其他只能在本地场景下使用。笔者以后会逐一学习,本章介绍无名管道。原创 2018-08-02 23:02:16 · 1083 阅读 · 1 评论 -
Linux系统开发 | 进程通信之有名管道
概述拥有梦想是一种智力,实现梦想是一种能力概述若是一个多线程的进程,由于各个线程共享一个地址空间,可以直接通过变量的形式进行通信。而进程,由于各个进程独占一个地址空间,我们需要一种通信机制来完成进程间的数据交互。之间有区分与各自的运用场景,其中套接字通常使用在网络服务,其他只能在本地场景下使用。笔者以后会逐一学习,本章介绍有名管道。原创 2018-08-03 22:13:41 · 930 阅读 · 1 评论 -
Linux系统开发 | 进程通信之信号机制
概述拥有梦想是一种智力,实现梦想是一种能力概述若是一个多线程的进程,由于各个线程共享一个地址空间,可以直接通过变量的形式进行通信。而进程,由于各个进程独占一个地址空间,我们需要一种通信机制来完成进程间的数据交互。之间有区分与各自的运用场景,其中套接字通常使用在网络服务,其他只能在本地场景下使用。笔者以后会逐一学习,本章介绍信号机制。原创 2018-08-04 21:01:43 · 1265 阅读 · 1 评论