类似Windows, Linux也是一个操作系统,Linux是一套开放源代码程序,并可以自由传播的类Unix操作系统软件,多用户,多任务并且支持多线程和多CPU的操作系统。

Linux系统主要被应用于服务器端,嵌入式开发和个人PC桌面3大领域,其中服务器端领域是重中之重。 大型,超大型互联网企业(百度,Sina,淘宝等)都在使用Linux系统作为服务器端的程序运行平台。

Linux的起源

Unix系统于1969年在AT&T的贝尔实验室诞生,20世纪70年代,它逐步盛行,这期间,又产生了一个比较重要的分支,就是大约1977年诞生的BSD(Berkeley Software Distribution)系统。从BSD系统开始,各大厂商及商业公司开始了根据自身公司的硬件架构,并以BSD系统为基础进行Unix系统的研发,从而产生了各种版本的Unix系统,例如:SUN公司的Solaris,IBM公司的AIX,HP公司的HPUNIX等。

Unix的5大优势特性

  • 技术成熟,可靠性高。连续运行若干年也无需重启。
  • 极强的可伸缩性
    Unix支持的CPU处理器体系架构非常多,包括Intel/AMD及HP-PA,MIPS,PowerPC,UltraSPARC,ALPHA等RISC芯片,以及SMP,MPP等技术
  • 提示:可能是由于早期各大厂商都基于Unix进行适合自己的硬件开发,因此,Unix支持的CPU架构才更多。
  • 强大的网络功能
    Internet互联最重要的协议TCP/IP就是在Unix上开发和发展起来的。此外,Unix还支持非常多的常用的网络协议,如NFS,DCE,IPX/SPX,SLIP,PPP等
  • 强大的数据库支持能力
    Oracle,DB2,Sybase,Informix等大型数据库,都把Unix作为其主要的数据库开发和运行平台,一直到目前为止,依然如此。
  • 强大的开发能力
    正是Unix促使了C语言的诞生,并且相互促进与发展,成为当时工程师首选的操作系统和开发环境。

自由软件

简单地理解,自由软件的核心就是没有商业化软件版权制约,源代码开放,可无约束自由传播。

注意:自由软件强调的是权利问题,而非是否免费的问题。大家一定要理解这个概念,自由软件中的自由是“言论自由”中的“自由”,而不是“免费啤酒”中的“免费”。

自由意味着freedom,而免费意味着free,这是完全不同的概念。例如:RedHatLinux自由但不免费,CentOS Linux是自由且免费的。自由软件关乎使用者运行,复制,发布,研究,修改和改进该软件的自由。

自由软件基金会FSF

FSF(Free Software Foundation)的中文意思是自由软件基金会,是Richard Stallman于1984年发起和创办的。FSF的主要项目是GNU项目。GNU项目本身产生的主要软件包括:Emacs,gcc,bash和编程语言,以及gawk(GNU‘s awk)等。

GNU知识

GNU的全称为GNU‘s not unix,意思是“GNU不是UNIX“,GNU计划,又称革奴计划,是由Richard Stallman 在1984年公开发起的,是FSF的主要项目。前面已经提到过,这个项目的目标是建立一套完全自由的和可移植的类Unix操作系统。

但是GNU自己的内核Hurd仍在开发中,离实用还有一定的距离。现在的GNU系统通常是使用Linux系统的内核,加上GNU项目贡献的一些组件,以及其它相关程序组成的,这样的组合被称为GNU/Linux操作系统,

到1991年linux内核发布的时候,GNU项目已经完成了除系统内核之外的各种必备软件的开发。在Linus Torvalds和其它开发人员的努力下,GNU项目的部分组件又运行到了Linux内核之上,例如:GNU项目里的Emacs,gcc,bash,gawk等,至今都是Linux系统中很重要的基础软件。

GPL

