咦!安装软件有什么难的?在
W
牌的操作系统上面安装软件时,不是只要一直给他按
『下一步』
就可以安装妥当了吗?话是这样说没错啦,不过,也由于如此,所以在
Windows
系统上面的软件都
是一模一样的,也就是说,你『
无法修改该软件的源代码
』,因此,
万一你想要增加或者减少该软
件的某些功能时,大概只能求助于当初发行该软件的厂商了!
(
这就是所谓的商机吗?
)
或许你会说:『唉呦!我不过是一般人,不会用到多余的功能,所以不太可能会更动到程序代码的部
分吧?』
如果你这么想的话,很抱歉~是有问题的!怎么说呢?像目前网络上面的病毒、黑客软件、
臭虫程序等等,
都可能对你的主机上面的某些软件造成影响,导致主机的当机或者是其他数据损毁
等等的伤害。
如果你可以½由安全信息单位所提供的修订方式½行修改,
那么你½可以很快速的自
行修补好该软件的漏洞,而不必一定要等到软件开发商提供修补的程序包哩!要知道,
提早补洞
是很
重要的一件事。
Tips
并不是软件开发商故意要搞出一个有问题的软件,而是某些程序代码当初设计时可能
没有考虑周全,
或者是程序代码与操作系统的权限设定并不相同,所导致的一些漏洞。当然,也有可能是
cracker
透过某些攻击程序测试到程序的不周全所致。
无论如何,只要有网络存在的一天,可以想象的到,程序的漏洞永
远补不完!但能补多少就补多少吧!
这样说可以了½
Linux
的优点了吗?没错!因为
Linux
上面的软件几乎都是经过
GPL
的授权
,所
以每个软件几乎均提供源代码,
并且你可以自行修改该程序代码,以符合你个人的需求呢!很棒吧!
这就是开放源码的优点啰!不过,到底什么是开放源码?
这些程序代码是什么咚咚?又
Linux
上面
可以执行的相关软件文件与开放源码之间是如何转换的?不同版本的
Linux
之间能不能使用同一个
执行档?或者是该执行档需要由源代码的部分重新½行转换?
这些都是需要厘清观念的。底下我们
先就源代码与可执行文件来½行说明。
21.1.1
什么是开放源码、编译程序与可执行文件
在讨论程序代码是什么之前,我们先来谈论一下什么是可执行文件?我们说过,在
Linux
系统上面,
一个文件能不能被执行看的是有没有可执行的那个权限
(
具有
x permission)
,不过,
Linux
系统上真
正认识的可执行文件其实是二½制文件
( binary program)
,例如
/usr/bin/passwd, /bin/touch
这些个文
件即为二½制程序代码。
或许你会说
shell scripts
不是也可以执行吗?其实
shell scripts
只是利用
shell (
例如
bash)
这支程
序的功能½行一些判断式,而最终执行的除了
bash
提供的功能外,仍是呼½一些已经编译好的二½
制程序来执行的呢!
当然啦,
bash
本身也是一支二½制程序啊!那么我怎么知道一个文件是否为
binary
呢?还记得我们在
第六章里面提到的
file
这个指令的功能吗?对啦!用他就是了!我们现在
来测试一下:
#
先以系
文件
测试
看看:
[root@study ~]#
file /bin/bash
/bin/bash: ELF 64
-
bit LSB executable, x86
-
64,
version 1 (SYSV), dynamically linked