操作系统
文章平均质量分 56
探索__发现
这个作者很懒,什么都没留下…
展开
-
漫谈操作系统3 -- 基础知识 (用户态和内核态分离)
前两篇文章主要简单介绍了操作系统的分类以及基础的操作系统启动相关的知识,总体感觉有很多基础的知识没有讲清楚,后续的几篇会从最基本的操作系统概念开始介绍,让不论有没有足够经验的朋友都能够迅速打好基础,并且让自己后续的连载不那么突兀。1. 操作系统的用户态和内核态操作系统之上运行的软件按照运行的特权级来区分,一般分为用户态进程和内核态程序。 例如在X86体系结构的处理器中,Li原创 2017-06-28 20:36:31 · 1867 阅读 · 0 评论 -
ARM TrustZone技术简介 -- 3 (BL31 Secure Monitor简介)
在使用TrustZone技术的嵌入式设备当中,无法避免的需要解决从非安全侧切换到安全侧的问题,而为了完成这个切换,需要一个专用的进行非安全上下文和安全上下文切换的固件,这个固件一般我们称为arm trust firmware,在ARM官方维护的github中我们能够下载到其完整的代码https://github.com/ARM-software/arm-trusted-firmware原创 2017-08-06 22:15:25 · 11872 阅读 · 1 评论 -
漫谈操作系统11 -- 上下文切换
中间有些个人的私事中断了一段时间这个系列的博文,总体来说还是不甚满意,后面应该会对博文的结构进行调整,并且添加更加详细的内容,目前的状态有点太概括和笼统,虽然就我自己的认识来说操作系统的逻辑本身并不复杂,复杂的是其实现的细节,就像一句老化魔鬼都在细节当中, 所以操作系统和典型的作业系统是相反的两个方向,操作系统从大的逻辑上来讲实际上很简单,抽象硬件并分时复用硬件,而很多大型的业务系统完全没有办法这原创 2017-08-03 19:38:37 · 1067 阅读 · 0 评论 -
漫谈操作系统10 -- 调度器
前面一片博文介绍了调度实例的状态,下面简单介绍一下什么是调度器。调度器最朴素的解释就是 医院的挂号排队系统当到医院去看病的时候,首先会去挂号,然后拿到一个号码,门诊室外的电子叫号装置会根据号码来进行排队叫号。对应的调度器把新创建的线程赋予一个线程ID,然后放入到Ready队列中,当排队轮到此线程时,将其放入处理器中运行。所以我们可以简单将处理器类比为医生,线程类比为原创 2017-07-18 16:49:01 · 815 阅读 · 0 评论 -
树莓派3上运行Fuchsia/Magenta OS
Google终于放出了其Fuchsia/Magenta内核的树莓派版本,下面介绍以下如何编译并运行准备工作,首先需要有一个HDMI的屏幕,我这里的是800X480的HDMI屏幕,然后是键盘从Google Src或者Github上下载Magenta的代码 https://fuchsia.googlesource.com/magenta运行目录中的scripts/downloa原创 2017-07-16 21:01:41 · 7049 阅读 · 0 评论 -
漫谈操作系统 2 -- 从启动开始
一个设备从按下复位键开始会经过多个系统软件最终才能启动到正常的运行状态,按照具体的功能一般分为, BISO/UEFI, Bootloader, Kernel, 用户态初始化程序。而不同的系统和不同体系结构的处理器在整个启动的流程中会有很多的不同点。原创 2017-06-27 18:18:43 · 554 阅读 · 0 评论 -
漫谈操作系统9 -- 线程运行状态
这篇博文简单介绍一下操作系统中的线程运行状态,为后文继续介绍操作系统的调度器做一些准备的工作。为了分时的复用硬件的处理器资源,操作系统需要通过上下文切换将不同的调度实例(一般是线程)分时的在处理器上运行,从而对外表现为每个线程都在正常运行的错觉。而这就要求线程在合适的时机被切换出处理器,并且由操作系统内核的调度器选择合适的新线程来运行。为了记录调度实例(线程)的工作状态,操作系统一般会将调度实原创 2017-07-14 22:46:02 · 3974 阅读 · 1 评论 -
漫谈操作系统 1 -- 简介
漫谈操作系统 (简介)原创 2017-06-26 18:24:06 · 860 阅读 · 0 评论 -
漫谈操作系统8 -- 神奇的vDSO
前面漫谈操作系统3 -- 用户态和内核态分离介绍了操作系统一般会使用不同的硬件运行级,然后通过异常来达成从用户态访问内核态的目的,但是当我们的用户态应用调用此类系统调用时一定会产生运行级的切换,虽然硬件已经在极大的程度上对此类系统调用的硬件访问进行了加速,但是其还是比一般的跳转指令和内存访问指令要大很多周期,所以为了加速用户态程序对特定的系统调用接口的访问,Linux内核引入了vDSO (Virt原创 2017-07-12 21:48:40 · 947 阅读 · 0 评论 -
漫谈操作系统6 -- 内存管理
操作系统的内存管理是操作系统对用户态程序访问物理内存进行抽象的一个范例,其中包括内存管理的方方面面,在操作系统的内核态其一般包括为每个用户态进程分配线性地址空间的线性地址空间管理, 实际分配物理内存的页分配器,伙伴系统, 为操作系统的内核数据结构分配内存的slab/slub分配器等。而对于用户态程序来说,POSIX接口兼容的操作系统统一对上提供sbrk系统调用接口,以及mmap等内存映射的接口。原创 2017-07-04 19:24:59 · 522 阅读 · 0 评论 -
漫谈操作系统5 -- 基础知识(进程隔离)
内存隔离原创 2017-07-02 10:19:02 · 7088 阅读 · 0 评论 -
漫谈操作系统7 -- 一切皆为文件
熟悉Linux或者其他类Unix操作系统应用程序写法的程序员会清楚,对于操作系统来说对外提供的对操作系统内核态各种资源的访问大多是通过文件描述符来达成的(socket也是一种文件描述符)。 所以在一定程度上我们可以认为操作系统内部的一切资源都可以抽象为文件,那操作系统是如何得知这些不同的资源应该使用什么代码来进行操作和访问的呢,这就要通过VFS(虚拟文件系统)来进行解释了。首先我们可以原创 2017-07-09 21:26:50 · 1212 阅读 · 0 评论 -
ARM TrustZone技术简介 -- 4 (TrustOS)
TrustZone技术在物理上可以把一个ARM处理器核分时复用为两个不同的处理器,在处理器的非安全部分运行的是标准的Linux系统,而在另外一侧运行的是安全强相关的功能。而由于ARM TrustZone的硬件隔离作用,其相互之间的交互只能通过机器指令SMC来使能切换,而实际的切换过程由ARM提供的TrustFirmware BL31 来提供 。在硬件外部设备划分的过程中,一般情况下IRQ交由原创 2017-08-26 22:16:37 · 4739 阅读 · 0 评论