自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

翻译 seL4 参考手册目录

seL4 reference PDF1.介绍:1 2.内核服务与对象:2 2.1 基于能力(capability)的访问控制:22.2 系统调用:32.3 内核对象:42.4 内核内存分配:52.4.1 重用内存:6 3.能力作用领域3.1 能力和能力作用领域的管理3.1.1 能力作用领域的创建3.1.2 CNODE 方法3.1.3 能力...

2018-12-20 10:21:57 831

原创 IMX6UL EVK OP-TEE SET TZASC ENABLE

一.准备工作 配置IMX6UL EVK平台并将OP-TEE移植到此平台中。 二.具体实现 1. 编写运行于linux非安全世界的地址访问程序,并将其放置到IMX6UL 文件系统/home/root路径下。 创建一个简单的程序test_mem.c,代码如下:#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#incl

2017-03-17 13:20:21 2095 5

原创 IMX6 USER_TA间的隔离实现

阅读完intel 的SGX技术,发现此技术提出的多eclave间物理隔离的想法很实用,故打算基于TZASC-380 IP核在ARM IMX6 EVK上实现此想法。一. 工作流程创建自定义的TA FindAPP和BackAPP,用以测试建议仿照Helloworld TA编写,不再累述。创建静态TA:sta_reg.c,用以切换创建出的各个隔离区的访问权限,设计方法见前文。修改TA,

2017-02-23 10:16:44 1448

原创 FSL i.MX6 UltraLite EVK OP-TEE的移植

由于HIKEY板对于TZPC寄存器控制位的相关资料不全,所以正在使用飞思卡尔的FSL i.MX6 UltraLite EVK Board平台,用以继续开发并应用Trustzone技术的TZASC。一. 前期准备:U-BOOT代码:git checkout 4f016adae573aaadd7bf6a37f8c58a882b391ae6git clone https://githu

2016-12-26 17:17:17 4013 5

原创 Intel SGX 技术初探

最近公司需要开发一款使用intel 的移动终端,需要用到SGX技术,特此将调研和整理的相关资料放置于下,欢迎交流。一、SGX技术背景1.1 SGX技术定义SGX全称Intel Software Guard Extensions,顾名思义,其是对因特尔体系(IA)的一个扩展,用于增强软件的安全性。这种方式并不是识别和隔离平台上的所有恶意软件,而是将合法软件的安全操作封装在一个encl

2016-10-20 17:13:22 43417 5

原创 HIKEY OP-TEE切换UART运行状态

已经实现了UART的安全状态的切换。打算基于此继续开发OPTEE_OS相应的各类驱动。 一.资源准备OPTEE工程源码:OPTEE官网 注意:根据说明下载hikey_debian的代码版本。二.实现方法1.新版本的Hikey_Debian的代码版本带有helloworld的样例TA,可以修改为调用静态TA,当然也可以自行编写TA调用静态TA,调用方法前文讲述过了,不再累述。2.下载OPTEE工程

2016-08-05 14:12:32 2566

原创 OP-TEE 简易驱动编写:启动TZPC与TZPCDEP

继续进行驱动开发,在上一篇文章中完成了对寄存器的读写,Hikey soc 中对Trustzone IP核是支持的,但在官方文档中并未对三个IP核的寄存器地址进行定义和使用,所以需要自行编写驱动用以初始化TZPC和AXI-APB总线桥信号寄存器的外围设备时钟,代码如下,可以参考OP-TEE的core/driver/目录下的pl011.c代码:一.定义头文件在/devel/optee/optee_os/

2016-05-04 10:38:55 4240 7

原创 OP-TEE TA:读写寄存器数据

最近想为OP-TEE的Trusted OS开发一个触摸屏驱动,在查询代码的时候发现直接调用TA修改TZPC寄存器的值是不可行的,原因是user TA的运行采用了沙盒机制,所以无法直接访问寄存器所映射的物理地址。所以在查看了相关资料后,总结出如下方法用以解决此问题。一. 编写static TA在/optee_os/core/arch/arm/sta目录下新建一个sta_reg.c文件,作为一个新的st

2016-04-27 15:49:54 5346

原创 Hikey OP-TEE Helloworld.TA移植和运行

一.获得Helloworld的TA源码 将TA源码下载到OP-TEE工程目录下,一般为/devel/opteegit clone https://github.com/jenswi-linaro/lcu14_optee_hello_world.git optee_helloworld cd optee_helloworld当然参照optee_test的TA程序也可以自行编写,这里使用官方人员编写

2016-04-19 13:56:01 5226 17

翻译 TrustZone软硬件架构

第一章TrustZone的硬件结构1. 系统结构TrustZone硬件架构旨在提供安全框架,从而使设备能够抵御将遇到的众多特地威胁。 TrustZone技术可提供允许SoC设计人员从大量可在安全环境中实现特定功能的组件中进行选择的基础结构,而不提供固定且一成不变的安全解决方案。 架构的主要安全目标是支持构建可编程环境,以防止资产的机密性和完整性受到特定的攻击。具备这些特性的平台可用于构建一组

2016-04-01 13:01:22 9286 1

