您的位置:首页 > 运维架构 > Linux

初识Linux

2017-03-16 20:44 141 查看

一个伟大的男人

  基本资料:林纳斯·托瓦兹(Linus Torvalds),1969年生人,美国国籍。

  生平概述:

-1988年,在大学接触Unix。随后根据教科书及minix源代码,打造了自己的操作系统Linux(alone)。一开始,Linux就像是Unix的副本,但随着功能的不断扩充,Linux早已能够独当一面。

- 1991年8月25日,在网络上发布了Linux内核的源代码。

- 2005年,为了管理Linux内核的源代码,开发了Git。

  此举是因为别人的代码托管平台不好管理且大多收费,通俗点说就是钱多事更多。据说他只花了两周时间自己用C写了Git。且一个月之内Linux系统的源码就已经由Git管理了。

  牛是怎么定义的呢?大家可以体会一下。

  总结:彪悍的人生从来都不需要解释。对于这种人,我们只能膜拜…

为什么需要操作系统

  既然Linux是一种操作系统,那我们首先就要了解一下操作系统(OS)的有关知识。

  简而言之,OS就是一组控制和管理计算机硬件和软件的软件资源,合理的对各类作业进行调度,以及方便用户使用的程序集合。

有了OS,计算机就会比较容易的为用户所用。

科普时间

冯.诺依曼体系结构

  尽管操作系统的种类有很多,但他们大多都是建立在冯.诺依曼体系结构上的。

  计算机五大单元:输入设备,存储器(内存),运算器、控制器(集成),输出设备。



Linux操作系统

说起操作系统,你会想到什么?

我想大多数人都会想到Windows这款经典的操作系统,那么问题来了,同为操作系统,它与Linux的区别在哪里呢?

下面让我们通过几个方面的对比,对Linux有更加深入的了解。

图形界面

  内核(kernel):操作系统核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统。

  用户不可以直接使用操作系统的kernel(因为太难了),因此操作系统和用户之间用软件层来进行交互,相当于一种“外壳”程序。

  在Windows中,这个外壳程序就是图形界面。我们用图形接口来与kernel沟通。通过双击来完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符)。而且Windows的图形界面是内嵌到它的kernel中的。

  事实上,历代Windows操作系统变化最大的就是其图形界面。

  在Linux中,因为没有嵌入在内核里的图形界面,所以这个外壳程序又变成了SHELL,与kernel沟通。当然,如果需要,也可以下载适用Linux的图形界面程序。但在实际工作中,一般是不会用到的,打开Linux就只会有命令行解释器,用指令进行操作。

SHELL

  SHELL是Linux系统的用户界面,提供了与kernel之间交互操作的接口,通常称为命令行解释器。它的主要任务包括:

a. 将使用者的命令翻译给核心(kernel)处理。

b. 同时,将核⼼心的处理结果翻译给使用者。

  Linux采用bash为其默认SHELL,用户如果登录成功,将获得SHELL提示符。Root用户为“#”,其他用户为”$”。

  Shell脚本是解释型的,而不是编译型的。除了向内核传送命令之外,shell的主要任务是提供一个可单独配置的使用shell资源配置文件的用户环境。

SHELL运行原理

我们知道,shell任务的一个重要部分是搜索命令。那它是怎么运行的呢?

事实上, shell用fork建立新进程,用execv函数簇在新进程中运行用户指定的程序,最后shell⽤用wait命令等待新进程结束。wait系统调用同时从内核取得退出状态或者信号序号以告知子进程是如何结束的。

所以,大多数命令的运行都不是由SHELL直接完成的,而是由SHELL建立子进程来运行,只有少数命令才会被SHELL直接运行。

文件类型

  在Windows操作系统下,我们通过文件后缀名来区分文件类型,比如文本类型为.txt,图片有.PNG、.jpg等。

  而Linux是通过文件属性来辨别文件类型的,加不加文件后缀对linux文件并无影响,它只是文件名的一部分。

  虽然扩展名不起作用但是我们还是希望可以由扩展名了解此文件是什么东西。所以建议还是加上比较好(如 .sh : 脚本或者批处理⽂文件(scripts) .Z .tar .tar.gz .zip .tgz : 经过打包的压缩⽂文件。 .html .php :网页相关文件)

linux文件类型

Linux下,一切皆文件。且文件通常分为以下几类:

1.普通⽂文件(regular file)第一个字符为[ - ]

包括:

①纯⽂文本档(ASCII):这是Linux系统中最多的一种⽂文件类 型,称为纯⽂文本档。是因为内容为我们人类可以直接读到的数据,

例如数字、字母等等。

②二进制⽂文件(binary): 你的Linux中的可执行文件。

③数据格式⽂文件(data):有些程序在运作的过程当中会读取某些特定格式的档案,那些特定格式的档案可以被称为数据文件 (data file)。一般⽤用cat看到的都是乱码。

2.目录文件(directory): 第一个字符为[ d ]

3.连接文件(link):第一个字符为[ l ]

4.设备和设备文件

块设备⽂文件,即⼀一些存储文件,如硬盘、软盘等,第一个字符为 [ b] 字符设备⽂文件,即⼀一些串行端⼝口的接⼝口⽂文件,如键盘、⿏鼠标等,第一个字符为[ c ]

5.套接字(sockets):第一个字符为[ s ]

还被称为数据接口文件,这种类型的文件通常被用在网络上的数据连接。我们可以启动一个程序来监听客户端的请求,而客户端就可以通过数据接口文件来进行数据通信。

6.管道(FIFO,pipe)第一个字符为[ p ]

FIFO也是⼀一种特殊的⽂文件类型,他主要的目的是解决多个程序同时访问一个文件所造成的错误问题,first-in-first-out。

权限思想

在Windows下,我们通常不会关注权限这个问题,提到权限,大多会想到运行某个应用程序时,要使用管理员权限登录。

Linux中,权限是个很重要的问题,不论是人,还是文件都有权限,而且不同的人对于同一个文件的操作权限也不尽相同。这点在后边会详细介绍。

指令操作

在Windows操作系统中,我们不用学习什么特殊的指令对计算机进行操作,打开文件只需要点击即可。只有当打开命令提示符程序cmd,exe去更改一些系统设置时才会用到指令。

在Linux中,因为使用SHELL与内核通信,所以我们需要学习它的指令系统来对文件进行操作,记住常用的Linux指令对初学者而言至关重要,但只要勤加练习,也自然不在话下。

Linux的基本指令在后边也会做详尽的介绍。

The End…

以上只是对Linux操作系统做了基本的介绍,在与Windows操作系统的比较中,Linux的很多地方都显得很特立独行。

关于Linux的更多知识,会在后边详细介绍,敬请期待……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: