SELinux简介


 LOCK

一、 SELinux 来源

        SELinux 即Security-Enhanced Linux, 由美国国家安全局(NSA)发起, Secure Computing Corporation (SCC) 和 MITRE 直接参与开发, 以及 很多研究机构(如犹他大学)一起参与的强制性安全审查机制, 该系统最初是作为一款通用访问软件,发布于 2000 年 12 月(代码采用 GPL 许可发布)。并在Linux Kernel 2.6 版本后, 有直接整合进入SELinux, 搭建在Linux Security Module(LSM)基础上, 目前已经成为最受欢迎,使用
最广泛的安全方案.

二、SELinux 基本架构与原理

       SELinux 是典型的MAC-Mandatory Access Controls 实现, 对系统中每个对象都生成一个安全上下文(Security Context),每一个对象访问系 统的资源都要进行安全上下文审查。审查的规则包括类型强制检测(type enforcement), 多层安全审查(Multi-Level Security), 以及基于角色 的访问控制(RBAC: Role Based Access Control)。

SELinux 搭建在Linux Security Module(LSM)基础上, 关于 LSM 架构的详细描述请参见文章 《 Linux Security Modules: General Security Support for the Linux Kernel 》,该文章在 2002 年的 USENIX Security 会议上发表。有完整的实现LSM 的所有hook function 。

SELinux 的整体结构如下图所示:

selinux框架

SELinux 包含五个基本组成:

  • 用于处理文件系统的辅助模块, 即SELinuxFS
  • 集成Linux Security Modules 的hooks sets
  • Security Policy Database
  • Security Label 验证模块
  • Access Vector Cache (AVC), 访问向量缓存,以便提高验证速度

基本的访问流程如下图所示:

访问流程图

流程如下:

  • 进程通过系统调用(System Call) 访问某个资源, 进入Kernel 后, 先会做基本的检测, 如果异常则直接返回
  • Linux Kernel DAC 审查, 如果异常则直接返回
  • 调用Linux Kernel Modules 的相关hooks, 对接到SELinux 的hooks, 进而进行MAC 验证, 如果异常则直接返回
  • 访问真正的系统资源
  • 返回用户态, 将结构反馈

Android 系统应用显示单位,密度及资源调用说明


Android studio

1、 应用显示单位 dp、px、pt、sp 简介。

Android 应用在进行布局设计时候,经常用到各种单位,下面简单介绍一下各种单位及其应用范围:

dp(dip) — 设备独立像素( device independent pixels ),是一种独立于设备的显示单元,其显示的大小根据设备的不同有所差异,在 Android系统中,是按照160dpi的像素作为参考值来匹配不同的PPI的设备的。

如:使用240dpi的设备,其使用1dp的值等于1.5px,其计算公式为 dp = px * (PPI / 160)。

px — 像素( pixels ),是根据实际物理像素,其在不同的分辨率的设备上都是有相同的像素点数。

pt — 点( point ),是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;

sp — 放大像素(scaled pixels),主要用于字体显示,是一个字体的显示单位。

注明:实际在apk布局设计中,使用dp适配不同的密度,同样尺寸的屏幕,可以保证拥有同样的显示大小,而使用px的,会呈现不同大小,因此,dp常用在布局设计当中,而px常用在需要补充布局的细节。

pt 用在打印,是在输出时候才会使用,而sp仅用于字体。

2、 Android 系统密度-density。

Android 系统常用的密度有120、160、240、320、480,其对应关系如下:

当屏幕density=480时,使用xxhdpi标签的资源
当屏幕density=320时,使用xhdpi标签的资源。
当屏幕density=240时,使用hdpi标签的资源
当屏幕density=160时,使用mdpi标签的资源
当屏幕density=120时,使用ldpi标签的资源。

3、密度的计算方法:

通常是根据屏的物理尺寸和实际分辨率来计算的,其公式如下:

dpi = √(w*w + h*h) / 屏的尺寸

如:800 * 480 的 7 寸屏,其密度为:133.27,取其最接近的值为120 PPI。

4、ADB 修改density的方法。

在adb中输入 wm size 即可以查看分辨率,而输入wm density即可以查看密度。

使用wm density 160,即可以修改密度为160。

 

Windows平台个性化定制文件夹指南


folder
现在有很多的应用程序将自己的所在文件夹做得很个性,方便用户的点击和查找,而如何制作这样子的个性化的文件夹呢?现在我来给大家说一下,常见的一些功能的制作方法。
继续阅读“Windows平台个性化定制文件夹指南”