也许你经常会听到人们把Linux及BSD系统混为一谈,甚至于媒体都这么说。当然,事实上这两者确实有很多相似之处,比如它们都是基于Unix演变而来, 而且基本上这两类系统都是由非盈利组织及团队开发,另外我更想说的是,这两个系统都有一个共同的目标–那就是创建最有用、最可靠的操作系统。 那么 这两个系统的区别到底在哪里?国外一位名为 Jack Wallen 的科技 Blogger 发表了一篇名为 10 differences between Linux and BSD 的文章,从许可证、 代码控制、内核 vs 操作系统、UNIX-Like、基本系统、更多来自于源代码、升级、前沿技术、硬件支持及用户群等10方面描述了 Linux 与 BSD 之间的 10 个不同之处。

1、许可证

正如我们所知道的,Linux 操作系统是基于 GPL 许可证授权下的。该许可证可防止开源软件被转换为封闭源代码软件及确保源代码的可用性。 GPL 许可证的 目的就是防止二进制包成为唯一的软件发行源。

而 BSD 许可证的限制则要少得多,它甚至允许二进制包成为唯一的发行源。这就是核心差异,可以这样理解:GPL 许可证让您有权拥有任何你想要使用该软件的 方法,但你必须确保提供源代码给下一个使用它的人(包括你对它的改变部分)。而 BSD 许可证并不是要求你必须那么做。( 译者注:这里分别维基百科上对 BSD 及 GPL 许可证的解释)

Linux系统越来越受到电脑用户的欢迎,于是很多人开始学习Linux时,学习linux,你可能会遇到linux内核问题,这里将介绍linux内核中idle知识, 在这里拿出来和大家分享一下。

1. idle是什么

简单的说idle是一个进程,其pid号为 0。其前身是系统创建的第一个进程,也是唯一一个没有通过fork()产生的进程。在smp系统中,每个处理器单元有 独立的一个运行队列,而每个运行队列上又有一个idle进程,即有多少处理器单元,就有多少idle进程。系统的空闲时间,其实就是指idle进程的"运行时间"。 既然是idle是进程,那我们来看看idle是如何被创建,又具体做了哪些事情?

php安全过滤是防止注入的第一道防线,不得大意。提到PHP的安全过滤,不得不提的两个东西是`set_magic_quotes_runtime` 和 `magic_quotes_gpc`。

`set_magic_quotes_runtime()` 可以让程序员在代码中动态开启或关闭 `magic_quotes_runtime`,`set_magic_quotes_runtime(1)` 表示开启, `set_magic_quotes_runtime(0)` 则表示关闭。当`set_magic_quotes_runtime(1)`时,从数据库或通过`fread`之类的函数读取的文本,将自动对' "和\自动 加上反斜杠\进行转义,防止溢出。这在对数据库的数据进行转移的时候非常有用。但在一般情况下,应当将其关闭,否则从数据库读取出来的数据单引 号、双引号和反斜杠都会被加上\,导致显示不正常。像Discuz,PHPWind都在公共文件的头部加上一句 `set_magic_quotes_runtime(0);` 强制关闭 `magic_quotes_runtime` 。

`magic_quotes_gpc` 和 `magic_quotes_runtime` 的区别在于,`magic_quotes_gpc` 是对通过GET、POST、COOKIE传递的数据进行转义,一般在数据入库前 要先进行转义,`magic_quotes_gpc`不能在代码中动态开启或关 闭,需要到`php.ini`将`magic_quotes_gpc`设置为on或off,代码中可以用`get_magic_quotes_gpc` 获取 `magic_quotes_gpc`的状态。当`magic_quotes_gpc`为off时,需要手工对数据进行addslashes,代码如下:

入侵者使用假IP地址发送包,利用基于IP地址证实的应用程序。其结果是未授权的远端用户进入带有防火墙的主机系统。

