layout: post title: "Linux简介" date: 2013-04-08 10:11 comments: true
这是去作一个面试的时候做的一个自由演讲的稿子,结果居然没用上。现在就放出来吧,供大家参考。
<!--more-->作为一个linux的老用户,这里我想和大家分享一下自己的心得和体会,基于个人体验,不到之处请多指教。
首先,我想问大家三个问题:
以上三个问题事实上只要有一个你举手的话,那么你就是一个Linux用户,至少我可以说你享受着Linux提供的服务。 虽然就像你吃下了鸡蛋不一定需要关心产下这枚鸡蛋的鸡一样,但是我还是希望大家可以管中窥豹,得到一点关于Linux的了解。
既然是介绍Linux,那么什么是Linux呢?
要知道Linux是什么,你必须知道操作系统,而知道操作系统你必须了解初步的计算机结构体系。
简单的说我们把计算机分成硬件和软件,对于软件我们又分成操作系统和应用程序。所以如果我们用一张图表示这个体系结构的话,计算机可以被解释成一个三层结构的图。
最下层的硬件就是我们通常使用的设备,比如键盘,比如显示器这些。 而应用程序就是大家平常是用的word,chrome浏览器就是属于这个范畴。
比如一个最最简单的任务,你需要把一行字符比如"aaaaaaaaaa"输入到word中去怎么办?
你从硬件层的键盘输入了aaaaaaa但word怎么接收到呢? 这个就就是操作系统做的事情了。
操作系统是程序的程序,沟通硬件和程序。
Linux就是一个操作系统。
那是90年代初的一个仲夏夜,芬兰赫尔辛基大学的大学生Linus得到了一个新的玩具,一台X86的电脑,但是他缺少足够的资金驱动这台设备。于是他开始自己动手编写操作系统。事实上,这个操作系统实现的第一个功能就是从键盘接受输入并输出到屏幕上。
匆匆二十多年过去了,当年的X86平台已经扩展到从超级计算机到嵌入式设备到手机,平板等等的各式各样的设备上了。所谓的Linux-based基本就是说操作系统的层面上使用的Linux。这点上比如Andriod,所以使用Andriod的同学,你们都是Linux的用户了。
这里我们说的Linux事实上都是在指Linux keneral,也就是纯操作系统部分。
当然光有操作系统是没有办法构建完整的软件系统的。必须有应用程序来帮助。
当90年代,网络兴起,越来越多的人加入到Linux的开发中来的时候,人们发现美丽的七巧板其余部分居然已经准备好了。这就是GNU计划。Richard Stallman在1983~1984年开始推广的一个旨在构建一个类Unix但是不受版权限制的操作系统。GNU这个名字的由来据说就是GNU isn't Unix。当90年代的时候GNU完成了除了操作系统外的大部分工程。但是GNU的内核Hurd难产,但是这个缺口被Linux完美的补全了。所以很多人也成Linux为GNU/Linux。 这里的GNU/Linux已经基本可以完美的工作了。
但是除了早期或者发烧友,很少有人是自己从头编译内核来搭建系统,人们往往使用已经经过打包后的Linux系统集合,这样的集合也被称为发行版。 比如Ubuntu就是我现在使用的发行版。当然还有很多,比如老牌的Radhat,比如Opensuse,比如国内的Deepin等等。各式各样,应有尽有。
上面是关于Linux的基础知识的介绍。下面讲讲个人的体会。
Linux的核心价值观就是自由,全方位的自由。比如我不是很喜欢现在Ubuntu的界面,所以我用的是LXDE的桌面环境,我不喜欢gedit,用的是Leafpad,IDE用的是Geany。只要你想基本Linux都可以以各种方式实现你的想法。类似与ArchLinux这样的发行版的就是甚至从安装开始就需要你自己设定。
比如我们的Ubuntu音频有点问题,我就是修改alsa-base的conf文件来修复的。过程比较繁杂但是只要不断尝试,好好利用好Google的功能,那么你就可以得到解决问题,一般而言作为新手的问题是大家都经历过的。当然Ubuntu的论坛等也不错。
“我的些许成就是应为我站在巨人的肩膀上。”Linux,包括它所在的Open Source Movement鼓励的就是开放共享的精神。
前段时间我的同学买了一台Mac结果发现没办法打开Word怎么办?
其实很简单使用Libreoffice就行。我很快就推荐她使用这个软件。我怎么知道Libreoffice的?很简单啊!Ubuntu的默认办公软件就是Libreoffice。
当然我现在不使用Libreoffice了,因为WPS开发了Linux版本。这个版本我从Alpha3开始跟进,知道前段时间的beta,发表使用感受和报告bug。比如我的ppt里面公式显示的问题等等,现在这款软件终于发布了。成就感卓然而生。这就是社区模式,大家都参与进来!
回到开头的提问:
Andriod为什么是Linux的?因为Andriod底层使用了Linux的内核来作为操作系统进行设备控制等等。事实上从Linux Keneral3.3开始Andriod就开始回归Linux Keneral的主干。
对于Google和Baidu,Amozon这样的互联网巨头而言,他们的数据中心和服务器就是Linux的。
非常著名的LAMP网站架构的基础就是Linux。
Raymond在自己的名著中曾经这么评价过软件的开发方式。
第一种是大教堂式的开发方式。
一如伟大的圣彼得大教堂。从1506年破土动工,到1626年建成,120年,米开朗基罗等四代设计师前赴后继,多任教皇不懈奋斗才终于建成。284根大理石柱,不仅仅是圣彼得伟业的象征也是生命不息和人类伟大智慧与心血的结晶。
当然代价也是不菲的。
第二种就是集市。随处可见,千年不息。大家自发而来,互换有无,各取所需。
很显然Windows是前者,Linux是后者。
这里我不想评判孰优孰劣,因为任何的判断都是有价值观基础的。你的判断取决于你的立场和价值观。
但是,对于我来说,我喜欢Linux,它的自由风格、DIY习惯、分享精神让我深深着迷。
希望你也可以喜欢上Linux。