自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(165)
  • 资源 (3)
  • 收藏
  • 关注

原创 FreeBSD的包管理

FreeBSD下安装软件不是Ubuntu的apt-get,也不是Gentoo的portage。有三种方法:packageports自主进行源码编译安装

2014-06-09 22:03:30 3273

原创 解决Ubuntu下安装VMware错误could not open /dev/vmmon

在安装VMware并启动新建的虚拟系统时,会出现错误could not open /dev/vmmon。一般情况下,这是由于ubuntu系统gcc版本的问题。我机器上是gcc-4.5,于是我将其修改为gcc-4.6,方法如下

2014-06-09 01:31:02 7280

原创 Linux内核设计基础(四)之虚拟文件系统

先来看一下写文件函数write的执行过程:ret = write()

2014-06-09 00:09:52 2323

原创 Linux内核设计基础(三)之定时器和时间管理

内核知道连续两次时钟中断

2014-06-08 02:50:48 1991

原创 Linux内核设计基础(一)之中断处理

如果让内核定期对设备进行轮询,以便处理设备,那会做很多无用功,如果能让设备在需要内核时主动通知内核,会是一个聪明的方式,这便是中断。

2014-06-08 01:26:32 2278

原创 找BUG

近日在写一个简易的操作系统,经常受到bug的偷袭,由于开发OS的特殊性,一些常规的debug手段用不上,于是打算记录下自己的debug过程,用于交流。Problem:在做图层叠加时,引入结构体SHTCTL进行各个图层的管理,但遭遇了黑屏,原因可能来自于图层管理模块、内存管理模块或其他未知原因。Solution:恢复到上次不黑屏的版本(即去掉图层管理模块),果然可以进行显示。在此基础

2014-05-27 20:26:37 1368

原创 编程语言,一路走来

人类发明了编程语言,本是为了能控制机器。计算机越来越强大,编程语言也不断革新。于是我大胆地认为,编程语言的意义将超越对机器的控制,它或许是一种文明的出发点——机器人文明。为了能更好地展望编程语言,让我们先来回顾一下它的发展历程。 程序设计语言的发展经历了五代:第一代语言:机器语言第二代语言:汇编语言(亦称符号语言)第三代语言:高级语言

2014-05-21 21:02:08 5254 3

原创 基于低压电量采集平台DW710C的基础开发

实验课题(1)自定义通信规约,采用java或C++编写简单的PC端上位机软件,实现采集器与PC机的通信。实验可在DW710C-PC工程下进行。(2)实现LCD显示字符、数字、汉字和简单的图像,并能根据上位机发送的命令做相应的显示。此实验需要掌握LCD屏幕的显示原理(可参考LCD屏幕指导手册),并编写程序控制LCD显示(可参考工程DW710C-LCD);知道如何用字模提取软件提取字模;另外还

2014-05-20 08:30:26 1884

原创 Linux 0.11中write实现

看了一下Linux 0.11版本write的实现,首先它在标准头文件unistd.h中有定义int write(int fildes, const char * buf, off_t count);接下来看write.c/* * linux/lib/write.c * * (C) 1991 Linus Torvalds */#define __LIBRARY__

2014-04-27 21:08:19 2279

原创 Windows下使用GitHub

GitHub是一个很不错的代码管理工具。我们修改完代码,只需几条命令,便能同步到github,这样partner便会将它clone到自己机子上。省了用U盘或qq、ftp的传输,非常适合团队开发。而且支持OpenSource。这里通过演示一个项目(NITIAN-W)的开发来详细介绍一下windows下如何使用git。

2014-04-26 18:52:30 2001

原创 低压电量采集平台DW710C与PC的通信

采集器的一个485接口与RS-485与RS-232转换模块的485端相连,RS-485与RS-232转换模块的232端通过串口线与PC的232串口相连,我们通过编写上位机串口通信软件和运行在采集器中的程序实现二者的通信。1)上位机软件:采用MFC,主要利用串口函数SetCommState、WriteFile和ReadFile进行串口设置、发送和接收。具体程序如下:void CCompl

2014-04-22 16:13:20 1931

翻译 黑盒之嵌入式操作系统鲁棒性研究

这里选用MicroC/OS-II,进行操作系统鲁棒性的探究,采用黑盒方法

