- 博客(68)
- 资源 (13)
- 收藏
- 关注
原创 嵌入式操作系统多任务调度原理分析与RUST参考实现
作为一名在软件领域工程师,在职业生涯的尽头能有幸接触到一部分硬件产品是我莫大的荣幸。秉承我一贯刨根问底,不搞清楚问题本质不罢休的作风和态度,结合基本的计算机知识加一部分FreeRTOS源码,开始了文档标题中的工作,这项工作带来的价值可以指导未来在嵌入式工程领域软件研发工作(人或事),深入而透彻,也能告诉你怎么通过硬件看清软件运行的本质;同时,也作为在嵌入式领域工程实践方面总结与回顾。文档很枯燥,大部分内容是教科书上那些呈辞滥调的重复引用/解释,可参考的部分应该就剩下那份按部就班实现的工程样板代码。我尽量用人
2022-06-23 18:41:41
2797
1
原创 Linux进程间通信(IPC)
Linux进程间通信(IPC)一、管道:1. 无名管道: 打开与关闭管道: #include <unistd.h> int pipe(int filedes[2]); filedes[0]用于读出数据,读取时必须关闭写入端,即close(filedes[1]); filedes[1]用于写入数据,写入时必须关闭读取端,即close(filedes[0])。 2. 有名管道...
2009-11-07 21:26:55
171
mplayer+mp4box安装备忘
MP4BOX——用于给3GP、MP4加hintyum -y install freeglutyum -y install freeglut-develwget http://downloads.sourceforge.net/gpac/gpac-0.4.5.tar.gzwget http://downloads.sourceforge.net/gpac/gpac_extra_lib...
2009-10-20 15:08:59
177
原创 lame+ffmpeg+flvtool2+mencoder
搭建某个服务器让我对linux服务器的视频播放需求的安装真是深有感悟啊!1.首先编译安装嘛~必要的gcc,直接yum就ok了! #yum install gcc2.在装flvtool2的时候需要用到RUBY,先装好,也是直接yum! #yum install ruby3.做动态链接库路径 #grep /usr/local/lib /etc/ld.so.con...
2009-10-20 10:05:26
199
原创 指针和引用操作符的区别
指针和引用是相似的概念,但并不是相同的。它们都是指向一个对象,但是指针可以允许这个指向随时变化,并且它允许你指向一个空对象。引用可不一样,引用在初始时就必须指向一个对象,并且这个指向永远不能变化,也就是说永远只能指向这个对象,不能改变。可以这么理解,指针是一个变量的指向,引用是一个常量的指向。指针和引用在操作上也有区别,指针使用操作符* 和-> ,引用使用操作符& 和. (点...
2009-08-17 09:06:23
104
原创 美女CEO写的!值得一看
美女CEO王潇,刚刚写了一篇三十感言。句句名言,虽然是写给女生的,但是,男生也更应该看看。 《字字带泪——写在三十岁到来这一天》 By 王潇 2008年11月3日 谨以此文献给我的众姐妹,共勉。 事业篇 无论是打工还是创业,其本质无外乎向老板或客户出卖自己的有形或无形产品。一言以蔽之:大家都是出来卖的。既然是出来卖的,一要卖相好,二要敬业,三不要嫌买货人。所以,第一要保持美丽,第二要多做事少抱怨,...
2009-08-15 17:36:10
115
原创 CloudStore分布式文件系统
CloudStore(KFS,Kosmos File System)分布式文件系统有着高性能,可用性和可靠性等特点。它的目的是用来作为后端的存储基础设施,密集型数据应用,如搜索引擎,数据挖掘,网格计算等。功能和特点增量的可扩展性:存储需求可对节点增加,系统会自动适应新的节点。可利用性:复制是用来提高可用性。通常情况下,文件复制有3种方式。每个文件的复制程度:在一定程度的复制配置...
2009-08-14 11:08:21
409
原创 Hadoop赢得1TB排序基准评估第一名
强烈祝贺Hadoop赢得1TB排序基准评估第一名。Yadoo的一个集群最近用209秒时间排序1TB的数据,比上一年的的纪录保持者保持的297秒快乐将近90秒。1998年Jim Gray创建了排序基准评估的方法,建立100亿条100个字节的纪录,评估对这100亿条纪录完全排序和把纪录写入磁盘的时间。评估是建立在未发布的版本0.18上的。排序所用的源码在这个地址。 评测集群的配...
2009-08-14 11:07:16
125
原创 Hadoop分布式计算、存储系统
Hadoop分布式文件系统:架构和设计要点原文:http://hadoop.apache.org/core/docs/current/hdfs_design.html一、前提和设计目标1、硬件错误是常态,而非异常情况,HDFS可能是有成百上千的server组成,任何一个组件都有可能一直失效,因此错误检测和快速、自动的恢复是HDFS的核心架构目...
2009-08-14 11:06:33
150
原创 MogileFS分布式文件存储系统
mogileFS是一个分布式文件存储的解决方案,他由Six Apart开发下面列出了他的一些特性(由mogileFS页面http://www.danga.com/mogilefs/ 介绍翻译而来)应用层——不需要特殊的核心组件无单点失败——MogileFS安装的三个组件(存储节点、跟踪器、跟踪用的数据库),均可运行在多个 机器上,因此没有单点失败。(你也可以将跟踪器和存储节点运行在同...
2009-08-14 11:03:50
127
原创 FastDFS国产分布式文件系统
FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。存储节点存储文件,完成文件管理的所有功...
2009-08-14 11:02:34
765
原创 单点登陆(SSO)CAS介绍
单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS(Central Authentication Service)是一款不错的针对 Web 应用的单点登录框架,本文介绍了 CAS 的原理、协议、在 Tomcat 中的配置和使用,对于采用 CAS ...
2009-08-14 09:12:25
113
原创 图论算法——拓扑排序
有向无回路图又称为dag。对这种有向无回路图的拓扑排序的结果为该图所有顶点的一个线性序列,满足如果G包含(u,v),则在序列中u出现在v之前(如果图是有回路的就不可能存在这样的线性序列)。一个图的拓扑排序可以看成是图的所有顶点沿水平线排成的一个序列,使得所有的有向边均从左指向右。因此,拓扑排序不同于通常意义上对于线性表的排序。 有向无回路图经常用于说明事件发生的先后次序,图1给出一...
2009-08-14 09:09:46
140
原创 java内存分析、泄露、代码怎么更健壮
一、内存溢出类型1、java.lang.OutOfMemoryError: PermGen spaceJVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。如果web app用了大量的第三方...
2009-08-14 09:08:23
88
原创 Java的反射机制
Java 的反射机制是使其具有动态特性的非常关键的一种机制,也是在JavaBean 中广泛应用的一种特性。运用JavaBean 的最常见的问题是:根据指定的类名,类字段名和所对应的数据,得到该类的实例,下面的一个例子演示了这一实现。-|Base.java //抽象基类|Son1.java //基类扩展1|Son2.java //基类扩展2|Util.java /*** ...
2009-08-14 09:06:55
78
原创 一个Java程序员应该掌握的10项技能
1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。2、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、 HtmlConverter、jar、 java、javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部...
2009-08-14 09:05:27
87
原创 两分搜索算法(折半查找算法)
#define MAX 100 int n = 0; int x[MAX];//seq data array {x[0] < ... x[max - 1]} int binary(int t) { int l, u; if(x[0] > t ||x[n] < t || n < 0){ pr...
2009-08-14 09:03:59
99
原创 大端与小端存储模式详解
端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian(这句话最为形象)。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业B...
2009-08-14 09:03:07
96
原创 memmove 和 memcpy的区别
memcpy和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下: void *memcpy(void *dst, const void *src, size_t count);void *memmove(void *dst...
2009-08-14 09:02:13
114
原创 malloc()与 alloc()区别
C语言跟内存分配方式(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)从堆上分配,亦称动态内存分配。程序...
2009-08-14 09:01:29
84
原创 五大内存分区--堆、栈、自由存储区、全局/静态存储区和常量存储区
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。...
2009-08-14 09:00:12
114
原创 Java编程语言的八大优点
java为何这么的吸引人们的关注? 难道……对!这就是java的根源: 1. Java是目前使用最为广泛的网络编程语言之一。它具有简单,面向对象,稳定,与平台无关,解释型,多线程,动态等特点。 2.简单 Java 语言简单是指这门语言既易学有好用。不要将简单误解为这门语言很干瘪。你可能很赞同这样的观点 英语要比阿了伯语言容易学。但这并不意味着英语就不能表达丰富的内容和深刻的思想,许...
2009-08-14 08:59:29
319
原创 内核中工作队列(linux工作队列)
Linux自从2.6.20之后,工作队列发生了一些变化,目前从网络上搜索的资料一般都是介绍老版本的工作队列,很少见到对新版本的介绍。本文对新老版本都做了简要概述,并分别提供了简单的实作案例。工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它...
2009-08-14 08:58:47
86
原创 linux消息队列
基本概念1.队列 队列是信息的线性表,它的访问次序是先进先出(FIFO)。也就是说,置入队列中的第一个数据项将是从队列中第一次读出的数据项,置入的第二项将是读出的第二项,依此类推。这是队列允许的唯一存取操作,其它随机访问是不允许的。这种数据结构保证对数据资源的请求将严格按照先后顺序进行,因而可用于对事件的调度并起到I/O缓冲的作用。2.报文 发送...
2009-08-14 08:58:03
89
原创 STL中: string、vector、list、deque、set、map 的区别
在STL中基本容器有: string、vector、list、deque、set、mapset 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了string、vector、list、deque、set 是有序容器 1...
2009-08-14 08:55:35
152
原创 集群概念
一:集群概念:1. 两大关键特性集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性:· 可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。· 高可用性--集群通过服务...
2009-08-14 08:53:37
109
原创 抽象类和接口的区别
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。 abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于 abstract class和interface的选择显得比较随意。其实,两者...
2009-08-13 17:42:59
66
原创 面向对象设计原则
1) 单一职责原则 (The Single Responsiblity Principle,简称SRP)2) 开放-封闭原则 (The Open-Close Principle,简称OCP)3) Liskov 替换原则(The Liskov Substitution Principle,简称LSP)4) 依赖倒置原则(The Dependency Inversion Pricinp...
2009-08-13 17:41:05
94
原创 网站监控系统 Pandora FMS
Pandora FMS 是一个 开源的应用程序 ,用来监测网站的各种活动。如果一个网站超额或当机,如果网站内容改变,硬盘或CPU被远程服务调用时(通过SNMP 或 TCP/IP),以及其它情况。Pandora FMS 可以运行于任何操作系统, 获取数据并发送到服务器。你可以收到实时的监测报告,并发送到你指定的邮箱。它也可以通过e-mail, SMS 或 Jabber...
2009-08-13 12:57:25
610
原创 Hyperic HQ
WEB架构下的系统监控和管理(分企业版和开源版),包括对Apache、Tomcat、LAMP、WebLogic、虚拟化、VMWare、Xen、JBoss的管理。标签: 跨平台 Java 系统监控开发语言: Java项目主页: http://www.hyperic.com/下载地址: http://www.hyperic.com/downloads/...
2009-08-13 11:55:09
72
原创 智能监控软件 Zenoss Core
Zenoss Core是开源企业级IT管理软件-是智能监控软件,他允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。Zenoss Core同时也是开源的网络与系统管理软件。 Zenoss Core的强大能力来自于深入的列表与配置管理数据库,以发现和管理公司IT环境的各类资产(包括服务器、网络、和其他结构设备)。Zenoss可以创建 关键资产清单和对应的组件级别(接口、服务、...
2009-08-13 11:51:44
428
原创 一位软件工程师的7年总结
转载自:http://www.oschina.net/discuss/thread/5001、分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。”其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这 个道理有些体会吧。但我相信这一点也很重要:“重要的道理明白太晚将抱憾终生!”所以放在每一条,让刚刚毕业的朋友们早点看到哈!2、一定要确 定自己的发展方向...
2009-05-14 11:44:16
204
Tokyo Tyrant(ttserver) java api的安装
Tokyo Tyrant(ttserver)的安装请看我的上一篇文章http://gqf2008.iteye.com/admin/blogs/366963 编译java apihttp://tokyocabinet.sourceforge.net/javapkg/tokyocabinet-java-1.18.tar.gztar zxvf tokyocabinet-java-1...
2009-04-22 16:01:41
153
搜搜工作网正式迁移到Google App Engine
原来的”搜搜工作网“页面部分是基于grails开发的,部署在自己服务器上,Google App Engine支持java后搜搜工作网技术团队第一时间进行了迁移,到目前为止已经全部迁移完成,域名是sosowork.appspot.com,过几天申请下apps后把正式域名www.theworking.com.cn再转过去。 目前网站的架构是前端在Google App Engine上跑,后台的索...
2009-04-14 16:24:51
128
ubuntu下安装Tokyo Tyrant(ttserver)
简介Tokyo Tyrant 是Tokyo Cabinet 的数据库网络接口。它拥有Memcached兼容协议,也可以通过HTTP协议进行数据交换Tokyo Cabinet 是一款 DBM 数据库,与Berkeley DB是同类产品,但性能要好。 与memcache相比有哪些优点网上一大堆,自己找吧 在ubuntu下安装过程如下: 安装libbz2 apt-ge...
2009-04-14 10:31:02
81
Groovy on Grails开发的“防撞衫网”中国版
最近看到报纸上老外做了一个防撞衫网的网站,觉得点子不错,而且国内也没有类似的网站一时性起就用Groovy on Grails开发了一个“防撞衫网”中国版,哈哈哈!http://www.dressbooks.com...
2009-01-19 15:27:11
124
原创 nginx常用设置
1. installinstall pcre./configuremake && make installinstall nginx./configure –prefix=/usr/local/nginx –with-zlib=/zlib_soure_dir/make && make install 2. Install FastCgi initconfigur
2008-10-23 16:42:00
517
原创 使用Space4J进行Java的内存持久化
Space4J是一个简单的数据库系统,它使你可以在内存中与Java集合协同工作。由于内存对数据的随机访问速度要比磁盘快几个数量级,所以Space4J为性能关键的“实时”Web应用和系统提供了更好的可伸缩性。通过使用Space4J,如果想从数据库表中取出一个User,开发者就无需执行SQL SELECT语句了,而只需访问一个usersmap(java.util.Map),然后调用user...
2008-10-06 10:30:57
480
应用交付网络与CDN
2010-08-04
云计算时代的社交网络和技术
2010-08-04
Hibernate基础入门
2010-08-04
H2内存数据库文档-介绍
2010-01-18
LBS规范
2008-03-12
java虚拟机参数
2008-03-12
smgagent
2007-03-28
smslet
2007-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人