Browsed by
分类:操作系统

计算机编程简史图

计算机编程简史图

这个图片太经典了,本来想翻译的,后来觉得这么经典的图片可能早已被人翻译了,简单的Google一下,果然有人翻译了。那我就把英文版和中文版都转过来吧。我们可以看到,其中很大一部分人都和Unix有着不解之缘(参见《Unix传奇上篇Unix传奇下篇》)

什么也不说了,直接上图(图片比较大,单击图片看大图)


计算机编程简史图(英文版)

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (16 人打了分,平均分: 4.44 )
Loading...
McAfee误杀svchost.exe

McAfee误杀svchost.exe

这两天,杀毒软件又出事了。还记得2007年5月,那次是Norton把简体中文Windows下的netapi32.dll 和 lsasrv.dll。最近的一次是,2008年11月,AVG把user32.dll给干掉了。

这次是McAfee的5958版病毒库,导致McAfee误杀了Windows XP SP3下的svchost.exe,这最终导致了Windows不断地重复启动,据说有数十万PC成了小白鼠。简单地到Twitter和各国外技术社区看看,真是受灾严重啊。

下面是出错信息:

The file C:WINDOWS\system32\svchost.exe contains the W32/Wecorl.a Virus.
Undetermined clean error, OAS denied access and continued.
Detected using Scan engine version 5400.1158 DAT version 5958.0000.

其实,可能大家都误解了,McAfee把svchost.exe识别为一个恶意程序,我觉得这是一种“实事求是”的态度啊,svchost.exe难道不是Windows下的万恶之源吗?多少年来,svchost.exe成为了多少病毒,木马和流氓程序的温床,这么多年过去了,Windows用户们默默地承受着svchost.exe所带来的痛苦,经过这么长的时间,只有McAfee不惧M$的淫威第一个站出来把svchost.exe揪出来办了,这是一种什么样的精神啊……

好烂啊有点差凑合看看还不错很精彩 (18 人打了分,平均分: 4.61 )
Loading...
telnet的一个Bug

telnet的一个Bug

下面这个链接是Linux分发包Ubuntu的关于Telnet命令的Man Page,

http://manpages.ubuntu.com/manpages/karmic/man1/telnet-ssl.1.html

打开这个Man Page,把页面拉到最后一行,你会看到下面这个BUG(“BUGS:源代码不易读!”)

     The source code is not comprehensible.

Telnet的源代码在这里:http://packages.ubuntu.com/source/dapper/netkit-telnet,下载下来一看,还真是不易读,简单地看了一下代码,发现至少有这样一些问题:

  • 空格和Tab键混用的缩进,导致很多代码在没有缩进。
  • 大量的#if #else以及大量的各种预编译宏。以及一些怪异的宏。如:

#ifndef B19200
#define B19200 B9600
#endif

#ifndef B38400
#define B38400 B19200
#endif

  • 什么叫在C中写C++,第一次见。(在terminal.cc中间居然出现了几个class)
  • 变量命名很不直观,大量的old, tmp, c1, c2, s1, s2, s3 等学校里用的变量名,只有作者自己知道是什么意思。函数命令的风格也不一致,编程风格也很不一致,基本没有编程规范。

的确很不易读。不管怎么样,很欣赏在man page中把源码的易读性列为BUG的这种作法。

好烂啊有点差凑合看看还不错很精彩 (7 人打了分,平均分: 4.00 )
Loading...
Unix传奇(上篇)

Unix传奇(上篇)

【本文曾于2007年3月于我在CSDN上的BLOG发布,现在我把其搬到酷壳来,一来是觉得这段历史相当传奇,值得大家再看看,二来也和我在酷壳上发布的一些文章相互链接。】


了解过去,我们才能知其然,更知所以然。总结过去,我们才会知道我们明天该如何去规划,该如何去走。在时间的滚轮中,许许多的东西就像流星一样一闪而逝,而有些东西却能经受着时间的考验散发着经久的魅力,让人津津乐道,流传至今。要知道明天怎么去选择,怎么去做,不是盲目地跟从今天各种各样琳琅满目前沿技术,而应该是去 —— 认认真真地了解和回顾历史。 

