首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >机器依赖是什么意思?

机器依赖是什么意思?
EN

Stack Overflow用户
提问于 2010-08-07 14:14:55
回答 2查看 3.6K关注 0票数 5

低级语言和汇编级语言依赖于机器。我的问题是它是什么意思?我的意思是,它取决于处理器或机器的功能,如RAM,时钟等。

高级语言是如何克服这个问题的呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-07 14:56:11

在最深的层次上,这意味着指令集不同。将特定的位序列放入x86处理器会得到与将相同的位集放入ARM处理器完全不同的结果。

高级语言“克服”了这一点,因为计算机都做着几乎相同的事情,只是方式不同而已。ARM可以像x86一样将两个数字相加,也可以像x86那样将数据从内存加载到寄存器(反之亦然),等等。

所有高级构造最终都可以简化为所有通用机器都可以执行的一组基本操作(尽管某些构造在某些CPU上可能比在其他CPU上更有效)。

这就是编译器所做的事情。它们解析高级语言,并以某种方式将其简化为目标系统的机器语言。对于新的CPU,通常只需要重新编写编译器的选择位。一些编译器(GCC就是一个很好的例子)构建在层中,极大地简化了这项工作。一个熟悉编译器和目标平台的高技能开发人员就可以相当容易地生成一个基本的移植。

当然,在简单地将结构简化为本机语言的层次上,还存在输入/输出、文件系统访问等问题。这些通常也是在层中处理的,通常只有最低层--驱动程序--为新的平台重写,从而维护到上层的一致接口。

甚至驱动程序通常也可以在不同类型的机器之间共享,全部或部分共享!例如,x86平台并不是唯一拥有PCI总线的平台。即使在总线不同的地方,连接到它们的设备通常最终也是相同的。Linux在几种机器类型之间共享许多设备驱动程序,几乎没有变化。编译器处理翻译为机器码的细节,内核的更多内部层试图抽象出它们可以实现的其他行为差异,驱动程序编写器只需坚持已建立的接口。

在此之后,您就会遇到这样的问题:在给定的平台内,是否有特定的系统具有特定的可选设备(或设备类别)。例如,对于大多数服务器来说,使用3D加速器是很愚蠢的。有些系统可能有硬件随机数生成器,有些可能没有。有些可能没有固定的存储空间。然而,不合格的“机器依赖”通常不会解决这种程度的依赖。

票数 5
EN

Stack Overflow用户

发布于 2010-08-07 14:20:05

机器依赖意味着,从根本上说,依赖于组成计算机的硬件-内存可以通过CPU+RAM总线访问,因此不一定是其中的一部分-无论显卡、外部存储、鼠标/键盘等是什么。

这是通过使用具有公共接口的驱动程序抽象硬件的复杂性来解决的-例如,DirectX通过提供定义良好的接口抽象出与视频卡的交互。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3430736