原创 OP-TEE xtest 功能记录

现有的用于测试的xtest TA(Trusted Application)共有8个,分别涵盖了内核测试、内部API测试、客户端API测试、加密测试、创建失败测试等方面,笔者对各测试功能进行统计,用于对TA以及OP-TEE的学习。xtest已经成功在HIKEY、QEMU、FVP等平台上运行通过。 根据optee_test/host/xtest/目录下的xtest_main.c文件获知,xtest共有

2016-03-29 17:30:38 7242 6

原创 OP-TEE在HIKEY上的编译、运行与测试

笔者使用的是UBUNTU14.04 版本,OP-TEE官方的方法尝试失败,故采用如下方法移植成功: 1. 新建目录并下载相应交叉编译器,并设置环境变量。mkdir arm-tc arm64-tctar --strip-components=1 -C ${PWD}/arm-tc -xf gcc-linaro-arm-linux-gnueabihf-4.9-*_linux.tar.xztar --

2016-03-23 11:33:33 6614 5

原创 网络爬虫相关软件以及论文检索与推荐网站调研

最近接到一个项目,需要做一个基于网络爬虫技术的论文检索与推荐的网站,所以打算先对市面上已有的基于此技术的软件进行一次统计和分析,以备后面查询使用。一. 网络爬虫相关软件1. 搜索引擎 Nutch Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。 Nutch的创始人是Doug Cutting,他同时也是Lucene、Hado

2016-03-21 16:11:04 4711 2

翻译 OP-TEE设计结构(二)

5. MMU翻译表 OP-TEE使用多个L1层次下的翻译表,一个大的(4G)的和两个或两个以上的小的翻译表(32MB)。大翻译表处理内核模式映射,匹配在小翻译表所包含之外的所有的地址,小翻译表是按每一个线程分配的,并覆盖了一个大的虚拟内存空间的映射。 存在于大小翻译表之间的存储空间由TTBRC进行初始化,TTBR1总是指向大的翻译表。TTBR0在用户映射活跃时指向小的翻译表,若用户映射当前为未

2016-03-21 15:24:29 2957

转载 ARMv8 架构与指令集.学习笔记

目 录http://blog.csdn.net/forever_2015/article/details/50285865第1章 ARMv8简介. 31.1基础认识. 31.2 相关专业名词解释. 3第2章 Execution State 42.1 提供两种Execution State 42.2 决定Execution State的条件. 4第3章 Exception Level 53.1 Exc

2016-03-19 12:14:15 18755

原创 TrustZone OP-TEE 在 FVP 编译与测试

一. 前期准备源代码下载 : 使用repo来下载项目源代码$repo init -u https://github.com/OP-TEE/manifest.git -m ${TARGET}.xml [-b ${BRANCH}]$ repo sync我们使用的TARGET 为FVP.xml BRANCH为master 使用以下命令来下载编译器: 注意:下载路径不建议修改make toolc

2016-03-18 15:38:21 3406 7

翻译 OP-TEE设计结构(一)

