Slackware Linux 的发展历程

目前可供Linux用户使用的 发行版有很多种,它们虽基于共同的内核,但在安装、提供的应用程序、服务等方面各具特色,并拥有各自的用户群体。Slackware Linux是一个历史比较悠久的发行版,它的存在见证了Linux的发展历程,它的创始人Patrick Volkerding究竟是怎样创办的Slackware Linux的呢?

从Slackware Linux 1.0版发布到现在已经有十年的时间了。而事实上,这个项目的部分开发最早可追溯到1992年。因此,Slackeware可谓是目前市场存活时间最长的 Linux发行版之一。Slackware是创始人Patrick Volkerding主持设计,并发行的一个高级Linux操作系统版本,以易用和稳定为设计宗旨,其原形基于一个称作SLS(Soft Landing Systems)的Linux项目。

Patrick Volkerding 1993年毕业于美国明尼苏达州的Moorhead大学计算机专业。Slackware获得成功时,年仅27岁。作为Slackware项目的创始人,他 多年来为该项目倾注了大量的心血,因此在Slackware社区及使用者中树立了很高的威信。直到现在,在有关Slackware的论坛中,仍可以看到很 多崇拜他的言语,他们甚至把他称作“英雄”。

计算机情结

Patrick Volkerding初次接触计算机是在1973年。当时他还是个小孩子,有次与同学一起参观North Dakota州立大学的计算机系。来到机房,那里存放的机器令他震惊了―许多闪着指示灯快速运转着的“大家伙”塞满了整间屋子,并存放着成排的大型磁盘驱 动器。管理员还向他们展示了如何操作一台带有打字机的终端。这些使他一下就迷上了计算机。

但是在那时,Volkerding没有任何途径能获得一台家用计算机,甚至都不 敢想象会有这种事情。因此,他开始对电子学产生了兴趣,因为它显得更实际。过了几年,第一批个人计算机开始陆续出现,如TRS-80、苹果Ⅱ和Atari 400/800等。Volkerding就跑到出售这些计算机的商店里打工,但是他仍旧买不起计算机。幸运的是,有位商店的老板允许他使用他们的机器。从 此,Volkerding开始自学BASIC,并时不时地为商店编写一些小演示程序,以期能够继续留在那里。

1980年,Volkerding终于获得了一台当时十分热门的苹果Ⅱ计算机。这台机器他使用了很长时间,还在这台机器上安装了C编译器和类Unix的操作系统,但后者与Linux还不太搭边。

接触Linux

1992年末,Volkerding从一位朋友那里听说了Linux,但当时并 没有立即下载试用。直到有一天,学校的一个项目需要一个LISP解释器,他才突然记起有人曾提过的Linux上面有类似的东西。因此,他下载了一个SLS Linux(最早的商业Linux发行版之一)。

Volkerding开始并没有想过要去搞一个Linux发行版。人工智能学教 授让Volkerding给他展示如何安装Linux,以便于他可以在家里的机器上使用,并与一些已毕业的在LISP上很有研究的学生分享使用心得。因 此,Volkerding和他的教授一起去PC实验室安装SLS Linux。

项目悄然诞生

在接触了SLS Linux几周以后,Volkerding发现安装后的这个操作系统有很多地方需要修改,多到不得不列上一个长单子来进行记录。Volkerding自己 动手基本修改了单子上所列的问题,并为其编写了一些基本的软件。他的教授询问道:“有没有办法把它原先安装盘上的程序修改一下?这样每次安装新机器的时候 就不必那么费事了。”这一语惊醒梦中人,也促成了Slackware项目的开始。Volkerding开始修改部分SLS的原始安装脚本及一些漏洞,并增 添了新的功能,使得系统可以自动安装共享库和内核映像等软件包。此外,他还编辑了一些描述文件,使得介绍安装的内容更加详实。更重要的一点 是,Volkerding深入到那些软件包中,把能够找到的问题都修改了一遍。大部分软件包都能够良好运行,但仍旧有一些需要改动。在邮件、网络和 UUCP等应用程序中有大量不正确的文件许可现象,使这些软件无法正常发挥应有的功能。还有一些程序可能会引起内核阻塞,但系统却没做任何说明。对于这 些,Volkerding都到网上重新查找并整理了源代码。

当时的SLS版本使用的Linux内核是0.98pl4,Volkerding 把改进的版本与0.99pl9内核整合在一起。此时,他已经对这个发行版中将近一半的软件包进行了改进,并对剩余的一半进行了重新确认。针对一些长期存在 的问题,Volkerding还编写了一些代码来解决它们。所以,Slackware之于SLS,不仅仅是装饰的关系。

