Pages

Saturday, 3 August 2024

linux是什么


我们知道,计算机是由一堆硬件所组成,为了有效的控制这些硬件资源,于是乎就有了操作系统的产生。操作系统不仅能有效率的控制这些硬件资源的分配,还为其它软件提供支持,为其他的软件的开发提供必要的服务和相应的接口等。


没错,linux就是一套操作系统。早期的linux是针对386来开发的。linux操作系统与window操作系统和MAC操作系统不同的是,linux是开源的操作系统,所以它的程序代码被世界各地热衷于开源的人修改成适合在各种机器上面运行,也就是说,linux是具有可移植性的,这是linux的一个很重要的功能。


linux之前,unix的历史


早在linux出现之前二十年(大约1970年代),就有一个稳定成熟的操作系统存在了,它就是unix。一开始unix还不叫unix,叫unics,是由ken Thompson开发的。刚开始,他是以汇编语言编写出了核心程序,同时包括一些核心工具程序,与及一个小小的文件系统。由于Thmopson写的这个操作系统实在太好用,所以在贝尔实验室内部广为流传。但是由于unics本来是以汇编语言写成的,汇编语言具有专一性,加上当时的计算机机器架构都不太相同,所以每次要安装在不同的机器上,都要重新编写汇编语言,相当不方便。


后来Thompson与Ritchie合作,想将Unics进行修改,以高阶程序语言来撰写。当时现成的高阶程序语言有B语言。 但是由B语言所编译出来的核心效能不是很好。后来Dennis Ritchie将B语言重新改写成C语言,再以C语言重新改写与编译Unics的核心, 最后发行出Unix的正式版本!


需要特别强调的是,由于Unix是以较高阶的C语言写的,相对于汇编语言需要与硬件有密切的配合, 高阶的C语言与硬件的相关性就没有这么大了!所以,这个改变也使得Unix很容易被移植到不同的机器上面!


关于开源GNU计划

自由软件的活动:

1984年创立GNU计划与FSF基金会的Stallman先生认为,写程序最大的快乐就是让自己发展的良好的软件让大家来使用了! 而既然程序是想要分享给大家使用的,不过,每个人所使用的计算机软硬件并不相同, 既然如此的话,那么该程序的原始码(Source code)就应该要同时释出, 这样才能方便大家修改而适用于每个人的计算机中!这个将原始码连同软件程序释出的举动, 就称为自由软件(Free Software)运动!


此外,史托曼同时认为,如果你将你程序的Source code分享出来时,若该程序是很优秀的,那么将会有很多人使用, 而每个人对于该程序都可以查阅source code,无形之中,就会有一票人帮你除错啰! 你的这支程序将会越来越壮大!越来越优秀呢!

自由软件的版权GNU GPL:

而为了避免自己的开发出来的Open source自由软件被拿去做成专利软件, 于是Stallman同时将GNU与FSF发展出来的软件,都挂上GPL的版权宣告。 这个FSF的核心观念是:版权制度是促进社会进步的手段, 版权本身不是自然权力。


自由(Free)的真谛:

首先,Stallman对GPL一直是强调Free的,这个Free的意思是这样的:Free Software(自由软件)是一种自由的权力,并非是『价格!』 举例来说,你可以拥有自由呼吸的权力、你拥有自由发表言论的权力, 但是,这并不代表你可以到处喝『免费的啤酒!(free beer)』,也就是说, 自由软件的重点并不是指『免费』的,而是指具有『自由度, freedom』的软件, 史托曼进一步说明了自由度的意义是: 使用者可以自由的执行、复制、再发行、学习、修改与强化自由软件。


这无疑是个好消息!因为如此一来,你所拿到的软件可能原先只能在Unix上面跑, 但是经过原始码的修改之后,你将可以拿他在Linux或者是Windows上面来跑!总之, 一个软件挂上了GPL版权宣告之后,他自然就成了自由软件!这个软件就具有底下的特色:


取得软件与原始码:你可以根据自己的需求来执行这个自由软件;

复制:你可以自由的复制该软件;

修改:你可以将取得的原始码进行程序修改工作,使之适合你的工作;

再发行:你可以将你修改过的程序,再度的自由发行,而不会与原先的撰写者冲突;

回馈:你应该将你修改过的程序代码回馈于社群!

但请特别留意,你所修改的任何一个自由软件都不应该也不能这样:

修改授权:你不能将一个GPL授权的自由软件,在你修改后而将他取消GPL授权。

单纯贩卖:你不能单纯的贩卖自由软件。

No comments:

Post a Comment