GPL全称为General Public License,中文名为通用公共许可,是一个最著名的开源许可协议,开源社区最著名的Linux内核就是在GPL许可下发布的。GPL许可是自由软件基金会(Free Software Foundation)创建的。
1984年,Richard Stallman发起开发自由软件的运动后不久,在其他人的协作下,他创立了通用公共许可证(GPL),这对推动自由软件的发展起了至关重要的作用,那么,这个GPL到底是什么意思呢?

简单的理解,GPL许可的核心,是保证任何人有共享和修改自由软件的自由,任何人有权取得,修改和重新发布自由软件的源代码权利,但都必须同时给出具体更改的源代码。

虽然整个Linux内核是基于GNU通用公共许可的,但是Linux内核并不是GNU计划的一部分。这一点,请不要混淆。

  • FSF(公司)==>GNU(项目)==>emacs gcc bash gawk
  • FSF(公司)==>GPL(项目) ==>自由传播 修改源代码 但是必须把修改后的源代码也要发布出来
  • Linus Torvalds==>linux内核

Linux操作系统=linux内核+GNU软件及系统软件+必要的应用程序

Linux的发行版本介绍

  • Linux内核(kernel)版本主要有4个系列,分别为Linux kernel2.2,Linux kernel2.4,Linuxkernel2.6,Linux kernel3.x,更多更新版本请浏览kernel官网,点击即可
  • linux的发行商包括Slackware,Redhat,Debjan,Fedora,TurboLinux,Mandrake,SUSE,CentOS,Ubuntu,红旗,麒麟...

下面看看其中几个重要的发行版本。

1)Red Hat:Red Hat Linux9.0的内核为2.4.20.在版本9.0后,Red Hat 不再遵循GPL协议,成为收费产品(但仍开源),发展的新版本依次为Red Hat 3.x,Red Hat 4.x,Red Hat 5.x Red Hat 6.x,Red Hat 7.x .

2)Fedora:为Red Hat的一个分支,仍遵循GPL协议,可以认为是RedHat预发布版。(游戏公测)
3)CentOS(Community Enterprise Operationg System):与redhat做到二进制级别的一摸一样。RedHat的另一个重要分支,以RedHat所发布的源代码重建符合GPL许可协议的Linux系统,即将Red Hat Linux 源代码的商标LOGO以及非自由软件部分去除后再编译而成的版本,目前CentOS已被RedHat公司收购,但仍开源免费。CentOS Linux是国内互联网公司使用最多的Linux系统版本。

面试题:

小面试题:你们公司服务器使用的版本是什么?
CentOS 6.8 x86_64 内核版本 2.6.32

为什么企业环境要选择64位操作系统?

  • 64位操作系统是为高科技人员使用本行业特殊软件的运行平台而设计的。而32位操作系统是为普通用户设计的。
  • 64位操作系统只能安装在64位电脑上(CPU必须是64位的),并且只在针对64位的软件时才能发挥最佳性能。32位操作系统可以安装在32位(32位CPU)电脑上,也可以安装在64位(64CPU)电脑上。当然,此时32位的操作系统是无法发挥64位硬件性能的。
  • 运算速度不同
  • 寻址能力不同, 支持的最大内存不同
  • 32位系统 4GB 内存
  • 64位系统 128GB 内存

