首页 > 代码库 > Linux基础及操作框架概述

Linux基础及操作框架概述

      学习Linux, 当然是要从Linux的基础开始,学习任何一门技术,都要首先扎实基础,那么你后面的路就会越走越顺。

      关于Linux,这里我不想做过多的介绍。大家都知道,Linux是从1991年的时候,有一个叫Linus的人写了第一个版本的Linux,也就是0.0.1这个版本,当时大概是有8000行的这样一个代码,后来他加入了GNU,这个组织是打造一个开源的公共环境。这个组织定义了一个叫GPL的协议,意思就是做这个系统的时候,必须开源,允许别人修改和传播,但不能作为商业用途。

       现在我们进入课题。

       之前我们记得我们给硬件加电的时候,就是硬件在启动过程。在以前没有Linux操作系统的时候,我们是不是一加电,我们就可以到具体的一个物理地址去读我们写的程序,然后由这个程序去显示我们想要的东西,无论是打印出来还是干嘛的。当时后来我们有了操作系统了,很多事情都交给操作系统来完成,我们启动过程就发生了一些改变,先是加电,加完电过后通过我们的Bios,因为加完电之后,我们的CPU就要到具体的一个物理地址去取东西,取到的是一个Bios,所以所BIOS是依托于我们系统之外的,然后BIOS又去一个具体的地方,这个地方就是我们存储空间的首地址,对于我们硬盘来说就是零符道的第一扇区,如果是软盘启动也是第一扇区。那么去到第一扇区找到启动入口,这个启动入口对于我们Linux而然,就是找到了Grub这样的一个引导程序,这个引导程序就会根据具体情况,因为它知道我们操作系统是在什么地方的,所以它就去加载我们操作系统的内核。那么加载内核之后还有很多步骤,那么其中一个就是要先去挂载我们的文件系统,因为有了文件系统我们才能去访问,才能去存储。所以这个就是这样的一个过程。那么加载了系统内核之后我们还要启动什么呢。我们还要启动我们的系统服务,系统服务要去启动我们的应用程序,这样我们整个操作系统就加载完了。


那么下面我们想一下,如果我们要设计一个操作系统,那我们要怎么开始来设计呢?

至少我们认为,做一个操作系统的话,我们首先,操作系统至少要知道怎么去启动,所以引导必须要有一个入口,其次,这个操作系统至少要能访问我们的磁盘存储,这个我们称之为文件系统;再次,我们操作系统是不是要有用户管理,这个先不说,操作系统也有可能是单用户的。操作系统必须跑程序,那么跑程序是怎么跑的呢,那就是要加载到内存里面,那么要怎么来存放呢,我们称之为进程。当然,进城后面我们又诞生了线程这些概念。再其次,我们呢在存放进程的时候,是不是该有内存管理。这个就是我们要考虑操作系统的最核心的部分。


我们现在无法去设计一个操作系统,我们就选一个操作系统,当然是选我们的Ubuntu了。

Ubuntu是一个很好的一个开源的,是Android指定的一个操作系统,那就很方便,Ubuntu发展也很快,现在Ubuntu已经开始支持ARM架构了。

Ubuntu官网: www.ubuntu.com

在使用Ubuntu和安装Ubuntu之前,我们先来了解一下Linux操作系统的核心架构。

那么典型的Linux操作系统是什么样子的 ?

        

         ?

         


Linux的主要特点就是:它对硬件的要求是比较低的,因为Linux它的图形界面是设计到它系统程序去支持的,也就是说它的内核就考虑到图形界面这一块,还有Linux默认情况下是没有图形界面的。它的图形界面无非就是进行了一个协议层的封装。


认识Ubuntu的一些版本。long-term表示长期维护的一个版本。

desktop

server

还有一个cloud版本


Ubuntu的安装

1、安装前的准备工作

(1)硬件准备:这个没什么好说的,一般现在只要能跑得动的电脑都可以装。

(2)vmware

(3)文件系统 : 

1、什么是文件系统?

     简单来说,文件系统其实就是一种存储和组织计算机文件和资料的方法。只不过我们把它做成了一      个  种系统服务。它其实也是一个软件程序。

2、文件系统通用结构 ?

      FAT32   NTFS

     EXT3     Swap

      我们想象一下,我们在磁盘上放一个文件,我们Windows系统是不是有分区这个概念,Linux没      有。但Linux有引导这个概念,首先我们要去引导它们,所以我们在定义文件系统的时候首先要有              一个引导块,其二,我们针对这个磁盘,我们是要存储磁盘信息的,比如说我们磁盘有多大,每个      扇区的大小是多少,这个称之为master,超级块。其三,我们是不是有一个数据库去存放数据,           这个就是我们 的数据块。我们存取数据快是因为我们有索引区,我们又INode。

3、文件系统的分类

     磁盘文件系统

NTFS, EXT3(日志文件系统)

     闪存文件系统

JFFS2,YAFFS

     数据库文件系统

BFS,WINFS

     网络文件系统

NFS

     虚拟文件系统

VFS(Proc)

4、EXT3  SWAP


2、安装 Ubuntu desktop & server


Linux文件及文件系统:

一切皆文件

文件属性

Linux文件目录结构


文件类型(7种)

一般文件 -

目录文件 d

链接文件 l

块设备 b

字符设备 c

socket s

管道 p (其实就是把一个程序的出口写到另外一个程序的入口)


Linux基础及操作框架概述