一、操作系统
没有安装操作系统的计算机,通常被称为 裸机。如果想在 裸机 上运行自己所编写的程序,就必须用机器语言书写程序。如果计算机上安装了操作系统,就可以在操作系统上安装支持的高级语言环境,用高级语言开发程序。
操作系统是现代计算机系统中 最基本和最重要 的系统软件,是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩展。主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用,而其他的诸如编译程序、数据库管理系统,以及大量的应用软件,都直接依赖于操作系统的支持。
不同应用领域的主流操作系统:
桌面操作系统:Windows 系列: 用户群体大 macOS: 适合于开发人员 Linux: 应用软件少
服务器操作系统:Linux: 1、安全、稳定、免费 2、占有率高 Windows Server: 1、付费 2、占有率低
嵌入式操作系统:Linux
移动设备操作系统:IOS Android(基于Linux)
二、操作系统的发展史
1965 年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘、显示器),连接一台电脑。
为了解决数量不够用的问题,1965年左后由贝尔实验室加入了麻省理工学院以及通用电气合作的计划 —— 该计划要建立一套多使用者(multi-user)、多任务(multi-processor)、多层次(multi-level)的MULTICS操作系统,想让大型主机支持300台终端。1969年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究。1969 年从这个项目中退出的KenThompson当时在实验室无聊时,为了让一台空闲的电脑上能够运行"星际旅行(Space Travel)"游戏,在8月份左右趁着其妻子探亲的时间,用了1个月的时间,使用汇编写出了Unix操作系统的原型。1970 年,美国贝尔实验室的KenThompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统。1971年,同样酷爱"星际旅行(Space Travel)"的DennisM.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX,他的主要工作是改造B语言,因为B语言的跨平台性较差。1972年,DennisM.Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言 。1973年初,C语言的主体完成,Thompson和Ritchie 迫不及待地开始用它完全重写了现在大名鼎鼎的Unix操作系统。
因为AT&T(通用电气)的政策改变,在Version7 Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。AndrewS.Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议,以小型UNIX(mini-UNIX)之意,将它称为MINIX。
1991年林纳斯(Linus)就读于赫尔辛基大学期间,对Unix产生浓厚兴趣,尝试着在Minix 上做一些开发工作。因为Minix只是教学使用,因此功能并不强,林纳斯经常要用他的终端仿真器(Terminal Emulator)去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了Linux第一个内核的雏形,当时,他年仅21岁!林纳斯利用GNU的bash当做开发环境,gcc当做编译工具,编写了Linux内核,一开始Linux并不能兼容Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致。一开始 Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件。
内核(kernel) 是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。Linux 内核版本又分为 稳定版 和 开发版,两种版本是相互关联,相互循环。
稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些 bug 或加入一些新的驱动程序
开发版:由于要试验各种解决方案,所以变化很快
内核源码网址:http://www.kernel.org。所有来自全世界的对 Linux 源码的修改最终都会汇总到这个网站,由 Linus 领导的开源社区对其进行甄别和修改最终决定是否进入到 Linux 主线内核源码中。
Linux 发行版(也被叫做 GNU/Linux 发行版)通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。常见的发行版本如下:
Ubuntu Redhat Fedora openSUSE Linux Mint Debian Manjaro Mageia CentOS Arch
三、Linux的应用领域
服务器领域
Linux 在服务器领域的应用是其重要分支,Linux 免费、稳定、高效等特点在这里得到了很好的体现,早期因为维护、运行等原因同样受到了很大的限制。近些年来 Linux 服务器市场得到了飞速的提升,尤其在一些高端领域尤为广泛。此领域是传统 Linux 应用最薄弱的环节,传统 Linux 由于界面简单、操作复杂、应用软件少的缺点,一直被 Windows 所压制。
嵌入式领域
近些年来 Linux 在嵌入式领域的应用得到了飞速的提高,Linux 运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百 KB 等特点,使其近些年来在嵌入式领域的应用得到非常大的提高
个人桌面领域
此领域是传统 Linux 应用最薄弱的环节,传统 Linux 由于界面简单、操作复杂、应用软件少的缺点,一直被 Windows 所压制,近些年来随着 Ubuntu、Fedora 等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,Linux 在个人桌面领域的占有率在逐渐的提高
四、Linux和Windows区别
比较 | Windows | Linux |
费用 | 收费且很贵 | Linux免费或少许费用 |
软件与支持 | 数量和质量的优势,不过大部分为收费软件;由微软官方提供支持和服务 | 开源*软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺;有全球所有的Linux开发者和*软件社区提供支持 |
安全性 | 三天两头打补丁安装系统安全性更新,还是会中病毒木马 | 要说Linux没有安全问题,那当然是不可能的,这一点仁者见仁智者见智,相对来说肯定比Windows平台更加安全 |
使用习惯 | 普通用户基本都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作,用户上手容易入门简单; | 兼具图形界面操作和完全的命令行操作,可以用键盘完成一切操作,新手入门较困难,需要一些学习和指导,一旦熟练以后效率极高 |
可定制型 | 封闭的,系统的可定制性很差 | 开源,可定制性很强 |
应用场景 | 桌面操作系统主要使用Windows | 支撑百度、谷歌、淘宝等应用软件和服务,是后台成千上万的Linux服务器主机,世界上大部分软件和服务都运行Linux上的 |
五、虚拟机
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟系统通过生成现有操作系统的全新虚拟镜像,具有真实操作系统完全一样的功能。进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响,而且能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。