魅族内核团队

一个有内涵的技术分享平台

指纹 TEE

指纹 TEE TEE 介绍 TEE 架构 TEE 启动流程 TEE 应用场景以及前景 指纹硬件原理 指纹硬件原理 指纹通信接口与硬件资源 指纹软件框架 指纹TEE软件框架 指纹软件机制 一、TEE 介绍 1. TEE 架构TEE(Trusted Execution Environment) 是基于 ARM TrustZone 技术拓展而来的,TrustZone 技术是基于 A......

dump_stack 实现分析

1 简介说起 dump_stack() ,相信从事 Linux 内核或者驱动相关开发的同行对于此函数肯定不陌生。我们经常会用到此函数来对自己的代码进行 debug,可以快速帮助开发者理清函数调用流程,或者说解决 bug…… 首先我们来看一下 dump_stack 的打印,相信很多人都遇到过 : 123456789101112131415161718192021222324252627[ ......

搭建 Jenkins 服务指南

前言如果常常需要给其他相关部门输出固件验证问题,那么用 Jenkins 搭建一个自动化的编译环境会是一个不错的选择。这篇文章简单的介绍了 Jenkins 的基本使用,及如何利用插件进行权限的管理,邮件的发送设置。 一 . 在 Ubuntu 上搭建 jenkins 在终端上执行 1wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-c......

Android 中的设计模式 —— 单例模式

设计模式简介当我们讨论设计模式的时候,其实我们在讨论面向对象的设计问题。 软件设计中很多问题都会一次又一次的重复出现,而经过一定的总结之后会有一些优秀的解法沉淀下来,可以用于以后出现的类似问题,我们把这些解法叫做设计模式。 软件的生命周期决定了其设计要尽可能地面对(需求)改变,所以在开发和维护过程中,面临的较大问题,除了解决问题的关键点,另一个就是解决需求变更和扩展所带来的代码结构变化问题。......

Android M 外部存储剖析

这篇文章是建立在你已经对 Android 外部存储的基础知识有一定了解的基础之上,如果之前并不是太了解这个部分,阅读起来可能会比较费劲,可以先阅读参考下面文章:http://blog.csdn.net/zjbpku/article/details/25161131 Android M 外部存储的变化从 Android 6.0 开始,Android 支持移动存储(adoptable sto......

Linux Interrupt

在面试的时候我们常常被问及一个问题:几种中断下半部机制 softirq、tasklet、workqueue 有什么区别?Linux 为什么要设计这几种机制?真正能够回答清楚的人还是少数的。下面我们就详细分析一下这其中的区别。 本文的代码分析基于 Linux kernel 3.18.22 和 arm64 架构,最好的学习方法还是 “RTFSC” 1. Linux 中断arm64 和其他所有......

Linux Workqueue

Workqueue 是内核里面很重要的一个机制,特别是内核驱动,一般的小型任务 (work) 都不会自己起一个线程来处理,而是扔到 Workqueue 中处理。Workqueue 的主要工作就是用进程上下文来处理内核中大量的小任务。 所以 Workqueue 的主要设计思想:一个是并行,多个 work 不要相互阻塞;另外一个是节省资源,多个 work 尽量共享资源 ( 进程、调度、内存 ),......

SELinux 安全策略解析

1、简介SELinux 是 Security-Enhanced Linux 的简称,是美国国家安全局(NSA=The National Security Agency) 和 SCC(Secure Computing Corporation)开发的基于 Linux 的一个强制访问控制安全模块扩展。原先是在 Fluke 上开发的,2000 年以 GNU GPL 协议发布。对于目前可用的 Linu......

BFS 调度器移植体验

IntroductionBFS 全称 Brain Fuck Scheduler. 至于为什么叫这个名字,可以参考 BFS-FAQFAQ. 作者 Con Kolivas 在介绍中表示,BFS 的设计的初衷是带来更好的桌面交互式体验,特别是对于大多数的低规格机器. Android 也曾经评估过 BFS, 测试的结果对用户体验没有明显的改进,因此并没有最终导入. 通过一些第三方机构的测试数据来看,......

Linux 死锁检测模块 Lockdep 简介

死锁概念死锁是指多个进程(线程)因为长久等待已被其他进程占有的的资源而陷入阻塞的一种状态。当等待的资源一直得不到释放,死锁会一直持续下去。死锁一旦发生,程序本身是解决不了的,只能依靠外部力量使得程序恢复运行,例如重启,开门狗复位等。 Linux 提供了检测死锁的机制,主要分为 D 状态死锁和 R 状态死锁。 D 状态死锁 进程等待 I/O 资源无法得到满足,长时间(系统默认配置 120 秒......