本文主要介绍linux基础概念介绍,对基本概念了解后,更好入门。

这里主要介绍一下几个概念

  1. 什么是linux
  2. GNU项目和自由软件基金会
  3. linux发行版

什么是linux

  也许大家都已经知道,Linux是由赫尔辛基大学的Linus Torvalds开发的。linux是一个类Unix内核实现,他是一个操作系统的底层核心。从某种意义上来讲,Linux可以是以Unix为其灵感来源的,所以,Linux程序和Unix程序是非常的相似,甚至系统API大部分都是一样的,事实上,大部分Unix程序都可以在Linux上编译运行。

  Linux也是开源的代码,可以自由使用、修改、发布。并且现在已经支持市面上大部分的处理器,使用非常广发。

GNU项目和自由软件基金会

  Linux能够得到发展与广泛使用,得益于开源社区无数人的贡献;

GUN GUN是GNU’s Not Unix的缩写,成为“通用公共许可证”(GPL)。虽然获得软件可能要支付一定的费用,但是此后就可以随意使用他们,通常是以源代码的形式发布。

自由有软件基金会(Free Software Foundation)由Richard Stallman创立,他是Unix及其他系统上最著名的文本编辑软件之一的GNU Emacs的开发者。他说自由软件概念的倡导者,并发起了GNU项目,这个项目的宗旨是:试图创建一个与Unix系统兼容,但是不受Unix名字和源代码私有权限制的操作系统和开发环境。可能有一天,GNU处理硬件和管理运行程序的方式会变得和Unix完全不同,但他仍然会支持Unix类型的应用程序。

  GNU项目已为舍去提供了许多Unix系统上的应用程序的仿制品。所有这些程序,即GNU软件,是在GNU通用公共许可证(GPL)的条款下发布的。你可以在http://www.gnu.org上找到该许可证的一个副本。这个许可证阐述了copyleft(是英文copyright的反话),Copyleft的目的是防止有人给只有软件的使用加上限制。下面是一些主要的应用软件项目:

  1. GCC: GNU编译器集,包括GNU C编译器
  2. G++: C++的编译器,是GCC的一部分
  3. GDB: 源代码级别的调试器
  4. GNU make: Unix make命令的免费版本
  5. **Bison:**与Unix yacc兼容的语法分析程序生成器
  6. **Bash:**命令解释器(shell)
  7. **GNU Emacs:**文本编辑器及环境

      许多其他软件包也是在遵守自由软件的原则在和GPL条款的情况下开发和发行的,包括电子表格、源代码控制工具、编译器、解释器等。

      现在么多可用的自由软件,加上linux内核,我们可以说:创建一个GNU的、只有的类Unix系统的目标已经通过Linux系统实现了。由于认识到GNU软件所做出的的贡献,现在许多通常把Linux系统成为GNU/Linux。

Linux发行版

  我们常说的Linux系统基本上是由以下几部分组成(这里是最简单的必要部分):



实际上的发行版远不止这些东西,会加入好多软件,比如最基础的桌面,还有办公软件等等。​

  目前常见的Linux发行版本如下几个:

  1. Ubuntu
  2. RedHat
  3. Debian
  4. CentOS
  5. Fedora
  6. 红旗Linux (国产)
  7. DeepIn (国产)

参考《Linux程序设计》第四版