复制
相关文章
python: 自动安装缺失库文件
Note: os.system('所需指令') 还可以完成许多其他任务,非常强大。
JNingWei
2018/09/27
9270
CentOS 6.4用源代码安装LAMP环境
在Linux中用源代码安装是一件很麻烦的事情,但也是对服务最好的安装模式之一,自己可以自定义安装哪些功能和模块。但是功能模块一但多了以后就会忽略某个选项,这样会导至以后服务中的某些功能不完善和运行不稳定,这将会给以后的测试维护带来十分不方便。现在我将写出自己在服务器上搭建的过程,希望对大家有帮助,但如果比我有更好的方法我希望大家指出来,避免以后出现同一问题。
星哥玩云
2022/06/28
2750
CentOS 6.4用源代码安装LNMP环境
对于在Linux系统中安装web服务其实都是差不多的,只是软件的选择不一样,不过在php-5.2.17和以前的版本LNMP环境和以后安装有一点区别,就是启用--enable-fastcgi这个模块。现在我用php-5.3.27来搭建LNMP环境,对于搭建不成功的网友们希望给我留言,大家一起解决问题,一起进步。
星哥玩云
2022/06/28
3310
CentOS 6.4用源代码安装LNMP环境
CentOS下源代码编译和安装Apache
wget http://mirror.downloadvn.com/apache//httpd/httpd-2.4.41.tar.gz
星哥玩云
2022/07/29
4880
CentOS下源代码编译和安装Apache
CentOS 6.2下以源代码方式安装LAMP
相关附件 百度云盘下载:http://pan.baidu.com/s/12JCku
星哥玩云
2022/07/04
3160
CentOS 6.2下以源代码方式安装LAMP
Centos 7.0 安装Mono 3.4 和 Jexus 5.6
2013-07-26 写过一篇《CentOS 6.3下 安装 Mono 3.2 和Jexus 5.4》,CentOS 7在CentOS 6的基础上有很大的调整,本文是这篇文章的更新,主要介绍CentOS 7下安装Mono 3.4 和 Jexus 5.6。 CentOS是一个基于RHEL的Linux发行版,其目的是为了提供一套免费与自由的企业等级Linux发行版。CentOS的名称来自于「Community ENTerprise Operating System」,从名称便可以知道这是一套由社区主导、并以企业
张善友
2018/01/19
1.4K0
Centos 7.0 安装Mono 3.4 和 Jexus 5.6
在 Ubuntu Server 上安装配置 Mono 生产环境
在 Ubuntu Server 上安装和配置 Apache2 + Mono 生产环境的记录。 服务器环境是 Ubuntu Server 13.04 虚拟机模式 (Virtual Machine Mode), 安装的 Mono 的版本是 3.2.1 , 最终环境如下图所示:
beginor
2020/08/10
1.2K0
在 Ubuntu Server 上安装配置 Mono 生产环境
conda管理C源代码程序的时候总是出现库文件冲突或者缺失
现在初学者都喜欢使用conda来管理软件环境,安装方法代码如下: #一路yes下去 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-4.6.14-Linux-x86_64.sh source ~/.bashrc ## 安装好conda后需要设置镜像。 conda config --add channels https://mirrors.tuna.tsinghua.edu.
生信技能树
2020/10/27
9510
conda管理C源代码程序的时候总是出现库文件冲突或者缺失
CentOS7下源代码安装netcat-0.7.1
NetCat-0.7.1的官网地址为:http://netcat.sourceforge.net/,如下图所示:
ccf19881030
2020/11/03
1.7K0
CentOS7下源代码安装netcat-0.7.1
CentOS 6.3下 安装 Mono 3.2 和Jexus 5.4
最新更新参看: Centos 7.0 安装Mono 3.4 和 Jexus 5.6 2012年初写过一篇《32和64位的CentOS 6.0下 安装 Mono 2.10.8 和Jexus 5.0》,2013年7月24日Mono 3.2发布了,3.2版本有很多期待的新特性,具体参看《跨平台的 .NET 运行环境 Mono 3.2 新特性》,本文主要就是这篇文章的更新。 CentOS是一个基于RHEL的Linux发行版,其目的是为了提供一套免费与自由的企业等级Linux发行版。CentOS的名称来自于「Comm
张善友
2018/01/19
1.1K0
CentOS 6.3下 安装 Mono 3.2 和Jexus 5.4
推荐一个在Linux/Unix上架设ASP.NET的 WEB服务器--Jexus
在Linux/Unix上架设ASP.NET WEB服务器,有两个可选方式,一种是Mono+XSP,一种是Mono+Jexus,其它的方式,比如 Apache+mod_mono、Nginx+FastCgi 等等,其实质与XSP并无区别,都是使用Mono所提供的ASP.NET处理模块:Mono.WebServer名字空间实现对ASP.NET网站的支持。Jexus不但具有跨平台ASP.NET服务器这样的标志性特征,同时还拥有内核级的安全监控、入侵检测、URL重写、无文件路由等一系列重要功能和专有特性。那么XSP和
张善友
2018/01/22
3.1K0
推荐一个在Linux/Unix上架设ASP.NET的 WEB服务器--Jexus
Linux下的.NET之旅:第一站,CentOS+Mono+Xsp构建最简单的ASP.NET服务器
  由于Linux/Unix等有更强的安全性、运行效率高、拥有大量优秀的开源组件,而.Net则有着其他语言无与伦比的开发效率,因此在非微软平台下运行.Net程序的需求很强烈。Mono 是一个由Novell 公司发起、并且得到微软支持的开源项目。Mono 项目可以在Linux,FreeBSD,Unix,Mac OS X 、Android和苹果系统等非微软操作系统下兼容运行.Net程序。目前占IOS游戏应用市场55%份额的游戏都是使用基于Mono的Unity3d技术开发的。    基于Mono让ASP.Net开发的网站运行在Linux操作系统下也已经有了大量成功的案例,比如世界著名的网站“维基百科WikiPedia ”的搜索部分就是使用Mono支撑运行的、Mozilla开发者社区也是基于Mono运行,可以看http://www.mono-project.com/Companies_Using_Mono  这一些使用Mono进行开发的公司的列表。让.Net脱离Windows的禁锢,在开源的世界中尽情的徜徉。