获得认可

1993年5月,Volkerding把4.4.1 C语言库和Linux 0.99pl11A内核同Slackware整合起来,使网络功能和系统稳定性方面得到了显著的改善。Volkerding的几个密西根州立大学 (MSU)的朋友认为它很棒,强烈要求把它放到FTP上。但是,当时Volkerding认为SLS很快就会推出新的版本,说不定也会做类似的改善工作, 因此迟疑了几个星期。在这期间,他不断地看到许多人在网上询问什么时候会有一个功能较完善的Linux新版本推出。因此,他在网上发出了一个帖子,标题是 “有人需要类似SLS的0.99pl11A内核的操作系统吗”。不久便得到了无数个回复的帖子。

因此,在征得了密西根州立大学系统管理员的同意后,Volkerding在大学 一台十分老旧的计算机上搭建了一个可匿名登录的FTP服务,并为此做了一份声明。此后,该FTP不断获得很多人提供的新镜像点,还有许多使用过 Slackware 1.0的用户在网上为它做积极的宣传。很快,FTP存储空间的问题也得到了解决―有人联系了Walnut Creek CDROM公司,为其提供了存储空间。

这之后,Slackware的开发队伍开始壮大,一些人帮助了该项目的编写。其 中,Savio Lam负责编写了创建彩色选单安装界面的会话程序;Ian kluft整合了smail软件包;Vince Shankan的配置脚本集合对elm和UUCP等程序的编译十分有帮助;Louis Labash贡献了一套工具,用来编译Perl脚本;Allen Gwinn编写了一个lpd软件包。此外,反馈自使用者的错误报告也帮助Slackware不断改进。所有这些更加激励了Volkerding继续做好 Slackware项目的决心。

1994年,Morse电信公司的Michael Johnston主动联系Volkerding,问他是否有兴趣发行Slackware的商业版本。这使他意识到只有这样才能让Slackware项目继 续走下去,因此接受了合作的邀请。6个月后,Volkerding又为Slackware找到了一个合作条件更优惠的合作伙伴―Walnut Creek公司。至此,Slackware开始逐步走上了正轨。

重要的贡献者

对于Slackware Linux,除了Patrick Volkerding外,还有几位重要的开发人员。David Cantrell的全职工作是开发和维护Slackware Linux,主要负责处理SPARC端口、用邮件进行技术支持、测试及新软件包的开发工作。此外,他还为系统管理员编写了autoslack和 protopkg两个实用的工具。他的个人网站地址是http://www.burdell.org。Logan Johnson肄业于美国乔治亚州科技大学,钟爱音乐和Linux。他主要负责图形方面的功能处理,并在组织网站设计及内容维护队伍方面做了大量工作。 Chris Lumens是最近才真正全职加入到Slackware工作中来的。他处理Slackware Alpha端口,并编写了一本《精通Slackware Linux》的指导性书籍。他有时还使用PHP和MySQL做一些开发工作。他真正喜欢的是Perl,并十分热衷于学一些被人认为是神秘古怪的语言。他的 个人主页是http://bangmoney.org。

挑战与机遇并存

10年的时间或许并不长。但是相对于计算机及Linux短暂的历史,10年的时间可以改变很多事情。鼎盛与辉煌是那样令人陶醉,但挫折始终是不可避免的。幸运的是,机遇总会与挑战并存。

版本回顾

老牌Linux用户都记得从前的 Slackware 1.0是放在24张软盘上的,其中13张是精髓部分,其余11张包含了XFree86和图形应用程序。当时使用的Linux内核是0.99pl11 alpha。一切显得那么简陋(与现在相比),但是却足以给当时的Linux用户带来惊喜。Slackware 1.0的推出获得了认可。很快,那一年的5个月中又有6个新的Slackware版本推出。正式的Slackware Linux 2.0是1994年7月面世的。用户可在稳定Linux内核1.0.9和开发内核1.1.18之间进行选择。它还包含了XFree86 2.1.1。这时,Patrick Volkerding把Slackware发行版带到一个商业层面,与Morse电信公司合作,策划将产品刻录在可启动光盘上,并随之发行印刷版文档说明 书。这一年,Volekerding刚满27岁。

