Linux笔记01: Linux简介
1.1 操作系统
计算机系统是由硬件子系统(处理器、内存、硬盘、键盘、鼠标、显示屏等)和软件子系统(如Windows操作系统、Office办公软件等)组成。
操作系统(Operating System, OS)是软件子系统的一部分。它控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序,例如:
(1)文件系统
提供计算机存储信息的结构,信息存储在文件中,文件主要存储在计算机的内部硬盘里,在目录的分层结构中组织文件。文件系统为操作系统提供了组织管理数据的方式。
(2)设备驱动程序
提供连接计算机的每个硬件设备的接口,设备驱动器使程序能够写入设备,而不需要了解执行每个硬件的细节。
(3)用户接口
如常用的Windows图形界面,可以理解为一种用户与操作系统交互的方式。
(4)系统服务程序
当计算机启动时,会自启动许多系统服务程序,执行安装文件系统、启动网络服务、运行预定任务等操作。
目前流行的服务器和PC端操作系统有UNIX、Linux、Windows、Mac OS等。
1.2 从UNIX到Linux
UNIX诞生于20世纪60年代末,Windows诞生于20世纪80年代中期,Linux诞生于20世纪90年代初,可以说UNIX是操作系统中的“老大哥”。
1.2.1 UNIX历史
以肯·汤普森(Ken Thompson)为首的贝尔实验室研究人员,于1969年实现了一种分时操作系统的雏形,1970年该系统正式取名为UNIX。
肯·汤普森当年开发UNIX的初衷是运行他编写的一款计算机游戏Space Travel,这款游戏模拟太阳系天体运动,由玩家驾驶飞船,观赏景色并尝试在各种行星和月亮上登陆。他先后在多个系统上试验,但运行效果不甚理想,于是决定自己开发一个操作系统,就这样,UNIX诞生了。
1971—1972年,肯·汤普森的同事丹尼斯·里奇(Dennis Ritchie)发明了传说中的C语言,这是一种适合编写系统软件的高级语言,它的诞生是UNIX系统发展过程中的一个重要里程碑,它宣告了在操作系统的开发中,汇编语言不再是主宰。到了1973年,UNIX系统的绝大部分源代码都用C语言进行了重写,这为提高UNIX系统的可移植性打下了基础(之前操作系统多采用汇编语言,对硬件依赖性强),也为提高系统软件的开发效率创造了条件。
目前常见的UNIX系统版本有Sun Solaris、FreeBSD、IBM AIX、HP-UX等。
肯·汤普森和丹尼斯·里奇因在计算机领域做出的杰出贡献,于1983年获得了计算机科学的最高奖——图灵奖。


1.2.2 Linux往事
Linux内核最初是由李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的。第一个版本于1991年9月发布,当时仅有10000行代码。

李纳斯·托瓦兹公开了Linux源代码,并邀请他人一起完善Linux。与Windows及其他有专利权的操作系统不同,任何人都可以免费使用Linux。据估计,现在只有2%的Linux核心代码是由李纳斯·托瓦兹自己编写的,可以说现在大家所使用的Linux,是由李纳斯·托瓦兹和后续加入的众多Linux爱好者共同开发完成的。
李纳斯·托瓦兹还敲出了世界上最大的程序员社区GitHub(开源代码库及版本控制系统)。

Linux Logo是一只企鹅,关于它的由来有一种说法是:
企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于世界上的任何国家,任何国家都无权将南极洲纳入其版图。Linux选择企鹅图案作为Logo,其含义是:开放源代码的Linux为全人类共同所有,任何公司无权将其私有。
1.2.3 UNIX/Linux系统结构
UNIX/Linux系统可以简单地抽象为3层。底层是UNIX/Linux操作系统,一般称之为系统内核(Kernel);中间层是Shell层,即命令解释层;高层则是应用层。