2014-04-22 12:59:08 1733

翻译 基于r-Kernel的LiteOS操作系统

LiteOS是应用于资源受限的传感网络的一种基于线程的类UNIX操作系统。它采用r-kernel内核,r-kernel有三个特征

2014-04-21 21:15:21 6136

原创 基于物联网技术和RFID电子客票的铁路自动检票机

RFID电子客票具有检阅速度快、信息量大、安全性高和快速物理定位的独特优势,随着标准的统一和成本的降低,它在铁路上有着巨大的应用前景,同时鉴于车站对物联网化的需求,我们设想出新一代的检票机,它有着比已有检票机更广泛、更安全的信息采集和处理,帮助检票厅实现物联网化。

2014-04-20 16:21:20 3426

原创 智能家居中的物联网网关的可信计算平台模块(TPM)设计

摘要:随着智能家居的普及,安全性问题的研究已成当务之急。针对物联网网关自身的易受攻击性和网络传输过程中的信息窃听,我们分别采用SHA-1和AES算法对网关中的操作系统和节点采集的信息进行验证和加密,在一定程度上实现可信。我们创造性地将可信模块与网关平台进行解耦,利于可信模块的升级和维护。 简介:智能家居通过物联网技术将家中的各种设备(如照明系统、空调控制、安防系统)连接到一起。智能

2014-04-20 16:11:54 6135 5

原创 移动计算为王——我眼中的下一代计算机产业

随着苹果公司率先将64位处理器引入iPhone5S,或许2014年将是移动计算的64位元年。在PC时代,先是处理器的更新换代促使了用户对更新PC的需求,后来软件产业的壮大和人们对丰富应用的渴求迫使半导体厂商推出更快的架构与芯片。似乎移动计算领域也出现了类似的状态。我在想,既然移动计算已经初现浪潮,不论是移动应用为王,还是各种针对移动计算的处理器架构和计算框架,就连云计算和并行计算都在朝着智能终端使

2014-04-12 10:37:26 1910

原创 白盒测试实战——NITIAN Word

最近,我在编写一款自娱自乐的单词对比记忆的软件NITIAN WORD,这里选取它的一部分逻辑,利用白盒方法进行测试,算是理论联系实际吧。

2014-04-12 02:33:32 1946

原创 白盒测试之语句覆盖

定义:语句覆盖旨在让程序中每个可执行语句至少被执行一次。语句覆盖一般不会根据源码来设计测试用例,而是根据流程图。示例:只要测试用例能让可执行代码块2和4执行到,则达到了语句覆盖的目的,为此我们给出的最少测试用例为:序号XY执行语句15151——2——52-15-151——3——4

2014-04-11 07:58:38 5111

原创 黑盒测试之等价类划分法

等价类划分法是黑盒测试用例设计中一种重要常用的设计方法,它的基本思想是用一组有限的数据去代表近似无限的数据,达到能覆盖所有情况的目的。定义:等价类是指某个输入域的一个特定的子集合,在该子集合中各个输入数据对于揭露程序中的错误都是等效的,也就是说,如果用这个等价类中的代表值作为测试用例未发现程序错误,那么该类中其他数据(测试用例)也不会发现程序中的错误[1]。有效等价类:输入满足

2014-04-10 22:04:42 21109 2

原创 SoC

SoC组成(来自wikipedia英文版):1)一个微控制器、微处理器或DSP核。有些包含不止一个处理器核的SoC称为multiprocessor system on chip (MPSoC)。2)内存模块,可以是ROM、RAM、EEPROM和flash。3)时钟源。3)外设,包括计数器。4)外部接口,如USB、FireWire、Ethernet、SPI。5)数模转换器和模

2014-04-09 14:24:55 2593

原创 漫谈CPS

CPS,中文叫信息物理融合系统(Cyber-Physical System),在嵌入式系统中有类似于CPS的电子控制整合系统,不过嵌入式系统强调机器的计算能力,CPS则更强调各个实体装置和电脑运算网络的连接,正如其名字中的Physical(实体)和Cyber(网络)。先从一个有趣的实例开始。MIT的Distributed Robot Garden属于CPS系统,在这个花园里有一群机器人负责照顾

2014-04-08 15:04:12 2581 1

