<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[clarkchen1021的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/clarkchenhot</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; clarkchenhot]]></copyright><item><title><![CDATA[树莓派3B运行OP-TEE]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/60883193</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/60883193</guid><author>clarkchenhot</author><pubDate>Wed, 08 Mar 2017 22:50:32 +0800</pubDate><description><![CDATA[需要设备 
电脑一台（我的是ubuntu14.04）、 
树莓派3B(op-tee支持的版本)包括电源、USB转串口模块（例CP2102模块）一、在电脑上编译OP-TEE安装需要的包：$sudo apt-get install git android-tools-adb android-tools-fastboot autoconf automake bc bison build-essential]]></description><category></category></item><item><title><![CDATA[linux内核地址空间和高端内存]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/59551586</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/59551586</guid><author>clarkchenhot</author><pubDate>Thu, 02 Mar 2017 16:59:58 +0800</pubDate><description><![CDATA[摘要：Linux 操作系统和驱动程序运行在内核空间，应用程序运行在用户空间，两者不能简单地使用指针传递数据，因为Linux使用的虚拟内存机制，用户空间的数据可能被换出，当内核空间使用用户空间指针时，对应的数据可能不在内存中。用户空间的内存映射采用段页式，而内核空间有自己的规则；本文旨在探讨内核空间的地址映射。



 

Linux内核地址空间划分


通常32位Linux内核虚]]></description><category></category></item><item><title><![CDATA[linux内核分析——简单代码反汇编为汇编代码分析]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/59197976</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/59197976</guid><author>clarkchenhot</author><pubDate>Wed, 01 Mar 2017 23:53:32 +0800</pubDate><description><![CDATA[main.c内容如下：
int g(int x)
{
  return x + 3;
}

int f(int x)
{
  return g(x);
}

int main(void)
{
  return f(8) + 1;
}
然后反汇编：
gcc –S –o main.s main.c -m32
生成main.s汇编文件，打开去掉前面有点“.”的行（这些行在汇编中没什么用起辅助作用]]></description><category></category></item><item><title><![CDATA[linux内核 信号]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/59109692</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/59109692</guid><author>clarkchenhot</author><pubDate>Wed, 01 Mar 2017 15:53:59 +0800</pubDate><description><![CDATA[本文简单介绍下Linux信号处理机制，为介绍二进制翻译下信号处理机制做一个铺垫。
本文主要参考书目《Linux内核源代码情景分析》《独辟蹊径品内核:Linux内核源代码导读》
首先，先说一下什么是信号。信号本质上是在软件层次上对中断机制的一种模拟，其主要有以下几种来源：


程序错误：除零，非法内存访问… 
外部信号：终端Ctrl-C产生SGINT信号，定时器到期产生SIGALRM…]]></description><category></category></item><item><title><![CDATA[言简意赅：中断中为何不能使用信号量，中断上下文为何不能睡眠]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/56014731</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/56014731</guid><author>clarkchenhot</author><pubDate>Mon, 20 Feb 2017 15:59:13 +0800</pubDate><description><![CDATA[不论是书上还是网上，对这块的解释，总是很凌乱，  让人不好理清。   大部分开发者可能也只知其然，不知所以然。
在网上找到一篇对此解释言简意赅，一看就懂的文章，故分享过来。


1、中断中为何不能使用信号量？
答： 信号量会导致睡眠。


2、中断上下为何不能睡眠？
以下为转载： http://blog.chinaunix.NET/uid-7332782-id-3213376.h]]></description><category></category></item><item><title><![CDATA[gem5 full system全模式下运行linux系统]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/53618003</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/53618003</guid><author>clarkchenhot</author><pubDate>Tue, 13 Dec 2016 23:28:49 +0800</pubDate><description><![CDATA[1.      Linux镜像下载：http://www.m5sim.org/Download

选择X86下的Full System Flies和Alpha下的Full System Files下载到本地。
在gem5文件下新建文件夹为：full_system_images，把上面第一个文件复制到该文件夹下（第二个拿过来也没关系）：




解压两个文件：tar jxf ***]]></description><category></category></item><item><title><![CDATA[Ubuntu14.04编译安装gem5]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/53116770</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/53116770</guid><author>clarkchenhot</author><pubDate>Thu, 10 Nov 2016 16:34:44 +0800</pubDate><description><![CDATA[ubuntu需要是64位的：具体可去官网查看
gem5最新下载：http://repo.gem5.org/
1、点击第二个bz2下载:


源码编译安装前需要一些依赖：http://www.m5sim.org/Dependencies


很幸运的是，都可以通过apt-get install 进行安装：
2、安装依赖包
$sudo apt-get install g++
$su]]></description><category></category></item><item><title><![CDATA[WebSocket的原理，以及和Http的关系]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/52754478</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/52754478</guid><author>clarkchenhot</author><pubDate>Sat, 08 Oct 2016 10:29:27 +0800</pubDate><description><![CDATA[一、WebSocket是HTML5中的协议，支持持久连接；而Http协议不支持持久连接。

首先HTMl5指的是一系列新的API,或者说新规范，新技术。WebSocket是HTML5中新协议、新API.

Http协议本身只有1.0和1.1，也就是所谓的Keep-alive，把多个Http请求合并为一个。

 

二、WebSocket是什么样的协议，具体有什么优点。

首先，]]></description><category></category></item><item><title><![CDATA[wordpress 修改固定连接提示页面404错误]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/52177613</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/52177613</guid><author>clarkchenhot</author><pubDate>Thu, 11 Aug 2016 00:29:35 +0800</pubDate><description><![CDATA[1、sudo vi /etc/apache2/apache2.conf2、把WordPress下的 .htaccess文件权限和所有者改为（如果不是的话）chmod 666 .htaccess3、允许自动写入sudo a2enmod rewrite4、重启apache服务器sudo /etc/init.d/apache2 restart现在重新设置固定连接即可生效：（可以先修改为默认的朴素-》保存更]]></description><category></category></item><item><title><![CDATA[UbuntuServer14.04下搭建LAMP环境]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/52153409</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/52153409</guid><author>clarkchenhot</author><pubDate>Mon, 08 Aug 2016 16:56:05 +0800</pubDate><description><![CDATA[copy from:http://www.cnblogs.com/myzhibie/p/4330327.html

对于很多PHP初学开发者来讲，搭建一个可用于生产的LAMP环境是一件费时费力的事情，本文以 ubuntu-server14.04为例，给出一个搭建环境的教程，供大家参考；

 1.更新软件源

sudo  apt-get update


2.安装Apache]]></description><category></category></item><item><title><![CDATA[ultraEdit格式化代码]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/52129067</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/52129067</guid><author>clarkchenhot</author><pubDate>Fri, 05 Aug 2016 14:52:07 +0800</pubDate><description><![CDATA[以C语言为例：
高级->配置工具：


命令行为：
"D:\Program Files\UltraEdit\GNU\astyle.exe" --style=ansi "%f"
其中前面为你的ultraEdit的安装目录中的GNU\astyle.exe目录，注意上面有2个引号


点击输出：改为如下


就有这个选项了，然后打开一个C文件，就可以格式化了。]]></description><category></category></item><item><title><![CDATA[windows7下eclipse编写python——eclipse配置]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/52101213</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/52101213</guid><author>clarkchenhot</author><pubDate>Wed, 03 Aug 2016 11:11:05 +0800</pubDate><description><![CDATA[一、准备工作
所需3个软件：


1、首选你电脑已经安装了python，我这里安装的是python3.5，要记得安装目录。


2、下载PyDev for Eclipse(目前最新版本5.1.2更新时间2016-6-23): https://sourceforge.net/projects/pydev/
此版本PyDev要求：requires Java 8 and Eclipse ]]></description><category></category></item><item><title><![CDATA[Python解释执行原理]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/52092209</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/52092209</guid><author>clarkchenhot</author><pubDate>Tue, 02 Aug 2016 10:56:52 +0800</pubDate><description><![CDATA[这里的解释执行是相对于编译执行而言的。我们都知道，使用C/C++之类的编译性语言编写的程序，是需要从源文件转换成计算机使用的机器语言，经过链接器链接之后形成了二进制的可执行文件。运行该程序的时候，就可以把二进制程序从硬盘载入到内存中并运行。

      但是对于Python而言，python源码不需要编译成二进制代码，它可以直接从源代码运行程序。当我们运行python文件程序的时候，pyth]]></description><category></category></item><item><title><![CDATA[ubuntu server 14.04 编译安装xen4.4.2配置vtpm（三）——创建DomU（a PV VM）]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/52056140</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/52056140</guid><author>clarkchenhot</author><pubDate>Thu, 28 Jul 2016 16:15:34 +0800</pubDate><description><![CDATA[为了创建的半虚拟化VM能上网，在domain0中需设置网桥：
#vi /etc/network/interface
修改如下：
# The loopback network interface
auto lo
iface lo inet loopback

#The primary network interface
#auto eth0
#iface eth0 inet dhcp
auto]]></description><category></category></item><item><title><![CDATA[Makefile 中:= = ?= += 的区别]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/52055270</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/52055270</guid><author>clarkchenhot</author><pubDate>Thu, 28 Jul 2016 14:55:54 +0800</pubDate><description><![CDATA[在Makefile中我们经常看到= := ?= +=这几个赋值运算符，那么他们有什么区别呢？我们来做个简单的实验
 
新建一个Makefile，内容为：
ifdef DEFINE_VRE
   VRE = “Hello World!”
else
endif
 
ifeq ($(OPT),define)
   VRE ?= “Hello World! First!”
endif]]></description><category></category></item><item><title><![CDATA[unix socket编程]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/51919843</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/51919843</guid><author>clarkchenhot</author><pubDate>Fri, 15 Jul 2016 17:43:19 +0800</pubDate><description><![CDATA[“一切皆Socket！”

话虽些许夸张，但是事实也是，现在的网络编程几乎都是用的socket。

——有感于实际编程和开源项目研究。

我们深谙信息交流的价值，那网络中进程之间如何通信，如我们每天打开浏览器浏览网页时，浏览器的进程怎么与web服务器通信的？当你用QQ聊天时，QQ进程怎么与服务器或你好友所在的QQ进程通信？这些都得靠socket？那什么是socket？socket的类型]]></description><category></category></item><item><title><![CDATA[C 语言中 extern 的用法,举例介绍]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/51917829</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/51917829</guid><author>clarkchenhot</author><pubDate>Fri, 15 Jul 2016 14:56:17 +0800</pubDate><description><![CDATA[C 语言中 extern 的用法
在 在 C  语言中，修饰符 extern  用在变量或者函数的声明前，用来说明“此变量/ 函数是在
别处定义的，要在此处引用”。
1. extern  修饰变量的声明。
举例来说，如果文件 a.c  需要引用 b.c  中变量 int v ，就可以在 a.c  中声明 extern int v ，
然后就可以引用变量 v。 。 能够被其他模块以 ext]]></description><category></category></item><item><title><![CDATA[linux下的库函数.so和.a]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/51894727</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/51894727</guid><author>clarkchenhot</author><pubDate>Wed, 13 Jul 2016 09:28:45 +0800</pubDate><description><![CDATA[Linux下的.so是基于Linux下的动态链接,其功能和作用类似与windows下.dll文件。


下面是关于.so的介绍:


一、引言


通常情况下，对函数库的链接是放在编译时期（compile time）完成的。所有相关的对象文件（object file）与牵涉到的函数库（library）被链接合成一个可执行文件（executable file）。程序在运行时，与函数]]></description><category></category></item><item><title><![CDATA[双指针的作用]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/51881433</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/51881433</guid><author>clarkchenhot</author><pubDate>Mon, 11 Jul 2016 15:52:30 +0800</pubDate><description><![CDATA[用法1：

用作函数的返回值，比较常见的是返回分配的堆内存地址。

下面用一个例子进行说明下：





[cpp] view
 plain copy


 print?



/*****************************************************************************/  
/** 
* \b]]></description><category></category></item><item><title><![CDATA[ucosii 多事件同步机制-读写者例子]]></title><link>https://blog.youkuaiyun.com/clarkchenhot/article/details/51583103</link><guid>https://blog.youkuaiyun.com/clarkchenhot/article/details/51583103</guid><author>clarkchenhot</author><pubDate>Sat, 04 Jun 2016 10:19:31 +0800</pubDate><description><![CDATA[课程所需，看了看ucosii代码，写了个ppt如下：
http://download.youkuaiyun.com/detail/clarkchenhot/9540875
例子介绍：


下面贴个读写者的例子代码：
#include "..\ucos\includes.h"

#define TASK_STK_SIZE   512]]></description><category></category></item></channel></rss>