Linux简介与厂商版本
1. Linux简介
Linux可以有狭义和广义两种定义。狭义来说,Linux实际上指Linux kernel (内核)。内核负责管理硬件,并为上层应用提供接口。而广义来说,是指以Linux kernel为基础的,包括OS和各种应用在内的各个Linux版本(distribution)。尽管看起来版本眼花缭乱,但实际上,各个版本之间也只是大同小异,其差别往往体现在客户群、升级维护和界面等方面。
Linus Torvalds是Linux之父。他根据Minix系统的代码,参照UNIX系统的设计,写出了第一给Linux内核。Linus的创举在于将Linux内核的代码开源。后来,Linux内核和一套开源的应用软件GNU结合,共同采取开源协议,并迅速发展成熟。我们可以随意地使用和修改开源代码,但以此为基础开发的程序也要根据开源协议公开。Linux和GNU的开源性吸引了大批优秀的程序员参与到Linux相关的开发中。
从哲学和设计理念上,Linux与其他的UNIX版本相类似,并使用类似的接口。我们可以通过学习Linux的基本概念和机制来了解其它UNIX系统,比如Solaris, FreeBSD,还有基于FreeBSD的苹果公司的Mac OS。曾经Windows的兴起曾经让许多人认为UNIX将最终被Windows取代,但如今看到Linux和苹果产品的兴盛,我很感慨于UNIX体系的力量。
Linux的有如下比较重要的机制: 用于储存数据以及管理权限的文件系统,用于IO的文本操作API,用于管理操作的进程,用于实现多任务运行的多线程,以及进程间通信(我将信号和网络也都归入这一类中)。
特别推荐下面的一些文章,以便你对Linux有一个概观:
大教堂和市集(The Cathedral and the Bazaar),作者Eric Raymond
可以说是为Linux正名的一篇文章,深入分析Linux成功的原因。你也可以通过名字来搜索中文翻译版本。
该作者的其他文章也非常值得一读。
UNIX传奇,来自酷壳,作者陈皓
(作者博客内容丰富,又容易读,非常值得订阅。)
2. Linux的厂商版本
在Linux内核基础上,我们还有许多厂商版本。即使有了内核和GNU软件,Linux的安装和编译并不是简单的工作,Linux厂商就是瞄准了这个市场。这些厂商会在Linux内核的基础上,结合自己开发的软件,帮助用户安装和使用Linux,并提供技术支持。由于在服务器领域,Linux操作系统远远领先于Windows系统,而这些被政府部门、银行或者大学拥有的服务器往往承担很重要的信息处理和IO (input/outpt) 工作,所以尽管Linux开源,厂商还是可以根据其提供的商用软件和技术支持获得丰厚的利润。
(IBM是Linux设备最大的供应商,同时它的咨询业务很大一部份也来源于提供Linux相关的支持。我们所熟知的Android操作系统,也算是Google提供的一个厂商版本。)
我们这里主要介绍在PC上比较流行的Linux厂商版本:
1. 红帽系列
- Red Hat linux: 大名鼎鼎的红帽,现在已经完结。以此为基础有以下分支:
- Red Hat Enterprise: (www.redhat.com) 这个是企业级的linux,主要面向服务器。作为商业版,有比较好的配套软件和技术支持。RH的教材也堪称经典。
- Fedora: (http://fedoraproject.org) 由社区维护,去除了一些商业软件。红帽实际上赞助了这个项目,以便以此作为技术测试平台。
- CentOS: (www.centos.org) 这个版本不来自红帽的公司,是收集红帽公开的源码组成的免费版本,由社区维护,和红帽完全兼容。版本号升级较慢,但有持续的技术支持,所以适合于不愿意频繁升级的情形,鸟哥中就推荐以CentOS来建站。
2. SUSE系列
- SUSE Linux Enterprise: (www.suse.com) 和红帽商业版类似,是德国公司制作的,据说在欧洲比较流行,但我欧洲的朋友表示没怎么听说过。SUSE系列比较有特色的是YAST2,就是用来设置Linux的界面,对初级管理员比较方便。
- openSUSE: (www.opensuse.org) SUSE的免费版本。以前SUSE不是很推这个免费版本,支持不好。现在似乎态度大大转变。就我个人的使用体验来说,还是觉得社区支持不足。
3. Debian系列
- Debian: (www.debian.org) 完全免费,社区维护的Linux版本,有很大的用户群,所以遇到问题,基本都可以找到社区用户的支持。
- Ubuntu: (www.ubuntu.com) 由一个基金提供支持的免费Linux版本。 继承自Debian。界面很友好。发邮件过去,还会送你免费安装CD (不知道现在还有没有)。现在的版本加载的东西有些多,速度有些慢。写《大教堂和市集》的Eric Raymond说它是最好的Linux。
- Mint (http://www.linuxmint.com), 基于ubuntu。它提供了更加丰富的预装应用,以减少用户搜索并安装应用的麻烦。其使用的应用版本比较新,可能不是很稳定。
此外,还有如下一些版本:
- Gentoo (www.gentoo.org) 基于源码的版本,提供给用户很大的自由度。为用户提供大量应用程序的源码,可以在用户的系统上重新编译建造。需要一定的系统配置的知识。
- ArchLinux (www.archlinux.org),推崇简洁,避免不必要和复杂的修改,是一个轻便灵活的版本。其配置文件有良好注释。
- Mandriva (www.mandriva.com) 一个很方便用户使用的版本,其目标是使得新用户更容易使用linux。
- Slackware (www.slackware.com) 稳定,基本。它的只包含稳定版本的应用程序。对于初级用户不是很友好。
- TurboLinux (www.turbolinux.com) 在亚洲比较流行。商业版本,提供技术支持和咨询服务。
(参考 Linux Administration Handbook, wikipedia)
- Python标准库12 数学与随机数 (math包,random包)
- .Net魔法堂:发个带附件的邮件
- apache域名绑定(appserv环境)
- JS魔法堂:那些困扰你的DOM集合类型
- ASP.NET Core 介绍和项目解读
- 【手把手教你全文检索】Lucene索引的【增、删、改、查】
- 红方块躲避—天才游戏
- .NET Core全新路线图(译)
- JS魔法堂:阻止元素被选中
- CSS3魔法堂:禁止用户改变textarea大小
- CentOS6.5菜鸟之旅:VIM插件NERDtree初探
- CentOS6.5菜鸟之旅:安装输入法(小呀小企鹅)
- CSS魔法堂:选择器及其优先级
- 常见的Web实时消息交互方式和SignalR
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法