摘要: LSM的全称是Linux Security Modules,它是linux内核中用来支持更灵活的安全策略的一个底层框架,虽然听起来比较复杂,但是可以就把它理解成一组安插在linux内核的钩子函数和一些预留的被称为安全域的数据结构,下面先说说这个框架的由来吧。  linux本身的机制就保证了linux拥有更好的安全机制,但是在这个机制下面,还是隐藏了许多的问题:  1、权限粒度太大。用过linux的人应该对0644这样的访问权限设置不陌生,它对能够操作这个文件的用户做了限制,但是这个只是限制到了组,而没有更进一步的细分,当然,如果LSM只是用来限制这个的话,那么也就太没意思了,因为实现文件更细的 阅读全文
posted @ 2011-01-01 21:53 MR_H 阅读(4722) 评论(8) 推荐(2) 编辑
摘要: 以前利用linux系统提供的读写锁写过一些小程序,但是linux系统提供的读写锁是线程级的,如果是进程间的同步的话,就没那么轻松了。而且由于linux系统提供的读写锁是读优先的,在有些情况下,也不能满足我们的要求。下面就说说利用信号量来实现写优先的读写锁。  先说说原理,这个程序需要用到两个信号量,一个互斥信号量A,一个同步信号量B,其拥有MAX_RESOURCES个资源。当读进程申请读锁的时候,... 阅读全文
posted @ 2010-09-24 17:41 MR_H 阅读(4576) 评论(0) 推荐(0) 编辑
摘要: 前段时间看了下google c/c++编程风格,摘录一些要点记载于此,还请各位指点。  为了接下来清楚的阐述googleC++编程规范,先阐述几个概念:  PascalCase:当标识符由两个或者两个以上单词组成的时候,单词之间不加其他的符号,并且每个单词都必须大写,例如PascalCase。  camelCase:当标识符由两个或者两个以上单词组成的时候,单词间不加其他的符号,并且第一个单词以小... 阅读全文
posted @ 2010-09-15 09:18 MR_H 阅读(3125) 评论(2) 推荐(0) 编辑
摘要: CGI其实就是运行在服务器上的一段程序,其工作的大致原理如下:用户发送请求到服务器端,然后服务器调用这段CGI程序进行相应的处理,然后将处理结果返回给服务器,服务器再将结果送回给用户。  说起来比较复杂,但是CGI程序写起来并不复杂,因为服务器已经将CGI程序的输入和输出重定向到标准输入和输出中了,所以编写CGI程序只需要从标准输入读入信息,然后将处理结果送到标准输出就行了,这样,就可以用任何支持... 阅读全文
posted @ 2010-07-28 19:28 MR_H 阅读(442) 评论(0) 推荐(0) 编辑
摘要: apache支持一台服务器上配置多个虚拟主机,支持1个IP对应N个域名,同时也支持一个域名对应N个不同的IP。  下面是我在apache上配置一个虚拟主机的过程。一、首先找到apache的配置文件:cd /usr/local/apache2/conf/二、接着编辑这个文件:sudo vim httpd.conf因为的配置的虚拟主机的端口号为8080,所以在Listen 80下面增加一行Listen... 阅读全文
posted @ 2010-07-28 19:26 MR_H 阅读(399) 评论(0) 推荐(0) 编辑
摘要: sed使用起来,感觉跟awk也有点类似,也可以理解成匹配一个模式,然后执行相应的动作。但是这个模式可以是正则表达式匹配的模式,也可以是特定的某些行。但是匹配后可以执行的动作确实是sed的一大亮点,其几乎能完成一个文本编辑器所实现的功能。比如增加,删除等操作。其命令的字和vim的还是比较相似的。d:用于删除s:用于替换选定行:例如‘1,5’ ‘/abc/,./fg... 阅读全文
posted @ 2010-07-28 19:26 MR_H 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 动态链接库是相对于静态链接库的一种说法,很多时候也叫做共享链接库,就连gcc编译动态链接库的选项也叫shared。之所以称之为共享链接库,是因为很多时候其都用于多个进程共享某个动态链接库。比如A进程调用了a.so里面的test()函数,而B进程也调用了a.so里面的set()函数,此时在内存中,就只需保留一个a.so文件,由调用了它里面函数的进程共享。  调用动态链接库的程序,只有在执行的时候,才... 阅读全文
posted @ 2010-07-28 19:23 MR_H 阅读(1111) 评论(0) 推荐(0) 编辑
摘要: 静态链接库在linux中间是以lib+name.a形式存在的,比如我们平时常用的printf函数,其具体实现在libc.a静态库中。在链接的时候,会将该库函数里面所有的内容插入到可执行文件中。当程序链接完成后,就不再需要外部函数库的支持了,因为调用的库函数已经包含到可执行文件中了,缺点是生成的可执行程序的体积较大,而且当你的库函数内容发生了变化的时候(比如对  库函数进行了优化),又要重新进行编译... 阅读全文
posted @ 2010-07-28 19:21 MR_H 阅读(1148) 评论(0) 推荐(0) 编辑
摘要: grep感觉就是一个使用正规表达式进行文本匹配的工具,依靠强大的正则表达是,能帮助用户快速找出所需的内容所在的行,再利用管道,可以将这些筛选出来的行,进行进一步的操作。  下面我做的一些练习:文件:test_grepSteve Blenheim:238-923-7366:95 Latham Lane, Easton, PA 83755:11/12/56:20300Betty Boop:245-83... 阅读全文
posted @ 2010-07-28 19:17 MR_H 阅读(1509) 评论(0) 推荐(0) 编辑
摘要: 学习awk的时候,感觉awk和很多语言都有相似的地方,比如awk和LEX都是对输入串采用“模式{动作}”的方式进行相应的解析。但是不同的是,awk中有两个特殊的模式,一个是BEGIN,其只在开始的时候,执行一次,其他的时候不匹配,一般可以将初始化的工作交给它,有点类似于构造函数;另一个是END,其只在结束的时候执行一次,其可以用于输出统计的结果。  awk中默认的变量是$0... 阅读全文
posted @ 2010-07-28 19:08 MR_H 阅读(1751) 评论(2) 推荐(0) 编辑