精华内容
下载资源
问答
  • 1.什么是内核 用户操作的界面操作系统的外在表象,内核操作系统的内在核心。系统其它部分 必须依靠内核这部分软件提供的服务,像管理硬件设备、分配系统资源等。 通常内核由负责响应中断服务程序、负责管理...

    【本文内容参考自Linux内核设计与实现,仅作笔记】

    一、内核介绍
    1.什么是内核

    	用户操作的界面是操作系统的外在表象,内核才是操作系统的内在核心。系统其它部分
    必须依靠内核这部分软件提供的服务,像管理硬件设备、分配系统资源等。
    	通常内核由负责响应中断服务程序、负责管理多个进程从而分享处理时间的调度程序、
    负责管理进程地址空间的内存管理程序和网络、进程间通信等系统服务程序共同组成。
    	对于提供保护机制的现代系统来说,内核独立于普通应用程序,它一般处于系统态,
    拥有受保护的内存空间和访问硬件设备的所有权限。这种系统态和被保护起来的内存空间,称为
    内核空间。
    

    2.内核的运行相关

    	当硬件设备想要和系统通信的时候,它首先要发出一个异步的中断信号去打断处理器的执行,
    继而打断内核的执行。中断通常对应着一个中断号,内核通过这个中断号查找对应的中断服务程序,
    并调用这个程序响应和处理中断。许多操作系统的中断服务程序,包括linux,都不在进程上下文中执行。
    它们在与一个所有进程都无关的、专门的中断上下文中运行。
    【注】这样做是为了保证中断服务程序能够在第一时间响应和处理中断请求,然后快速的退出。
    

    在这里插入图片描述
    三种运行状态

    ·运行于用户空间,执行用户进程。
    ·运行于内核空间,处于进程上下文,代表某个特定的进程执行。
    ·运行于内核空间,处于中断上下文,与任何进程无关处理某个特定的中断
    
    【注】当cpu空闲时,内核就运行一个空进程,处于进程上下文,但运行于内核空间。
    

    二、内核分类
    操作系统可以分为俩大阵营:单内核和微内核(第三阵营外内核,主要用于科研系统中)。

    1.单内核

    	1980年前,所有的内核都设计成单内核。所谓单内核就是把它从整体上作为一个单独的大过程来实现,
    同时运行在一个单独的地址空间上。
    	因此,这样的内核通常以单个静态二进制文件的形式存放于磁盘中。所有内核服务
    都在这样的一个大内核地址空间上运行。内核之间的通信是微不足道的,因为都运行在内核,态,
    并身处于同一地址空间:内核直接调用函数,与用户空间的应用程序没什么区别。
    
    特点:简单、性能高
    

    2.微内核

    	微内核没有作为一个单独的大过程来处理去实习。相反微内核被划分为多个独立的过程,
    每个过程叫做一个服务器。理想情况下,只有强烈请求特权的服务器才运行在特权模式下,
    其它服务器运行在用户空间。不过,所有的服务器都保持独立运行在各自的地址空间上。
    因此,不能像单模块那样直接调用函数,而是通过消息传递处理微内核通信:系统通信采用了进程间通信(IPC)机制,
    因此,各个服务器之间通过IPC机制互通消息,互换“服务”。服务器各自独立有效地避免了一个服务器的失效
    祸及另一个。同样,模块化的系统允许一个服务器为了另一个服务器而换出。
    【注】目前Windows NT内核(WindowsXP、Windows Vista和Windows7等不让任何微内核服务器运行在用户空间)
    	Linux是一个单内核,Linux内核运行在单独的内核地址空间上。
    
    展开全文
  • 童子命是什么意思所谓童子命,大意就是前世是宫观寺院各路神仙身边的小童,比如端茶倒水、扫地伺候的侍女、仆役等, 一生保持童子之身,后来因为种种原因投胎做了人,这些原因包括思凡、逃跑、犯错被罚、有特殊使命...

    童子命是什么意思

    所谓童子命,大意就是前世是宫观寺院各路神仙身边的小童,比如端茶倒水、扫地伺候的侍女、仆役等,                                         一生保持童子之身,后来因为种种原因投胎做了人,这些原因包括思凡、逃跑、犯错被罚、有特殊使命等等。                                            

    452082987d4bcffa3a8b4cacdccf4070.png

    另一种解释为:童子原指天上的神仙小童,因过失被贬职下凡。童子命之人生来长相就天生丽质,人见人爱。童子随时有被召回的可能,所以18岁前48岁前,都有坎坷。                                                             童子命之人从小体弱。或者是至今身上还有慢性病症,虽不严重但是也不舒服。姻缘很不顺利,虽然长相好,但是姻缘好像和自己无缘。等不到自己想找的爱人,并且姻缘一直迟缓。结婚后离婚的可能性极大,并且有多次离婚征兆。

    5270cbbf05e47191149452357ca06b21.png

    什么时间出生的人是童子命

    1、“春秋甲寅子”:生在春秋两个季节的,月支、日支有甲、寅、子的是真的童子命。2、“冬夏卯未辰”:生在冬夏两个季节的,月支、日支有卯、未、辰的是真的童子命。3、“金木乙卯未”:纳音的五行为金、木。且日支时支有乙、卯、未的是真的童子命。4、“水火庚辛壬”:纳音的五行为水、火。且时支日支有庚、辛、壬的是真的童子命。5、“土命逢辰巳”:纳音的五行为土。而且时支日支有辰、巳的是真的童子命。

    ccc3624c97f5f698f99d83230aa44f99.png

    ---为您推荐---民间仙婆真的会通灵吗,她们怎么知道那么多事仙婆怎么知道家里事的?出马仙怎么和仙家沟通? _出马弟子快出马时的征兆,这些情况不能出马出道仙家要开口的症状:情绪如上天下地大喜大悲自身反常明显
    展开全文
  • 什么是内核

    2010-06-28 23:11:00
    载自网路: ... 1 内核调度也算是一个任务吗?? ...不,内核调度只能说是一种任务调度的算法,它不一直在运行,只是在任务结束...任务运行在内核的管理之下的,也可以说任务运行在内核的这个环境里

    载自网路:
    http://topic.csdn.net/t/20020926/18/1056123.html#

    1 内核调度也算是一个任务吗??  
      不,内核调度只能说是一种任务调度的算法,它不一直在运行,只是在任务结束/时间片结束的时候才执行,选择下一个要运行的任务。  
       
    2 任务和内核的关系:
    任务是运行在内核的管理之下的,也可以说任务是运行在内核的这个环境里的。  
      内核调度只是内核功能的一部份。内核本身不存在调度,它可以说一直在运行,主要是运行在任务之内和之间,它负责任务所需的资源处理。  
       
    3 它和正在运行的那个最高优先级的任务是一种什么样的关联呢??  
      不管优先级多高,它都是运行在内核环境下的,内核是一直在运行的,只不过它是把CPU和其它资源分配给任务,让它运行而已。 


    什 么是内核?  
      其实内核不是一个进程,也不是一个现程。  
      内核通过他提供的api,融合进了应用程序。  
      也就是说内核只是一种抽象的说法,他本身并不存在。  
      而是在一些特定的时间和特定的条件才运行,才给我们的应用程序提供  
      各种服务。

    展开全文
  • 应该学习过一段时间的人,都能唱出来,低2GB用户空间,高2GB是内核空间,我们如果在用户空间访问内核空间数据,直接给你一个0xC0000005异常,告诉你你没有权限访问, 今天就给大家完全的解析什么是内核空间,...

            应该学习过一段时间的人,都能唱出来,低2GB是用户空间,高2GB是内核空间,我们如果在用户空间访问内核空间数据,直接给你一个0xC0000005异常,告诉你你没有权限访问,

           今天就给大家完全的解析什么是内核空间,什么是用户空间

    CPU有4个运行级别,如下图,我们所说的内核就是Ring0当CPU运行ring0态的时候就是内核态(也就是CPL=0),此时拥有最           高的权限

    而在用户态的时候就是CPL=3此时CPU处于用户态

        再次提出几个问题解决了这几个问题就解决了

    1.我在用户态访问高2GB内存会失败是因为我不是内核态所有访问失败的嘛?

    2.内核态真的只是高2GB的时候才能处于内核态嘛

     

    首先我使用用户态访问一个高2GB内存

    void  _declspec(naked) taolaoda(){
        __asm{
            pushad
            pushfd
            mov eax,0x8003f008
            mov ecx,[eax]
            mov edx,[eax+4]
            mov Vluae,ecx
            mov Vluae1,edx
            popfd
            popad
            retf
        }
    }
    int main(int argc, char* argv[])
    {
        char buf[6];
        char buf2[6];
        *((WORD*)&buf[4])=0x1b;                                                      //这个就是本来cs的选择子 没有改变  直接调用taolaoda函数也    是一样我用长调用的方式调用,是为了后面构造段描述符方便少该代码
        *((DWORD*)&buf[0])=(int)taolaoda;
        __asm{
            call buf;
        }
        printf("Vluae=%p  Vluae\n",Vluae,Vluae1);
        getchar();
        return 0;
    }

    结果是访问访问高2GB的   0xC0000005访问异常,这是谁不让我们访问?

    答案是页机制(没有学过页的不要紧后面我们会有一篇帖子专门介绍页),

     

      我通过Windug修改0x8003f000这个物理页的访问权看看,首先通过Windug输入 !process 0 0遍历所有进程,获得自己正在运行的Cr3,然后找到0x8003f000对应的物理页

    这我自己写的一个2-9-9-12地址拆分器

    看到下面红框起来的,可以看到找到了0x8003f000对应的物理页,数据吻合

    修改自己进程 0x8003f000对应的物理页PTE的属性 的第2位和第8位

    第2位是U/S  U/S位=1的时候  允许用户态访问CPL=3,(CPU允许CPL=0,1,2访问用户态)

                         U/S位=0的时候  允许内核态访问,此时只有CPL=0的时候访问这个页地址的时候才能通过

    第7位是G位  G=0给刷新一下CPU内部的TLB表,后面会将这章的重点是让我们明白 段和页的限制以及内核态用户态的是

    根据什么来定的

    修改PDE的属性    修改U/S=1

    这是接着上面0xC0000005运行的那个进程接着运行的没有重新运行

    这就是为什么高2GB用户态无法访问了,所有进程高2GB都是内核是共享的,操作系统通过页机制,

    把0x80000000-0xFFFFFFFF这些地址对应的物理页PTE,PDE的U/S设置0位只允许内核态访问呢就是CPL=0时候

    mov  eax,[0x8003f008]这条执行才能执行,或者把0x8003f000这个物理页的对应的PTE和PDE的 全都设置为U/S=1

    此时这条指令mov  eax,[0x8003f008],在CPL=0,1,2,3的时候都能访问。

            所以可以说是页机制将高2GB和第2GB数据分格开,由于操作系统将高2GB的内存的物理页PTE全都设置成了U/S=0只允许CPL=0的时候访问,所以高2GB又被一些人称为内核(因为此时候CPL=0才被称为内核的),https://blog.csdn.net/taolaodawho/article/details/108957337 这是我们写一的一篇段权限检查,里面描述了段机制做了什么,

    保护模式保护的是内存(和一些特权指令),段机制对保护内存做的不多,对内存的保护是页做的,能够将高2GB和第2GB分开,其实很多人对内核的理解都是有误的,本意应该是当CPU执行某条指令的时候 CPL的值,如果此时CPL=3就是用户态,CPL=0就是内核态,这说明的是CPU的状态,很多人却将其与内存对应起来,说高2GB是内核,(再次是申明一下内核态是CPU的状态,与内存无关),高2GB的内存别操作系统设置过物理页的属性,只允许CPL=0(内核态访问),而低2GBCPU运行与任何状态都可以访问,这就是页机制做的内存保护

    我们也谈一谈段对内存的保护,也有但是远远无法和页做的相比,段对内存就做就比如数据段(好你可以访问0x00000000-0xFFFFFFFF这4GB空间,以可读,或者可读可写的权限(段把内存看成一个整体,这个整体权限完全相同)),页是在段的基础上将分割成一个一个页(每个小页0x1024字节),每个一页都有它自己的属性,有的页只允许CPL=0的指令访问,有些页只读,有些页可读可写,所有说对内存的保护主要是页机制做的,因为段主要做的是加载段描述符,具有提权功能(会进行权限检查),

    我们构造一个系统段,调用们提权

    通过调用们提权后可以看到直接直接读高2GB内存的数据

    可以看到通过调用们提权后发现 调试的时候是WIndug内核调试器接受的调试信息,此时CPL=0就是内核态了,也就是说也可以访问高2GB内存了,结合所有应该能够明白了,权限说的是CPU的概念,访问不同内存需要的权限不同,所以CPL在不同级能够访问的数据不同,也有一写特权指令执行在内核态才能执行成功,段就是提升CPU权限的手段,当然也能降低。

    当段机制和页机制同时配合起来的时候,就有了高2GB是内核空间(只允许内核态访问 页限制),低2GB是用户空间(允许所有权限访问),用户空间中有些区域是只读区,有些可读可,这有是页机制的杰作

    上面的测试可以看到地址0x401050  处的指令也是在内核态,在很多正向人眼里这是用户空间,这说明他根本不知道什么是应用空间,内核空间,到这里大家应该能了解到那些是段机制做的了,那些事页机制做的。

     

     

    展开全文
  • 转发有修改删减。...那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没...
  • 好比你盖房子 刚开始因为水平低 流行盖平房 这就是一种架构(V5T) 然后这种平房架构你可以设计出一款独立卫生间的款式 这叫ARM7内核 然后其他人(芯片设计公司)想盖房子的就买你这个图纸去盖 然后过一段时间 有人...
  • 好比你盖房子 刚开始因为水平低 流行盖平房 这就是一种架构(V5T) 然后这种平房架构你可以设计出一款独立卫生间的款式 这叫ARM7内核 然后其他人(芯片设计公司)想盖房子的就买你这个图纸去盖 然后过一段时间 有人...
  • Ipython! Ipython! Ipython! 所以在Jupyter notebook能够使用Ipython的如: ...%timeit:获得程序执行时间 %paste:获取剪切板文件并执行,最好用%cpaste,可通过Ctrl+C中断 等魔法函数,而这些...
  • 思考这个问题的导火线是,看到...这个观点在学操作系统的时候作为常识被认知,那背后具体的原理是什么呢? 一句话回答问题: 上面涉及的内核态与用户态切换时系统调用,内核也相当于一个软件,他们切换就相当于从
  • Linux内核最常见的锁自旋锁(spin lock)。自旋锁最多只能被一个可执行线程持有。 如果一个线程试图获得一个被已经持有的自旋锁,那么该线程就会一直进行忙 循环---旋转---等待锁重新可用。 要是锁未被争用,请求...
  • 我们嵌入式老师给我们布置了这个作业,麻烦各位电脑大师指点一下 1.烧录文件系统为什么内核需要的时间要长? 2.windows下安装驱动通过双击.exe,请问嵌入式Linux下什么命令安装驱动?代表什么单词的组合?
  • 答: linux每秒脉冲数(linux pulse per ... 一个PPS源就是一个每秒能提供高精度信号的设备,以便于app利用它来调整系统时钟时间(也就是为app提供精准时钟)。 转载于:https://www.cnblogs.com/dakewei/p/10560743.html...
  • Linux | 为什么用户态和内核态的切换耗费时间

    万次阅读 多人点赞 2018-04-09 09:27:29
    思考这个问题的导火线是,看到java中的...这个观点在学操作系统的时候作为常识被认知,那背后具体的原理是什么呢? 一句话回答问题: 上面涉及的内核态与用户态切换时系统调用,内核也相当于一个软件,他...
  • 点击上方“大鱼机器人”,选择“置顶/星标公众号”福利干货,第一时间送达!01前言本文主要讲解什么是Linux内核,以及通过多张图片展示Linux内核的作用与功能,以便于读者能快速理解什么...
  • 答: Precise Time Protocol(PTP),这一种高精度时间同步协议,PTP在硬件级实现的,因此需要硬件支持才能实现高精度时间同步 转载于:https://www.cnblogs.com/dakewei/p/10563958.html...
  • 但我猜它更像一个Python问题,而不是一个OS问题.我的Python应用程序在64核AMD服务器上运行在Ubuntu之上.它通过网络从5 GigE摄像机中提取图像,通过ctypes调用.so然后处理它们.我看到我的应用程序经常暂停,导致相机的...
  • 1 Linux进程与线程Linux进程 Linux线程进程作为资源分配的基本单位而存在线程作为调度的基本单位而存在我们都知道... 随着时间的发展, 线程的概念出现的, 但是linux并没有马上接受这一概念, 要知道, 线程现代操作系统
  • 每每谈到Linux的软件定时器,我们都要说,内核无法保证其执行时间,一般会延迟几百毫秒。几百毫秒这个一个数,绝对不是空穴来风,万物总归有其缘由。文章主要就和大家谈谈这么一个几百毫秒,究竟从哪里冒出来的呢...
  • 什么说Ucosii可剥夺型内核? 它总是让所有处于就绪态中优先级高的任务先运行。个运行着的任务使一个比它优先级高的任务进入了就绪态, 当前任务的 CPU 使用权就被剥夺了, 或者说被挂起了, 那个高优先级的任务...
  • 前言本文主要《Linux内核设计与实现》这本书的读书笔记,这本书我读了不下十遍,但依然...目录运维为什么要了解内核进程系统调用中断内核同步定时器和时间管理内存分配虚拟文件系统块I/O层I/O算法页高速缓存和页回...
  • 什么内核

    千次阅读 2010-07-15 14:13:00
    为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问有限的,并且内核决定一个程序在什么时候 对某部分硬件操作多长时间。直接对硬件操作非常复杂的,所以内核通常提供一种硬件抽象的方法来...
  • 文章目录一、Huwaei LiteOS背景介绍:二、...  Huawei LiteOS 华为面向物联网领域开发的一个基于实时内核的轻量级操作系统。基础内核支持任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管
  • 8 月初,当 Linux 5.8 RC 版本开放测试时,大多数的新闻都聚焦于它的大小,称其为“史上最大的内核版本”。...要知道,距离 5.7 正式版发布才仅仅过去了约 2 个月的时间。 Linux 内核维护者 Steve.
  • 题图:by armin nosrati正文共:4693字9图预计阅读时间:12分钟宣称国内“自主研发”的红芯浏览器,在宣布获得 C 轮 2.5 亿投资之后,被大家所关注。微博用户 ...
  • 点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间获取免费资料!转载自21ic论坛作者:欧浩源原文链接:http://bbs.21ic.com/icview-2403264-1-1.html缘起2018年1月1日,意味着我有15年的单片机经验了,得在21...
  • cPu与外部世界的所有交互活动都内核处理的,哪些程序会分享处理器的时间,以什么样的顺序来分享。内核不遗余力地管理有限的内存,以使数以千计的进程有效地共享系统资源。内核还精心组织数据传送,使得cPu不再...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,277
精华内容 910
关键字:

内核时间是什么