Unix是目前还在存活的操作系统的元老了,走过了40年的历程(参看《Unix 40年:Unix年鉴》、《Unix 40年:昨天,今天和明天》)。在技术更新如此迅速的计算机世界的今天,Unix始终保持它那神圣的光环,它那曲折和令人叹息的历史,以及由它引发的思想变革,对当今计算机文化造成的深远影响,这40年所产生的人和事,让它成为了一个传奇,不能不让人为之惊叹。

这是一段所有从事计算机行业人员尤其是软件开发人员需要了解的历史。Unix的传奇历史是整个计算机世界文化最具代表性的,它对整个计算机世界文化的影响也是最巨大,最深远的。他给人带来的不单单的对过去的回味,更为我们带来了计算机世界的新思潮。

了解这段的历史的人,才能体会计算机世界变迁过程中的是是非非,才能了解计算机世界中的文化,从而才能参与到整个计算机革命的大潮中。希望这段历史,这篇文章能让你感受到计算机世界那强力的脉搏,从而让你踏上这条令人充满激情的道路。

上篇

  • Unix起源
  • Unix分裂
  • Unix的法律纠纷
  • GNU开源组织
  • Linux横空出世
  • Linux今天的领袖

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (21 人打了分,平均分: 4.76 )
Loading...
Unix传奇(下篇)

Unix传奇(下篇)

【本文曾于2007年3月于我在CSDN上的BLOG发布,现在我把其搬到酷壳来,一来是觉得这段历史相当传奇,值得大家再看看,二来也和我在酷壳上发布的一些文章相互链接。】


<<<<   Unix传奇(上篇)
Unix是目前还在存活的操作系统的元老了,走过了40年的历程(参看《Unix 40年:Unix年鉴》、《Unix 40年:昨天,今天和明天》)。由它引发的思想变革,对当今计算机文化造成的深远影响。这是一段所有从事计算机行业人员尤其是软件开发人员需要了解的历史。Unix的传奇历史是整个计算机世界文化最具代表性的,它对整个计算机世界文化的影响也是最巨大,最深远的。他给人带来的不单单的对过去的回味,更为我们带来了计算机世界的新思潮。

下篇

  • Unix与黑客文化
  • Unix的历史教训
  • Unix 家族谱
  • Unix的特点
  • Unix的影响和哲学
  • Unix痛恨者手册

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (40 人打了分,平均分: 4.80 )
Loading...
微软的安全补丁分析

微软的安全补丁分析

截止至2009年底,大约有90%的微软安全补丁是把管理员权限给disable了。根据 BeyondTrust的报告,到今年3月分,Windows 7 有57%的安全补丁是以移除管理员权限作为解决方法的,相比较而言,Windows 2000 是 53%,Windows XP 是 62%,Windows Server 2003 是 55%,Windows Vista 是 54% 以及 Windows Server 2008 是 53%,而最牛的要算是 —— 100% 的 Microsoft Office 和 94%  Internet Explorer (其中100% 的 IE8 )的安全补丁是移除管理员权限。

这对于某些公司的IT部门来说是个好消息,因为这些公司的IT部门通常是不会让公司的员工有本机的管理员权限的,根据微软大量的安全补丁是移除某些管理员权限的这一特性,这意味着对于本机只有一般用户权限IT管理,将会防住很大一部份的恶意攻击。

Paul Cooke, Windows Client Enterprise Security主管说:“我们相信,如果你只是用一般用户来操作Windows的话,这会是一种很好的方式”。而这一提法,相对于Unix的尽可能的不用root用户操作系统这一观点,整整落后了几十年,Windows的用户很习惯于在Administrator下操作系统,这样,一旦中招,任何程序都以系统管理员的权限运行,所以结果也是毁灭性的。这样操作电脑的方式对于Unix的用户来说简直是不可想像的,因为在Unix下,99%的情况下,操作者都不会使用管理员的账号。

还记得以前和朋友的一段对话:

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (11 人打了分,平均分: 4.36 )
Loading...
粉丝眼中的操作系统

粉丝眼中的操作系统

在发布完《程序员眼中的编程语言》一文后,发现网上还有一个关于操作系统的。如下所示。

  • 图片的横轴是三大操作系统。
  • 纵轴是各操作系统的粉丝和信徒。
  • 中间的各个小图片则是,粉丝眼中的操作系统的形象。

关于操作系统,还有这一张图也很有意思。

粉丝眼中的操作系统

好烂啊有点差凑合看看还不错很精彩 (49 人打了分,平均分: 4.90 )
Loading...
Go语言源码的一个改动

