内核Kernel/操作系统OS/进程和程序

最近在涉及到软硬件交互时,分不清内核和进程。

内核(Kernel):仅仅是操作系统的一部分,是真正与硬件交互的那部分软件,与硬件交互包括读写硬盘、读写网盘、读写内存以及任何连接到系统中的硬件。除了与硬件交互外,内核还负责分配资源,分配什么资源呢?所谓资源就是硬件,比如CPU时间、内存、IO等等,这些都是资源。

根据对内核功能的定义可以知道,中断处理和页表创建和分配这些都是内核的工作

操作系统(OS):是一种管理计算机软硬件资源的系统软件,而kernel是os最基本的部分,也就是说,两者是包含关系。os是接口,内核是一个操作系统的核心。OS是对内核进行了一些封装,并提供以下接口:

  • 给用户提供操作接口
  • 给程序员提供编程接口

对于硬件开发的同事来说 和硬件密切联系的就是内核,更关注内核

进程:是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;运行一个程序时,操作系统首先要创建一个进程,为进程分配内存等资源,然后加入进程队列中执行

线程:是进程的子任务,是CPU调度和分派的基本单位用于保证程序的实时性,实现进程内部的并发;线程是操作系统可识别的最小执行和调度单位。每个线程都独自占用一个虚拟处理器:独自的寄存器组指令计数器和处理器状态。每个线程完成不同的任务,但是共享同一地址空间(也就是同样的动态内存,映射文件,目标代码等等),打开的文件队列和其他内核资源

所以进程是操作系统管理的;而线程又是进程管理的。操作系统是一个运行的大程序,但不是进程。

程序:就是可以在处理器硬件【包括cpu/gpu/mcu】上运行的代码。所以无论是内核、操作系统还是进程都是程序的运行。

可参考:

进程和线程的概念、区别及进程线程间通信-腾讯云开发者社区-腾讯云

操作系统和内核有什么区别?-CSDN博客

下面一篇文章举的例子是很形象

OS / 进程和线程的区别和联系_os task是多进程吗-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值