原创 javascript中的取反再取反~~

操作符~, 是按位取反的意思,表面上~~(取反再取反)没有意义,实际上在JS中可以将浮点数变成整数。var myArray = new Array();myArray.push("a");myArray.push("b");myArray.push("c");myArray.push("d");//现在要随机从数组中取出一个元素var random = myArray[~

2014-04-06 12:49:07 4557

原创 java String对象比较之equals和==的区别

简单来说,equals比较的是值,而==成立的话要求两个String是同一个对象。String s1 = "bluecloudmatrix";String s2 = "bluecloudmatrix";if(s1 == s2) System.out.println("s1==s2");else System.out.println("s1!=s2");结果是s1==s2,表面上s

2014-04-06 11:40:42 1678

原创 java StringBuffer使用

StringBuffer一般用在高效率的字符串追加(即构造新字符串),它和String用+=进行追加在功能上是等价的,不过效率却远远大于后者。StringBuffer是一个线程安全的、可变的字符序列。可变:其实它很像String,只不过在追加或修改时,String要重新创建对象来保存新值,而StringBuffer对象则允许对其自身进行修改,不用重新创建对象。在web服务器上,如果用S

2014-04-05 14:57:46 1503

原创 Linux内核设计基础(二)之Proc文件系统

Linux上的/proc目录是一种文件系统,称为proc文件系统(虚拟文件系统),它存储内核状态信息,包括cpu、内存以及进程等信息。proc文件系统有很多优点:应用程序获取内核数据不用切换到内核态,增加了系统的安全性(像ps命令就是通过proc获取进程信息);应用程序可以通过proc直接改变内核参数,这样不用重新编译内核就可以改变和优化内核行为。总之,proc为用户应用程序获取系统内部信息提供了

2014-04-04 21:57:45 2392

原创 在低电压下稳定运行的cache(二)

接下来介绍两种处理缺陷位的机制Cache word-disable和Cache bit-fix

2014-04-02 20:17:51 1591

原创 在低电压下稳定运行的cache(一)

这篇文章是根据IEEE论文Trading off Cache Capacity for Reliability to Enable Low Voltage Operation展开论述的:cache(包括电路)能稳定运行的最低电压称为Vccmin,当实际电压Vcc低于Vccmin时,就会影响微处理器的稳定性。论文首次运用架构级的技术来使cache在低于500mV电压下稳定运行。cache

2014-04-02 01:43:09 2537

原创 fault tolerance中的错误和故障检测(Error and Fault Detection Mechanisms)

这里的介绍来自论文Survey of Error and Fault Detection Mechanisms:下面这张图来自论文,反映了当今关于错误检测机制(Error Detection Mechanisms)的研究方向和分类:ERROR:error分为hard error(硬错误)和soft error(软错误)。hard error一般为制造和设计缺陷,

2014-04-01 00:08:44 3661

原创 Recovery from Fault(故障恢复策略)

在fault tolerance中有两种方法进行故障恢复,error handling(错误处理)和fault handling(故障处理),前者消除出现的错误但不能根除故障(fault)的根源,后者旨在去除fault。

2014-03-31 21:28:55 3108

原创 红黑树(RED-BLACK TREES)基本概念

下面是一棵红黑树红黑树:是一棵要么标记为红色要么标记为黑色的二叉搜索树,同时是一棵extended二叉树(即在原来二叉树的基础上将叶子节点的两个null指针替换成external节点,上图的方块就是external节点)。性质如下:1)根节点和external节点都是黑色的。2)任何一条从根节点到external节点的路径中不存在两个连续的红色节点。3)所有从根节点到ext

2014-03-31 18:58:30 1990

原创 Transient Fault基本概念介绍和一种基于watchdog的容灾策略

这里的介绍来自IEEE论文A Watchdog Processor to Detect Data and Control Flow Errors,由于本人能力有限,在翻译过程中可能会出错,希望大家指正。由于辐射和电磁干扰(Radiations and electromagnetic interferences)的存在,出现的短暂而且偶尔的faults会暂时改变系统的运行状态,这种fault成为

2014-03-29 22:16:24 2314

原创 die-to-die和within-die