随着Slackware进一步得到用户的好评,1995年8 月,Slackware Linux 3.0面世。这之后,其版本的发行频率趋于减缓。Slackware 4.0的发布用了4年的时间。然而这一趋势并没有延续,5个月后,新的Slackware发行版再次面世。但是令许多人惊讶的是,这个版本是以 Slackware 7.0的名称出现的。Volkerding对此及时做出了解释:因为那时Linux发行版开始逐渐增多,市场竞争激烈起来,版本号也日益膨胀。为了避免更 多用户对产品升级的一再询问,Slackware将其新产品的版本号跳至7.0。在接下来的几年里,Slackware的版本发放趋于平和,大约每年发布 一个版本。1996年到1999年间,Slackware达到了其鼎盛时期。

挫折

网络泡沫的破灭影响了整个IT 业,Slackware的运作形式也受到了冲击。Slackware原来的主要发行商Walnut Creek公司与BSDi合并,之后又被WindRiver公司购并。2001年,该公司称将不再给予Slackware开发进行支持。

受到这个事件的影响,Volekerding开始着手建立一个公司,以便自己处理发行工作。但是不幸的是,受当时大环境的影响,Patrick Volkerding面临破产,虽然可以依靠将现有产品出售给捐赠者过活,但他还是一度出现没钱支付给合作伙伴的窘境。

转机

幸运的是,事情出现了转机。Patrick Volkerding与前Walnut Creek公司的创始人之一Bob Bruce再度合作,成立了一个公司进行产品的销售。Slackware通过改变商业模式获得了一笔可观的收入。

但由于这场变故,Slackware在市场的占有率也受到了影响(1996年其 发行版市场占有率曾经达到90%)。尽管如此,Slackware在受欢迎程度及服务器开发方面仍旧保持在前五名之列。它的邮件列表(现在变成了一个在线 的用户论坛userlocal.com)积累下17万次的邮件,拥护Slackware的网络社区数量能够与以此著称的Debian相媲美。这些都表 明,Slackware仍旧保持着强大的动力。但同时也告诉我们,市场总是选择优胜者,不管资历如何,始终都要通过其考验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

golang 泛型_Golang 1.x版本泛型编程

本文介绍了Golang 1.x版本的泛型编程。往期回顾:浅谈动态追踪技术Go是一门天生为服务器程序设计的简洁的语言,因此Go的设计原则聚焦在可扩展性、可读性和并发性,而多态性并不是这门语言的设计初衷,因此就被放在了一边。虽然在2.0版…

jwt令牌_JWT令牌的秘密轮换

jwt令牌当您使用JSON Web令牌 ( JWT )或需要对有效载荷信息进行签名或加密的任何其他令牌技术时,设置令牌的到期日期很重要,因此,如果令牌到期,则可以假定这可能被视为安全漏洞,您拒绝使用此令牌…

linux android build tools,build.gradle 文件中的 Android SDK Build Tools version

build.gradle 文件中的 Android SDK Build Tools versionAndroid,Gradle,SDK2018.07.17在 Android Gradle Plugin 3.0.1 中,最低的 Android SDK Build Tools 是 26.0.2,而我声明的 25.0.0 将被忽略掉。今天新建了一个 Android 项目的时候,无意…

Linux 常用的软件包管理器/软件包管理工具

文章目录RPMYUMDNFDPKGPacmanZypperPortageEopkgUrpmiRPM 代表系统:RHEL、CentOS、Fedora、openSUSE、SUSE企业版、PCLinuxOS、Mandriva Linux、Mageia 等 主命令:rpm YUM 代表系统:RHEL、CentOS 主命令:yum DNF 这是基于 RP…

怎样用C语言实现五子棋,C语言实现五子棋

可以称得上史上最简单的五子棋版本了。可以使用curses库来改进页面和下棋方式。并且对于输入的坐标没有进行鉴别,如果输入的坐标超过棋盘大小,就会段错误退出。我改进了一点,但是还是没有完全避免这个问题。/**Gobang.c*/#include#include#de…

jasperreports_JasperReports:棘手的部分

jasperreports如果您使用Java进行编程的时间足够长,则有可能需要为业务用户生成报告。 就我而言,我已经看到几个项目使用JasperReportsLibrary来生成PDF和其他文件格式的报告。 最近,我荣幸地观察了Mike和他的团队使用上述报告库以及他们所面…

电脑运行adb闪退_adb+python进阶使用

之前文章有提到过使用python加adb刷视频,今天带来进阶版——无线多台手机。首先要使用adb连接多台手机,手机和电脑肯定要在统一局域网内。1.打开手机开发者模式,并通过USB接口链接电脑。2.打开cmd:输入adb tcpip 5555, 会得到相关…

