百科问答小站 logo
百科问答小站 font logo



为什么现在手机都没有 USB 存储了? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

题主问的应该是MTP模式和U盘模式

USB存储模式(U盘模式)的坏处:1. 数据一致性不好保证;2. 支持存储卡的手机越来越少了。

如果题主仔细观察的话,支持USB存储模式的手机,大部分都是把手机存储卡作为USB存储设备,而内置的存储是不行的,并且存储卡作为USB存储设备被PC机访问的时候,在手机端存储卡是被卸载的状态。也就是说,以USB存储模式工作的情况下,手机放上访问不了该存储设备,设备需要以独占的方式提供给PC访问

而MTP模式则没有问题,并且MTP模式还能访问内置存储,所以现在手机基本上都是以MTP模式连接PC,因为MTP更灵活。

要独占访问的原因就是我说的第一条:数据一致性。

U盘模式下,手机以块设备方式工作,手机先识别到一个块设备,然后按块读取内容,并获得文件系统类型,挂载文件系统,然后提供给PC访问,PC端能操作的基本单元是扇区。

而一般的操作系统中,文件系统和设备驱动的布局如下,需要注意的是下层是没有比较简单的机制能直接通知上层某个数据的改变的:

       [IO系统框架,提供open/read/write等上层操作]             | [文件系统驱动,提供文件的操作]             | [块设备驱动,基本操作单元是扇区或者块] <---U盘模式工作在这里     

那么如果两边都能以U盘方式访问,那么假设PC更改了某个块,但这个块可能已经被文件系统缓冲了,这种情况下,PC和手机同时修改一个文件,那么两边同时更新一个块,数据就发生了冲突。更极端的情况:如果PC上创建了一个新文件,手机上可能看不到这个文件,因为手机的文件系统里并不知道块设备里写了新数据。

为了解决这个问题,才有了MTP的方案,MTP工作在更上层(可能是IO系统框架或者文件系统一层,不同操作系统实现不同),这种情况下,所有的操作都要经过文件系统,就不会有数据不一致的问题了。

所以现在厂商基本都用MTP,因为MTP保证数据一致性,也能访问内置存储。

U盘模式还有一些坏处,比如需要安全移除,突然掉电的时候或者传输的过程拔除设备会损坏存储卡,造成数据丢失,MTP是没这个问题的。

------------------------

评论区有人说MTP性能不行,主要的性能瓶颈是在小文件上。大文件的性能与USB存储模式几乎没有区别。原因是MTP的操作对象是文件,缺少文件系统底层的缓存,不能够做块一级的预读,这样就导致了批量赋值小文件的时候要一个文件一个文件的读取属性,不能批量操作,也不能在挂载阶段预读,开销非常巨大。

MTP有各种不好,但对于厂商来说,避免的存储设备的损坏,能兼容各种文件系统,还是有进步的,速度慢并不是一个大问题。




  

相关话题

  如何看待手机最大传感器三星GN2正式发布,并且会在小米11Pro和小米11Ultra首先搭载? 
  USB3.1与Type-c接口是同一回事吗? 
  安卓系统手机的屏幕被监控,如何摆脱被监控的处境? 
  3·15晚会曝光的手机充电桩是否能盗取iPhone用户的信息甚至操控消费?原理是怎样的? 
  为什么有些人偏向于买安卓平板,而不是 iPad? 
  为什么小米高管说华为 P30 是在 P30 Pro 基础上「阉割了一堆功能还卖得挺贵」?是否有依据? 
  突发奇想如果把手机摄影的算法加到全画幅微单上,岂不是直接起飞? 
  2021 年秋季开学,需要准备些什么,有哪些比较好的数码和生活好物最值得推荐? 
  联想为何衰败了? 
  如何看待 CCTV 播出的泰尔实验室检测张思童和回先生的 Note 7 故障原因? 

前一个讨论
电脑的USB接口可以做成typec接口吗?
下一个讨论
CPU代替SSD主控;是否可行?





© 2024-05-15 - tinynew.org. All Rights Reserved.
© 2024-05-15 - tinynew.org. 保留所有权利