Go语言源码的一个改动

2009年11月11日,光棍节,Google发布了Go语言,马上,就有网友在http://code.google.com/p/go/上找到了一个Go语言包文件操作源码/src/pkg/os/file.go文件的一个最新改动。这个改动的作者就是那个大名鼎鼎的Unix之父Ken Thompson(看看人家,都这么老了,还在写程序,佩服佩服,真是顶级程序员啊——《程序员的八个级别》),而这个改动的Log Message如下所示(把屏抓下来,以免以后某日被放到墙外或是google.com数据丢失或是Google公司倒闭)

Spell it with an “e”

spell it with an e

 

这是一个很著名的典故,要知道这个典故,你需要知道两件事,一个是Ken Thompson的经典语录,一个是Unix的系统调用。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (13 人打了分,平均分: 4.38 )
Loading...
装完Ubuntu 9.10后要干的事

装完Ubuntu 9.10后要干的事

Ubuntu 9.10刚刚release,就有人在网上发表了贴子告诉大家在装完这个操作系统后,还需要去安装的一些开源免费软件,相当丰富。不过,这个贴子的链接被GFW干掉了,所以,你需要使用Tor的支持,或是使用Google Reader才能查看源文RSS链接)。而这个贴子非常长,所以我无法作全文翻译,不过这个贴子的内容具有很强的指导意义,所以我在这里为大家总结一下该文所提到的那些诸多的东西。(关于那些如何翻墙的事情怎么做我就不多说了,网上有很多相关的文章,你自己搜索一下就可以找到)

基本工作

1)第一件事自然是下载那些Ubuntu的镜像站点表,以及更新操作系统的一些补丁。“系统”->“管理”-> “更新管理器”。

2)第二件事是设置文件目录共享。就是在文件夹上点右键,在菜单中选“属性”,然后在对话框中选“共享”,那个对话框整得跟XP几乎一模一样。当然,这需要samba的支持。(sudo apt-get install samba)

3)接下来是设置时间同步。通过NTP(Network Time Protocol)同步你的时间。通过点击“系统”->“管理”-> “时间/日期”,然后选择“Keep synchronized with Internet servers”(和Internet服务器同步),于是你需要安装NTP协议。(sudo apt-get install ntp)

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (12 人打了分,平均分: 4.67 )
Loading...
ldd 的一个安全问题

ldd 的一个安全问题

我们知道“ldd”这个命令主要是被程序员或是管理员用来查看可执行文件所依赖的动态链接库的。是的,这就是这个命令的用处。可是,这个命令比你想像的要危险得多,也许很多黑客通过ldd的安全问题来攻击你的服务器。其实,ldd的安全问题存在很长的时间了,但居然没有被官方文档所记录来下,这听上去更加难以理解了。怎么?是不是听起来有点不可思议?下面,让我为你细细道来。

首先,我们先来了解一下,我们怎么来使用ldd的,请你看一下下面的几个命令:

(1) $ ldd /bin/grep
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /lib/libc.so.6 (0xb7eca000)
        /lib/ld-linux.so.2 (0xb801e000)

(2) $ LD_TRACE_LOADED_OBJECTS=1 /bin/grep
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /lib/libc.so.6 (0xb7e30000)
        /lib/ld-linux.so.2 (0xb7f84000)

(3) $ LD_TRACE_LOADED_OBJECTS=1 /lib/ld-linux.so.2 /bin/grep
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /lib/libc.so.6 (0xb7f7c000)
        /lib/ld-linux.so.2 (0xb80d0000)

第(1)个命令,我们运行了 `ldd` 于 `/bin/grep`。我们可以看到命令的输出是我们想要的,那就是 `/bin/grep` 所依赖的动态链接库。

第(2)个命令设置了一个叫 LD_TRACE_LOADED_OBJECTS 的环境变量,然后就好像在运行命令 `/bin/grep` (但其实并不是)。 其运行结果和ldd的输出是一样的!

第(3)个命令也是设置了环境变量 LD_TRACE_LOADED_OBJECTS ,然后调用了动态链接库 `ld-linux.so` 并把 `/bin/grep` 作为参数传给它。我们发现,其输出结果还是和前面两个一样的。

阅读全文 Read More

好烂啊有点差凑合看看还不错很精彩 (9 人打了分,平均分: 4.00 )
Loading...