(1)内核层
内核层是UNIX/Linux系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。
(2)Shell层
Shell层是与用户直接交互的界面。用户可以在提示符下输入命令行,由Shell解释执行并输出相应结果或者有关信息,所以我们也把Shell称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。
(3)应用层
应用层提供基于X Window协议的图形环境。X Window协议定义了一个系统所必须具备的功能(就如同TCP/IP是一个协议,定义软件所应具备的功能),任何系统能满足此协议及符合X协会其他的规范,便可称为X Window。
X Window与微软的Windows图形环境有很大的区别:
UNIX/Linux系统与X Window没有必然捆绑的关系,也就是说,UNIX/Linux可以安装X Window,也可以不安装;而微软的Windows图形环境与内核捆绑密切。UNIX/Linux系统不依赖图形环境,依然可以通过命令行完成100%的功能,而且因为不使用图形环境还会节省大量的系统资源。
作为服务器部署,绝大多数Linux并不安装或并不启用图形环境。
1.2.4 Linux的发行版本
Linux的发行版本可以大体分为两类:一类是商业公司维护的发行版本;另一类是社区组织维护的发行版本。前者以著名的Red Hat为代表,后者以Debian为代表。下面介绍4款我国国内应用较多的Linux发行版本。
(1)Red Hat Linux

Red Hat公司的产品主要包括RHEL(Red Hat Enterprise Linux,收费版本)和CentOS(RHEL的社区克隆版本,免费版本)、Fedora Core(由Red Hat桌面版发展而来,免费版本)。
本文以CentOS为例讲解,它是基于RHEL源代码重新编译、去除Red Hat商标的产物,各种操作使用和付费版本没有区别,且完全免费。缺点是不向用户提供技术支持,也不负任何商业责任。
Red Hat官方网站:http://www.redhat.com。
CentOS官方网站:http://www.centos.org。
(2)Ubuntu Linux

Ubuntu基于知名的Debian Linux发展而来,界面友好,容易上手,对硬件的支持非常全面,是目前最适合做桌面系统的Linux发行版本,而且Ubuntu的所有发行版本都免费提供。
Ubuntu官方网站:http://www.ubuntu.com。
(3)SuSE Linux