先介绍几个基本概念:lot:工艺制造中按某种方式制成的硅柱wafer:中文名晶圆,lot切成的薄片,是集成电路的载体,晶圆越大,在同一圆片上生产的IC越多die:wafer根据需要划分不同的区域,每个区域用于生产特定功能的芯片,称之为die言归正传:我理解的die-to-die是芯片对芯片,这可以是不同lot上的芯片,也可以是不同wafer上的芯片,也可以是同一wafe

2014-03-29 02:46:39 5343

原创 AVL树及其搜索树

首先我们先明确两个关于二叉树的基本概念:深度(depth)和高度(height)。深度:从根节点开始(其深度为1),自顶向下逐层累加;高度:从叶节点开始(其高度为1),自底向上逐层累加。虽然树的高度和深度一样,但具体到某个节点,其深度和高度不一样,如:节点10的高度为2,深度为3;节点7的高度为1,深度为3.言归正传:AVL树:一个空二叉树是AVL树;一个非空二叉树

2014-03-27 17:02:40 2555

原创 Algirdas Avizienis提出的高可信系统(High-confidence Systems)概念模型

Algirdas Avizienis是fault tolerance概念的创始者,他为了让人们更好的去理解高可信系统(High-confidence Systems),提出了一个基于人类免疫系统(the immune system)的概念模型。这里的介绍来自他的一篇论文 Toward Systematic Design of FaultTolerant Systems, 希望能在一种随意的氛围

2014-03-27 00:58:25 2245

原创 二叉搜索树(Binary Search Trees)

二叉搜索树:每个元素都有一个唯一的值,而且所有元素的值各不相同;根节点左子树中的值比根节点的值小;根节点右子树中的值比根节点的值大;根节点的左右子树也都是二叉搜索树。带索引的二叉搜索树(indexed  binary search trees):基于上面的二叉搜索树,每个元素拥有一个LeftSize域,其值等于该节点左子树的元素数加1,同时它给出了该节点在其子树中的排名,如上面8的Le

2014-03-25 20:09:48 2825

原创 C++类模板template

类模板的出现可以精简代码,设想一下,函数max(int a, int b)求a和b两者中的最大值,如果我要求float型或double型,是否还要写一套max,这样太不优雅了。先看一下类模板的固定格式——

2014-02-23 22:55:46 1052

原创 C++友元

友元成员函数class Car{ friend void Key::set_Sound(Car &c, int s); ...};这样在Key::set_Sound()中可以访问Car的私有成员(编译器在处理friend这条语句时,应先看到Key类的声明和set_Sound()方法的声明)。在声明时要注意循环依赖(若class Key在class Car前声明,Key的成员

2014-02-22 13:29:26 927

原创 虚函数对C++多态的影响

class Bird{public: Bird(); virtual ~Bird(); void fly(); virtual void tweet(); virtual void breed()=0;};class Eagle : public Bird{public: Eagle() : Bird() {} virtual ~Eagle(); void fly()

2014-02-10 21:12:16 1006

原创 C++成员初始化列表

当类的成员用const修饰时,要通过成员初始化列表进行赋值,如:class Dream {private: const int day;public: Dream(int _d) { day = _d; } //error Dream(int _d) : day(_d) {} //correct};我们可以分析,const在C++中表示值不能被更新,因此普通的赋值操作无效。

2014-02-10 20:45:15 1026

原创 汇编EXTERN用法

EXTERN在汇编中用来引用一个在其他模块中定义过的符号名,使得这个符号名所表示的数据或函数能在该模块中被使用。[FILE "naskfunc.nas"] GLOBAL _asm_inthandler21 EXTERN _inthandler21 [SECTION .text]_asm_inthandler21: PUSH ES PUSH DS PUS

2014-01-25 19:26:17 6176

cleanwipe14.2.5323.2000.rar

Symantec Endpoint Protection 安装以后不能进行常规方式的卸载操作,卸载时需要卸载密码无法继续,用官网提供的工具cleanwipe进行卸载操作,简单快速。注意:CleanWipe只能卸载比自己版本低的Symantec

2020-08-24

Survey of Docker Service

两个月的调研,结合企业实践,对docker在当今的应用情形进行总结,涵盖docker基本概念和生态圈,基本技术和工具,以及服务和场景化。

2015-11-12

空空如也

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

TA关注的人

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