【Linux基础】Unix与Linux操作系统介绍
一、Unix和Linux操作系统概述
1.Unix是什么
UNIX是一个计算机操作系统,一个用来协调、管理和控制计算机硬件和软件资源的控制程序。
2.Unix特点
(1)多用户:在同一时刻可以有多个用户同时使用UNIX操作系统而且他们互不干扰;
(2)多任务:任何一个用户在同一时间可以在UNIX操作系统上运行多个程序。
3.GNU项目与GPL条款
(1)GNU项目
GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。GNU是“GNU's Not Unix”的递归缩写,发音为 [ɡəˈnuː]。
由于GNU将要实现UNIX系统的接口标准,因此GNU计划可以分别开发不同的操作系统部件,包含操作系统内核HURD和可自由使用的软件。
(2)GUN通用性公共许可证(General Public License,简称GPL)
大多数软件许可证决意剥夺你共享和修改软件的自由。相比之下,GNU通用公共许可证试图保证你共享和修改自由软件的自由。为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都遵循GPL条款。
开发或维护遵循 GPL 条款软件的公司或个人,可以对使用者收取一定的服务费用。但还是一句老话——必须无偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售。
(3)GNU项目成果
1990年,GNU计划已经开发出的软件包括了一个功能强大的文字编辑器Emacs,C语言编译器GCC,以及大部分UNIX系统的程序库和工具。唯一依然没有完成的重要组件就是操作系统的内核(称为HURD)。
1991年,Linus Torvalds编写出了与UNIX兼容的Linux操作系统内核并在GPL条款下发布。Linux之后在网上广泛流传,许多程序员参与了开发与修改。
1992年Linux与其他GNU软件结合,完全自由的操作系统正式诞生。(尽管如此GNU计划自己的内核Hurd依然在开发中,目前已经发布Beta版本。)
4.Linux是什么
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
严格来讲,Linux这个词本身只是表示一个操作系统内核而已,而GNU提供了大量的自由软件来丰富在其之上各种应用程序。包括了一个shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如Emacs。
正是由于Linux使用了许多GNU程序,GNU计划的开创者Richard Stallman博士提议将Linux操作系统改名为GNU/Linux。
一些人拒绝使用“GNU/Linux”作为操作系统名称的人认为:
(1)Linux朗朗上口;名字较短又好记;
(2)Richard Stallman博士直到1990年代中期,Linux开始流行后才要求更名。
5.Linux内核与Linux发行版
(1)Linux内核
内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。Linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环:
- 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序。
- 开发版:由于要试验各种解决方案,所以变化很快。
内核源码网址:http://www.kernel.org 所有来自全世界的对Linux源码的修改最终都会汇总到这个网站,由Linus领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中。
(2)Linux发行版
操作系统的内核,主要负责控制硬件、管理文件系统、程序进程等,并不给用户提供各种工具和应用软件。Linux发行版 (也被叫做 GNU/Linux 发行版) 在内核基础上,加入了桌面环境、办公套件、媒体播放器、数据库等应用软件。
一个典型的Linux发行版包括:Linux内核,一些GNU程序库和工具,命令行shell,图形界面的X Window系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公套件,编译器,文本编辑器到科学工具的应用软件。
二、操作系统发展史
发展历程:Unix——Minix——Linux——Windows
1.最初的操作系统是Unix
2.在Version 7 Unix推出之后,UNIX源代码私有化并开始收费。有个教授为了给学生上课(收费的Unix不让用),于是就开发了mini-Unix(minix),但这个教授仅仅用来教学,没有推广。
3.有个哥们儿(linus)发现这个minix比较厉害之后,就买过去自己研究,他采纳了网上的很多人的意见,于是就不断完善,就出现了Linux(Linus+minix)。
所以目前全球最厉害的最核心的操作系统就是Linux和Unix,但Unix收费,而Linux开源(免费),因此用Linux的人也很多。
4.由于Unix和Linux操作系统有一个问题是,虽然他很高效,但是上手比较难,这个主要是通过输入命令来执行;对于大多数没有接触过电脑的人来说,就很难学;所以就出现了Windows,点击鼠标就可以解决很多问题,并且可视化程度很大。
三、常用的发行版本
1.Linux主要的几种发行版本:
(1)RedHat系列:RHEL、CentOS、Oracle linux。
(2)SUSE
(3)Ubutun
(4)Debian
2.Unix主要的几个发行版本:
(1)Sun Solaris
(2)HP-UX
(3)IBM AIX
四、应用场景
1.如果作为php、jsp等开发平台使用,最好选择Redhat或Centos,原因主要是硬件和软件兼容性方面应该是所有Linux发行版本中较好的。最主要的原因是国内的多数游戏运营商和大型网站,使用这两个版本的较多。
2.如果是作为asp.net等开发平台使用,最好使用suse,原因是与Microsoft的合作关系。同时也说明下,移动运营商好像很多使用suse的操作系统平台。
3.如果是作为c或c++等开发平台使用,而且对应用程序开发要求较高,建议使用debian版本的Linux,毕竟这个版本的Linux限制性是最小的。自由度较大。
参考文档:
【Linux基础】Unix与Linux操作系统介绍的更多相关文章
- SLAM+语音机器人DIY系列:(一)Linux基础——2.安装Linux发行版ubuntu系统
摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...
- Linux基础笔记—— 走进Linux
走进Linux 操作系统 操作系统是计算机中必不可少的基础系统软件,他的作用是管理和控制计算机系统中的硬件和软件资源,合理有效的组织系统的工作流程,在计算机系统(硬件)与使用者之间提供接口作用. 操作 ...
- 『Linux基础 - 4 』linux常用命令(1)
这篇笔记包含以下知识点: 几个概念的理解:Linux命令,控制台,终端, 终端提示符 对文件目录的操作的相关命令: 切换目录,列出目录下的文件等 对文件的操作的相关命令: 创建,删除,复制,修改,移动 ...
- 『学了就忘』Linux基础 — 16、Linux系统与Windows系统的不同
目录 1.Linux严格区分大小写 2.Linux一切皆文件 3.Linux不靠扩展名区分文件类型 4.Linux中所有的存储设备都必须在挂载之后才能使用 5.Windows下的程序不能直接在Linu ...
- Linux基础三:linux目录结构和目录文件的浏览、管理及维护
目录文件的浏览.管理及维护(一) 1.Linux文件系统的层次结构 1)Linux文件系统的树状结构:在Linux或UNIX操作系统中,所有的文件和目录都被组织成一个以根节点开始的倒置的树状结构. 2 ...
- Linux基础一:Linux的安装及相关配置
1. 计算机操作系统简介 1) 操作系统的定义:操作系统是一个用来协调.管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间. 2) 操作系统的内核的定义:操作系统的内核是一 ...
- 『Linux基础 - 3』 Linux文件目录介绍
Windows 和 Linux 文件系统区别 -- 结构 Windows 下的文件系统 - 在 Windows 下,打开 "计算机",我们看到的是一个个的驱动器盘符: - 每个驱动 ...
- linux基础之Mini Linux制作
一.编译一个简单的linux步骤如下: # yum groupinstall ""Development Tools" "Server Platform Dev ...
- 【Linux基础总结】Linux基本环境
Linux基本环境 对Linux的基础认识 虚拟机进入终端: [root@hadoop-senior Desktop] # 用户名 主机名 所在目录名称 #:表示当前用户属于root用户,超级管理员用 ...
- Linux基础命令---IP路由操作
ip ip指令可以显示或操作路由.网路设备,设置路由策略和通道. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 ...
随机推荐
- 纽约工作日志流水账 Day 1
周六早上8:00从青岛登机,历经17个小时,终于在当地时间周六下午2点半到达目的地纽约. 被媳妇吐槽旁边坐了美女妹子,其实是个美国妹子,旁边人家还有男朋友,全程只和我说了2句话,Exc ...
- Metal并行计算以及Metal程序的命令行编译
本来Cuda用的挺好,为了Apple,放弃Cuda,改投OpenCl.好不容易OpenCl也算熟悉了,WWDC2018又宣布了Metal2,建议大家放弃OpenCl,使用Metal Performan ...
- java 取汉字首字母
有时候,可能会有一些类似这样的需求: 对于这样的效果,我们可以有类似这样的解决方案: package bys.utils; import java.io.UnsupportedEncodingExce ...
- pyhive 连接 Hive 时错误
一.User: xx is not allowed to impersonate xxx' 解决办法:修改 core-site.xml 文件,加入下面的内容后重启 hadoop. <proper ...
- leetcode — unique-binary-search-trees-ii
``` import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util ...
- BUG心得
在<程序员,你会从 Bug 中学习么?>一文中,我写了我是怎样追踪这些年遇到的最有趣 bug 的.最近我重新浏览了这所有的 194 个条目(历时 13 年),看看我从这些 bug 中学到了 ...
- Docker入门(二)在docker使用MongoDB
本文将介绍如何在docker中使用MongoDB. 如果你是一名MongoDB的初学者,那么你入门MongoDB的第一件事就是安装MongoDB,但是安装MongoDB又不是一件简单的事情,还 ...
- .Net Excel 导出图表Demo(柱状图,多标签页)
1 使用插件名称Epplus,多个Sheet页数据应用,Demo为柱状图(Epplus支持多种图表) 2 Epplus 的安装和引用 新建一个工程文件或控制台应用程序 打开 Vs2017 Tools ...
- python-操作文件和目录
操作文件和目录 为文件和目的操作经常用到os模块和shutil模块. 常用方法: 获取当前脚本工作的目录路径:os.getcwd(),返回的是str类型. 返回指定目录下的所有文件和目录名:os.li ...
- Dubbo+ZK与Eureka注册中心比较
Eureka可以很好的应对网络故障导致部分节点失去联系的情况,而不会像zk那样因为选举导致整个集群不可用 dubbo + zk 当向注册中心查询服务注册列表时,可以容忍注册中心返回的是几分钟以前的注册 ...