• Linux


    我们常说的Linux,其实是基于Linux内核开发的操作系统,也就是那么多Linux版本的核心都是一种Linux内核,只不过外壳不一样,内核管理文件、管理硬件、管理应用程序、管理内存等。我们知道对于一个进程来说有用户态和系统态。对于unix和linux这样的体系来说,分为用户态和内核态,也就是说CPU的某些指令操作不当就会导致系统崩溃,那么这些指令就划分为内核态(特权级),只能被内核相关模块调用。而其他的指令可以被用户调用。

    指令就相当于方法,可以被操作系统内核与外壳调用。外壳也是依托于内核的。

    我们的应用程序是依托于内核的,也就是说内核相当于一个赤身裸体的人,外壳相当于衣服,应用程序相当于米饭,我们需要的是这个人。

    可以把外壳和应用程序当作平行地位,但是它们的本质不是一样的,外壳属于操作系统,而应用程序属于其他软件。

    为什么说依托呢,因为内核管理着计算机上所有的硬件资源和软件资源。

    如何依托呢,内核会提供对外的接口,我们的应用程序会通过系统调用来调用内核完成操作。例如jvm就实现了Java程序和不同操作系统内核的系统调用。

    又例如当程序抛出异常时,应用程序处理不了,进程就会切换到内核相关模块来处理。

    在Linux中,所有东西包括打印机、键盘、光驱等等·都看作文件,通过对文件的读写来操作设备,每个文件存储在一些块里,每个块由约八个扇区组成(每个扇区约0.5kb即512位),每个文件还要一个磁盘区域用来存储inode(索引节点),及存储文件元信息的。

    Linux支持的文件类型有普通文件、目录文件、socket套接字文件、管道文件、设备文件等,

    总结,应用程序最终也是由jvm产生相应的指令(具体是依靠API,API相当于用户和程序之间的桥梁,借助于API,我们的程序有了生命力,API的一些底层native方法就帮助我们得到了指令)直接执行(直接调用内核中的某些模块),shell壳层也是如此。这种直接的指令叫做用户态。

    但是一些危险的指令不会直接暴露给用户,会通过系统调用的方式也就是一组对外的接口供访问(类似于Java里的封装),shell里的某些指令也是如此。这些指令就是内核态。

  • 相关阅读:
    如何在Android平台下进行Socket通信
    通过 按钮 bundle 传过来 变换Q币图片
    Android中focusable属性的妙用——底层按钮的实现
    Android与服务器交互的简单例子
    Microsoft Office SharePoint Server 2007介绍
    mathtype使用
    VS2010快捷键
    xxd
    gas 多文件组织
    612 根目录下vmlinux , compressed下的vmlinux,boot下的Image、zImage
  • 原文地址:https://www.cnblogs.com/riverer/p/dasdasd.html
Copyright © 2020-2023  润新知