OP-TEE design目录介绍平台初始化安全监视器调用函数-SMC SMC操作SMC接口使用SMC接口进行通信线程操作 Translation tablesTranslation tables and switching to normal world存储管理单元(MMU)堆栈共用存储器(shared memory)Pager加密抽象层TEE所使用的库(libute

2016-03-10 09:25:07 8958

原创 OP-TEE笔记之TEECORE的启动过程

TEECORE的启动代码在路径/optee_os/core/arch/arm/tee/下的init.c,我们来分段解读以下:#define TEE_MON_MAX_NUM_ARGS 8首先定义了一个宏来设定TEE的最大参数个数extern __initcall_start, __initcall_end;外部链接的数据类型initcall_t的两个变量指针,用于指向初始化调用的起始地址和终止

2016-03-09 16:41:01 3121

原创 OP-TEE笔记之OPTEE__OS文件结构

1.根目录下 /core:此目录下文件仅被使用于构建TEE核心 /lib:此目录下文件被用来构建TEE核心和辅助工具 /ta:此目录下文件仅被使用于构建辅助工具 /mk:构建系统的编译文件(Makefile) /tmp-stuff:临时进行存储,在最后编译完成之前将会被删除 /scripts:多种任务的帮助脚本 /out:如果创建命令中存在O=…的时候在此目录下进行创建 2./cor

2016-03-09 15:45:59 4059

原创 Trustzone OP-TEE 在QEMU平台上的编译、运行与测试

一.OP-TEE介绍 TEE背后的基本思想就是将和安全服务提取到独立的安全环境中去运行,当主系统有安全相关的操作时,通过发动请求到安全环境获取系统预定义的服务。基于此OP-TEE可以分为三个部分,TEE客户端和用来和安全环境通讯的TEE驱动,这2个部分都运行在主系统(Android/Linux…),运行在安全环境中的TEE OS以及在上面的安全应用,具体参见下图。 引用于ARM中文社区 二

2016-03-01 17:11:22 8106 33

原创 DragonBoard 410c HDMI配置的艰辛路

笔者ARM萌新,一直在学习ARM的相关知识,2016年一月份到货的DragonBoard 410c,是支持ARMv8指令集的开发板,在拿到这个板子之后,十分欣喜,然而万恶的高通或者是淘宝卖家,只是孤零零的给了一个板子,除此以外啥也没有。没有电源,也没有相应的外接HDMI线。如图所示: 在一阵郁闷之后,还是老老实实的查阅DragonBoard 410c 的硬件白皮书,为其配置电源适配器和HD

2016-02-24 16:42:06 2212 2

原创 OpenVirtualization otzon 学习笔记

目录一、文件目录secure_api.hint open_session_from_ns (void *param) 调度命令方法处理来自于非安全世界的建立对话(通信)的请求int close_session_from_ns (void *param) 调度命令方法处理来自于非安全世界的关闭对话(通信)的请求int open_session_from_secure (int

2016-02-23 10:46:25 797 1

转载 arm指令集速查

指令集(快速查找) 在本文档的汇编语法中,用 # 前缀表示立即值,用 & 表示十六进制值,用 % 表示二进制值,用 {花括号} 表示指令中可选的设置字段或位。下面表格中粗体的指令是核心 ARM 指令,其他的是值得包含的位和片段、移位选项和汇编器助记码(mnemonic)... 还列出了协处理器指令。但是用于 RISC OS 机器的 ARM 处理器不支持协处理器,只在一个

2016-02-18 14:16:31 2660

原创 ARMv8 Fast Models 安装 SierraTEE

一.安装前的准备软件资源: 1.SierraTEE:Open Virtualication 官网提供的支持ARM v8的TEE框架,下载路径为http://openvirtualization.org/downloadsoftware.html 。 注意:此软件资源需要进行注册使用,不过注册不会进行检查,可以随意填写。2.SierraVisor:同上,为此官网提供的支持ARM v8 虚拟化功能,

2015-11-06 16:58:04 2073 1

原创 ARM V8 Fast Models 安装和使用

一. ARMv8 foundation Models这是ARM官网提供的一个固定虚拟平台 ,安装和使用比较简单,我们从这个开始。 1.首先,我们需要从官网下载ARM V8 Foundation Model压缩包(需要进行注册),压缩包为FE000-KT-00002-r9p4-59rel0.tgz,下载路径为https://silver.arm.com/download/download.tm?pv

2015-11-04 16:24:47 7046 1

原创 ARM V8框架结构下的开发平台

Juno ARM 开发平台Juno ARM开发平台(ADP)是一款 ARMv8-A 软件开发平台,它包括 Juno Versatile Express 开发板和一个从 Linaro 获得的 ARMv8-A 参考软件端口,Juno 软硬件平台提供给开发者和厂商一样的资源: - Cortex-A57 和 A53 多核 ARMv8 big.LITTLE Mali-T624 - 3D 图像加速和

2015-10-28 18:21:18 2101

转载 ARM虚拟化调研

===========ARM虚拟化调研报告=================================================调研报告,总的来说调研结果如下:1) 当前ARM虚拟化背景:a) 商用背景:虚拟化很早就有解决方案了,其中著名的是OKL4 Microvisor by OKL4, MVP by VMware,Red Bend Software, Trango,

2015-10-17 13:22:56 3072

翻译 seL4 内核服务、对象以及基本能力访问和控制

内核服务和对象微内核提供了一些有限的原始服务,更多复杂的服务要在这些原始服务基础上像应用程序一样实现。以此种服务,此系统的功能可以被拓展而不用增加特权模式下的代码和复杂度,虽然在应用程序域潜在的支持相当广泛的服务。 seL4 内核基本支持的服务如下:线程(Threads )是CPU支持应用程序运行的抽象化。地址空间(Address spaces)是一块包含一个应用程序的虚拟内存空间,应用程序只能使

2015-10-16 16:33:40 1805

翻译 seL4 参考手册目录

seL4 reference PDF 1.介绍:12.内核服务与对象:22.1 基于能力(capability)的访问控制:2 2.2 系统调用:3 2.3 内核对象:4 2.4 内核内存分配:5 2.4.1 重用内存:63.能力作用领域 3.1 能力和能力作用领域的管理 3.1.1 能力作用领域的创建 3.1.2 CNODE 方法 3.1.3 能力的权力 3.1.4 能力的推导

2015-10-16 16:18:12 1108

翻译 seL4系统调用

seL4 系统调用seL4微内核为线程间通信提供了一个消息传递服务。这个服务也被使用于内核提供的服务的通信中。这是一个标准的消息格式,每个消息包含了数据字以及有可能有一些能力。这些消息的结构体和编码被详细的在第四部分记载。线程通过调用他们能力空间中的能力来发送消息。当用这种方式调用一个终端节点的时候,消息需要经过内核传递到其他线程中。当内核对象的能力被调用时,这消息将会被解释成想一个关于内核对象类型

2015-10-15 17:47:53 1188

类QQ的聊天工具

实现了QQ主要界面及特效的实现程序,并实现了在线交流和消息提示等多种功能

2014-02-10

空空如也

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

TA关注的人

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