自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 ARM TrustZone技术简介 -- 4 (TrustOS)

TrustZone技术在物理上可以把一个ARM处理器核分时复用为两个不同的处理器,在处理器的非安全部分运行的是标准的Linux系统,而在另外一侧运行的是安全强相关的功能。而由于ARM  TrustZone的硬件隔离作用,其相互之间的交互只能通过机器指令SMC来使能切换,而实际的切换过程由ARM提供的TrustFirmware BL31 来提供 。在硬件外部设备划分的过程中,一般情况下IRQ交由

2017-08-26 22:16:37 4747

原创 LTE 物理层知识

LTE 下行物理层知识http://www.sharetechnote.com/html/FrameStructure_DL.html

2017-08-26 21:40:57 745

原创 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 11928 1

原创 ARM TrustZone技术简介 -- 2

对具有TrustZone的ARM处理器来说,为了保证运行其在EL3,安全侧和非安全侧的不同软件系统,其一般分为多个部分被bootloader分别进行加载运行,其流程在Linaro的Trust Firmware中有介绍,其基本流程如下图所示当系统复位之后,先通过第一级的Bootloader 这里叫做 BL1进行启动其会加载BL2的系统加载器,而BL2 会将BL31 Trust Firmw

2017-08-04 22:02:27 3708

原创 ARM TrustZone技术简介 -- 1

有幸做过将近1年时间的TrustZone OS,这里对通用的TrustZone硬件技术做一点记录,来记录自己曾经工作过的领域。TrustZone是ARM处理器特有的一个安全特性,其简介可以在ARM的官方网站上找到https://www.arm.com/products/security-on-arm/trustzone从最简单抽象的层面来一句话介绍TrustZone

2017-08-03 20:23:25 9862

原创 漫谈操作系统11 -- 上下文切换

中间有些个人的私事中断了一段时间这个系列的博文,总体来说还是不甚满意,后面应该会对博文的结构进行调整,并且添加更加详细的内容,目前的状态有点太概括和笼统,虽然就我自己的认识来说操作系统的逻辑本身并不复杂,复杂的是其实现的细节,就像一句老化魔鬼都在细节当中, 所以操作系统和典型的作业系统是相反的两个方向,操作系统从大的逻辑上来讲实际上很简单,抽象硬件并分时复用硬件,而很多大型的业务系统完全没有办法这

2017-08-03 19:38:37 1071

原创 漫谈操作系统10 -- 调度器

前面一片博文介绍了调度实例的状态,下面简单介绍一下什么是调度器。调度器最朴素的解释就是 医院的挂号排队系统当到医院去看病的时候,首先会去挂号,然后拿到一个号码,门诊室外的电子叫号装置会根据号码来进行排队叫号。对应的调度器把新创建的线程赋予一个线程ID,然后放入到Ready队列中,当排队轮到此线程时,将其放入处理器中运行。所以我们可以简单将处理器类比为医生,线程类比为

2017-07-18 16:49:01 823

原创 树莓派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 7054

原创 漫谈操作系统9 -- 线程运行状态

这篇博文简单介绍一下操作系统中的线程运行状态,为后文继续介绍操作系统的调度器做一些准备的工作。为了分时的复用硬件的处理器资源,操作系统需要通过上下文切换将不同的调度实例(一般是线程)分时的在处理器上运行,从而对外表现为每个线程都在正常运行的错觉。而这就要求线程在合适的时机被切换出处理器,并且由操作系统内核的调度器选择合适的新线程来运行。为了记录调度实例(线程)的工作状态,操作系统一般会将调度实

2017-07-14 22:46:02 3983 1

原创 漫谈操作系统8 -- 神奇的vDSO

