Iam困惑系统调用和指令集是否是同义的? MOV,LOAD,CALL,IN,OUT,ADD,SUB等指令是否属于系统调用类别?系统调用指令如open(),close(),read(),write()。如果不是那么它们之间有什么关系。有人可以解释并清除混淆。系统调用和指令集有什么区别
0
A
回答
0
需要几本书来解释不同之处。我特别推荐Operating Systems : Three Easy Pieces和一些关于计算机体系结构的书,或者至少在虚构的Y86 instruction集上的幻灯片。
一种instruction set architecture定义由一些处理器和如何每个机器指令改变计算机的(观察到的)状态理解machine code(例如改变virtual address space - 包括所述program counter和call stack pointer,存储器locations的processor registers内容等... )
A system call由某些应用程序完成以从操作系统内核请求服务。从应用程序的角度来看,这通常是一个基本的机器指令(例如SYSENTER
或SYSCALL
),但内核在返回应用程序之前会运行大量代码(在内核中)。
换句话说,操作系统kernel提供应用程序的过程,所述处理器理解通过系统调用原语(能够运行任何由内核提供的系统调用的增强普通特权的机器代码的错觉;用于Linux看到syscalls(2)为详尽的清单)。另请阅读关于SYSENTER
in Linux和SYSENTER
on OsDev。
问题是,对于不同的CPU modes,某些特权机器指令(例如那些访问外设或MMU)只允许内核使用。如果您的应用程序代码尝试它们,处理器会引发一些异常。
0
我们从用户空间调用到内核的函数是调用系统调用。
一种指令集是一组能够由CPU(ç entral P rocessing Ù NIT)来识别和执行的机器代码指令。
相关问题
- 1. chdir(...)和系统(“cd ...”)有什么区别?
- 2. c中的open和creat系统调用有什么区别?
- 3. “C系统调用”和“C库例程”有什么区别?
- 4. 命令,函数和系统调用之间的区别
- 5. 调用exampleFunction()和exampleFunction.call()有什么区别?
- 6. 绑定和调用有什么区别?
- 7. 数据集市和决策支持系统(DSS)之间有什么区别?
- 8. 安装Rubygems“本地”和“系统范围”有什么区别?
- 9. ex-FAT和NTFS文件系统有什么区别?
- 10. 操作系统和内核有什么区别?
- 11. 操作系统和框架有什么区别?
- 12. SQL Server系统视图中的type和xtype有什么区别?
- 13. 系统verilog断言中的 - >和=>有什么区别?
- 14. mvn:deploy和mvn:install命令有什么区别?
- 15. linux和unix命令有什么区别?
- 16. ERD和“关系图”有什么区别?
- 17. Sphinx的“唯一”和“ifconfig”指令有什么区别?
- 18. Angular:'='和'=?'有什么区别而在指令定义范围
- 19. prefetch和prefetchu ptx指令有什么区别?
- 20. click事件处理程序和ngClick指令有什么区别?
- 21. Codeigniter系统/语言应用程序/语言有什么区别?
- 22. 调试和编译有什么区别?
- 23. 有什么区别`和$(Bash中有什么区别?
- 24. 什么是系统调用?
- 25. 操作系统中的用户模式和内核模式有什么区别?
- 26. ==和===有什么区别?
- 27. ==和===有什么区别?
- 28. 有什么区别? :和||
- 29. ==和===有什么区别?
- 30. '=='和'==='有什么区别?
系统调用是否转换为指令集提供的指令?或者我可以说系统调用是指令集上方的一层 –
您正在比较苹果和橙子。系统调用是内核提供的抽象 –
它们之间没有关系吗?我的意思是系统调用必须使用指令集的指令才能在机器级执行 –