操作系统相关问题——应用程序和操作系统怎么配合

简介: 应用程序和操作系统都是软件, CPU会将它们一视同仁,甚至CPU不知道自己在执行的程序是操作系统还是一般应用软件。CPU只知道去cs:ip寄存器中指向的内存取出指令并执行,它不知道什么是操作系统。

应用程序和操作系统都是软件, CPU会将它们一视同仁,甚至CPU不知道自己在执行的程序是操作系统还是一般应用软件。CPU只知道去cs:ip寄存器中指向的内存取出指令并执行,它不知道什么是操作系统。


编程语言其实只是编译器和大家的约定,只要写入这样的代码,编译器便将其翻译成某种机器指令,翻译成什么样取决于编译器的行为。编译器还提供了一套库函数,库函数中又有封装的系统调用,这样的代码集合称之为运行库。C语言的运行库成为C运行库,就是所谓的CRT。应用程序加上操作系统提供的功能才算是完整的程序,平时写的应用程序只能算是半成品,还需要调用操作系统提供的函数才能完整地做出一件事,而这些函数就是系统调用。


用户态和内核态是对CPU来讲的而不是用户进程,是指CPU运行在用户态(特权3级)还是内核态(特权0级)。用户进程陷入内核态是指由于内部或外部中断发生,当前进程被暂时终止执行,其上下文被内核的中断程序保存起来后,开始执行一段内核的代码。是内核的代码而不是用户及程序在内核的代码,用户代码不可能在内核中存在,所以“用户态和内核态”是相对于CPU而言的。当应用程序陷入内核之后,自己已经下CPU了,以后发生的事情应用程序完全不知道,此时它的上下文环境已经被保存到了自己在内核态的的栈中了,CPU上运行的程序已经是内核程序。


也就是说应用程序其实是通过系统调用和操作系统配合来完成某项功能的。可能有人会说自己写应用程序时从来没写过系统调用的代码,这是因为用到的标准库帮我们完成了这些事。库中提供的函数其实都已经封装好了系统调用,需要下载源码才会看到。


其实也可以跨过标准库直接执行系统调用,对于Linux系统来说,直接嵌入汇编代码"int 0x80"便可以直接执行系统调用,当然要提前设置好系统调用的子功能号,该子功能号用寄存器eax存储。


各个操作系统都有自己的系统调用号,所以我们在下载编译器时需要选择正确的系统版本,编译器厂商在代码中已经把宿主系统的系统调用号写死了。

相关文章
|
语音技术
从语音信号处理角度解读mic规格书
对于语音信号处理来说,输入音频数据的质量很重要。而mic作为声音的采集设备,会直接影响采集到声音的质量。虽然mic选型是硬件或者声学方面的工作重点,但是对于从事语音信号处理相关人员来说,理解mic规格书中的一些技术指标也是大有裨益的。本文结合国家标准对mic规格书中的一些指标进行说明。
从语音信号处理角度解读mic规格书
|
人工智能 自然语言处理 搜索推荐
编程助手
【4月更文挑战第20天】编程助手
451 2
|
11月前
|
存储 人工智能 调度
直播回放 | 高性能智算集群设计思考与实践
本次分享的主题是高性能智算集群设计思考与实践,由阿里云灵骏智算集群产品解决方案负责人丛培岩分享。 1. AGI对基础设施的挑战 2. 高性能智算集群的设计实践 3. 思考与展望
284 1
|
编解码 前端开发 搜索推荐
如何建立自己的体育直播平台-源码搭建全流程
随着在线观看体育赛事用户的爆发式增长,搭建专业体育直播应用成为趋势。利用如熊猫比分的全链路解决方案,创业者可快速启动平台。主要步骤包括前期技术准备(赛事API接口、服务器配置、域名选择、短信服务、云直播服务)、定制化(LOGO标识、功能测试与优化)及正式上线与运营(推广、持续更新、主播入驻)。此方案使创业者能高效进入体育市场,抓住机遇。
|
11月前
|
人工智能 编解码 自然语言处理
AI运用爆发时代, 视频服务云原生底座“视频云”架构的全智能再进化
本文介绍了AI运用爆发时代下,视频服务云原生底座“视频云”架构的全智能再进化。随着AI技术的发展,视频内容和交互方式正经历深刻变革。文章从背景、视频AI应用挑战、视频云网端底座、AIGC时代的全智能化及未来展望五个方面展开讨论。重点阐述了云、网、端三者如何深度融合,通过AI赋能视频采集、生产、分发和消费全流程,实现视频处理的智能化和高效化。同时,展望了未来AI在视频领域的创新应用和潜在的杀手级应用。
478 0
|
11月前
|
人工智能 供应链 搜索推荐
中国CRM市场深度分析:主流供应商排名与特点解析
随着中国企业数字化转型的深入,CRM(客户关系管理)软件市场迅速发展,形成了多个优秀解决方案提供商。销售易、纷享销客、明源云客、金蝶云之家、简道云、红圈营销和爱客CRM等供应商各具特色。销售易在大型企业市场表现突出,提供全链路营销销售一体化及强大的AI能力;纷享销客以易用性和高性价比著称,适合中小企业;明源云客专注房地产行业,提供全流程解决方案;金蝶云之家与ERP系统深度整合,适合传统制造业;简道云是低代码平台,灵活性高;红圈营销专注零售业,支持全渠道营销;爱客CRM则主打智能营销功能。企业在选择CRM时需综合考虑实施难度、价格定位、技术支持等因素,并结合自身需求进行试用和调研,确保选择最适合
|
机器学习/深度学习 人工智能 计算机视觉
深度学习在图像识别中的应用与挑战####
本文深入探讨了深度学习技术在图像识别领域的革命性进展,特别是卷积神经网络(CNN)的架构创新、优化策略及面临的挑战。通过综述经典CNN架构如AlexNet、VGG、ResNet的发展历程,揭示了深度学习如何不断突破性能瓶颈,实现图像识别准确率的飞跃。文章还详细阐述了数据增强、迁移学习等策略在提升模型泛化能力方面的关键作用,并讨论了过拟合、计算资源依赖等核心挑战,为未来研究提供了方向指引。 ####
|
监控 数据中心
【专栏】交换机电口和光口的定义、特点及应用场景,做网络的这个常识得懂!
【4月更文挑战第28天】本文探讨了交换机电口和光口的定义、特点及应用场景。电口,常见于局域网和办公环境,成本低但传输距离有限;光口,适用于长距离、高速率传输,如城域网、数据中心,具有抗干扰强但成本高的特点。选择接口时需考虑传输距离、速率和成本,注意兼容性、线缆选择及维护管理。理解两者差异有助于网络规划和管理。
1514 0
|
存储 JSON 算法
快速了解什么是jwt及如何使用jwt
快速了解什么是jwt及如何使用jwt
578 0
|
存储 Android开发
方法:一键把一堆手机号码一次性快速导入手机通讯录
手机是人们日常沟通常用的工具,所以自然就要用到手机里面的通讯录联系。因此我们常要把别人的号码存入到手机通讯录里面,如果只是存五个十个那就动动手指就可以了。但是如果你想存把一个电脑excel表格里面的几百个、几千个、几万个等数量级别的联系人一键导入手机通讯录,显然手动一个个来存入是不现实的。我这里演示,通过借助网上常见的便捷工具软件,金芝号码提取导入助手,代替你手动工作来快速完成这个工作,如何一键把一堆手机号码一次性快速导入手机通讯录,省事省时省力。下面做个操作过程的图文讲解。
4941 0
方法:一键把一堆手机号码一次性快速导入手机通讯录

热门文章

最新文章