SuSE Linux以Slackware Linux为基础,原来是德国的SuSE Linux AG公司发布的Linux版本,1994年发行了第一版,早期只有商业版本,2004年被Novell公司收购后,成立了OpenSUSE社区,推出了自己的社区版本OpenSUSE。
SuSE Linux在欧洲较为流行,在我国国内也有较多应用。SuSE Linux可以非常方便地实现与Windows的交互,硬件检测非常优秀,拥有界面友好的安装过程、图形管理工具,对于终端用户和管理员来说使用非常方便。
SuSE官方网站:https://www.suse.com。
OpenSUSE官方网站:http://www.opensuse.org。
(4)Gentoo Linux

Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。Gentoo是所有Linux发行版本里安装最复杂的,到目前为止仍采用源码包编译安装操作系统。不过,它是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。自从Gentoo 1.0面世后,它就像一场风暴,给Linux世界带来了巨大的惊喜,同时也吸引了大量的用户和开发者投入Gentoo Linux的怀抱。有人这样评价Gentoo:快速、设计干净而有弹性,它的出名是因为其高度的自定制性——它是一个基于源代码的发行版。
Gentoo官方网站:http://www.gentoo.org。
Linux笔记01: Linux简介的更多相关文章
- 【Linux笔记】Linux目录结构
[Linux笔记]Linux目录结构 本文内容整理自网络,以作参考. /:根目录,位于linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc./bin./dev./lib ...
- Samsung_tiny4412(驱动笔记01)----linux 3.5,U-Boot,Busybox,SD卡启动环境搭建
/*********************************************************************************** * * linux 3.5,U ...
- Linux 笔记 #01# 搭建 Python 环境 & vim 代码高亮
日常收集 vim editor: How do I enable and disable vim syntax highlighting? 搭建 Python 环境 vim editor: How d ...
- 《Linux就该这么学》课堂笔记01 linux初识
此书作者刘遄(Liu Chuán)从事于Linux运维技术行业,并且在2012年获得红帽工程师RHCE 6版本证书,在2015年初又分别获得红帽工程师RHCE 7版本证书与红帽架构师认证RHCA顶级证 ...
- Linux笔记01
linux目录结构 : linux只有一个目录. usr:等价于programfiles: etc:存放系统配置 root:管理员(超级用户)目录, home:存放其他用户的目录: lib:共享包: ...
- linux笔记:linux软件包管理,软件安装位置
linux软件包简介 软件包分类:1.源码包(用C语言等编写的源代码,没有进行编译):脚本安装包(对源码包进行了安装优化的源码包)优点:开源,可修改可以自由选择所需的功能编译安装,更适合自己的系统,稳 ...
- Linux笔记之——Linux关机命令详解(转)
原文连接:http://www.jb51.net/os/RedHat/1334.html 在linux下一些常用的关机/重启命令有shutdown.halt.reboot.及init,它们都可以达到重 ...
- linux笔记:linux服务管理
linux服务的分类: 启动和自启动: 查询已经安装的服务: RPM包的默认安装路径: 独立服务的启动: 独立服务的自启动: 基于xinetd的服务的管理: xinetd服务的自启动: 源码包安装服务 ...
- [linux笔记]理清linux安装程序用到的(configure, make, make install)
我作为一名经常和linux打交道的程序员,每次在linux安装软件都祈求可以用——apt-get,yum,brew等应用程序管理器安装,有的时候事与愿违,你只能自己编译安装-wtf,说好的美丽世界呢? ...
- linux笔记:linux常用命令-权限管理命令
一个文件的权限只有root和所有者可以更改. 权限管理命令:chmod(改变文件或目录的权限) 权限的数字表示: 用权限加减的方式改变权限(u代表所有者,g代表所属组,o代表其他人,a代表所有人): ...
随机推荐
- 使用Java来开发物联网应用
这是Hello, Lithosphere Tutorials系列教程中的其中一篇. 感觉介绍用C/C++,用Python来开发物联网应用的文章比较多,用Java来做物联网的文章比较少. 这篇文章,介绍 ...
- Python自定义终端命令
在python中自定义一个终端命令 这里我们想要将一个csv文件中的数据导入到数据库中,就可以定义一个终端命令,直接一行命令就可以将我们文件中的数据导入到数据库中,特别的简单 首先,我们先创建一个py ...
- LSTM推导
LSTM推导 forward propagation def lstm_cell_forward(xt, a_prev, c_prev, parameters): """ ...
- 利用别名简化进入docker容器数据库的操作
之前研究docker和数据库的交互,越发对docker这个东西喜爱了.因为平常偶尔会用到各类数据库测试环境验证一些想法,需要进一步简化进入到这些环境的步骤. 比如我现在有三套docker容器数据库测试 ...
- 如何在.NET电子表格应用程序中创建流程图
前言 流程图是一种常用的图形化工具,用于展示过程中事件.决策和操作的顺序和关系.它通过使用不同形状的图标和箭头线条,将任务和步骤按照特定的顺序连接起来,以便清晰地表示一个过程的执行流程. 在企业环境中 ...
- Vue3中的Ref与Reactive:深入理解响应式编程
前言 Vue 3是一个功能强大的前端框架,它引入了一些令人兴奋的新特性,其中最引人注目的是ref和reactive.这两个API是Vue 3中响应式编程的核心,本文将深入探讨它们的用法和差异. 什么是 ...
- 如何选择适合你的HTAP数据库?
最近,在数据库行业对HTAP(混合事务/分析处理,Hybrid Transactional/Analytical Processing)这个概念宣传的非常火爆,也衍生出 Real-Time HTAP的 ...
- MySQL——MySQL面试题
文章目录 数据库基础知识 为什么要使用数据库 什么是SQL? 什么是MySQL? 数据库三大范式是什么 mysql有关权限的表都有哪几个 MySQL的binlog有有几种录入格式?分别有什么区别? 数 ...
- 小米手机抓取Log教程
当小米手机遇到任何系统下的较为严重的故障时(即此时系统还是基本正常运行的,只是某些功能实现出了问题),例如软件自动退出,SD卡自动卸载,电话无法拨出等等.可以请用户协助抓取log即系统运行日志,来发送 ...
- Spring Boot中发送邮件时,如何让发件人显示别名
之前,我们通过一系列文章,介绍了如何在Spring Boot中发送邮件: 发送邮件 添加附件 引用静态资源 邮件模版 已经包含了大部分的应用场景.但最近DD在做YouTube中文配音的时候,碰到一个问 ...