假设有两台主机A、B和入侵者控制的主机X。假设B授予A某些特权,使得A能够获得B所执行的一些操作。X的目标就是得到与B相同的权利。 为了实现该目标,X必须执行两步操作:首先,与B建立一个虚假连接;然后,阻止A向B报告网络证实系统的问题。主机X必须假造A的IP地址, 从而使B相信从X发来的包的确是从A发来的。

我们同时假设主机A和B之间的通信遵守TCP/IP的三次握手机制。握手方法是:

1
2
3
A->:SYN(序列号=M)
B->A:SYN(序列号=N),ACK(应答序号=M+1)
A->B:ACK(应答序号=N+1)

采用PHP5+ 开发的一个简单的 PHP HTML DOM 分析,支持 invalid HTML 并提供非常简单的方式来操作 HTML 元素。在 HMTL 页面 上查找标签所使用的语法与 jQuery (一个轻量级,实用的 javascript 框架) 相似,从页面中抽取内容只需要一行代码。开源代码: http://sourceforge.net/projects/simplehtmldom/

它具有以下几个特点:
1. 只支援 PHP5 以上.
2. 可以分析不严谨 (invalid) 的 HTML.
3. 支援简单的 CSS Selector.
4. 简单的 DOM 操作.
5. 会维持 HTML 中的原始格式 .
下面是使用手册上举的几个简单的使用示例。

以下是从FleaPHP上挖来的,感谢FleaPHP的开发者们。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
* 输出变量的内容,通常用于调试
*
* @package Core
*
* @param mixed $vars 要输出的变量
* @param string $label
* @param boolean $return
*/
function dump($vars, $label = '', $return = false)
{
    if (ini_get('html_errors')) {
        $content = "<pre>\n";
        if ($label != '') {
            $content .= "<strong>{$label} :</strong>\n";
        }
        $content .= htmlspecialchars(print_r($vars, true));
        $content .= "\n</pre>\n";
    } else {
        $content = $label . " :\n" . print_r($vars, true);
    }
    if ($return) { return $content; }
    echo $content;
    return null;
}

UTF-8有点类似于Haffman编码,它将Unicode编码为:
00000000-0000007F的字符,用单个字节来表示;
00000080-000007FF的字符用两个字节表示 (中文的编码范围)
00000800-0000FFFF的字符用3字节表示
编码转换:iconv -f “文件目前编码” -t “文件转换后的编码” -o “转换后生成的新文件名” “源文件名”temp = Iconv.conv("UTF-8","gb2312",a)

因为目前为止Unicode-16规范没有指定FFFF以上的字符,所以UTF-8最多是使用3个字节来表示一个字符。但理论上来说,UTF-8最多需要用6字节表示一个字符。 在UTF-8里,英文字符仍然跟ASCII编码一样,因此原先的函数库可以继续使用。而中文的编码范围是在0080-07FF之间,因此是2个字节表示(但这两个字节 和GB编码的两个字节是不同的)。

主流的爬虫

Nutch
开发语言:Java
主页:http://lucene.apache.org/nutch/
简介:
Apache的子项目之一,属于Lucene项目下的子项目。
Nutch是一个基于Lucene,类似Google的完整网络搜索引擎解决方案,基于Hadoop的分布式处理模型保证了系统的性能,类似Eclipse的插件机制 保证了系统的可客户化,而且很容易集成到自己的应用之中。

Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单。Snoopy正确运行需要你的服务器的PHP版本在4以上, 并且支持PCRE(Perl Compatible Regular Expressions),基本的LAMP服务都支持。

一、Snoopy的一些特点

1.抓取网页的内容 fetch
2.抓取网页的文本内容 (去除HTML标签) fetchtext
3.抓取网页的链接,表单 fetchlinks fetchform
4.支持代理主机
5.支持基本的用户名/密码验证
6.支持设置user_agent, referer(来路), cookies和header content(头文件)
7.支持浏览器重定向,并能控制重定向深度
8.能把网页中的链接扩展成高质量的url(默认)
9.提交数据并且获取返回值
10.支持跟踪HTML框架
11.支持重定向的时候传递cookies,要求php4以上就可以了,由于本身是php一个类,无需扩支持,服务器不支持curl时候的最好选择