Linux基础
什么是Linux
操作系统的定义
An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs. The operating system is a component of the system software in a computer system. Application programs usually require an operating system to function.
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,让计算机系统所有资源最大限度地发挥作用,提供各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口等。实际上,用户是不用接触操作系统的,操作系统管理着计算机硬件资源,同时按照应用程序的资源请求,分配资源,如:划分CPU时间,内存空间的开辟,调用打印机等。
操作系统其实也是一组程序, 这组程序癿重点在于管理计算机的所有活动以及驱动系统中的所有硬件。如果计算机没有软件,就只是一堆废铁,那么操作系统的功能就是让CPU可以开始判断逻辑与运算数值、让主存储器可以开始加载/读出数据与程序代码、让硬盘可以开始
被存取、让网卡可以开始传输数据、让所有周边可以开始运转等等。总之,硬件的所有动作都必须要透过这个操作系统来达成就是了。
Linux的发展历史
众所周知的,Linux的内核原型是1991年由托瓦兹(Linus Torvalds)写出来的,但是托瓦兹为何可以写出Linux这个操作系统? 为什么他要选择386的计算机来开发?为什么Linux的发展可以这举迅速?又为什么Linux是免费的?以及目前为何有这么多的Linux版本(distributions)呢?了解这些东西后,才能够知道为何Linux可以免除专利软件之争,并且了解到Linux为何可以同时在个人计算机和大型主机上面大放异彩! 所以,在实际进入Linux的世界前,就让我们来谈一谈这些有趣的历史故事吧! _
Linux是在计算机上运作的,是一组软件,一套操作系统。用来驱动计算机的硬件,为应用程序提供支持。早期的Linux是针对386来开发的,由于Linux只有一套操作系统,而并没有包含其他的应用程序,因此很多工程师在下载了Linux内核并且实际安装之后,为了自己的需求,再在Linux上面安装其他的软件。
Linux提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构,这个架构是沿袭UNIX的良好传统来的,所以相当的稳定而功能强大。虽然Linux仅仅是其内核与内核提供的工具,不过由于内核、内核工具与这些软件开发者提供的软件整合,使得Linux逐渐成为一个更加完整的、功能强大的操作系统了。
Linux之前,UNIX的历史
早在Linux出现之前的二十年(1970年代)就已经有一个相当稳定和成熟的操作系统存在了,那就是UNIX。
1969年以前,一个伟大的梦想:Bell,MIT与GE的Multics系统,一个多用户的终端系统
-
1969年,Ken Thompson的小型文件服务器系统,用汇编语言完成,简化了Multics,被称为Unics,那个系统辨识UNIX的原型。
两个重要的概念诞生: 1. 所有的程序或系统设备都是文件 2. 无论是构建编辑器还是附属文件,所有的程序只有一个目的,并且要有效的完成目标。
1973年,UNIX的正式诞生,Ritchie等人以C语言写出第一个正式的UNIX内核。
1977年,重要的UNIX分支——BSD诞生(Berkeley Software Distribution)
1979年,重要的System V架构与版权生命
1984年,x86架构的Minix操作系统诞生,Andrew Tanengbaum谭宁邦教授完全不看UNIX内核代码,从1984年开始撰写程序,到了1986年终于完成Minix这个UNIX Like的内核程序
1984年,GNU计划于FSF基金会的成立。GNU是一个分享的环境,对于现今的开源自由软件有不可磨灭的地位和贡献。
1991年,芬兰大学生Linus Torvalds以bash、gcc等工具编写了Linux内核。
Linux是Torvalds先生开发出来的,基于GPL的版权宣告之下,可以在x86的架构下运作,也可以被移植到其他的大型主机上面,也是一种UNIX Like操作系统。
- 自由与开放的使用与学习环境
- 硬件配置需求低廉
- 核心功能强大而稳定
Linux的优缺点
优点:
- 稳定的系统
- 免费或少许费用
- 安全性、漏洞的快速修复
- 多任务、多用户
- 用户与群组的规划
- 低昂对比较不耗资源的系统
- 适用于需要小内核的嵌入式系统
- 多种整合度佳的图形用户接口GUI
缺点:
- 没有特定的支持厂商
- 游戏的支持度不足
- 专业软件的支持度不足
- 教育培训做的还不够好
Linux的应用角色
由于Linux内核实在是非常小巧精致,可以再很多强调省电以及较低硬件配置资源的环境下执行,此外由于Linux的发行版整合了非常多很棒的软件,因此也相当适合目前个人计算机用户的使用。当前Linux常见的应用角色可以分为企业和个人两方面
企业环境的应用角色:
- 网络服务器:Web服务器,应用服务器、邮件服务器、文件服务器等
- 关键任务的应用:金融数据库、大型企业网管环境
- 学术机构的高效能运算任务
个人环境的应用角色:
- 桌面计算机
- 移动终端
- 嵌入式系统
Linux的主流发行版
主流的发行版列表
发行版 | 描述 |
---|---|
RedHat Enterprise Linux | 商用Linux,Red Hat公司发布的面向企业用户的Linux操作系统 |
CentOS | 社区企业操作系统,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成 |
Fedora | Fedora基于Red Hat Linux,在Red Hat Linux终止发行后,红帽公司计划以Fedora来取代Red Hat Linux在个人领域的应用 |
OpenSUSE | openSUSE 项目是由 Novell 发起的开源社区计划,对个人来说是完全免费的,包括使用和在线更新 |
Ubuntu | Ubuntu 是基于Debian GNU/Linux,由全球化的专业开发团队(Canonical Ltd)打造的开源GNU/Linux操作系统 |
Gentoo | Gentoo是一个基于Linux的自由操作系统,追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点 |
Debian | Debian是指一个致力于创建自由操作系统的合作组织及其作品,由于Debian项目众多内核分支中以Linux宏内核为主 |
Oracle Linux | Oracle Linux是由Oracle公司提供支持的企业级Linux发行,与Red Hat Enterprise Linux完全兼容,以对Oracle软件和硬件支持较好见长 |
Elementary OS | Elementary OS是一款基于 Ubuntu 精心打磨美化的桌面 Linux 发行版,号称 “最美的 Linux” |
Deepin | Deepin 是当前中国最活跃的 Linux 发行版本,Deepin 与搜狗,WPS,傲游等合作伙伴进行了多方位合作,共同打造基于 Linux 系统的生态系统 |
Chrome OS | Chrome OS是一款Google开发的基于PC的依赖于Web的Linux的开源操作系统。 |
Linpus Lite | Linpus Linux (百资Linux) [1] 是一份基于Fedora的商用发行,它由台湾百资科技公司开发 |
Android | Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发 |
YunOS | YunOS是阿里巴巴集团旗下的一款基于Linux的智能设备操作系统产品,融合了阿里巴巴在云数据存储、云计算服务以及智能设备操作系统等多领域的技术成果 |
发行版的时间轴
创世纪:1991
- 芬兰大学生Linus Torvalds说,要有个386上的自由操作系统,于是有了Linux。(1991)
早期的碰撞反应:1992 - 1997
英国大学生Owen Le Blanc说,连fdisk和统一的软件安装来源都没有的操作系统太坑爹了,于是有了MCC Interim Linux,世界上第一个Linux发行版。(1992)
英国大学生Peter MacDonald说,作为一个操作系统,至少需要在内核基础上绑定TCP/IP和X窗口这样的基本功能,于是有了Softlanding Linux System(SLS)。(1992)
美国大学生Patrick Volkerding说,SLS维护的不好,于是有了Slackware。(1993)
美国大学生Ian Murdock说,SLS维护的不好,而且我们需要一个秉承Linux和GNU的开放精神的发行版,于是有了Debian。(1993)
德国的四个数学系大学生Roland Dyroff,Thomas Fehr,Burchard Steinbild和Hubert Mantel说,我们需要一个德文版的Slackware,于是有了S.u.S.E。(1994)
美国软件工程师Marc Ewing和年轻的创业者Robert "Bob" Young说,Linux可以为企业提供服务,于是有了Red Hat(红帽)。(1994)
全球各个学院的Geek们陆续发布了Linux Universe,DILINUX,Monkey等发行版,只是它们都很短命。(1995-1997)
宇宙大爆炸:1998-2003
美国创业者D. Jeff Dionne和Kenneth Albanowski说,我们需要为摩托罗拉DragonBall系列开发一个发行版,于是有了uClinux。(1998)
日本工程师Scott Stone说,我们要为亚洲用户们做一个红帽定制版,于是有了TurboLinux。(1998)
费米实验室说,红帽很好,但我们需要做一些定制,于是有了Fermi Linux(1998)。
法国大学生Gael Duval说,我要让红帽对于新用户来说很好用,于是有了Mandrake,也就是现在的Mandriva。(1998)
中国程序员邓煜、廖生苗和李凌说,我们要有完全中文内核的Linux,于是有了蓝点。(1999)
美国程序员Daniel Robbins说,我们需要一个没有预编译的二进制包,用户可以需要什么加什么的发行版,于是有了Enoch Linux,也就是后来的Gentoo。(1999)
加拿大软件公司Corel说,Linux也许能够帮助我们的软件扩展更多用户,于是有了Corel Linux Desktop,也就是后来的Xandros。(1999)
德国某ISP的工程师说,我们需要一个廉价的、有防火墙和杀毒等功能的网络防护系统,于是有了Astaro Security Linux(现在的Astaro Security Gateway)。(1999)
荷兰程序员Gerard Beekmans说,我们需要一个用户能够完全自定义并掌控的操作系统,于是有了Linux from Scratch。(1999)
苏格兰音乐家兼程序员Jay Klepacs说,多媒体人需要一个能够替代Windows和Mac OS的操作系统,于是有了Peanut Linux,也就是现在的aLinux。(1999)
中科院软件研究所说,我们要有自主产权的国产操作系统,于是有了红旗Linux。(1999)
美国系统管理员Ryan Finnie说,我们需要为系统管理员们做一个专门用来系统、文件修复的发行版工具盘,于是有了Finnix。(2000)
奥地利(德国)电子工程师Klaus Knopper说,我们需要一个可以在CD或U盘上就能运行的操作系统,于是有了Knoppix,也有了Live CD和Live USB。(2000)
瑞典程序员Per Lidén说,我们需要一个能够贯彻UNIX的KISS原则的、基于tar.gz打包机制的发行版,于是有了CRUX。(2000)
日本的Miracle Linux公司说,我们需要一个能够充分支持Oracle数据库的发行版,于是有了Miracle Linux。不过,后来Red Hat对Oracle的支持增强,Miracle Linux表示很尴尬,后来和红旗合作,变成了Asianux。(2000)
美国创业者Michael Robertson说,我们需要一个能跑Windows软件的Linux,于是有了Lindows。(2001)
当年Linksys无线路由WRT54G的固件在GPL下开源,一伙开发者说,我们用这个做一个嵌入式发行版在路由器里用吧,于是有了OpenWRT。(2001)
魔法爱好者Kyle Sallee说,让我们做一个可以像念魔法一样使用的发行版吧,于是有了Sorcerer。(2001)
捷克程序员Tomas Matejicek说,我们需要一个可以装在口袋里拿来拿去的Slackware,于是有了Slax。(2002)
美国大学生Aaron Griffin说,Linux发行版应该更轻量,更简单,不需要的全都不要,于是有了Arch Linux。(2002)
美国工程师Warren Woodford说,SUSE、红帽、Mandriva神马的太难了,于是有了MEPIS。(2003)
美国开源爱好者John Andrews说,我们需要为那些安度晚年的硬件们设计一个发行版,于是有了Damn Small Linux。(2003)
澳大利亚工程师Barry Kauler说,我们需要一个用内存就能跑的超轻量级发行版,而且我很爱狗,于是有了Puppy Linux。(2003)
给Mandrake打包打烦了的Bill Reynolds说,我就是想自己打包源代码自己说了算,于是有了PCLinux。(2003)
一群系统管理员们说,我们需要一个不用花钱的红帽,于是有了CentOS。(2003)
红帽说,Red Hat Linux这种桌面服务太累,我不想做了,交给社区吧,于是有了Fedora Core。(2003)
企业、政府、学院、市场、社区:2004 - 2007
西班牙安达鲁西亚政府的官员说,我们在学校、图书馆、公民活动中心这种公共场所使用Linux吧,于是有了Guadalinex。(2004)
南非富豪程序员Mark Shuttleworth说,我们应该有个专门针对桌面的Debian衍生版,于是有了Ubuntu。(2004)
台湾的国家高性能计算中心的研究员Steven Shiau说,我们应该有个专门做灾难恢复、磁盘克隆的Linux工具盘,于是有了Clonezilla。(2004)
中国开发者冷罡华和刘文欢说,中文的Linux还可以做的更好,于是有了Hiweed,也就是现在的Deepin。(2004)
CERN说,费米搞了个发行版,看来我们也需要一个,于是有了CERN Linux。(2004)
费米实验室和CERN说,既然双方都在搞Linux发行版,那能不能合作一下?于是有了Scientific Linux。(2004)
来自各个国家的几个黑客说,把黑客工具打包成一个发行版应该很酷,于是有了Auditor Security Collection,也就是后来的BackTrack。(2004)
Canonical说,我们需要让KDE爱好者也能用Ubuntu,于是有了Kubuntu。(2005)
Canonical说,一个瘦客户端架构并预装了教学软件的Ubuntu会在学校里更受欢迎,于是有了Edubuntu。(2005)
诺基亚说,用Linux应该能搞出不错的智能手机/平板的触屏操作系统,于是有了OS2005,也就是后来的Maemo。(2005)
法国安全工程师Jean-Philippe Guillemin说,我们需要一个专门针对互联网应用、多媒体和编程人员的发行版,于是有了Zenwalk。(2005)
来自法国的软件工程师Clement Lefebvre说,Ubuntu还可以更好用,更漂亮,具备更多的辅助功能,做到更多国家的本地化,于是有了Linux Mint。(2006)
一群Ubuntu用户们说,我们应该有个基于Xfce桌面的Ubuntu,于是有了Xubuntu。(2006)
Novell说,把SUSE桌面版交给社区吧,于是有了openSUSE。(2006)
红旗说,把红旗桌面版交给社区吧,于是有了Everest,也就是现在的Qomo。(2006)
甲骨文说,我们需要自己的Linux产品线,于是有了Oracle Enterprise Linux。(2006)
一群Ubuntu爱好者说,我就要一个只装了MythTV的Ubuntu做家庭影院,于是有了Mythbuntu。(2007)
英特尔说,Atom处理器在移动和上网本领域有点不给力啊,需要一些强力的OS协助推动,于是有了Moblin。(2007)
*云计算时代:2008 - *
Damn Small Linux的开发者Robert Shingledecker说,其实系统还可以更小,我们把一个应用浏览器GUI加载到RAM中运行其实就可以满足很多用户的需求了,于是有了Tiny Core Linux。(2008)
Google说,其实操作系统有Chrome就够了,于是有了Chromium OS。(2009)
法国创业者Tariq Krim和Romain Huet说,把常用的什么社交网络、在线视频照片网站的图标放在桌面上当做Web应用就挺好的,于是有了Jolicloud。(2010)
英特尔说,设备这种事还是需要懂行的来做,诺基亚你来跟我一起干吧,于是有了MeeGo。只是,后来AMD也掺和了进来,而诺基亚却走了,这是后话。(2010)
RHEL介绍
RHEL, Red Hat Enterprise Linux是Red Hat Inc.公司的Linux发行版,是一款强大的企业版Linux操作系统,目前只有服务器版本,旨在打造新一代技术架构基础,支持所有主流硬件平台和数千种商业化及自定义应用程序。超过 90% 的《财富》杂志世界五百强公司都选择了使用红帽产品和解决方案。
Red Hat Inc.是开放来源的软件产品的主导开发商以及提供全球性的服务提供商。
红帽的起名来源:
- 创始人之一Bob Young对这个名字来源提供了解释:红色在西方历史中代表了解放,挑战霸权。
- 创始人之一Marc Ewing在大学时经常戴着他祖父留下来的红色帽子,当时学校里碰到技术问题的同学都知道“找那个戴红帽子的解决”。Ewing将自己的软件开发项目命名为Red Hat 1、Red Hat 2等,后来当他开始Linux计划的时候,自然而然的就叫做“Red Hat Linux”。
CentOS介绍
CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件。
CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。
CentOS在2014初,宣布加入Red Hat。
- CentOS 加入红帽后不变的是:
CentOS 继续不收费
保持赞助内容驱动的网络中心不变
Bug、Issue 和紧急事件处理策略不变
Red Hat Enterprise Linux 和 CentOS 防火墙也依然存在
- 变化的是:
- 我们是为红帽工作,不是为 RHEL
- 红帽提供构建系统和初始内容分发资源的赞助
- 一些开发的资源包括源码的获取将更加容易
- 避免了原来和红帽上一些法律的问题
虚拟机
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
虚拟机是一个全新的概念,是在我们已经使用的物理计算机中,用软件虚拟出一台或多台电脑,来实现我们多系统的功能。虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。
主流的虚拟机软件如下:
- VMware Workstation
- VMware Fusion (for Mac)
- Oracle VisualBox
- Microsoft Hyper-V
CentOS 安装步骤
这里,我们将安装CentOS 6.8 到虚拟机中。事实上CentOS可以安装在大多数的个人计算机和服务器上来工作。但是在我们的实际学习过程中,我们可以将CentOS安装在我们个人电脑的虚拟机中。虚拟机是一种非常重要的资源,接来下的内容将重点介绍虚拟机的使用。
-
安装VMware Workstation软件
-
新建虚拟机
-
设置虚拟机的光驱(加载CentOS光盘镜像)
-
完成虚拟机的设置,开启安装
-
选择第一个选项,开始安装CentOS6
-
跳过媒体(光盘)的检测:选择
Skip
-
选择语言、键盘和基本存储:选择
Next
-
进一步格式化所选虚拟硬盘:选择
Yse,discard any data
-
设定主机名字和时区
设定root的密码(切记,不可以忘记)
- 选择后续安装步骤
选择:Write changes to disk
- 开始安装CentOS的组件
- 安装完毕,重启后登录系统
登录用root
和刚刚设置的密码,注意输入密码的时候,系统不会有任何提示
至此安装完毕。
Linux 也有桌面的版本,也可以根据自己的兴趣,去安装CentOS的桌面版本,以及其他的版本。但是请注意安装桌面版本需要在安装完Linux以后,安装VMware Tools。
桌面版Linux安装步骤
安装虚拟机软件VMware Workstation
-
打开VMware Workstation,新建虚拟机
配置虚拟机的软件环境:Linux|CentOS
选择虚拟机的硬件环境:光驱选择Linux安装镜像|网卡选择桥接模式
关闭配置,重新引导虚拟机
进入RHEL的安装界面,选择语言,键盘,磁盘、网络、软件等进行定制和安装
安装结束后重新引导虚拟机进入RHEL的安装后配置
完成后进入图形界面并进行登录
安装虚拟机工具
重新引导系统,完成在虚拟中的安装
安装虚拟机工具(VMware Tools)
-
虚拟机工具VMware Tools的安装
VMware Tools是VMware虚拟机中自带的一种增强工具,是VMware提供的增强虚拟显卡和硬盘性能、以及同步虚拟机与主机时钟的驱动程序。只有在VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享,同时可支持自由拖拽的功能,鼠标也可在虚拟机与主机之前自由移动(不用再按ctrl+alt),且虚拟机屏幕也可实现全屏化。
先解压安装包到/tmp下
安装命令
su - root ls cd /tmp/vmware-tools-distrib/ # 请先解压虚拟机的包到/tmp ls ./vmware-install.pl
重启CentOS以后,就可以看到虚拟机可以全屏了。