Edison Zhou
2018/08/20
1.3K0
Linux下的.NET之旅:第一站,CentOS+Mono+Xsp构建最简单的ASP.NET服务器
centos 7 安装Samba服务(文件共享)
今天是一个安装samba文件共享服务 首先依旧是先把Linux服务器改为静态IP vim /etc/sysconfig/network-scripts/ifcfg-ens33
小手冰凉
2019/09/10
8620
centos 7 安装Samba服务(文件共享)
CentOS MONO nginx 运行
     yum install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel
py3study
2020/01/09
1.1K0
Maven 编译项目缺失xml文件
有一些情况下,在java目录下,除了会有java代码,还有一些xml,比如使用hibernate时候,*.hbm.xml文件可能会放在某一个包下,在部署的时候是需要把这些XML也复制过去的。
前Thoughtworks-杨焱
2021/12/08
5410
CentOS安装 FTP文件服务器
在文件最后面新增allow_writeable_chroot=YES,允许已登录用户进行上传
爱游博客
2019/08/06
4.1K0
CentOS安装 FTP文件服务器
Python实验:消除缺失的文件编号
#####编写一个程序,在一个文件夹中,找到所有带指定前缀的文件,诸如spam001.txt,spam002.txt 等,并定位缺失的编号(例如存在spam001.txt 和spam003.txt,但不存在spam002.txt)。让该程序对所有后面的文件改名,消除缺失的编号。 import shutil, re, os filedir = 'C:\\Users\\Loyu\\Desktop\\python1' a = os.listdir(filedir) alist = ' '.join(a) sp
py3study
2020/01/09
1.2K0
centos 安装 使用本地图像文件来安装网络安装「建议收藏」
有时很无奈,无盘,U它只有盘4G而一个centos该盘4.16G,如何将它安装了网络安装,对不起,你想用20M更多的带宽,并注意使用网络启动盘的方法
全栈程序员站长
2022/07/06
3900
CentOS7下编译FFMPEG源代码
找到一篇关于在CentOS7下编译FFMPEG源代码的文章,地址为:Compile FFmpeg on CentOS
ccf19881030
2020/10/26
7560
CentOS7下编译FFMPEG源代码
点击加载更多

相似问题

在CentOS 6.3上安装Mod_Mono和Xsp4

29

无法在Centos上使用mono启动XSP 4.5

11

作曲家安装,ext缺失- LEMP Centos 7

10

运行lwpd.xsp.core源代码的调试会话

12

在centos上从python源代码中安装opencv

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文