网站没有地图怎么做,网站建设工作领导小组,什么是seo推广,类聚seo最近被某面试官的这个问题拷打#xff0c;当场脸烧起来… 首先讲讲系统调用#xff1a;
系统调用是操作系统为调用者提供服务的接口#xff0c;以便程序员聚焦于业务问题。分为文件操作#xff0c;内存分配#xff0c;进程管理等等。用户使用系统调用后会触发软中断… 最近被某面试官的这个问题拷打当场脸烧起来… 首先讲讲系统调用
系统调用是操作系统为调用者提供服务的接口以便程序员聚焦于业务问题。分为文件操作内存分配进程管理等等。用户使用系统调用后会触发软中断陷入内核态cpu的程序状态寄存器的模式位由用户态0变为内核态0根据系统调用号和参数进入内核预先定义好的系统调用的处理程序最后返回值。
windows和linux陷入系统调用后有什么区别
linux系统调用通过软中断早期是int0x80,后期是syscall触发内核态的切换,然后会将系统调用号EAX寄存器和参数存储在寄存器中内核通过查找系统调用表得到系统调用的处理函数执行具体操作返回值存在EAX寄存器。
windows系统调用是通过windows API来进行系统调用通过系统服务调度的机制来调用内核的服务。会在用户态的 DLL动态链接库中进行一些初步的处理参数合法性检查。存放在寄存器和栈中。通过查找windows API的索引号查找系统服务描述符表找到内核处理程序并调用。返回结果通过寄存器和栈给windows API.
最后记录一下linux内核和windows内核的不同
linux内核是单内核体系结构整体式内核将进程管理文件管理内存管理做为模块集成到内核中。 windows内核是混合内核体系结构。它融合了微内核和单内核的特点。它有一个小的内核核心称为 NT 内核主要负责最基本的功能如线程调度、中断处理和异常处理。其他的服务作为独立的服务器进程或者驱动程序存在于内核空间。 什么是微内核 微内核Micro - kernel是一种操作系统内核架构。它的设计理念是将操作系统核心功能尽可能地精简只保留最基本的服务如进程间通信IPC、低级的硬件中断处理、基本的内存管理和处理器调度等功能。其他的操作系统服务如文件系统、设备驱动程序、网络协议栈等则运行在用户空间或者作为独立的服务器进程运行在内核空间外。 宏内核、微内核、混合内核推荐文章
宏内核是将操作系统的功能都按照模块集成到内核中。linux系统 微内核是将核心功能精简保留了类似于线程调度、中断、虚拟内存是最小版本的内核。其他的存在于用户态所以涉及用户态、内核态频繁切换损耗性能。华为的鸿蒙系统 混合内核是架构像微内核将内核功能精简但是其他模块在内核态像是以宏内核状态包围着微内核。windowswindows NT服务进程、驱动
异同点
但linux和windows都支持多任务、对称多处理。 可执行文件不同L:ELF,W:PE;内核架构不同。
最初二者系统调用都是中断执行的中断号0x80和0x2E后面windows改为了通过windows API和系统服务调度机制来管理。
二者的线程、进程的管理方式不同windows有明确的创建进程和线程的API,而linux没有。linux是有一个执行实体进程和线程都是任务的概念称为任务。我们把任务想象成单线程的进程。他们拥有内存资源、执行实体、文件资源但是多个任务可以共享资源。多个任务构成了进程而任务把它看成线程。