1.MappedByteBuffer VS FileChannel å°å¼ºå°å¼±ï¼
2.软件7-Zip - 唯一推荐的Windows免费开源无广告解压缩软件
3.苹果mac操作系统安装图文教程
4.Unity - Addressables项目总结(一):基础工作流
MappedByteBuffer VS FileChannel å°å¼ºå°å¼±ï¼
Java å¨ JDK 1.4 å¼å ¥äº ByteBuffer ç NIO ç¸å ³çç±»ï¼ä½¿å¾ Java ç¨åºåå¯ä»¥æå¼åºäº Stream ï¼ä»è使ç¨åºäº Block çæ¹å¼è¯»åæ件ï¼å¦å¤ï¼JDK è¿å¼å ¥äº IO æ§è½ä¼åä¹çââ é¶æ·è´ sendFile å mmapãä½ä»ä»¬çæ§è½ç©¶ç«æä¹æ ·ï¼ å RandomAccessFile æ¯èµ·æ¥ï¼å¿«å¤å°ï¼ ä»ä¹æ åµä¸å¿«ï¼å°åºæ¯ FileChannel å¿«è¿æ¯ MappedByteBuffer å¿«......(é¶æ·è´åè Zero Copy I: User-Mode Perspective )
天åï¼é®é¢å¤ªå¤äºï¼ï¼ï¼ï¼ï¼ï¼
让æä»¬æ ¢æ ¢åæã
æ们ç¥éï¼Java ä¸çæå¾å¤ MQï¼ActiveMQï¼kafkaï¼RocketMQï¼å»åªå¿ MQï¼èä»ä»¬åæ¯ Java ä¸çä½¿ç¨ NIO é¶æ·è´ç大æ·ã
ç¶èï¼ä»ä»¬çæ§è½å´å¤§ç¸åï¼æå¼å ¶ä»çå ç´ ï¼ä¾å¦ç½ç»ä¼ è¾æ¹å¼ï¼æ°æ®ç»æ设计ï¼æ件åå¨æ¹å¼ï¼æä»¬ä» ä» è®¨è®º Broker 端对æ件ç读åï¼ççä»ä»¬æä»ä¹ä¸åã
ä¸å¾æ¯æ¥¼ä¸»æ¥çæºç æ»ç»çå个 MQ 使ç¨çæ件读åæ¹å¼ã
é£ä¹ï¼å°åºæ¯ MMAP 强ï¼è¿æ¯ FileChannel 强ï¼
MMAP ä¼æå¨ç¥ï¼åºäº OS ç mmap çå åæ å°ææ¯ï¼éè¿ MMU æ å°æ件ï¼ä½¿éæºè¯»åæ件å读åå åç¸ä¼¼çé度ã
é£ FileChannel å¢ï¼æ¯é¶æ·è´åï¼å¾éæ¾ï¼ä¸æ¯ãFileChannel å¿«ï¼åªæ¯å 为ä»æ¯åºäº block çã
æ¥ä¸æ¥ï¼benchmark everything ââ å¾å¦.
å¦ä½ Benchmarkï¼ Benchmark åªäºï¼
æ¢ç¶æ¯è¯»åæ件ï¼èªç¶å°±è¦ç读åæ§è½ï¼è¿æ¯æåºæ¬çãä½ï¼æ³¨æï¼é常 MQ ä¼ä½¿ç¨å®æ¶å·çï¼é²æ¢æ°æ®ä¸¢å¤±ï¼MMAP å FileChannel é½æ force æ¹æ³ï¼ç¨äºå° pageCache çæ°æ®å·å°ç¡¬çä¸ãforce ä¼å½±åæ§è½åï¼ çæ¡æ¯ä¼ãå½±åå°ä»ä¹ç¨åº¦å¢ï¼ ä¸ç¥éãæ¯æ¬¡åå ¥çæ°æ®å¤§å°ä¼å½±åæ§è½åï¼æ¯«æ çé®ä¼ï¼ä½è§åæ¯ä»ä¹å¢ï¼FileOutputStream ççä¸æ æ¯å¤åï¼çæ¡æ¯ä¸ä¸å®ã
ä¸ç´ä»¥æ¥ï¼æ件è°ä¼é½æ¯èºæ¯ï¼å 为影åæ§è½çå ç´ å¤ªå¤ï¼é¦å ï¼SSD çåºç°ï¼å·²ç»è®©ä¼ ç»åºäº B+ tree çæ å½¢ç»æ产çäºèªæçé®ï¼ç¬¬äºï¼æ¯ä¸ªæ件系ç»çæ§è½ä¸åï¼Linux ext3 å ext4 æ§è½å¤©å£¤ä¹å«ï¼å é¤æ件çæ§è½å·®è·å¨ åå·¦å³ï¼ãè Max OS ç HFS+ ç³»ç»è¢« Linus 称ä¹ä¸ºâæå²ä»¥æ¥æåå¾çæ件系ç»âï¼å¹¸è¿çæ¯ï¼è¹æç»äºå¨ å¹´æ¨éäº macOS High Sierra å iOS .3 ç³»ç»ï¼è¿ä¸ªä¸¤ä¸ªç³»ç»é½æå¼äº HFS+ï¼æ¢æäºæ§è½æ´é«ç APFSãèæ¯ä¸ªæ件系ç»åå¯ä»¥è®¾ç½®ä¸åçè°åº¦ç®æ³ï¼å¦å¤ï¼è¿æèæå å缺页ä¸æ带æ¥çæ§è½æ¯åº.......
ï¼tipsï¼è¯å¿ç RocketMQ æä¾äº Linux IO è°ä¼çèæ¬ï¼è¿ç¹åçä¸é ï¼ï¼
è·é¢äºã
楼主åäºä¸ä¸ªå°é¡¹ç®ï¼ç¨äºæµè¯ Java MappedByteBuffer & FileChannel & RandomAccessFile & FileXXXputStream ç读åæ§è½ã大家ä¹å¯ä»¥å¨èªå·±çæºå¨ä¸è·è·çã
CPUï¼intel i7 4æ ¸8çº¿ç¨ 4.2GHz
å åï¼GB DDR4
ç£çï¼SSD 读å 2GB/s å·¦å³
JDK1.8
OSï¼Mac OS ..6
èæå åï¼ æªå ³éï¼å¤§å° 9GB
æµè¯æ³¨æç¹ï¼
1GB æ件ï¼
æµè¯ MappedByteBuffer & FileChannel & RandomAccessFile & FileInputStream.
ä»è¿å¼ å¾éï¼æ们çå°ï¼mmap æ§è½å®èï¼ç¹å«æ¯å¨å°æ°æ®éçæ åµä¸ãå ¶ä»çæµï¼åªæå¨4kb çæ åµä¸ï¼æå¼å§åæ mmapãå æ¤ï¼è¯» 4kb 以ä¸çæ°æ®ï¼è¯·ä½¿ç¨ mmapã
åæ¾å¤§çç mmap å FileChannel çæ¯è¾ï¼
æ ¹æ®ä¸å¾ï¼æ们çå°ï¼å¨åå ¥æ°æ®å å¤§äº 4kb 以ä¸çæ åµä¸ï¼FileChannel çä¸ä¼éé¶æ·è´ï¼åºæ¬å®è mmapï¼é¤äºé£ä¸ªä¸æ¬¡è¯» 1G æ件ç BT æµè¯ã
å æ¤ï¼å¦æä½ çæ°æ®å å¤§äº 4kbï¼è¯·ä½¿ç¨ FileChannelã
1GB æ件ï¼
æµè¯ MappedByteBuffer & FileChannel & RandomAccessFile & FileInputStream.
ä»ä¸å¾ï¼æ们å¯ä»¥çåºï¼mmap æ§è½è¿æ¯ä¸æ ·ç稳å®ãFileChannel ä¹ä¸å·®ï¼ä½æ¯å¨ åèæ°æ®éçæ åµä¸ï¼è¿å·®ç¹ææã
åç缩ç¥å¾ï¼
æ们çå°ï¼åè æ¯ FileChannel å mmap æ§è½çåæ°´å²ï¼ä» åèå¼å§ï¼FileChannel ä¸è·¯åæï¼ç´å° BT 1GB æ件ç¨ç¨è¾äºä¸ä¸¢ä¸¢ã
å æ¤ï¼æ们建议ï¼å¦æä½ çæ°æ®å 大å°å¨ åè以ä¸ï¼è¯·ä½¿ç¨ FileChannel åå ¥ã
æ们ç¥éï¼RocketMQ 使ç¨å¼æ¥å·çï¼é£ä¹å¼æ¥ force 对æ§è½æ没æå½±åå¢ï¼benchmark everythingãæ们使ç¨å¼æ¥çº¿ç¨ï¼æ¯ kb å·çä¸æ¬¡ï¼ççæ§è½å¦ä½ã
mmap ä¸ç´è½åï¼ä¸æ§è½å¾å·®ï¼é¤äºå¨ åèé£éæä¸ç¹ç¹æå¨ï¼åºæ¬ç»´æ å¨ å·¦å³ï¼è没æ force çæ åµä¸ï¼åå¨ å·¦å³ãè FileChannel åå®å ¨ä¸å force çå½±åãå¨æçæµè¯ä¸ï¼1GB çæ件ï¼ä¸æ¬¡ force éè¦ æ¯«ç§å·¦å³ãbuffer è¶å¤§ï¼æ¶é´è¶å¤ï¼åä¹åè¶å°ã
说个é¢å¤è¯ï¼Kafka ä¸ç´ä¸å»ºè®®ä½¿ç¨ forceï¼å¤§æ¦ä¹æè¿ä¸ªåå ãå½ç¶ï¼Kafka è¿æèªå·±çå¤å¯æ¬çç¥ä¿è¯æ°æ®å®å ¨ã
è¿éï¼æ们å¾åºç»è®ºï¼å¦æä½ éè¦ç»å¸¸æ§è¡ forceï¼å³ä½¿æ¯å¼æ¥çï¼ä¹è¯·ä¸å®ä¸è¦ä½¿ç¨ mmapï¼è¯·ä½¿ç¨ FileChannelã
åºäºä»¥ä¸æµè¯ï¼æ们å¾åºä¸å¼ å¾è¡¨ï¼
å设ï¼æ们çç³»ç»çæ°æ®å å¨ - å·¦å³ï¼æ们åºè¯¥ä½¿ç¨ä»ä¹çç¥ï¼
çï¼è¯»ä½¿ç¨ mmapï¼ä» ä» åä½¿ç¨ FileChannelã
ååè¿å¤´çç MQ çå®ç°è 们ï¼ä¼¼ä¹åªæ QMQ æ¯ è¿ä¹åçãå½ç¶ï¼RocketMQ ä¹æä¾äº FileChannel çåé项ãä½é»è®¤ mmap åå å¼æ¥å·çï¼åºè¯¥æ¯ broker busy çå å¶å§ã
è Kafkaï¼å 为é»è®¤ä¸ forceï¼ä¹æ¯ä½¿ç¨ FileChannel è¿è¡åå ¥çï¼ä¸ºä»ä¹ä½¿ç¨ FileChannel 读å¢ï¼å¤§æ¦æ¯å 为æ¶æ¯ç大å°å¨ 4kb 以ä¸å§ã
è¿æ ·ä¸æ£æµï¼è¿äº MQ ç设计似ä¹é½é常åçã
æåï¼è½ä¸ç¨ force å°±å«ç¨ forceãå¦æè¦ç¨ force ï¼å°±è¯·ä½¿ç¨ FileChannelã
软件7-Zip - 唯一推荐的Windows免费开源无广告解压缩软件
前言
在众多解压缩软件中,我发现许多都充斥着广告和隐私风险。因此,我推荐一款名为7-Zip的免费开源无广告软件,它能够为用户提供一个简洁且功能强大的解压缩体验。
官网
7-Zip官网:7-zip.org
分流下载
位版本:
百度网盘:pan.baidu.com/s/1XD7FL7...
迅雷云盘:pan.xunlei.com/s/VNrQ5q...
城通网盘:url.ctfile.com/f/...
位版本:
百度网盘:pan.baidu.com/s/1D7xe1K...
迅雷云盘:pan.xunlei.com/s/VNrQD6...
支持系统
Windows /8/7/Vista/XP/////
支持格式
压缩/解压缩:7z、云联保源码XZ、BZIP2、GZIP、TAR、ZIP以及WIM
仅解压缩:AR、ARJ、CAB、CHM、CPIO、CramFS、DMG、EXT、FAT、GPT、HFS、IHEX、ISO、LZH、LZMA、MBR、MSI、NSIS、NTFS、QCOW2、RAR、RPM、SquashFS、UDF、UEFI、VDI、VHD、VMDK、WIM、XAR以及Z
简介
7-Zip是一款开源且无广告的解压缩软件,兼容市面上大多数压缩格式,并能够创建自己的7z格式压缩包,易于被其他主流解压缩软件识别。
其优点在于轻巧、功能强大且界面简洁,用户仅需几步即可完成解压缩操作。由于遵循开源规则,其安全性得到保障,世界各地的开发者可以查看大部分源代码。
使用
初次安装7-Zip时,它可能不会自动关联所有压缩包格式,用户需自行操作。步骤如下:右键选择一个文件,找到7-Zip,然后通过“添加压缩包”建立压缩包,最后在7-Zip界面中点击“工具-选项-系统”,将支持的格式添加至关联列表,点击应用即可。
其他
分享压缩包时,推荐选择zip格式,以确保非Windows系统用户能够轻松解压,尤其是当对方未安装主流解压缩软件时。不过,openjpeg源码下载请放心,当前Windows系统中的主流解压缩软件都支持7z格式。
苹果mac操作系统安装图文教程
从目前桌面级操作系统的格局来看,主要分为Windows、Mac OS以及Linux三大阵营。其中Windows阵营最为强大,占据全球整个桌面级操作系统%以上的市场份额,苹果公司自有的操作系统Mac次之,拥有超过5%的市场份额,剩下的则基本上是Linux阵营的天下。在这三种操作系统当中,Windows和Linux都是可以直接安装在个人电脑上的,它们本身在硬件方面并没有严格的限制,一般来说基于x架构的PC都可以安装。而苹果公司的Mac OS系列操作系统则不同,它所面向的是苹果公司自己的电脑产品,并不在除苹果之外的硬件上提供支持。
对苹果电脑稍微有所了解的朋友应该知道,自年以来,苹果一直在使用IBM的PowerPC处理器,直到年苹果公司才正式决定放弃与IBM的合作,采用性价比更高的Intel处理器,也就是说转向了x架构。采用Intel处理器对于苹果的转变来说是非常重要的一件事情,它不仅仅标志着苹果不会再受到IBM在芯片价格方面的制约,也为如今能在普通PC或笔记本电脑上安装Mac OS系统提供了可能。为什么这么说呢?
因为Power PC处理器采用的是一种叫做RISC的架构,Power架构本身和我们日常见到的Intel/AMD所采用的x架构设计原理上都不一样,所以软件方面完全无法兼容。也就是说,在苹果公司转向Intel阵营之前,想要将苹果的操作系统安装在普通PC上,或者是将Windows安装在苹果机上都是天方夜谭。而现在,苹果的全系列电脑产品都已经采用了x架构的Intel处理器,所以我们可以较为轻松的在苹果电脑上安装Windows操作系统;反之,Windows操作系统也可以在苹果电脑上完美运行,现在不是有很多用户都购买苹果笔记本安装Windows操作系统么!
笔者本身是一个操作系统爱好者,经常在闲暇的时间里折腾各种各样的小众操作系统。一直关注泡泡网的读者可能知道,在两年半以前,笔者发表了采用Linux内核的Ubuntu操作系统系列专题文章(详见1、2、3),在当时受到了很不错的关注度。而现在,笔者将要带大家体验来自全球最个性、最封闭的苹果公司的操作系统,当然苹果公司也是世界上最伟大的IT公司之一。
了解Mac OS的历史以及最新的"雪豹"系统
● 了解Mac OS
对于苹果的操作系统,我们可以将其统称为Mac OS,Mac OS的首个版本于年发布,不过当时并不叫做Mac OS,而是叫做System software,比如System 1.0、System 1.1等。直到年推出System 7.5版本的时候,才引入了Mac OS这个名字,逐渐弃用了System,到8.0时代就完全改为Mac OS 8.0。后来又推出了8.1、activex+源码8.5、8.6甚至9.x等多个版本。
Mac OS 9之后,年苹果推出了第代Mac OS操作系统——Mac OS X,并从年起随Mac计算机发售,X 这个字母是一个罗马数字且正式的发音为"十"(ten),接续了先前的Mac操作系统像是Mac OS 8和Mac OS 9的编号。根据Wikipedia的解释,Mac OS X是一套Unix基础的操作系统,包含两个主要的部份:内核名为Darwin,是以FreeBSD源代码和Mach微内核为基础,由苹果公司和独立开发者社区协力开发;及一个由苹果计算机开发,名为Aqua之专有版权的图形用户界面。
Mac OS X版本以大型猫科动物命名。比它的推出更重要的,在苹果计算机内部.0版本的代号是猎豹(Cheetah),以及.1版本代号为美洲狮(Puma)。在苹果的产品市场.2版本命名为美洲虎(Jaguar),以及.3相似地命名为黑豹(Panther)。.4版已经被命名为老虎(Tiger)。.5版花豹(Leopard)作为新操作系统已于年月日推出,.6版雪豹(Snow Leopard)已于年8月日推出。
今天,我们就是要给大家介绍如何在普通的PC/笔记本电脑上安装苹果最新的雪豹操作系统,即Mac OS X Snow Leopard。而且,同笔者之前给大家介绍Linux操作系统安装一样,我们仍然不需要光驱。
系统安装之前的准备工作及安装过程简介
前面我们已经提到,苹果电脑虽然已经采用了x架构的Intel处理器,但其官方并不提供在非苹果电脑上安装Mac OS的支持。所以,要想在普通PC/笔记本电脑上安装Mac OS X,难免需要模拟和破解。当然,在此笔者声明一下泡泡网的观点,本文仅作用于技术讨论和交流,泡泡网并不推荐大家在普通PC/笔记本上安装Mac OS X操作系统,一是苹果公司本身并不提供支持,二是目前很难%完美的驱动普通PC/笔记本的硬件。
Mac OS X Snow Leopard的最新版本为.6.3,但由于笔者手里只有.6.2 (A)版本的镜像,所以我们本次就直接使用Mac OS X Snow Leopard .6.2的镜像进行讲解。另外,由于安装破解过程都非常繁琐,驱动程序就更加棘手了,所以在本文中笔者只讲到安装完Mac OS X Snow Leopard为止,驱动程序以及Mac OS X的使用笔者将会在近期专门撰写一篇文章进行详细讲解。
另外,本文所介绍的安装步骤部分参考了远景论坛的交流贴《一步一步在Windows安装苹果雪豹系统》,在此对原作者表示感谢。
● 安装前需要准备的软件
雪豹安装镜像
OSInstall文件
HFS-explorer
适用于Window平台的Java虚拟机
Leopard硬盘安装助手
MacDrive
Bootthink
以上软件/工具请自行搜索下载最新版本,另外在上面所提到的远景论坛交流贴中也有下载地址。
● 使用本文的方法安装有何优势?
不需要外加USB键盘鼠标
不需要启动U盘
不需要DVD刻录机(如果你已经下载有镜像甚至不需要光驱)
不需要第二块硬盘和GPT分区表
不需要另外一个正常运转的苹果系统(破解操作全都可以在Windows完成,不需要另外的平台)
不需要输入一句又一句的命令行
● 安装过程速览
压缩分区,为安装雪豹准备空间
制作DMG文件并加载DMG文件到分区安装文件分区
配置开机引导程序
安装雪豹操作系统
启动雪豹
压缩分区,为安装雪豹系统准备磁盘空间
首先我们需要为安装Mac OS X snow Leopard 操作系统准备空间,建议至少有GB空间可以用作雪豹系统的安装镜像存放以及系统盘。由于我们采用的安装方法是免光驱安装,所以我们必须要准备两个专门用于Mac OS X Snow leopard的分区,一个用来存放Snow Leopard的安装文件,推荐大小为7GB(不得低于6.3GB);另一个用来作为Snow leopard 的generic木马源码系统盘,推荐大小GB以上。
如果你事先已经为Snow Leopard 操作系统准备好了空间,那么这一个部分就可以不必看了。如果你之前并没有准备好空间,我们可以在Windows系统中通过压缩卷的方法,来为Snow Leopard分配磁盘空间。
为Snow leopard准备磁盘空间的操作都可以在Windows系统自带的磁盘管理中完成。你可以进入控制面板——计算机管理——磁盘管理进行操作,windows7操作系统也可以直接在开始菜单的搜索栏里键入disk list进入磁盘管理。笔者这里是直接在原有的D盘上通过压缩卷的方式,挪出了M(约GB)的磁盘空间,并将这一部分空间分成了7GB和GB两个分区。其中,7GB分区用来存放snow leopard 安装文件,GB分区用来作为snow leopard系统盘。完成后入下图所示:
图中F盘存放安装文件,G盘做Snow leopard系统盘
需要注意的是,为Snow leopard准备的分区并不需要格式化,因为Windows自带的这个磁盘管理工具没有办法格式化成Mac OS X支持的文件格式。所以我们可以看到上图中的F、G两个分区类型为RAW,系统可能会提示你格式化,点击取消即可。
另外,由于这两个分区目前在Windows下并不能存放东西,所以前面提到的软件和工具都应当放在这两个分区之外的其他Windows分区,比如笔者这里可以放在C、D或者E盘。
制作安装DMG文件并写入安装文件分区
由于我们下载的都是可以直接在Mac电脑上引导的光驱镜像文件,而这种镜像文件并不能在普通的PC上引导。所以,我们首先需要将阻碍在PC上引导的引导层部分剥离。然后将安装文件写入本文准备的7GB分区内。这一节分为以下几个步骤。
● 生成不包含引导层的DMG文件
生成不包含引导层的DMG文件其实从另一个角度来说就是剥离原来的.dmg文件(也可能是.iso)镜像中的引导层部分,生成一个新的DMG文件,这里需要用到前面所提到的工具HFS-Explorer。
安装并运行HFS-Explorer之后,首先点击"File"—"Load file system from file",然后选择下载的镜像文件,笔者这里是Mac OS X install DVD.iso。如果这里的源镜像是.DMG的话,需要在弹出窗口中勾选含有HFS+那一项,然后点OK即可。
将原来的镜像文件载入HFS-Explorer浏览器中之后,点击"Tool"—"Create disk image",选择保存位置。这里需要注意的是,这一步的保存位置仍然不能放置于两个为Snow Leopard准备的分区内(也放不进去),还是需要放置在这两个分区之外的其他Windows分区。如下图:
在保存期间,会持续读写硬盘数分钟,这取决于电脑的整体性能和磁盘性能,所以不要着急。另外生成的这个新的DMG文件容量会高达6.3GB左右,所以只能存放于NTFS分区(Fat分区不支持单个文件大于4GB)。
● 将DMG文件写入7GB分区内
经过上面的操作之后,就会生成一个新的.DMG文件,现在我们需要将这个新的.dmg文件写入(类似于解压)到之前准备的7GB Snow Leopard分区内。这个步骤需要用到前面所提到的工具“Leopard硬盘安装助手”。
方法很简单,启动硬盘安装助手,大发java源码在镜像文件一栏载入你刚才生成的新DMG文件,目标分区选择为Snow Leopard安装文件准备的7GB分区,然后将下面的三个复选框对钩去掉并点击写入。这时候有需要等待数分钟或多分钟,仍然取决于你电脑的整体性能和磁盘性能。完成后确认一下日志列表中是否出现了Change Partition type to AF: success字样,这句话表示已经将该分区类型标记成AF标签,Mac OS X可以存取的分区。
另外,如果Change Partition type to AF这里不成功,但进度完成了的话,你也可以尝试通过Windows 系统自带的Dispart对该分区手动指定AF标记,方法是运行Diskpart,通过sel part选择这个7GB分区,并执行命令Set ID=AF。其实在后面的引导过程中,如果发现Bootthink重启的话,也可以重新通过这个办法指定一次AF标记,因为Bootthink重启多半是因为找不到标记为AF的分区。
使用MacDrive工具替换osinstall文件
经过前面的操作,我们已经将镜像文件解压到这个7GB的分区内了,但此刻还是不能用这个分区中的文件直接安装,因为还需要破解。一般情况下,破解主要针对两个文件。一个是让系统能够安装在Windows所生成的MBR分区下,二是内核的破解,这个主要是针对AMD的处理器或者单核心处理器平台。下面我们分别讲一下为什么要对这两点进行破解以及破解的方法。
● Mac和Windows分区表的不同
对Windows系统比较了解的朋友应当知道,Windows系统采用的是MBR分区表,也就是说我们硬盘上的分区基本都基于MBR分区表构建。而Mac OS X则不同,它采用GUID(GPT)分区表。相对于MBR分区表来说,GPT具有更多的优点,因为它允许每个磁盘有多达 个分区,支持高达 千兆兆字节的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID (GUID)。
而一块硬盘只有一个分区表(分区表你可以理解成记录硬盘分区信息的表格,当然只能有一个),要么用MBR、要么用GPT。如果你只用Mac OS X系统的话,倒是可以将硬盘用GPT分区表管理,但在这里不实用,因为我们还要用Windows系统,如果此时将硬盘分区表改成GPT的话,必然导致数据全部丢失。所以,我们只能想办法让Mac系统可以安装在MBR分区下。而这个解决办法就是破解OSINSTALL文件。
还好,对文件的破解早就有高手给我们做好了,我们要做的仅仅是将文件下载回来并替换安装盘中的源文件就可以了。方法很简单,下载我们前面提到的工具软件部分的OSINSTALL文件,将其复到到/System/Library/PrivateFrameworks/Install.framework/Frameworks/
OSInstall.framework/Versions/A/,并替换源文件即可。但是,在Windows系统下读写HFS+分区,必须安装Macdrive这个软件,所以请首先安装这个软件,然后直接从Windows中进入7GB的盘符,替换相应的OSINSTALL文件即可。
● 内核文件的破解
内核文件破解主要是针对非Intel双核/多核处理器而言的,比如Intel的单核心处理器以及AMD的处理器,包括最新的Atom处理器等,这些都是需要破解内核的,因为苹果的Mac机目前还没有采用过Intel单核处理器和AMD处理器,所以原来的系统安装文件根本不能使用。如果你的CPU不是Intel双核或多核的话,可以直接找破解后的mach_kernel文件(可以去www.kexts.com找),替换安装分区根目录中的同名文件即可。
让macdrive不随Windows自动启动
需要注意的是,安装Macdrive之后可能导致这个7GB分区在Windows系统中丢失盘符,如果遇到了这种情况,只需要将该MacDrive从Windows自启动项中将该程序移除,并重新执行删除分区——新建分区(简单卷,不要格式化)——使用Diskpart标记为AF分区的操作即可。让MacDrive不随Windows自动启动的方法很简单,运行msconfig,进入“启动”选项卡,将包含macdrive的两项前面的复选框清除,并应用重启即可。
使用BootThink引导安装Snow Leopard
经过前面的操作之后,Mac OS X的分区盘就算初步做好了,为什么在这里要用到“初步”这个词呢?是因为有可能你电脑上的硬件可能还是会影响到该系统的安装,或许还是需要替换、删除或添加一些基本的驱动程序文件,才能正常安装,这一部分内容我们放到后文再讲。
前面我们说到,该安装盘的引导层已经被移除掉了(即使就是不移除也不能在PC上引导),所以我们还需要通过第三方工具来引导这个7GB的Mac OS X安装盘才能开始安装系统。引导Mac OS X安装的工具有不少,在这里我们用BootThink这个工具进行引导安装。
安装BootThink之后,会在C盘根目录生成一个Darwin文件夹,如果BootThink在引导过程中出现了问题,或者你感觉Bootthink工作不正常,都可以直接通过该文件夹中的install.bat批处理进行重新安装,记得需要在管理员模式下运行批处理。如上图 !
如果一切安装正常的话,重新启动之后将会看到Bootthink的启动项,进入该启动项之后可以进入如上图所示的界面。通过这个界面可以进入Windows 7引导界面,或者启动Mac OS X安装盘开始安装Mac OS X。
当然,你已经可以直接选择Mac OS X Install DVD开始安装Mac OS X系统了。如果运气足够好,那么经过如上图所示的界面之后,就会可以进入Mac OS X安装界面了,几分钟之后迎接你的将是安装语言选择界面。
尝试解决引导安装盘过程出现的问题
然而,在很多情况下都并没有这么顺利,总是会出现各种各样的错误。归纳起来,主要可能出现的错误有以下几种:
1、BootThink引导不正常,比如选择BootThink启动项之后系统重启、黑屏等等;
2、进入BootThink界面找不到如前一页所示的Mac OS X Install DVD,即找不到安装盘(文件)所在的分区;
3、在进入Mac OS X安装的过程中出现禁止符号;
4、在进入Mac OS X安装的过程中出现了五国语言报错(简称五国);
5、在进入Mac OS X安装的过程中直接重启。
● BootThink引导不正常
BootThink引导不正常一般来说可能由两个方面引起,一是BootThink本身安装可能存在问题,二是BootThink没有找到带AF标记的HFS+分区。庆幸的是,这两种原因引起的Bootthink问题都比较好解决。如果是因为BootThink本身有问题的话,那么可以在C:/Drawin目录下运行unstall.bat,卸载BootThink,再运行install.bat重新安装Bootthink;对于第二种原因引起的引导不正常,可以通过前面介绍的使用系统自带的Diskpart重新对Mac OS X安装盘设定AF标记,或者删除该分区重新分配盘符。
● 进入BootThink界面找不到Mac安装盘符
出现这个问题的原因一般都是BootThink没有检测到带有AF标记的HFS+分区,解决方法可参照上面介绍的第二条。
● 进入安装过程中出现禁止符号
在进入Mac OS X的安装过程中出现禁止符号也是很多人都可能遇到的一个问题之一,出现这个问题的主要原因是主板没有开启AHCI功能,只需要在主板BIOS中将SATA硬盘端口打开AHCI功能即可。
● 五国语言报错
五国语言报错是一个非常普遍的问题,而且涉及到的原因是多方面的,这时候你可以在Bootthink界面按F8,输入-v再回车启动,即进入Verbose“rdquo;模式,通过该模式启动系统不会出现苹果界面,取而代之的是屏幕上显示启动状态,这样你可以看具体是什么原因引起了五国,再通过Google寻找解决的方法。
-v?履J降幕?/p
一些其他的常用参数:
-v:?履J剑?刹榭雌舳?刺?龋?/p
-x:强制在Bit模式下运行,避免与Bit不兼容的问题
-x:安全模式
-f:强制刷新kext缓存模式
-cpus=1:强制以单核心引导
● 进入Mac OS X安装的过程中直接重启。
在进入安装的过程中直接重启很有可能是因为需要破解内核,比如在AMD或单核心Intel处理器上安装Mac OS X,就可能导致这情况。如果遇到了这种情况,可以直接找破解后的mach_kernel文件(可以去www.kexts.com找),替换安装分区根目录中的同名文件即可。
一步一步的安装Mac OS X雪豹操作系统
如果在没有问题或者问题已经解决了之后,进入Mac OS X安装,数分钟之后我们将迎来正式安装的首个屏幕——选择安装语言版本。
选择安装语言,当然推荐简体中文了
继续安装
在这里并没有列出笔者专门为Mac OS X准备的分区,因为那个容量为GB的分区没有格式化,所以在这里一定要注意。不要点击继续,执行下面的操作。
如上图,点击菜单栏——实用工具——磁盘工具,选择专门为Mac OS X系统准备的分区。点击右侧的抹掉——格式选择Mac OS扩展(日志式),名称随意,笔者这里为mac sys,然后点击抹掉。
完成之后回到如上图所示的安装界面,可以看到中间的那个分区已经可以安装Mac OS X系统了,这就是我们刚刚执行“抹掉”的那个分区(抹掉在Mac中可以理解为格式化)。
完成之后又进入了安装界面,在这里仍然要注意,不要贸然点击“安装”,而是点击左边的“自定”,将打印机驱动的复选框去掉,不安装打印机驱动,主要是防止驱动太多引起不兼容,同时安装打印机驱动将会浪费至少分钟时间,如果没有打印机的话实在没用。取消勾选打印机驱动之后,再点击“安装”按钮开始安装。
完成雪豹系统安装 修改回Windows引导
经过大约半小时到1小时的安装过程之后,我们将会迎来安装成功的画面。
安装成功
安装成功之后,电脑将会有秒的时间倒计时重新启动,对于安装Windows/Mac双系统的用户来说,一定要在这秒之内打开菜单栏——实用工具——终端,然后在终端中分别运行下面的命令。
diskutil list(查看C:在哪里)
fdisk -e /dev/rdisk0
f 1 (上一步所见,设置硬盘0分区1为活动分区,这里应该含有Windows引导信息)
w
y
quit
这几个步骤的操作是为了将Windows所在分区(比如C盘)重新标记为活动分区,因为在Mac OS X安装的过程中,系统会自动将Mac OS X分区标记为活动分区,这样就会导致Windows不能启动。而上面的操作就是将Windows引导信息所在的分区重新标记为活动分区。
当然,如果你错过了这一步,也不是完全没有解决方法,如果有光驱的话,可以在光驱里放上Windows的安装光盘,执行“修复计算机”操作,这样会再次将Windows引导信息所在的分区标记为活动分区。
执行完成后重新启动计算机,进入Bootthink界面之后,我们会发现多出了一个安装好了Mac OS的分区。选择该分区按回车,计算机将会开始启动Mac OS(当然你可以加上启动参数,详见第8页)。再经过一些区域语言设置、帐户设置之后,就正式进入Mac OS X Snow Leopard的桌面啦!
到这里,本次Mac OS X Snow Leopard的安装之旅就基本告一段落了,但截止到这里,仅仅是将操作系统安装好了而已。但接下来将要面临的是更加困难,更加考验经验和耐心的驱动程序安装,关于这一部分内容笔者将在最近一段时间内专门发表文章进行讲解。对于初次接触在PC上安装Mac OS X的用户来说,笔者在驱动程序方面做几点小的提示:1、Mac OS X的驱动程序文件一般是以.kext为扩展名的文件;2、可以通过Kext安装驱动,也可以通过EFI String安装驱动,还可以通过DSDT安装驱动(最完美也最难);3、不必在PC上追求驱动的完美,因为非常难以实现。
好吧,今天的内容就到这里结束,请大家继续关注泡泡网在未来的一段时间之内给大家推出的Mac OS X驱动程序安装攻略以及Mac OS X中的一些基本操作。咱们下期见!
Unity - Addressables项目总结(一):基础工作流
近期未更新,现已投入新项目,初期采用Addressables进行资源管理。需对资源从打包、发布、运行时进行完善,期间遇到不少问题,也有不少难以理解的使用方式,现记录如下。
一、综述 & Start
1.1 综述
Unity默认的资源打包发布方式是AssetBundle,Addressables在AssetBundle基础上,处理了资源在项目整个流程中的管理。具体涉及资源打包、加载与卸载以及热更。传统的AssetBundle对于资源管理来说相对繁琐,主要体现在以下几个方面:
对于成熟的项目,通常已有一套完善的工具链,可能对于部分打包步骤不太直观方便,但整体流程较为完善,一般也不用考虑Addressables。如果是在项目前期,Addressables可能是一个不错的工具,其功能特性如下:
1.2 Start
(1)安装
(2)拉取Package到本地
在Package Manager中拉取的内容是无法修改的,若需要修改源码,则需要将Cache文件夹中的缓存放到Package(包括依赖package)
(3)标记资源:将资源或文件夹放入对应Group即可
(4)配置Profile
只需要配置远端路径(Http服务可使用Addressables自带的Host Services,但建议使用HFS方便测试)
(5)发布资源
Addressbales提供了两种资源发布模式:全量发布;增量发布
(6)选择Play Mode & Start
fastest模式通过AssetDatabase加载资源,Editor下不需要发布资源。Existing Build会真实得加载AB包,Editor下需要打包资源。
二、Settings
2.1 AssetGroup
Addressbales以GUI的方式较为便捷得对资源进行分组打包管理。默认每个分组的资源文件存在于AddressableAssetsData/AssetGroups目录下,分组可以使用相同策略对资源批量管理。
选中Group可以看到其属性面板。Build & Load Paths定义Group的打包与加载路径,该路径可在Profile中修改。包体分为本地包与远程包。
Group提供三种压缩方式:无压缩、LZ4、LZMA。LZ4包体大小中等,解压较快,可以只解压部分资源;LZMA包体较小,但解压资源较慢,只能将资源全部解压。通常选择LZ4。
这三个选项表示打包时,是否将资源的Address、GUID、Label写入包体中。对于有分包更新需求的情况下,建议都勾选上。
Internal Asset Naming Mode:如何为内部asset命名
Asset Load Mode、Asset Provider、Asset Bundle Provider通常不用修改,这三个选项用于控制asset的加载方式、AB包的获取方式。如果存在自定义的处理方式,可自行选择。
2.2 AddressableAssetSettings
Profile定义了各种路径参数,切换不同的路径以灵活映射到的路径。(修改路径后需要重新Build资源后才能生效,因为locator的下载路径是在Build时序列化到本地的。体验上不太舒服~~)
Addressables提供了三种Editor下资源加载方式:Use the Asset database(Asset database加载)、Simulate groups(模拟Group处理)、Use existing build(加载实际包体资源)
三、打包处理
3.1 打全量包
处理步骤如下: (1)根据需求配置Group的构建路径(Remote\Local) (2)根据远端路径(CDN\HFS)修改Profile,选择需要的Profile (3)修改资源版本号(如果只是本地测试不需要,但若是正式发布需要修改,避免影响老版本) (4)点击New Build/Default Build Script进行资源打包 Profile定义Build和Load路径,若需要从多个项目加载资源的情况(比如美术、Scene单独分离出工程进行制作),可以定义不同的Profile以满足需求。对于大部分工程来说,通常不需要修改local资源相管路径,这些工程会构建到相同的目录中。 注意:路径字符(以及自动生成的子目录)长度限制在个character,否则会构建失败 默认的local build路径:Library\com.unity.addressables\aa\平台\系统 默认的local load路径:Editor模式与构建路径相同;实机运行时被解析为StreamingAssets目录 Build输出文件:
注意:使用默认的local路径,在构建应用时,Addressbales会将打包资源拷贝到StreamingAssets目录,在应用构建结束后再将资源移除。如果使用自定义的local路径,需要自己处理这一过程。 默认的Remote Build路径:ServerData\平台 默认的Remote Load路径:为实际的下载url,必须要启用相管服务(CDN\HFS)后自行定义。 构建的文件:
3.2 打增量包
全量包会重新构建所有资源,当我们只需要对一部分资源修改时,这会产生很多不必要的工作。Addressbales提供了根据资源更新记录进行增量式更新
需要注意的是,能够进行增量式更新的前提是存在addressables_content_state.bin文件,并且不能修改资源版本号。此文件记录了资源的状态数据。当我们构建全量包时,会在“Assets\AddressableAssetsData\平台”创建该文件,一定不要手动修改此文件。只有相同版本号的catalog才会检测差异,从而更新。
四、运行时的资源
4.1 资源加载
Addressables提供了通过address、label、AssetReference以及IResourceLocation进行资源加载。在执行异步操作时,会执行以下流程:
若加载失败,相关信息会存储在AsyncOperationHandle.OperationException。默认情况下,加载失败不会抛出异常,如果需要可以为ResourceManager.ExceptionHandler设置回调。此外还可以通过设置抛出异常。
4.2 资源卸载
通过 Addressables.Release可以卸载资源、实例、handle。释放handle可以减少资源的引用计数,并且handle会失效。如果不需要使用回调结果,某些API接口提供了自动的handle回收参数,例如 UnloadSceneAsync。 即便handle回调失败了,仍然需要对其进行释放。通常情况下,Addressables会自动释放Operation失败期间的资源,但手动释放handle仍然是有必要的。 Addressables.LoadAssetsAsync是无法取消的,但如果在操作完成之前释放对应的handle,会减少对handle引用,在资源加载完成后会自动释放。