MacBook 强制关机的四种方法

文章目录一、强制关机二、强制断电三、安全关闭(老款 MacBook)四、强制关闭一、强制关机 长按电源键,5 秒左右 二、强制断电 ShiftControlOption电源键 三、安全关闭(老款 MacBook) ControlOptionCommand电源键。…

python存储和读取数据时出现错误_python读取json文件存sql及codecs读取大文件问题...

preface: 最近帮师兄处理json文件,需要读到数据库里面,以备其后续从数据库读取数据。数据是关于yelp网站里面的: https://github.com/Yelp/dataset-examples,http://www.yelp.com/dataset_challenge/. 涉及到一些json和sql的问题,…

Mac OS/macOS 关机的命令

文章目录一、立即关机二、10 分钟后关机三、晚上 8 点关机四、立即重启一、立即关机 sudo halt 或者 sudo shutdown -h now 二、10 分钟后关机 sudo shutdown -h 10 三、晚上 8 点关机 sudo shutdown -h 20:00 四、立即重启 sudo reboot 或者 sudo shutdown -r now

使用枚举映射_用EnumMaps映射枚举键

使用枚举映射这是一种在JDK中存在很长时间的类型,当我们要定义以枚举类型作为键的映射时,这种类型会派上用场: EnumMap是一种特殊的Map 。 我们将为给定的枚举创建一个映射: public enum CoffeeType {ESPRESSO, POUR_OVER, FREN…

linux 划ext4,linux – 有没有像ext4这样的’快速’格式?

严格的答案像-E lazy_itable_init这样的解决方案不会改变结果,只会加快进程.这是明确要求的,在许多情况下人们需要更多.额外奖励在大多数情况下,您实际上需要一些与您的使用模式匹配的选项,不仅可以加快文件系统的创建速度,还可以加快使用速度并增加可用空间.我刚做了一个测试.…

java office在线编辑_国外10个最受欢迎的 Java 开发的 CMS 系统

CMS是Content Management System的缩写,意为"内容管理系统",它具有许多基于模板的优秀设计,可以加快网站开发的速度和减少开发的成本。CMS的功能并不只限于文本处理,它也可以处理图片、Flash动画、声像流、图像甚至电子…

apache kafka_Apache Kafka简介

apache kafka什么是Apache Kafka? Apache Kafka是一个分布式流系统,具有发布和订阅记录流的功能。 在另一方面,它是企业消息传递系统。 它是一个快速,水平可扩展和容错的系统。 Kafka有四个核心API, 生产者API&#x…

Mac OS 查看系统版本信息/硬件信息的命令

文章目录一、查看硬盘信息二、查看系统内核信息三、查看 OS 版本信息一、查看硬盘信息 liaowenxiongdeMacBook-Air:~ liaowenxiong$ system_profiler SPHardwareDataType Hardware:Hardware Overview:Model Name: MacBook AirModel Identifier: MacBookAir7,2Processor Name: …

人脸特征值能存放在sql server中吗_SQL运行内幕:从执行原理看调优的本质

原文链接:https://www.cnblogs.com/arthinking/p/13205303.html相信大家看过无数的MySQL调优经验贴了,会告诉你各种调优手段,如:避免 select *;join字段走索引;慎用in和not in,用exists取代in&a…

rest资源设计_REST资源何时应获得其自己的地址?

rest资源设计在纯粹的REST方法中,所有端点(起始端点除外)都是不透明的,因此不需要发布其各种详细信息。 即使使用这种方法,本文中的要点也很重要,因为服务器逻辑将必须确定何时需要结束点。 介绍 在REST体…

百度地图android绘图类,Class:android总类/android离线地图类

出自百度地图API跳转到:导航,搜索com.baidu.mapapi类 MKOfflineMapjava.lang.Object∟ com.baidu.mapapi.MKOfflineMappublic class MKOfflineMapextends java.lang.Object离线地图类(只支持老版离线地图)。字段摘要方法摘要返回类型方法booleanstart(int cityID)启…

android webviwe 头布局,Android布局问题,带有WebView下方的按钮

您需要使用android:layout_above“id/btnok”作为您的webview,并填写_parent作为webview的宽度和高度。但是,需要注意的是,在1.5及以下版本中,为了正确识别XML,需要指定相对布局视图。换句话说,您必须先使用按钮,然后使用WebView,因为WebView将引用该按钮。我认为这在1.6或2.0中…