打字猴:1.70043711e+09
1700437110 菲利斯·福克斯(Phyllis Fox)是这类数值计算的先驱,也是为Fortran程序员开发的PORT库的主要贡献者。PORT为在不同计算机上可能有差异的数值范围定义了与特定机器相关的常量,它保证了Fortran代码能够移植到不同类型的计算机上。
1700437111
1700437112 PORT库是个大项目,最终产出1500个程序文件,13万行Fortran代码,还有大量文档。芭芭拉·赖德(Barbara Ryder)和斯图·费尔德曼开发了Fortran编译器PFORT,用于检查Fortran代码是否是用标准Fortran的可移植子集编写的。诺姆·史莱尔(Norm Schryer)编写了检查计算机算术运算的程序,因为不同计算机的浮点运算方式往往相差甚远。这项工作尤为重要,因为当时浮点行为标准还未制定。
1700437113
1700437114 埃里克·格罗斯(Eric Grosse)和比尔·库格伦(Bill Coughran)开发了半导体建模及仿真、电路分析和可视化的算法,主要用于半导体设计和制造。贝尔实验室开发的许多数值软件通过Netlib数学软件库在全球范围内发布,至今仍被科学计算界广泛使用。对Netlib和更大的社区做出重大贡献的其他数值分析家还有戴夫·盖伊、琳达·考夫曼(Linda Kaufman)和玛格丽特·莱特(Margaret Wright)等。
1700437115
1700437116 2. AT&T的800号码目录
1700437117
1700437118
1700437119
1700437120
1700437121
1700437122 埃里克·格罗斯的软件分发经验在一个有趣但与Unix无关的项目中帮了大忙:1994年,埃里克、洛琳达·彻丽和我把AT&T的800号码目录放到了当时还是全新的互联网上。我们的目的是让AT&T获得一些提供真正的互联网服务(以及互联网本身)的经验,也许还能给800号码带来更多呼入,甚至最终通过显示广告等增值服务获得收入。此外,我们希望通过提供真正有价值的服务,而不仅仅像当时许多互联网产品那样名不副实,从而获得合理的公共关系利益。
1700437123
1700437124 1994年8月,我们拿到包含157 000条记录的数据库快照,共约22 MB。几个小时内,我们就已将其做成可搜索和浏览的网站,在本地计算机上运行。说服AT&T管理层将其公开花了比这多得多的时间。然而,经过深思熟虑,管理层的排斥和惯性最终屈服于AT&T的竞争对手MCI即将提供互联网服务的传闻,于是该目录于1994年10月19日公开发布。这是AT&T的第一个网页服务。
1700437125
1700437126 公司策略造成的拖延令人略感沮丧,但关于数据的故事却很有启发性。数据库内容错漏百出,显然没有人用挑剔的眼光去检查那一大堆列表,如“辛辛那提(Cincinnati)”就有9种不同拼法(它们将成为正则表达式应用的好例子)。
1700437127
1700437128 尽管该目录服务不尽完善,但还是获得了一些公共关系上的好处:它一度被列在雅虎万维网指南(Yahoo WWW Guide)的“酷链接”(Cool Links)之首。(雅虎本身成立于1994年初,它的索引完全是手工编制的。) AT&T差点就落后于MCI,但却通过率先提供有用的服务略胜一筹。该目录确实让AT&T看起来涉足了互联网,它激发了大量内部的讨论和为规划进一步服务做计划的计划。最起码,这让人们认识到互联网发展和变化的非凡速度;正如我当时的非正式报告中所说:“如果我们想要在这个领域中立足,就必须学会迅速行动。”
1700437129
1700437130 3. UUCP
1700437131
1700437132
1700437133
1700437134
1700437135
1700437136 在20世纪70年代中期,迈克尔·莱斯克编写了UUCP,即Unix到Unix的拷贝程序(Unix to Unix copy program)。它用于在Unix系统之间(一般通过普通电话线)传送文件。虽然电话线传数据速度很慢,有时还很昂贵,但电话线无处不在,而且当时大多数Unix系统都具备某种拨号访问功能。不过具有外拨能力的较少,因为这需要支付话费。
1700437137
1700437138 尽管UUCP主要用于软件发布,但早在互联网普及之前,它也是远程命令执行、邮件传输和新闻组的基础。Usenet是最早的世界性信息发布系统之一,它就建立在UUCP基础之上。
1700437139
1700437140 第一个UUCP发行版包含在Unix第7版中;在接下来的几年里,它得到改进,被移植到其他操作系统上,并且开源了。后来,随着互联网成为标准通信网络,其协议后来居上,UUCP“寿终正寝”。
1700437141
1700437142 4.安全
1700437143
1700437144
1700437145
1700437146
1700437147
1700437148 Unix社区很早就开始关注安全问题,这种兴趣部分来自Multics,部分来自密码学方面的经验。
1700437149
1700437150 有个安全问题关乎允许文件系统用户控制对其文件的访问。Unix文件系统使用9个权限位来控制文件访问。文件的所有者有3个权限位,分别控制读访问、写访问和执行访问。对于所有者来说,通常允许读和写普通的文本文件,而执行则不允许,除非该文件是可执行程序或shell脚本。还有3个权限位用于所有者的组,大概类似于部门、项目与成员的关系,或教职工与学生的关系。最后3个权限位适用于所有其他用户。
1700437151
1700437152 这种机制比Multics那套本质上要简单得多,但它在很长一段时间内都发挥了很好的作用。例如,像编辑器、编译器、shell等标准命令,都是由一个有特权的账户(通常是root用户)拥有的,它可以随意读写和执行这些命令,但普通用户只能执行(也许还可以读)而不能写。需要注意的是,可以在不能读取程序内容的情况下执行程序,这样一来,程序就可以安全地包含受保护的信息。
1700437153
1700437154 早期有个改进是为文件设置了第10个权限位,称为setuid (意为“设置用户ID”)位。设置这个权限位后,文件作为程序执行时,检查权限的用户ID不是运行程序的用户,而是文件的所有者。如果设置了该权限位,普通用户就可以借用程序所有者的权限运行程序。这可以用于操作文件系统创建目录、重命名文件等的程序:执行有特权的系统调用的程序由超级用户拥有,其访问权限不受限制。当然,setuid程序的编写和管理必须小心翼翼,如果不小心,就会严重危害系统安全。setuid由丹尼斯·里奇发明,他在1979年获得了专利。
1700437155
1700437156 如前所述,密码的概念起源于CTSS,在Multics中沿用,然后被采纳进Unix。在名为/etc/passwd的文本文件中,每个用户占一行,记录登录名、用户ID、密码和其他一些字段。从一开始,密码就是以哈希而非明文的形式存储。哈希是一种扰乱形式,要想重新创建原始密码,唯一切实可行的方法是尝试所有可能的密码。这意味着任何人都可以读取密码文件,但不能使用哈希密码以别人的身份登录。
1700437157
1700437158 理论如此。但是,如果哈希没做好,或者密码太简单,就有可能被解密。肯和鲍勃·莫里斯收集了各种Unix系统的密码文件,进行字典攻击实验,尝试疑似密码,看它们哈希之后是否与密码文件中存储的内容相同。他们在20世纪70年代中期的研究表明,10%~30%的密码可以通过这种方式获得。
1700437159
[ 上一页 ]  [ :1.70043711e+09 ]  [ 下一页 ]