Linux入门-基本概念的更多相关文章

  1. 01 Linux入门介绍

    一.Linux 初步介绍 Linux的优点 免费的,开源的 支持多线程,多用户 安全性好 对内存和文件管理优越 系统稳定 消耗资源少 Linux的缺点 操作相对困难 一些专业软件以及游戏支持度不足 L ...

  2. Linux入门介绍

    Linux入门介绍 一.Linux 初步介绍 Linux的优点 免费的,开源的 支持多线程,多用户 安全性好 对内存和文件管理优越 系统稳定 消耗资源少 Linux的缺点 操作相对困难 一些专业软件以 ...

  3. 3,linux入门到上手-文件权限管理与配置

    linux入门-文件权限管理与配置 一.关于linux的操作命令一般格式如下: 1,一行指令中第一个输入的部分绝对是"指令(command)"或"可可执行文件案(例如批次 ...

  4. MongoDB入门必读(概念与实战并重)

    MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个 ...

  5. Linux入门基础篇

    Linux入门基础篇 Linux诞生 Linux发行版本说明 Linux官方网站 Linux内核官方网站 比较有名的Linux发行版 虚拟机(Virtual Machine),一个虚拟的系统,安装在系 ...

  6. 第三次随笔——虚拟机及Linux入门

    虚拟机及Linux入门 虚拟机的安装 对于虚拟机的概念我早有接触,但是从来没有真正的实践过,借这次作业机会我终于实践了虚拟机的安装,安装的过程较为顺利,但还是出现了以下问题: 无法选择64位的系统 解 ...

  7. Linux 入门记录:二十、Linux 包管理工具 YUM

    一.YUM(Yellowdog Updater, Modified) 1. YUM 简介 RPM 软件包形式管理软件虽然方便,但是需要手动解决软件包的依赖问题.很多时候安装一个软件首先需要安装 1 个 ...

  8. Linux(1)- 服务器核心知识、Linux入门、VMware与centeos安装、远程连接linux、linux基本命令使用

    一.服务器核心知识 1.电脑和电脑的硬件组成 现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑,还是智慧型手机等等,这些东西都算是电脑.虽然接触这么多,但是 ...

  9. 【Linux】Linux入门及常见基本操作命令详解

    本文基于 Red Hat Enterprise Linux 6 一.Linux 入门体验 1.1 root用户登陆 1.2 图形化与纯字符模式切换 init 5 - 图形模式 init 3 - 纯字符 ...

随机推荐

  1. JVM 专题十七:垃圾回收(一)简述

    1. 什么是垃圾 1.1 C++与Java 1.2 概述 垃圾收集,不是Java语言的伴生产物.早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生. 关于垃圾收集有三个经典问题 ...

  2. python 面试题一:Python语言特性

    1 Python的函数参数传递 两个例子 a = 1 def fun(a): a = 2 fun(a) print a # a = [] def fun(a): a.append(1) fun(a) ...

  3. java 数据结构(九):Collection子接口:List接口

    1. 存储的数据特点:存储序的.可重复的数据. 2. 常用方法:(记住)增:add(Object obj)删:remove(int index) / remove(Object obj)改:set(i ...

  4. Python之class面向对象(基础篇)

    概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...

  5. Qt_IO系统_文件

    主要参考: devbean.net 豆子的博客 参考书:<QtCreator 快速入门>第三版 目录 QFile 如何使用QFile QFile 和QFileInfo Demo 文件操作是 ...

  6. OSCP Learning Notes - Information Gathering

    Common Tools Google Exploit-DB/Google Hacking DB WHOIS Netcraft theharvester Example: Google search: ...

  7. ajax原生js封装

    不带注释的 function ajax(json) { json.type = json.type ? json.type : 'get'; json.async = json.async == fa ...

  8. 02 安装net-tools工具

    01 登录虚拟机,没错,还是那个熟悉的黑窗口 02 输入用户名密码(我还是习惯使用root用户,因为,它可以为所欲为) 小知识:注意红色框内的符号: 一般用户为限制用户,符号为:$ 超级用户,为无限制 ...

  9. 高效C++:序

    C++的语法全而复杂,如何简洁高效的使用C++的各种语法,是一个值得研究的问题,特别是对于刚入门或是有小几年开发经历的同学,了解或是熟悉这个问题,所得到的提升无疑是巨大的.向前人学习,站在巨人的肩膀上 ...

  10. C++语法小记---一个有趣的现象

    下面的代码会飞吗? #include <iostream> #include <string> using namespace std; class Test { public ...