January 13, 2011
3.6.2 Makefile变量
"上面示例的Makefile在实际中是几乎不存在的,因为它过于简单,仅包含两个文件和一个命令,在这种情况下完全不必要编写Makefile 而只需在Shell 中直接输入即可,在实际中使用的Makefile往往是包含很多的文件和命令的,这也是Makefile产生的原因。下面就可给\n出稍微复杂一些的Makefile进行讲解:\nsunq:kang.o yul.o\nGcc kang.o bar.o -o myprog\nkang.o : kang.c kang.h head.h\nGcc –Wall –O -g –c kang.c -o kang.o\nyul.o : bar.c head.h\nGcc – Wall –O -g –c yul.c -o yul.o\n在这个Makefile中有3 个目标体(target),分别为sunq、kang.o和yul.o,其中第一个目标体的依赖文件就是后两个目标体。如果用户使用命令“make sunq”,则make管理器就是找到sunq目标体开始执行。\n这时,make会自动检查相关文件的时间戳。首先,在检查“kang.o”、“yul.o”和“sunq”3 个文件的 …"
January 13, 2011
3.6.1 Makefile基本结构
"3.6.1 Makefile基本结构\nMakefile 是Make 读入的惟一配置文件,因此本节的内容实际就是讲述Makefile 的编写规则。在一个Makefile中通常包含如下内容:\n需要由make工具创建的目标体(target),通常是目标文件或可执行文件; 要创建的目标体所依赖的文件(dependency_file); 创建每个目标体时需要运行的命令(command)。 它的格式为:\ntarget: dependency_files\ncommand\n例如,有两个文件分别为hello.c 和hello.h,创建的目标体为hello.o,执行的命令为gcc\n编译指令:gcc –c hello.c,那么,对应的Makefile就可以写为:\n#The simplest example\nhello.o: hello.c hello.h //要创建的目标体所偏依赖的文件\ngcc **–**c hello.c **–**o hello.o //创建目标体要运行的命令\n接着就可以使用make了。使用make的格式为:make target,这样make就会自动读入Makefile(也可以是首字 …"
January 11, 2011
apache突然出现Too many errors in select loop. Child process exiting的解决办法
"[Fri Mar 13 19:30:08 2009] [notice] Child 2012: Acquired the start mutex.\n[Fri Mar 13 19:30:08 2009] [notice] Child 2012: Starting 250 worker threads.\n[Fri Mar 13 19:30:08 2009] [notice] Child 2012: Listening on port 80.\n[Fri Mar 13 19:30:08 2009] [error] (OS 10038)An operation was attempted on something that is not a socket. : Too many errors in select loop. Child process exiting.\n[Fri Mar 13 19:30:08 2009] [notice] Child 2012: Exit event signaled."
January 11, 2011
CentOS(RedHat)安装Adobe Flash Player插件 For firefox全过程
"随便打开一个带Flash的网站,提示需要安装插件,使用firefox自带功能安装失败(图1所示)。 浏览器默认下载安装的插件失败之后,点“手动安装”会自动跳转到Adobe Flash Player下载页面:\n或者直接先打开Adobe Flash Player下载页面:\nhttp://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash\n选择”.rpm For Linux“ 显示并下载:\n下载完后执行安装:\n[root@CentOS Desktop]# rpm -ivh flash-plugin-9.0.124.0-release.i386.rpm\nPreparing…########################################### [100%]\n1:flash-plugin ########################################### [100%]\n[root@CentOS Desktop]#\n安装成功后重新重动系统既可。"
January 11, 2011
Linux对象存储文件系统的技术架构研究
"随着高性能计算由传统的主机方式向网络化集群演变,传统的基于主机的存储架构已逐渐向网络化存储发展,计算和存储分离的趋势越来越明显。针对 SAN 和 NAS 的不足,国际上已开展针对 Linux 集群的新型文件系统――对象存储文件系统的研究,本文重点论述了存储对象文件系统的架构、技术特点,并针对Lustre 对象存储文件系统进行了初步测试,结果表明对象存储文件系统在可扩展性、性能、易用性等方面都有显著提高,随着网络化存储技术的不断成熟,对象存储文件系统将成为重要的发展方向。\n一、引言\n高性能计算已由传统的主机方式逐渐向集群方式演变,如TOP500中,1998年只有2台系统是集群方式,而到2003年已有208台为集群系统。随着高性能计算体系结构的发展变化,传统的基于主机的存储架构已成为新的瓶颈,不能满足集群系统的需求。集群的存储系统必须有效解决两个主要问题:(1)提供共享访问数据,便于集群应用程序的编写和存储的负载均衡;(2)提供高性能的存储,在I/O级和数据吞吐率方面能满足成百上千台规模的Linux集群服务器聚合访问的需求。目前,网络化存储已成为解决集群系统高性能存储的有效技术途径。\n国际 …"
January 6, 2011
MYSQL主从失败,报错 Got fatal error 1236 后恢复过程
"环境: Mysql: 5.1.37 dual master(节点为A,B) OS: centos5.3 x64\n由于我今天突然将重新启动从服务,导致MYSQL一边的复制失败,如下:\n从服务器节点A启动slave就报下面的错误:\n090910 22:47:18 [ERROR] Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236) 090910 22:47:18 [ERROR] Got fatal error 1236: ‘Client requested master to start replication from impossible position’ from master when reading data from binary log 090910 22:47:18 [Note] Slave I/O thread exiting, read up to log …"
January 6, 2011
OAuth 核心 1.0 版 中文翻译版
"OAuth 核心 1.0 Abstract OAuth协议致力于使网站和应用程序(统称为消费方)能够在无须用户透露其认证证书的情况下,通过API访问某个web服务(统称为服务提供方)的受保护资源。更一般地说,OAuth为API认证提供了一个可自由实现且通用的方法。\n一个典型的例子是某打印服务提供商printer.example.com(消费方),希望在无须用户提供其照片存储站点密码的情况下,访问用户储存在photos.example.net(服务提供方)上的个人照片。\nOAuth不强求一个特定的用户接口或操作模式,也不限定服务提供方如何验证用户,特别适合认证证书对消费方不可用的情况,例如OpenID。\nOAuth致力于为托管web服务认证提供统一的体验和实现,形成一个社区驱动的协议。OAuth构建于已被多个站点独立实现的已有协议和最佳化实践之上,是一个被大小服务提供者所支持、并为应用开发者和用户增进持续性和可信度的开放标准。\n——————————————————————————–\nTable of Contents 1. 作者 2. 记号与惯例 3. 术语定义 4. …"
January 2, 2011
使用 Portmaster 升级 Ports
"Portmaster 是另外一个用来升级已安装的 ports 的工具。 Portmaster 被设计成尽可能使用 “基本” 系统中能找到的工具 (它不依赖于其他的 ports) 和 /var/db/pkg/ 中的信息来检测出需要升级的 ports。你可以在 ports-mgmt/portmaster 找到它:\n# cd /usr/ports/ports-mgmt/portmaster # make install clean Portmaster groups ports into four categories:\nPortmaster 把 ports 分成4类:\nRoot ports (不依赖其他的 ports,也不被依赖) Trunk ports (不依赖其他的 ports,但是被其他的 ports 依赖) Branch ports (依赖于其他的 ports,同时也被依赖) Leaf ports (依赖于其他的 ports,但不被依赖) 你可以使用 -L 选项列出所有已安装的 ports 和查找存在更新的 ports:\n# portmaster -L …"
January 2, 2011
/usr was not properly dismounted 解决办法
"今日安装好freebsd系统后,就改了一下/etc/rc.conf文件,然后输入reboot重启 重启后发现一个问题,我的用户都无法通过ttyv0-8登陆,无论什么用户,然后没办法,再重启进入单用户模式,df 发现很多区没挂上去,mount -a 挂上/etc/fstab中默认的分区,提示出来了。 /usr was not properly dismounted /tmp was not properly dismounted /var was not properly dismounted\n然后按照平时的习惯 fsck fsck -y fsck -p 结果问题依旧,唉!汗啊!!\n于是上网找方法,找到了这个: 学习的BSD的教材上,作者明确指出不要用reboot和halt执行重启和关机动作,那样系统不会执行rc.shutdown脚本导致不能在文件系统上设立“清除”标记,下次开机时系统会自动调用FSCK来检查文件系统一的。 呵呵,reboot halt -p 都不让用呵呵。没办法。只有这样用了 WARNING: / was not properly dismounted\n我的机器只有在非 …"
December 30, 2010
怎么检查windows下apache加载的mpm模块是什么?
"现在有很多php运行环境都apache等都用在windows主机上了,但是性能和linux上的应该有些差。于是有很多优化windows下apache性能。优化apache加载mpm是必不可少的一环。\n怎么检查自己的windows服务器中apache加载的mpm模块是什么呢?\n其实很简单:\n“开始-运行-cmd” 打开命令提示符\n执行”httpd -l”就可以了。"