OS位数,基本概念,结合iOS
CPU位数,一般指CPU支持的指令集位数,32位CPU对应32位的指令集,64位的CPU对应64位的指令集,不过为了向下兼容,64位CPU也支持32位的指令集。
操作系统位数,一般指操作系统对应的指令集的位数,32位操作系统对应32位的指令集,64为操作系统对应64位的指令集,所以32位操作系统既可以装在32位CPU的电脑上也可以装在64位CPU的电脑上,而64位操作系统只能装在64位CPU的电脑上。
另外,32位操作系统的地址总线(相对于操作系统的一个逻辑概念,CPU也有地址总线,此处可将操作系统的地址总线理解为操作系统支持的地址总线的位数)一般为32根,所以寻址空间最大只能到4G,也就是最大只能支持4G的内存,64位的操作系统的地址总线一般为36或者40根,所以可以支持更大的内存,36根的话就是64G。
结合iOS理解:
iOS中,系统也分为32位64位,虽然通常的时候我们不提,比如iOS10以下的系统基本都分32位64位,当然iPhone也分为32位64位,当然这里指处理器的位数。比如iPhone 5就是32位,iPhone 6s就是64位的,所以假如iPhone5跟iPhone6s上都装了iOS10,iPhone5上的iOS10就是32位的,iPhone6s上的iOS10就是64位的。
单说一下iOS11,因为iOS11只支持64位,所以只有64位的iPhone才能装iOS11,因此iPhone5是升级不到iOS11上的,iPhone6s就可以,因为它是64位的。
关于app
app也分为32位和64位的,对应到xcode中就是Architecture的类别,arm64 armv7 armv7s之类,arm64就是64位的指令集,armv7和armv7s就是32位的指令集。
理论上32位和64位的app应该是两个app,比如Windows上的程序基本都分32位和64位,32位的应用也可以跑在64位的系统上(但是会单独在一个目录下,program files(x86),64位的程序就在program files目录下)。iOS这里,它在编译的时候会把32位的程序和64位的程序都编进一个.app文件里(编译的时候如果选择多个架构,比如32位64位都支持,也就是armv7,arm64的指令集都支持,那么相应的.app文件也会变大),所以我们只下载一个ipa文件(同时支持32位和64位),它既可以装在32位的iOS系统上也可以装在64位的iOS系统上,32位的iOS系统上跑32位的程序,64位的iOS系统上跑64位的程序(这里我们假设32位的iOS只跑32位的程序,64位的iOS只跑64位的程序,因为理论上64位的iOS也可以跑32位的程序)。但是假设我们下载一个只支持32位的ipa文件(编译的时候只选了armv7或者armv7s,并没有选arm64),它也可以同时被装在32位的iOS上或者64位的iOS上,比如都是iOS10,这个ipa就既可以装在iPhone5的iOS10(32位)上,也可以装在iPhone6s的iOS10(64位)上,因为64位的系统也可以跑32位的程序(因为它也支持32位的指令集)。但是从iOS11(只有64位的系统)开始,系统限制你只能装64位的app,虽然理论上你也可以装32位的app,但是苹果这么规定了,没办法。
OS位数,基本概念,结合iOS的更多相关文章
- OS X下开发!ios系统贪食蛇!——from cocos2d-x 3.0
前几天用cocos2d-x写了个贪食蛇!这次是全然在osx下开发的.基本的思路是这种我建立了一个Snake类,当中有两个构造函数一个是用于存放蛇身体sprite的图片和Snake的X坐标和Y坐标.另外 ...
- 地址总线、数据总线、寻址能力、字长及cpu位数等概念之间的关系
地址总线决定了CPU的寻址能力:数据总线的宽度与字长及CPU位数一致. 详细解释见下文: 1.地址总线与寻址能力 要存取数据或指令就要知道数据或指令存放的位置,地址寄存器存储的就是CPU当前要存取的数 ...
- 关于CPU位数,OS位数以及内存大小关系的一点总结
(这个学期做助教,说来好惭愧啊,虽然我也是考研进来的,但是就在两年前复习的资料居然全部都忘光了.对大二的孩子们提问的问题多半都解决不了!!!越来越觉得自己的学习方法有问题了,总是想着一些知识能够根据自 ...
- 从安装Mac OS X虚拟机到第一个IOS程序
对于纯粹地抄这种行为是比较抵触的,别人已经写得挺好的东西没必要又去写一遍,但如果不写经验来看下次再做时自己又要重复百度筛选一遍,所以还是要记一记. 之前要获取IOS静态库的版本,但一直以来没有Mac没 ...
- iOS开发中关于像素的几个概念
DPI与PPI DPI(Dots Per Inch)是印刷行业中用来度量空间点密度用的,这个值是打印机每英寸可以喷的墨汁点数. 计算机显示设备从打印机中借鉴了DPI的概念,由于计算机显示设备中的原子单 ...
- Win10 安装 VMWare中 MAC OS X的安装,VMWare tools的配置与iOS的Helloworld
iOS的开发必须在MAC OS X系统下进行,这很蛋疼,现在MACBOOK动不动就上千上万大洋,这足够买台配置怪兽了,好吗?然而,我们是可以通过在VMWare中安装MAC OS X进行iOS开发的.对 ...
- IOS OS X 中集中消息的传递机制
1 KVO (key-value Observing) 是提供对象属性被改变是的通知机制.KVO的实现实在Foundation中,很多基于 Foundation 的框架都依赖与它.如果只对某一个对象的 ...
- iOS真机调试引入第三方库(如友盟等)编译时候,出现错误提示
用Xcode 7 beta 3在真机(iOS 8.3)上运行一下工程,结果发现工程编译不过.看了下问题,报的是以下错误: MARK:解决方法:在building Setting 中设置bitCode ...
- [No000037]操作系统Operating Systems操作系统历史与硬件概况History of OS & Summaries!
培根:读史使人明智 操作系统的简史 (1955-1965) 计算机非常昂贵,上古神机IBM7094 ,造价在250万美元以上 计算机使用原则:只专注于计算 批处理操作系统(Batch system) ...
随机推荐
- C# 读写 ini 配置文件
虽说 XML 文件越发流行,但精简的 ini 配置文件还是经常会用到,在此留个脚印. 当然,文中只是调用系统API,不会报错,如有必要,也可以直接以流形式读取 ini文件并解析. /// <su ...
- [UE4]创建动画的3中方法
一.基于现有动画的骨骼,从头开始创建一个全新的动画.(不推荐) 选中左边的骨骼节点做旋转变化. 调整完成了别忘记点击添加“Key”以创建一个关键帧,然后再保存. 二.基于当前动画的姿势创建一个动画.( ...
- STL常用容器使用方法
在程序头部使用#include<stack>来引入STL的stack容器,然后使用stack<int> s语句来声明一个管理整型数据的容器s.stack常用成员函数:push( ...
- Git及GitLab使用手册
一.GitBash安装与使用 参考: https://www.cnblogs.com/jasonxu19900827/p/7823089.html 二.SourceTree安装与使用 SourceTr ...
- [VS工具]如何让#region...#endregion在ashx文件页面上折叠
工具--->选项-->文本编辑器|文件扩展名, 添加后缀名为ashx的文件即可
- OpenJudge Cartesian Tree
[代码] #include <cstdio> #include <cstdlib> #include <cstring> #include <algorith ...
- Session establishment complete on server 2181, sessionid = 0x35fb853eb6f0004
描述:windows调试 hbase 代码时,出现如下错误:Session establishment complete on server 2181, sessionid = 0x35fb853eb ...
- HBase数据模型和读写原理
Hbase的数据模型和读写原理: HBase是一个开源可伸缩的分布式数据库,他根据Google Bigtable数据模型构建在hadoop的hdfs存储系统之上. HBase是一个稀疏.多维度 ...
- 你创建的OpenStack高性能虚拟机能实现“零损耗”么?
使用默认参数创建的虚拟机,虚拟机的VCPU在物理CPU不同核心之间动态调度,另外,由于Linux还可能会将软中断,内存交换等进程调度到虚拟机正在使用的物理核心上,这些因素导致这些虚拟机相对于物理机的计 ...
- java 怎样向一个已存在的文件中添加内容
如果想向某个文件最后添加内容,可使用FileWriter fw = new FileWriter("log.txt",true);在创建FileWriter时加个true就可以了. ...