
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Linux操作系统是目前大多数软件开发程序员都在学习和使用的一种操作系统,而本文我们就简单来了解一下,零基础入门Linux操作系统需要掌握哪些知识。
操作系统
在学Linux之前,先我们先了解一下Linux操作系统,内核,以及他内核态和用户态等等的概念
概念:操作系统是管理计算机硬件与软件资源的计算机程序,简称OS
为什么要有操作系统:
1.给用户提供稳定、高效和安全的运行环境,为程序员提供各种基本功能(OS不信任任何用户,不让用户或者程序员直接与硬件进行交互)。
2.管理好各种软硬件资源。
从图中可以看到OS是软件和硬件资源的管理者,用户不能直接操作系统软件和硬件部分,只能通过操作系统提供的接口间接操作,OS是跑在硬件之上的,操作系统运行之后,用户程序才可以使用,用户程序运行在操作系统之上,OS拥有绝对权力。
shell初识
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“,但我们一般用户,不能直接使用kernel。而是通过kernel的“壳”程序,也就是所谓的shell,来与kernel沟通。
shell:实际上是一个命令的解释程序,是一个用户与系统内核沟通的桥梁。
内核:完成系统核心功能,对软硬件资源进行控制管理的系统集合—用户不能直接操作。
对比windowsGUI,我们操作windows不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
shell对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
总结:
①shell是进行命令行解释的,命令行解释器在系统层面上就是一个进程!
②保证内核的安全运行的同时,也要保证自身的安全,如何保护?shell进程->创建子进程去进行命令行解释->如果失败是不会影响shell进程。
③大部分指令的运行,都是会变成进程的。
内核态和用户态
对32位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为4G(2的32次方)。也就是说一个进程的大地址空间为4G。操作系统的核心是内核(kernel),它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证内核的安全,现在的操作系统一般都强制用户进程不能直接操作内核。具体的实现方式基本都是由操作系统将虚拟地址空间划分为两部分,一部分为内核空间,另一部分为用户空间。针对Linux操作系统而言,高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF)由内核使用,称为内核空间。而较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF)由各个进程使用,称为用户空间。
对上面这段内容我们可以这样理解:
每个进程的4G地址空间中,高1G都是一样的,即内核空间。只有剩余的3G才归进程自己使用。
换句话说就是,高1G的内核空间是被所有进程共享的!这1G的内核空间内存放的都是Linux操作系统的代码,而剩下的3G的空间存放的则是应用程序代码,比如QQ、酷我音乐等等用户应用程序
好了我们现在需要再解释一下什么是内核态、用户态:
当进程运行在内核空间时就处于内核态,而进程运行在用户空间时则处于用户态。
在内核态下,进程运行在内核地址空间中,此时CPU可以执行任何指令。运行的代码也不受任何的限制,可以自由地访问任何有效地址,也可以直接进行端口的访问。
在用户态下,进程运行在用户地址空间中,被执行的代码要受到CPU的诸多检查,它们只能访问映射其地址空间的页表项中规定的在用户态下可访问页面的虚拟地址,且只能对任务状态段(TSS)中I/O许可位图(I/OPermissionBitmap)中规定的可访问端口进行直接访问。
对于以前的DOS操作系统来说,是没有内核空间、用户空间以及内核态、用户态这些概念的。可以认为所有的代码都是运行在内核态的,因而用户编写的应用程序代码可以很容易的让操作系统崩溃掉。
对于Linux来说,通过区分内核空间和用户空间的设计,隔离了操作系统代码(操作系统的代码要比应用程序的代码健壮很多)与应用程序代码。即便是单个应用程序出现错误也不会影响到操作系统的稳定性,这样其它的程序还可以正常的运行(Linux可是个多任务系统啊!)。
所以,区分内核空间和用户空间本质上是要提高操作系统的稳定性及可用性。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。