<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zhyjunFov的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zhyjunFov</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zhyjunFov]]></copyright><item><title><![CDATA[内核自旋锁spin_lock]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/71159147</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/71159147</guid><author>zhyjunFov</author><pubDate>Thu, 04 May 2017 10:56:53 +0800</pubDate><description><![CDATA[自旋锁的初衷：在短期间内进行轻量级的锁定。一个被争用的自旋锁使得请求它的线程在等待锁重新可用的期间进行自旋(特别浪费处理器时间)，所以自旋锁不应该被持有时间过长。如果需要长时间锁定的话, 最好使用信号量。

单处理器的自旋锁：

首先，自旋锁的目的如果在系统不支持内核抢占时，自旋锁的实现也是空的，因为单核只有一个线程在执行，不会有内核抢占，从而资源也不会被其他线程访问到。其次，支持内核抢占]]></description><category></category></item><item><title><![CDATA[内核抢占API]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/71159135</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/71159135</guid><author>zhyjunFov</author><pubDate>Thu, 04 May 2017 10:55:57 +0800</pubDate><description><![CDATA[早期的Linux核心是不可抢占的。它的调度方法是：一个进程可以通过schedule()函数自愿地启动一次调度。非自愿的强制性调度只能发生在 每次从系统调用返回的前夕以及每次从中断或异常处理返回到用户空间的前夕。但是，如果在系统空间发生中断或异常是不会引起调度的。这种方式使内核实现得以 简化。但常存在下面两个问题：

如果这样的中断发生在内核中,本次中断返回是不会引起调度的,而要到最初使CPU从]]></description><category></category></item><item><title><![CDATA[内核抢占1]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/71159079</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/71159079</guid><author>zhyjunFov</author><pubDate>Thu, 04 May 2017 10:51:58 +0800</pubDate><description><![CDATA[一、什么叫抢占
所谓抢占，说白了就是进程切换。
linux的用户空间，进程A在执行中，来(硬？)中断打断A，从中断处理程序返回时，如果有更高优先级进程B在排队的话，那么执行进程B。 用户空间下进程总是可抢占的


在linux的内核空间就不一定了，linux 2.4是不可抢占的，实时性就会降低，如下面这个样子：


二、抢占的API
preempt_enable()  开启抢占]]></description><category></category></item><item><title><![CDATA[OpenVirutualization的Trustzone安全内核SierraTEE架构解析]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/64906178</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/64906178</guid><author>zhyjunFov</author><pubDate>Wed, 22 Mar 2017 11:08:39 +0800</pubDate><description><![CDATA[安全内核服务架构
重要的数据结构：
 
struct sw_global global_val;
 
/**
 *@brief
 Secure API configuration details for task
 */
typedef struct sa_config_t
 
创建任务
以创建dispatcher任务为例。
1. 初始化任务。dispatch_task_]]></description><category></category></item><item><title><![CDATA[TrustICE: Hardware-assisted Isolated Computing Environments on Mobile Devices]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/64905367</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/64905367</guid><author>zhyjunFov</author><pubDate>Wed, 22 Mar 2017 10:27:27 +0800</pubDate><description><![CDATA[本ppt是对信息安全综合类顶级学术会议可靠网络与系统DSN2015上的一篇文章的分析，文章利用Trustzone实现了类似于SGX Enclave的安全架构，首次将Trustzone的安全应用部署在了Trustzone普通世界里。利用freescale开发板特有的内存水印技术，以及对硬件中断处理，异常向量表，CPU模式切换事件的拦截，在普通世界里实现了与安全世界等价的CPU状态隔离，运行时内存隔离]]></description><category></category></item><item><title><![CDATA[InkTag: Secure Applications on an Untrusted Operating System]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/62898420</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/62898420</guid><author>zhyjunFov</author><pubDate>Fri, 17 Mar 2017 20:52:11 +0800</pubDate><description><![CDATA[本ppt是对计算机体系结构顶级学术会议ASPLOS2013上的一篇文章进行的解读。Inktag安全系统利用Intel硬件虚拟化技术，针对云计算应用场景，为保障用户的敏感应用，隐私数据提供隔离保护，利用虚拟化中的nested page技术，确保不可信的OS只能以密文形式访问敏感应用的内存数据。该方案针对强大的操作系统敌手，即使在云主机，云OS不可信的情况下，仍能保证应用和数据的安全。完美适应云计算等]]></description><category></category></item><item><title><![CDATA[用户空间缺页异常pte_handle_fault()分析]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/62898213</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/62898213</guid><author>zhyjunFov</author><pubDate>Fri, 17 Mar 2017 20:29:06 +0800</pubDate><description><![CDATA[前面简单的分析了内核处理用户空间缺页异常的流程，进入到了handle_mm_fault()函数，该函数为触发缺页异常的地址address分配各级的页目录，也就是说现在已经拥有了一个和address配对的pte了，但是这个pte如何去映射物理页框，内核又得根据pte的状态进行分类和判断，而这个过程又会牵扯出一些其他的概念……这也是初读linux内核源码的最大障碍吧，在一些复杂的处理中，一个点往往可以]]></description><category></category></item><item><title><![CDATA[内核文件加载执行控制方案实现(win7, win8 64位)--windows内核安全策略的演变]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/62897715</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/62897715</guid><author>zhyjunFov</author><pubDate>Fri, 17 Mar 2017 20:16:57 +0800</pubDate><description><![CDATA[对于xp和32位win7系统，内核层文件加载执行控制主要是通过对系统服务描述符表(SSDT)进行hook来实现。在64位系统下，由于patchguard内核防护技术的存在，SSDT等关键的内核数据结构已无法被第三方驱动程序修改。patchguard技术在windows内核启动阶段开启安全定时器，并对SSDT等关键数据结构的完整性进行定期检查，一旦发现这些数据结构被修改，则立即转入紧急处理模式(多数]]></description><category></category></item><item><title><![CDATA[内核文件加载执行控制方案实现(xp和win 7 32)]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/62895809</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/62895809</guid><author>zhyjunFov</author><pubDate>Fri, 17 Mar 2017 19:51:19 +0800</pubDate><description><![CDATA[文件加载执行控制是程序白名单安全系统的技术基础，即在可执行文件(exe)，库文件(dll)加载入内存前的一种监控机制，为安全软件提供了一种对系统允许加载运行的程序进行白名单定制的机会。在windows平台下，该方案可以实现在应用层，也可以以设备驱动的形式实现在内核层。若实现在应用层，则需要对explorer.exe和cmd.exe两个系统进程进行运行时代码注入，以分别监控由图形界面和命令行启动的程]]></description><category></category></item><item><title><![CDATA[Trustzone安全内核SierraTEE将根文件系统从虚拟盘移至sd卡方案]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/62894566</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/62894566</guid><author>zhyjunFov</author><pubDate>Fri, 17 Mar 2017 19:01:47 +0800</pubDate><description><![CDATA[s3c6410 支持Nand Flash本地启动Linux,包括内核,根文件系统,bootloader均写入在Nand Flash.这样可以独立运行.


  很多情况下,Nand Flash的某种原因无法写入内核和Rootfs.而使用tftp下载内核,用NFS启动根文件系统比较慢.s3c6410 支持 SD卡启动，经过改造u-boot可以从SD卡引导内核,这样而Linux 又可以从SD卡的]]></description><category></category></item><item><title><![CDATA[(TrustCom 2015)基于Trustzone的智能手机双因子认证通用安全架构]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/62892878</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/62892878</guid><author>zhyjunFov</author><pubDate>Fri, 17 Mar 2017 18:01:45 +0800</pubDate><description><![CDATA[本PPT是本人发表在TrustCom2015 大会的论文 TrustTokenF: a Generic Security Framework for Mobile Two-factor Authentication Using TrustZone的会议报告PPT，该论文介绍了使用智能手机代替专有硬件令牌(U盾，银行卡等)实现的通用双因子认证安全架构。方案解决了硬件令牌双因子认证协议操作复杂，部署困]]></description><category></category></item><item><title><![CDATA[三星KNOX中Trustzone内核完整性动态度量方案(TIMA架构)解析]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/62892195</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/62892195</guid><author>zhyjunFov</author><pubDate>Fri, 17 Mar 2017 17:34:26 +0800</pubDate><description><![CDATA[三星TIMA方案利用Trustzone安全模块对普通世界操作系统内核提供运行时完整性保护，即使操作系统被攻击者控制，也无法(1)修改原有合法内核代码(2)注入新的内核恶意代码(3)实施return-to-user攻击，将用户空间恶意代码在内核层运行。
这种设计思路的最大挑战在于正常世界对自己的系统资源具有完全的控制权，如物理内存，页表及相应的控制寄存器，一旦操作系统被敌手攻破，完全可以通过修改页]]></description><category></category></item><item><title><![CDATA[Trustzone安全内核Open Virtualization SierraTEE向Xilinx ZC702移植手册]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/62891237</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/62891237</guid><author>zhyjunFov</author><pubDate>Fri, 17 Mar 2017 16:48:02 +0800</pubDate><description><![CDATA[本文档描述将OV项目向ZC702开发板移植的过程。
 
第一章．       环境搭建
ZC702开发板可以通过SD卡和网络两种方式启动，但是从SD卡启动方式在每次OS内核变化时就需要替换SD卡中的旧OS内核，需要重复插拔SD卡，太过繁琐，不如从网络方式启动方便。这一章便描述如何建立ZC702的网络启动方式，方便以后修改OV内核。
网络环境搭建
ZC702板和开发主机Host按照下图进行]]></description><category></category></item><item><title><![CDATA[Controlled-Channel Attacks: Deterministic Side Channels for Untrusted Operating Systems]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/62889777</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/62889777</guid><author>zhyjunFov</author><pubDate>Fri, 17 Mar 2017 16:10:33 +0800</pubDate><description><![CDATA[本PPT是对发表在Security&Privacy 2015 上的一篇文章的研读和解析，该论文介绍了一种针对InkTag,Haven两类主流shielding system提出的一种确定性控制侧信道攻击。Inktag和Haven主要针对不可信的云主机，云OS，利用可信硬件(hypervisor和Intel SGX)为云端敏感应用和隐私数据提供隔离保障。该攻击基于操作系统敌手对敏感应用的页错误中断的]]></description><category></category></item><item><title><![CDATA[epoll与线程池实现的服务器端示例]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/41278711</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/41278711</guid><author>zhyjunFov</author><pubDate>Wed, 19 Nov 2014 10:55:34 +0800</pubDate><description><![CDATA[[代码] [C/C++]代码

/* Linux 2.6 x86_64 only*/
#include  
#include  
#include  
#include  
#include  
#include 
 
#include  
#include  
#include 
#include  
 
#define THREAD_MAX 20 
#defin]]></description><category></category></item><item><title><![CDATA[fstab]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/30254977</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/30254977</guid><author>zhyjunFov</author><pubDate>Thu, 12 Jun 2014 15:44:13 +0800</pubDate><description><![CDATA[主要翻译自http://www.tuxfiles.org/linuxhelp/fstab.html，根据自己的理解做了修改和补充 可能玩Linux的朋友都知道fstab这个文件，如果要用好linux，熟悉linux的一些核心配置文件是必要的，而fstab则是其中之一。这个文件描述系统中各种文件系统的信息，应用程序读取这个文件，然后根据其内容进行自动挂载的工作。因此，我们需要理解其中的内容，了解它如]]></description><category></category></item><item><title><![CDATA[Linux udev 的原理、功能、使用和维护]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/30252059</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/30252059</guid><author>zhyjunFov</author><pubDate>Thu, 12 Jun 2014 15:20:22 +0800</pubDate><description><![CDATA[如果你使用Linux比较长时间了，那你就知道，在对待设备文件这块，Linux改变了几次策略。在Linux早期，设备文件仅仅是是一些带有适当 的属性集的普通文件，它由mknod命令创建，文件存放在/dev目录下。后来，采用了devfs, 一个基于内核的动态设备文件系统，他首次出现在2.3.46内核中。Mandrake，Gentoo等Linux分发版本采用了这种方式。devfs创建 的设备文件是动态的]]></description><category></category></item><item><title><![CDATA[Linux修改eth2到eth0]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/30064631</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/30064631</guid><author>zhyjunFov</author><pubDate>Wed, 11 Jun 2014 16:00:05 +0800</pubDate><description><![CDATA[之前在公司提供的虚拟机器上面，一直有个问题用着很不舒服，为什么它的IP选择的设备的eth2的，但是我在/etc/sysconfig/network-scrpts/下面也没有找到ifcfg-eth2的配置文件，这样子，我就没法修改IP了，也没法使用静态IP了，每次都是虚拟机动态分配的IP，这个太麻烦了。有时间解决了下这个问题。首先我声明下，我这里是用的NAT的方式与主机相连的。其实我到现在也还没有弄]]></description><category></category></item><item><title><![CDATA[XEN网络配置综述]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/30038669</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/30038669</guid><author>zhyjunFov</author><pubDate>Wed, 11 Jun 2014 11:10:01 +0800</pubDate><description><![CDATA[Xen网络概览Xen可配置让它的虚拟机(VMs)：使用已有的网络与IP地址.使用新创建的私有IP地址段.Xen在/etc/xen/xend-config.sxp有3个主要配置:...







Xen网络概览

Xen可配置让它的虚拟机(VMs)：


使用已有的网络与IP地址.
使用新创建的私有IP地址段.


Xen在/etc/xen/xend-confi]]></description><category></category></item><item><title><![CDATA[80386ASM程序设计基础(十)：段描述符，段选择子(zz)]]></title><link>https://blog.youkuaiyun.com/zhyjunFov/article/details/27110205</link><guid>https://blog.youkuaiyun.com/zhyjunFov/article/details/27110205</guid><author>zhyjunFov</author><pubDate>Mon, 26 May 2014 21:01:17 +0800</pubDate><description><![CDATA[主要介绍段描述符，段选择子




   在保护模式下，段是实现虚拟地址到线性地址转换的基础。在保护方下，每个段有三个参数：段基址，段界限，段属性。段基址规定了线性地址空间中段的开始地址，段基址长度为32位，所以任何一个段都可以从32位线性地址空间中的任何一个字节开始，这一点和实式方式不同，实式方式下要求段的边界必须被16整除。段界限规定段的大小，段界限用20位表示，而且段界限可以是字节]]></description><category></category></item></channel></rss>