操作系统、shell

1、正式解释

  • 内核
    是直接接管硬件软件,往往是一些与硬件紧密相关的、使用频率较高的、基础的、公共的的程序和数据结构的集合。这些程序包括但不仅限于:进程管理、存储器管理、设备管理、中断处理和时钟管理
  • shell
    如同他的名字一样,是“包裹”在内核外围的“壳”,系统软件、应用软件和用户通过shell来操纵内核,控制整个计算机硬件。图中也可以看到,用户即可以直接操纵shell,也可以通过系统或应用软件间接操纵shell。这里的系统软件通常指:数据库管理系统、编译程序、汇编程序等。
  • 操作系统
    “操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充”(《计算机操作系统》西安电子科技大学出版社)所以,操作系统的最小组成应该是shell+内核。当然现代操作系统还包括大量的系统软件。
    所以,才会有答案说:“内核+shell<操作系统”

2、通俗解释

  • 内核
    内核需要做的工作:进程管理(创建进程、进程调度等)、进程间通信(管道、信号等)、文件操作(在硬盘上以我们熟悉的文件的形式创建文件,读文件,写文件等和保存修改等),内存管理(段、页,线性地址到物理地址、进程共享页面),网络(TCP/IP,和远端的计算机收发消息的协议),缓冲区(内存与外设之间的cache,多进程操作缓冲区),以及最开始的计算机硬件中只是操作系统刚刚载入的空空如也的状态到系统怠速迎接响应用户的需求等等等等。内核是操作系统最最核心的部分,可以将内核比喻成大脑,遇到事情,如何应激面对,调用自己身体的其他部分。
  • shell
    shell要做的工作:刚刚将内核比喻成大脑,shell我觉得可以比喻成皮肤、眼睛、耳朵等用于感知的器官。用户的应用程序如何让内核去调度去执行它,我们不可能一下子将应用程序要做的计算直接塞到大脑(内核)中,shell就是应用程序的入口。shell本身也是一个进程,当没有需求的时候它处于休眠状态,当有需求的时候,它就运行起来。当我们用户有需求的时候,譬如在terminal执行./HelloWorld,shell这个进程感知我们这一命令需求,它就作为我们HelloWorld的父进程,去为我们HelloWorld未来以后能够在进程调度的时候被调度做准备工作,例如fork()等,而fork做的工作,譬如创建进程控制块等就是内核要做的工作,可以比喻成你要记住一篇英语课文,那你的大脑需要分化出一部分脑细胞用于记住这篇课文。
  • 操作系统
    硬件譬如显示器,硬盘,键盘等可以比喻成四肢、手(或者干脆比喻成骨头)等,因为他们是能够干具体的事情的,譬如你的手能够将大脑中记住的课文写下本子上,同时内核也能够根据应用程序的需要将“Hello World!”写在显示器上。还有一部分很重要的就是硬件的驱动程序,可以将它比喻成神经细胞,就是大脑的命令需要他们传输到四肢上。

你可能感兴趣的:(操作系统、shell)