上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 26 下一页
摘要: linux系统中每个进程由一个进程id标识,在内核中对应一个task_struct结构的进程描述符,系统中所有进程的task_struct通过链表链接在一起,在内核中,经常需要通过进程id来获取进程描述符,最简单的方法可以通过遍历task_struct链表并对比id的值来获取,但这样效率太低,尤其当系统中运行很多个进程的时候。 linux内核通过PID散列表来解决这一问题,能快速的通过进程I... 阅读全文
posted @ 2013-04-19 14:09 ydzhang 阅读(659) 评论(0) 推荐(0)
摘要: 内核中很多地方都需要跟踪记录C语言中结构的实例。尽管这些对象的用法大不相同,但各个子系统的某些操作都非常类似,如引用计数,内核为了减少代码复制,采用了一般性的方法来管理内核对象。所引入的框架并不只是为了减少代码复制,同时也为内核不同部分管理的对象提供了一致的视图。 一般性的内核对象机制可用于执行下列对象操作: 1. 引用计数; 2. 管理对象链表; 3. 集合加锁; 4. 将对象属性... 阅读全文
posted @ 2013-04-19 14:09 ydzhang 阅读(840) 评论(0) 推荐(0)
摘要: 很多应用需要客户首先进行注册,然后使用用户名、密码进行验证,之前在为一个分布式系统添加认证模块的时候,遇到一个问题,这里进行简要的分析。认证的两种主要形式:1. 单机登录认证:如windows、linux系统用户登录,这种应用的程序代码通常是不公开的,用户要正常的使用系统,必须越过这一障碍。2. 网络登录认证:如QQ、飞信等聊天软件的用户登录,这种应用的代码可以是开源的,因为即使即使代码开源,hacker去掉了客户认证的代码,重新编译运行,服务器发现记录客户端的登录状态为未登录,客户端还是不能继续工作。项目中遇到的问题:客户端通过挂载后,像使用本地文件系统一样使用远程文件系统。登录认证在挂载的 阅读全文
posted @ 2013-04-19 14:09 ydzhang 阅读(257) 评论(0) 推荐(0)
摘要: 对于很多服务来说,在同一个服务器上只能运行一个实例,那么通过什么方法来保证程序同一时刻只有一个实例运行呢?通过编写shell脚本来管理程序的启动、停止是个不错的方法。在启动时,shell脚本会创建进程标识文件(存储正在运行实例的pid)以表明已经有实例在运行,如果文件已存在,则说明已有实例在运行,不需要做任何事;在退出时,shell脚本会删除进程标识文件,表明没有实例运行。shell脚本管理方法在应用程序之上再包了一层,那么能不能直接在程序开始运行时自己判断是否有实例在运行呢,答案是肯定的。原理其实差不多,还是要借助公用资源---文件,当然不仅仅是文件而已,还需要文件锁的支持。大致思路是这样的 阅读全文
posted @ 2013-04-19 14:09 ydzhang 阅读(257) 评论(0) 推荐(0)
摘要: 实现linux登录验证的程序,要考虑两个部分,第一是用户名、密码的输入;第二是用户、密码的验证,关于第二部分的机制已经在http://blog168.chinaunix.net/space.php?uid=20196318&do=blog&id=94771中讲到。而第一部分的难点则在于如何在输入密码时不回显输入的字符,这就需要更改终端的属性,涉及终端IO的编程,主要用到tcgetattr和setattr两个函数,通过取消终端的ECHO标记,即可禁用终端回显,在密码输入处理之后,要记得恢复终端原来的属性,避免影响到其它的进程。终端IO处理大致过程如下:structtermios 阅读全文
posted @ 2013-04-19 14:09 ydzhang 阅读(728) 评论(0) 推荐(0)
摘要: 115优盘(http://u.115.com) 115优盘是由雨林木风最新推出具有存储容量大、免费、高速、稳定、易用,安全等特点的免费网络硬盘,即免费网络存储空间服务。115优盘初始提供3G的永久存储空间以及5G的临时存储空间,支持文件共享,支持外链,并提供了客户端工具。 联想网盘 (http://www.lenovodata.com) 联想网盘为用户提供了5G的“免费”存储空间,但我最近登录时... 阅读全文
posted @ 2013-04-19 14:09 ydzhang 阅读(455) 评论(0) 推荐(0)
摘要: 在HDFS中,NameNode用来管理文件系统的命名空间,其将所有的文件和文件夹的元数据保存在一个文件系统树中,这些信息会在硬盘上保存为fsimage(命名空间镜像)和edits(修改日志)文件;其还保存了文件包含哪些数据块,分布在哪些数据节点上,但这些数据并不保存在硬盘上,而是在系统启动的时候从数据节点收集而来的。DataNode是文件系统中真正存储数据的地方,其周期性的向元数据节点回报期存储... 阅读全文
posted @ 2013-04-19 14:09 ydzhang 阅读(1533) 评论(0) 推荐(0)
摘要: 上周在做测试的时候,我的VirtualBox的磁盘文件不幸损坏,不能打开了,又没有做备份,所以只好放弃VB。改用以前用的VMware,结果用了两天除了意想不到的问题,VMware产生的文件居然占据了整个分区,每次都提示系统没有足够的空间,VMware不能启动,分区有40+G,被占满主要是做了多次快照(后来删除了快照,相关的文件没有清理掉,VMware一直卡在那里),额外建立了几个磁盘(配置MD时新建的,并且所有的磁盘的空间都是创建时分配的,而不是动态增长)。在解决问题时误删了一些文件,系统提示找不到启动必须的文件xxx,其实应该删除后来新建的磁盘的,可惜当时有点急,那是已经是周三了,周四有事, 阅读全文
posted @ 2013-04-19 14:09 ydzhang 阅读(302) 评论(0) 推荐(0)
摘要: 1. 创建java运行环境 l 下载jdk for linux: jdk-6u22-linux-i586.bin http://www.java.com/zh_CN/download/manual.jsp l 安装jdk:chmod a+x jdk-6u22-linux-i586.bin; ./ jdk-6u22-linux-i586.bin l 设置环境变量 #vi /etc/pr... 阅读全文
posted @ 2013-04-19 14:09 ydzhang 阅读(343) 评论(0) 推荐(0)
摘要: 在linux系统下创建守护进程的原理及步骤在文章(链接如下)中介绍过。http://blog168.chinaunix.net/space.php?uid=20196318&do=blog&id=28738其实,linux提供了daemon函数用于创建守护进程,实现原理与上文中介绍的是一样的。#include <unistd.h>int daemon(int nochdir, int noclose);1.daemon()函数主要用于希望脱离控制台,以守护进程形式在后台运行的程序。2.当nochdir为0时,daemon将更改进城的根目录为root(“/”)。3.当 阅读全文
posted @ 2013-04-19 14:09 ydzhang 阅读(523) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 26 下一页