一、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限制性是最小的。自由度较大。

参考文档:

GNU、Linux和GNU/Linux之间的关系

UNIX和Linux操作系统概述

Linux的不同版本以及应用领域

Unix、Linux和Windows操作系统的关系?

生产上常用的Linux/Unix发行版本

主流和常用的Linux版本和UNIX版本

【Linux基础】Unix与Linux操作系统介绍的更多相关文章

  1. SLAM+语音机器人DIY系列:(一)Linux基础——2.安装Linux发行版ubuntu系统

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  2. Linux基础笔记—— 走进Linux

    走进Linux 操作系统 操作系统是计算机中必不可少的基础系统软件,他的作用是管理和控制计算机系统中的硬件和软件资源,合理有效的组织系统的工作流程,在计算机系统(硬件)与使用者之间提供接口作用. 操作 ...

  3. 『Linux基础 - 4 』linux常用命令(1)

    这篇笔记包含以下知识点: 几个概念的理解:Linux命令,控制台,终端, 终端提示符 对文件目录的操作的相关命令: 切换目录,列出目录下的文件等 对文件的操作的相关命令: 创建,删除,复制,修改,移动 ...

  4. 『学了就忘』Linux基础 — 16、Linux系统与Windows系统的不同

    目录 1.Linux严格区分大小写 2.Linux一切皆文件 3.Linux不靠扩展名区分文件类型 4.Linux中所有的存储设备都必须在挂载之后才能使用 5.Windows下的程序不能直接在Linu ...

  5. Linux基础三:linux目录结构和目录文件的浏览、管理及维护

    目录文件的浏览.管理及维护(一) 1.Linux文件系统的层次结构 1)Linux文件系统的树状结构:在Linux或UNIX操作系统中,所有的文件和目录都被组织成一个以根节点开始的倒置的树状结构. 2 ...

  6. Linux基础一:Linux的安装及相关配置

    1. 计算机操作系统简介    1) 操作系统的定义:操作系统是一个用来协调.管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间.    2) 操作系统的内核的定义:操作系统的内核是一 ...

  7. 『Linux基础 - 3』 Linux文件目录介绍

    Windows 和 Linux 文件系统区别 -- 结构 Windows 下的文件系统 - 在 Windows 下,打开 "计算机",我们看到的是一个个的驱动器盘符: - 每个驱动 ...

  8. linux基础之Mini Linux制作

    一.编译一个简单的linux步骤如下: # yum groupinstall ""Development Tools" "Server Platform Dev ...

  9. 【Linux基础总结】Linux基本环境

    Linux基本环境 对Linux的基础认识 虚拟机进入终端: [root@hadoop-senior Desktop] # 用户名 主机名 所在目录名称 #:表示当前用户属于root用户,超级管理员用 ...

  10. Linux基础命令---IP路由操作

    ip ip指令可以显示或操作路由.网路设备,设置路由策略和通道. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora.   1.语法     ...

随机推荐

  1. 关于ML.NET v0.7的发布说明

    我们很高兴宣布推出ML.NET 0.7--面向.NET开发人员的最新版本的跨平台和开源机器学习框架(ML.NET 0.1发布于// Build 2018).此版本侧重于为基于推荐的ML任务提供更好的支 ...

  2. asp.net core 系列 11 配置configuration (下)

    四. 文件配置提供程序AddIniFile. AddXmlFile.AddJsonFile FileConfigurationProvider 是从文件系统加载配置的基类. 以下配置提供程序专用于特定 ...

  3. 带着萌新看springboot源码09(springboot+JdbcTemplate)

    emmm.....常规开局,继续说一下废话,前面简单的说了一下spring的ioc容器创建原理(花了不少时间去看了别人的博客+查了不少资料+自己的理解),相信大家对ioc容器有了一个初步的认识了. s ...

  4. 为VIP解决问题时写的源码

    平时为学生们解决问题时,建立的项目源代码,方便大家学习与讨论. 开源DEMO列表 1. https://github.com/bfyxzls/student_orderBy 2. https://gi ...

  5. Asp.Net SignalR 集线器不使用代理的实现

    不使用生成代理JS的实现 可能有同学会觉得使用集线器很麻烦,要么引入虚拟目录,要么在生成期间生成js文件,再引入js文件进行开发.难道就没有比较清爽的方式吗?这个当然是有的,先不要(。・∀・)ノ゙嗨皮 ...

  6. 【性能优化之道】每秒上万并发下的Spring Cloud参数优化实战

    一.写在前面   相信不少朋友都在自己公司使用Spring Cloud框架来构建微服务架构,毕竟现在这是非常火的一门技术. 如果只是用户量很少的传统IT系统,使用Spring Cloud可能还暴露不出 ...

  7. 设计模式总结篇系列:单例模式(SingleTon)

    在Java设计模式中,单例模式相对来说算是比较简单的一种构建模式.适用的场景在于:对于定义的一个类,在整个应用程序执行期间只有唯一的一个实例对象.如Android中常见的Application对象. ...

  8. 我和Session的不解之“缘”(故事型技术长文)

    本文讲述了一路走来对Session的认知.文章有点长,不过是故事型的,应该不枯燥.相信读完也一定会有所收获. (一) “当你登陆系统后,服务器会创建一个Session,保存你的登陆信息,下次再访问时就 ...

  9. Spring Boot 系列总目录

    一.Spring Boot 系列诞生原因 上学那会主要学的是 Java 和 .Net 两种语言,当时对于语言分类这事儿没什么概念,恰好在2009年毕业那会阴差阳错的先找到了 .Net 的工作,此后就开 ...

  10. Redis应用之[限制访问频率]

      我们知道当网站的访问量突然很大的时候肯定会对服务器造成影响,甚至无法访问,如果是正常的访问那么很好说明业务量增大可以考虑系统的扩展,但是如果是搜索引擎爬虫频繁访问或是一些恶意访问,那这时候我们就应 ...