Linux系统介绍的更多相关文章

  1. Linux系统介绍及部署

    Linux系统介绍及部署1.常见操作系统 windows.Linux(类unix系统).Android.iOS.unix(HP UNIX)2.操作系统构成 外壳(shell)+驱动+内核3.常见Lin ...

  2. 第02课 操作系统及Linux 系统介绍

    1.操作系统介绍 操作系统(Operating System,简称OS),是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心. 操作系统的作用是管 ...

  3. 第一章 Linux系统介绍与环境搭建准备

    1.操作系统: Operating System,简称OS,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心. 操作系统就是处于用户与计算机系统硬件之间用于传递信息的系统程序软件. ...

  4. 1. Linux系统介绍

    1. 什么是操作系统? 定义:操作系统是计算机系统中必不可少的基础系统软件,它的作用是负责管理和控制计算机系统中的硬件和软件资源,合理地组织计算机系统的工作流程,以便有效地利用资源为使用者提供一个功能 ...

  5. 图形界面备份Linux系统介绍

    详情见: http://os.51cto.com/art/200905/125680.htm             虽然Linux 是一个高度可靠的操作系统,但对于现在复杂的internet环境下, ...

  6. Linux系统介绍与环境搭建准备

    1 什么是操作系统? 操作系统,Operating System,简称OS,是计算机系统中必不可少的基础软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心.   操作系统的作用是 ...

  7. Linux系统下C++开发工具-远程终端软件使用

    通过前面安装Linux系统介绍,紧接着进入搭建Linux开发环境的第二步,选择C++开发工具,以及必要的客户端软件.从而完整的搭建一个Linux下C++开发的环境,便于初学者在该环境下能够很好的学习. ...

  8. Linux命令的复习总结学习

    1.-------------------------linux系统介绍------------------------------------------------------- Linux是一套 ...

  9. Linux 运维之路

     第一章:Linux必备知识  1.Linux 系统介绍 2.Linux 简单文本处理 3.Linux 组管理.权限 4.Linux vim文档操作 5.Linux 高级文件管理 6.Linux 文件 ...

随机推荐

  1. Android码农如何一个星期转为iOS码农(不忽悠)

    WeTest 导读 作为一个android客户端开发,如果你不懂点ios开发,怎么好意思说自己是客户端开发呢,本文讲解如何让android开发码农在一个星期上手IOS开发 --<记录自己IOS开 ...

  2. 从编译器角度理解C++中的引用和指针

    欲分析指针和引用,则要分析变量名和地址之间的关系(不管你理解还是不理解,无论你是从老师那里听到的,还是网上看到的,应该都知道两句话:1. 指针就是地址,2.引用就是给变量起个别名) 所以我们就要来分析 ...

  3. chrome主页被篡改 成hao123

    应该是开了个从流氓网站下的蓝灯,然后发现主页被篡改 尝试chrome设置修改无效,应该是快捷方式被改了 系统 win10 1.打开对应的下面两个地址,找到chrome的快捷方式,右键属性 C:\Use ...

  4. GUI Design Studio——如何创建项目展示文件

    打开一个做好的项目,我这次以系统自带的  welcome项目做示例 选择左上角的File->Create Distribution File... 我需要的是整个项目,所以选择了The whol ...

  5. 基于HTML5 Canvas实现用户交互

    很多人都有这样的疑问,基于HTML5 Canvas实现的元素怎么和用户进行交互?在这里我们用到HT for Web(http://www.hightopo.com/guide/guide/core/b ...

  6. Java反射机制剖析(四)-深度剖析动态代理原理及总结

    动态代理类原理(示例代码参见java反射机制剖析(三)) a)  理解上面的动态代理示例流程 a)  理解上面的动态代理示例流程 b)  代理接口实现类源代码剖析 咱们一起来剖析一下代理实现类($Pr ...

  7. 六、 从Controller中访问模板数据(ASP.NET MVC5 系列)

    在这一章节中,我们将创建一个新的MoviesController类,写代码获取movie数据并用视图模板将它们显示到浏览器中. 在我们进行下一操作之前先Build the application.如果 ...

  8. haproxy-代码阅读-内存管理

    haproxy内存池概述 内存池按照类型分类,每个类型的内存池都有一个名字,用链表记录空闲的内存块,每个内存块大小相等,并按照16字节对齐. haporxy用pool_head 结构记录内存池 str ...

  9. 在Intellij Idea中使用JSTL标签库

    习惯了eclipse和myeclipse开发的我们总是依赖于系统的插件,而当我想当然的以为IntelliJ IDEA 的jstl 的使用应该和myeclispe一样,当时使用起来却到处碰壁,完全找不到 ...

  10. [Leetcode] Binary tree level order traversal二叉树层次遍历

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...