前面漫谈操作系统3 -- 用户态和内核态分离介绍了操作系统一般会使用不同的硬件运行级,然后通过异常来达成从用户态访问内核态的目的,但是当我们的用户态应用调用此类系统调用时一定会产生运行级的切换,虽然硬件已经在极大的程度上对此类系统调用的硬件访问进行了加速,但是其还是比一般的跳转指令和内存访问指令要大很多周期,所以为了加速用户态程序对特定的系统调用接口的访问,Linux内核引入了vDSO (Virt

2017-07-12 21:48:40 953

原创 漫谈操作系统7 -- 一切皆为文件

熟悉Linux或者其他类Unix操作系统应用程序写法的程序员会清楚,对于操作系统来说对外提供的对操作系统内核态各种资源的访问大多是通过文件描述符来达成的(socket也是一种文件描述符)。 所以在一定程度上我们可以认为操作系统内部的一切资源都可以抽象为文件,那操作系统是如何得知这些不同的资源应该使用什么代码来进行操作和访问的呢,这就要通过VFS(虚拟文件系统)来进行解释了。首先我们可以

2017-07-09 21:26:50 1217

原创 树莓派ubuntu mate 使能摄像头

首先链接rasberrypi的连线到摄像头之上然后使用sudo apt updatesudo apt upgradesudo apt-get install raspi-config然后使用sudo raspi-config  使能摄像头raspivid -p 0,0,640,480 -t 0 你就能得到预览窗口了

2017-07-05 20:48:41 6337

原创 树莓派ubuntu mate 修改屏幕解析度为800x480

树莓派的启动配置依靠/boot/config.txt来进行配置, 自己的HDMI屏幕是800X480的,其配置参数如下此配置对使用ubuntu mate和noob来进行安装的raspbian的都可以使用。# uncomment if you get no picture on HDMI for a default "safe" mode#hdmi_safe=1一定要将此处的

2017-07-05 20:24:02 6407

原创 漫谈操作系统6 -- 内存管理

操作系统的内存管理是操作系统对用户态程序访问物理内存进行抽象的一个范例,其中包括内存管理的方方面面,在操作系统的内核态其一般包括为每个用户态进程分配线性地址空间的线性地址空间管理, 实际分配物理内存的页分配器,伙伴系统, 为操作系统的内核数据结构分配内存的slab/slub分配器等。而对于用户态程序来说,POSIX接口兼容的操作系统统一对上提供sbrk系统调用接口,以及mmap等内存映射的接口。 

2017-07-04 19:24:59 525

原创 漫谈操作系统5 -- 基础知识(进程隔离)

内存隔离

2017-07-02 10:19:02 7099

原创 漫谈操作系统4 -- 基础知识(进程和线程/任务)

接着前一篇博文,接着讲解操作系统的基本知识,这次集中在操作系统中进程和线程的概念上,虽然已有很多书籍和文章在讲进程和线程的定义和概念,但是个人感觉这个属于操作系统中最核心的部分,还是有必要单独拎出来再讲一下,当然也希望自己能够讲出一些新意,而不是老生常谈。为了解释进程和线程的概念首先需要解释清楚程序的不同表征状态(比较恶心表征这个词,但是没办法)我们缩写的源代码比如C/C++的代码

2017-06-30 18:24:59 600

原创 漫谈操作系统3 -- 基础知识 (用户态和内核态分离)

前两篇文章主要简单介绍了操作系统的分类以及基础的操作系统启动相关的知识,总体感觉有很多基础的知识没有讲清楚,后续的几篇会从最基本的操作系统概念开始介绍,让不论有没有足够经验的朋友都能够迅速打好基础,并且让自己后续的连载不那么突兀。1. 操作系统的用户态和内核态操作系统之上运行的软件按照运行的特权级来区分,一般分为用户态进程和内核态程序。 例如在X86体系结构的处理器中,Li

2017-06-28 20:36:31 1875

原创 漫谈操作系统 2 -- 从启动开始

一个设备从按下复位键开始会经过多个系统软件最终才能启动到正常的运行状态,按照具体的功能一般分为, BISO/UEFI, Bootloader,  Kernel, 用户态初始化程序。而不同的系统和不同体系结构的处理器在整个启动的流程中会有很多的不同点。

2017-06-27 18:18:43 557

原创 漫谈操作系统 1 -- 简介

漫谈操作系统 (简介)

2017-06-26 18:24:06 868

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除