浅识Linux组成

Linux的组成

        大家都应该使用过台式电脑或者拥有自己的笔记本电脑,那肯定也就接触到了Windows这个操作系统。没错,Linux和Windows是同一类型的东西,它们都是操作系统。不过,和Windows不同的是,Linux是个开源的东西。服务商在发行不同版本的Linux操作系统时,其源代码会一同发行。
        正是因为开源,各大服务商就针对不同的用户群体制定了不同的Linux版本。这些发行的Linux版本大致可以划分为以下四部分:Linux内核、GUN工具、图形化桌面环境和应用软件,它们通过协作构成了一个完整的Linux系统。
在这里插入图片描述

Linux内核

        如果是第一次接触操作系统的话,内核的概念也许会带来一些困惑。有时候学习东西,我们没有必要一上来就从定义上把这东西给搞懂,毕竟要有个感性到理性的认识过程。想想在使用电脑的时候,我们要打开视频软件,电脑屏幕就会播放出画面,同时旁边的音响也会开始工作。视频软件怎么知道如何使用硬件的呢?其实这就有着内核的功劳,它在中间搭建了一个桥梁,将两者联系在了一起。内核是Linux系统的核心,它主要负责以下四种功能:系统内存管理、软件程序管理、硬件设备管理和文件系统管理。

系统内存管理

        管理内存是操作系统内核的主要任务之一,它不仅要管理服务器上可用的物理内存,还要能够创建和管理虚拟内存(虚拟内存其实就是一部分硬盘空间,只不过这部分空间是内存的方式运行的,起到扩展内存的作用,有时也将这块区域称为交换空间)。
        计算机内部的内存存储单元一般会按组进行划分,每一组存储单元都被称为一个页面。每一个页面的相关信息作为一项条目并组织作成内存页面表,会由内核进行管理和维护。内核会记录哪些页面正在使用中,并且自动地将一段时间内都未使用的内存页面复制到交换空间区域(称为换出)。当程序要访问一个已经被换出的内存页面时,内核会再重新将其换入到内存空间。

软件程序管理

        计算机上运行中的程序称为进程。这些进程既可以运行在前台,将输出的结果显示在屏幕上,也可以在后台运行,将结果直接保存在文件中。
        内核负责控制系统上所有进程的运行。它会创建第一个进程(init进程)来启动系统上的其它进程。当内核启动时,首先会将init进程加载到虚拟内存中。接着当系统再启动其它任何进程时,都会给新的进程在虚拟内存中分配一块专有区域让该进程来存储使用到的数据和代码。

硬件设备管理

        Linux系统在和硬件设备进行通信时,需要在内核代码中加入驱动程序代码。驱动程序起到了中间人的作用,让内核和设备之间能够进行数据交换。在Linux内核中有两种方式可以加入设备驱动程序:将设备驱动代码编译进内核、将设备驱动模块直接插入内核。将设备驱动代码编译进内核这种方式很不方便,意味着每次增加新设备,都需要重新对内核进行编译。因此,开发人员提出了内核模块的概念,这种方式允许将驱动代码直接插入到运行中的内核,因而不需要对内核进行重新编译。
        在Linux系统中,所有的硬件设备都被看待成特殊文件,称之为设备文件。通过这些设备文件,Linux系统可以完成与外围设备的通信。

文件系统管理

        我们都知道,计算机能够处理的信息只有0和1这两种数据。我们在计算机中的所有信息也都是被转换成0、1的数据串进行存储的。如果计算机屏幕上显示的都是0和1的数据码,相信大多数人都不懂是什么意思,这可怎么办呢?这就有了文件系统的出现,我们都是通过不同类型的文件系统从硬盘中读写数据。
        内核在编译时就加入了对所有可能用到的文件系统的支持,采用虚拟文件系统(Virtual File System VFS)作为和每个文件系统交互的接口,相当于为Linux内核同任何类型文件系统的通信提供了一个标准接口。而且Linux的文件系统非常强大,甚至于支持其它操作系统中所采用的文件系统。

GNU工具

        假如操作系统离开桌面环境,以文本界面方式运行,我们又如何给系统输入指令呢?我们又该怎样控制文件和程序的运行呢?这时就需要一些其它的工具助我们一臂之力,这套工具是GNU组织在开源软件(open source software, OSS)的软件理念下开发的。

核心GNU工具

        Linux系统中最常使用的一组核心工具被称为coreutils(core utilities)软件包。该软件包主要是由三部分组成:用以处理文件的工具、用以操作文件的工具和用以管理进程的工具。

shell工具

        GNU/Linux shell 是一种功能特别强大的交互式工具,它的核心是命令行提示符。命令行提示符是shell负责交互的部分,允许输入文本命令、解释命令,然后在内核中执行。同时,在shell命令行提示符下也可以输入程序名称,它会将程序名称传递给内核从而启动程序。
        Shell的强大不仅体现在它的交互方面,shell本身也包含了一组内部命令,可以完成复制文件、移动文件、重命名文件、显示和终止进程等操作。同时,可以将shell命令放在文件中作为程序执行,这种文件称为shell脚本。

图像化桌面环境

        在对服务器进行管理和维护时,Linux操作系统往往是在文本界面下运行的。但对于初学者来说,已经习惯了Windows的桌面环境,如果直接在文本界面下学习Linux会是一件痛苦的事情。因此,在发行的Linux版本中一般都带有图像化桌面环境套件,来方便用户的使用。一些比较流行的Linux图形化桌面有:X Windows系统、KDE桌面、GNOME桌面、Unity桌面等。

                                                                                                                                                                                                    @Bitter

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值