操作系统

互联网巨头纷纷加入鸿蒙了

多年来,极少有人能做到,在苹果iOS、谷歌安卓之外,打造另一个广泛应用的手机操作系统。四年前,华为鸿蒙操作系统以破局者的姿态诞生,但仍然设计了可以兼容安卓应用

别刷新桌面了,没啥用

今年 6 月(2021 年),微软为我们带来了 Windows 11 操作系统,全新的设计语言、全面优化的触控体验、可直接运行 Android app……每一个新特性都让我们直呼微软「杀疯了」。但没想到,升级体验后的用户,在另外一个方面直呼微软「杀疯了」:救命,我的右键刷新去哪里了?好像没什么用,又被无数用户视为必备功能的「刷新」,它到底有什么用呢?刷新真的能让电脑变快吗?

计算机中的存储器们

计算机当中包含的存储器可以分为随机存储器(RAM)和只读存储器(ROM)(好像硬盘也能叫存储器,但本文不讨论)。RAM的特点是要持续供电才能保存数据,可读可写,而ROM就算断电,也不会丢失数据,而且是只读的。我们打开机箱的盖子,罗列一下所有的RAM和ROM,首先主板上有一根或者几根4G/8G的RAM,还有一个CMOS,它也是RAM,显卡上面有2G的RAM(就是显存),还有R

操作系统思考 第十一章 C语言中的信号量

第十一章 C语言中的信号量作者:Allen B. Downey原文:Chapter 11 Semaphores in C译者:飞龙协议:CC BY-NC-SA 4.0信号量是学习同步的一个好方式,但是它们实际上并没有像互斥体和条件变量一样被广泛使用。尽管如此,还是有一些同步问题可以用信号量简单解决,产生显然更加合适的解决方案。这一章展示了C语言用于处理信号量的API,以及

操作系统思考 第十章 条件变量

第十章 条件变量作者:Allen B. Downey原文:Chapter 10 Condition variables译者:飞龙协议:CC BY-NC-SA 4.0像上一章所展示的那样,许多简单的同步问题都可以用互斥体解决。这一章中我会介绍一个更大的挑战,著名的“生产者-消费者”问题,以及一个用于解决它的新工具,条件变量。10.1 工作队列在一些多线程的程序中,线程被组织

操作系统思考 第九章 线程

第九章 线程作者:Allen B. Downey原文:Chapter 9 Threads译者:飞龙协议:CC BY-NC-SA 4.0当我在2.3节提到线程的时候,我说过线程就是一种进程。现在我会更仔细地解释它。当你创建进程时,操作系统会创建一块新的地址空间,它包含text段、static段、和堆区。它也会创建新的“执行线程”,这包括程序计数器和其它硬件状态,以及运行时栈

操作系统思考 第七章 缓存

第七章 缓存作者:Allen B. Downey原文:Chapter 7 Caching译者:飞龙协议:CC BY-NC-SA 4.07.1 程序如何运行为了理解缓存,你需要理解计算机如何运行程序。你应该学习计算机体系结构来深入理解这个话题。这一章中我的目标是给出一个程序执行的简单模型。当程序启动时,代码(或者程序文本)通常位于硬盘上。操作系统创建新的进程来运行程序,之后

操作系统思考 第八章 多任务

第八章 多任务作者:Allen B. Downey原文:Chapter 8 Multitasking译者:飞龙协议:CC BY-NC-SA 4.0在当前的许多系统上,CPU包含多个核心,也就是说它可以同时运行多个进程。而且,每个核心都具有“多任务”的能力,也就是说它可以从一个进程快速切换到另一个进程,创造出同时运行许多进程的幻象。操作系统中,实现多任务的这部分叫做“内核”

操作系统思考 第零章 前言

第零章 前言作者:Allen B. Downey原文:Chapter 0 Preface译者:飞龙协议:CC BY-NC-SA 4.0在许多计算机科学的课程中,操作系统都是高级话题。学生在上这门课之前,它们已经知道了如何使用C语言编程,他们也可能上过计算机体系结构(组成原理)的课程。通常这门课的目标是让学生们接触操作系统的设计与实现,并带有一些他们未来在该领域所研究的隐含