一种安卓设备内置硬盘实现ntfs文件系统的方法及装置的制作方法

文档序号:6401850阅读:243来源:国知局
专利名称:一种安卓设备内置硬盘实现ntfs文件系统的方法及装置的制作方法
技术领域
本发明涉及通讯设备应用技术领域。尤其涉及一种安卓设备内置硬盘实现NTFS文件系统的方法及装置。
背景技术
安卓(Android)系统是新一代的智能平台,越来越多的电子终端使用Android系统作为其操作系统。文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法。文件系统负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。当前Android设备内置硬盘使用的文件系统主要是FAT文件系统,该系统由于其出色的兼容性,在各种手持设备上都得到了非常成功的应用。FAT文件系统使用文件分配表进行磁盘管理,对磁盘的管理能力强,文件存储安全可靠,灵活性强。但是其有两个主要缺点:一是不支持大于4GB的单个文件的存储;二是FAT文件系统采用较大的簇进行数据存储,磁盘空间利用率低。随着高清视频技术的普及、视频文件越来越大、超大游戏及应用软件的流行,FAT文件系统在安卓平台上应用的局限性越来越大。此外,FAT文件系统都是定义在操作系统内核层面上的,如果采用其他文件系统替代FAT文件系统,如NTFS文件系统等,为了使操作系统能够识别新的文件系统,必需重写内核,操作复杂,而且内核态代码难以调试,生产率较低
发明内容
本发明所要解决的技术问题是提供一种安卓设备内置硬盘实现NTFS文件系统的方法及装置,以突破内核程序的限制,将开发者从处理文件系统模块与系统内核之间关系的复杂任务中解脱出来,同时,能够有效提高磁盘空间的利用率,且满足在安卓平台上播放超高清视频及超大软件应用。一种安卓设备内置硬盘实现NTFS文件系统的方法,所述方法包括:基于fuse框架编译生成支持NTFS文件系统读写的可执行文件;对所述生成的可执行文件进行源码修改;编译所述修改后的源码生成系统镜像并加载到安卓平台。进一步地,所述对所述生成的可执行文件进行源码修改包括,增加对NTFS文件系统操作的mount操作源码;或者,增加对NTFS文件系统操作的mount及格式化操作源码。进一步地,所述对所述生成的可执行文件进行源码修改包括,将原有对FAT文件系统操作的mount操作源码更改为NTFS系统操作的mount操作源码;或者,将原有对FAT文件系统操作的mount及格式化操作源码全部更改为NTFS系统操作的mount及格式化操作源码。
进一步地,通过void进程对生成的可执行文件进行源码修改。相应地,本发明还公开一种安卓设备内置硬盘实现NTFS文件系统的装置,所述装置包括,编译模块,用于基于fuse框架编译生成支持NTFS文件系统读写的可执行文件;修改模块:用于对所述生成的可执行文件进行源码修改;所述编译模块还用于对所 述修改后的源码进行编译生成系统镜像;其中,所述生成的系统镜像由安卓平台进行加载。 进一步地,所述修改模块用于增加对NTFS文件系统操作的mount操作源码;或者,用于增加对NTFS文件系统操作的mount及格式化操作源码。进一步地,所述修改模块用于将原有对FAT文件系统操作的mount操作源码更改为NTFS系统操作的mount操作源码;或者,用于将原有对FAT文件系统操作的mount及格式化操作源码全部更改为NTFS系统操作的mount及格式化操作源码。进一步地,所述修改模块通过void进程对生成的可执行文件进行源码修改。本发明的技术方案,基于fuse框架实现用户态NTFS文件系统,突破了内核程序的限制,使得开发者只需要关注fuse的接口定义,在不需要了解fuse的内部机制的情况下也可开发用户级应用的文件系统,减少了开发的工作量,降低了任务的复杂度,提高了程序的稳定性,相对传统内核及文件系统,具有更好的灵活性和扩展性,更便于备份和迁移。


图1为本发明实施例所述fuse工作过程示意图;图2为本发明第一实施例提供的安卓设备内置硬盘实现NTFS文件系统的方法流程图;图3为本发明第二实施例提供的安卓设备内置硬盘实现NTFS文件系统的方法流程图;图4为void进程框图;图5为本发明第三实施例提供的安卓设备内置硬盘实现NTFS文件系统的装置结构框图。
具体实施例方式下面结合附图和实施例对本发明作进一步的详细说明。此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。Fuse (Filesystem in Userspace,用户空间文件系统)提供一个完整的接口让用户可以轻松的创建一个属于自己的用户级文件系统。图1为本发明实施例所述fuse工作过程示意图。如图1所示,Fuse由一个内核模块(fuse, ko), —个用户级函数(libfuse.*)以及一套文件系统加载机制(mount工具)组成。内核模块仅仅提供内核的接入口,给了文件系统一个框架,由文件系统本身的主要实现代码位于用户空间中。开发者通过实现fuse提供的两组接口 fuse_lowlevel_ops, fuse_operations之一即可实现一个用户空间文件系统。用户级函数库给用户提供了编程的接口,具体实现操作有开发者在用户空间实现。文件系统加载机制用于挂载用户编写的文件系统。Fuse工作过程如下:
使用fuse框架实现的hello实例程序被调用,用户级文件系统被挂载到当前系统中,挂载点为/tmp/fuse。当用户执行ls-1/tmp/fuse命令时,VFS相关接口函数被调用,并交给fuse内核模块处理。内核模块通过一种映射机制,调用hello文件系统相关函数来处理相应请求。Fuse是建议在VFS机制之上的,它与Ext2、Ext3等实际的文件系统处于同一个层面上,区别于这些实际的文件系统,Fuse将来自于VFS的请求,转换到用户级函数来处理。使用Fuse开发文件系统,开发者不需要与VFS打交道,不需要了解Linux文件系统的架构、文件系统内核模块开发的流程以及相关的背景知识。图2为本发明第一实施例提供的安卓设备内置硬盘实现NTFS文件系统的方法流程图。如图2所示,所述流程包括:步骤201:配置android设备软件编译环境。步骤202:在Iinux内核中启用fuse。android 内核本身就是Iinux内核的一个子集,Iinux内核本身对FAT是完全支持的。用户空间文件系统(File system in Userspace,简称fuse)是操作系统中的概念,指完全在用户态实现的文件系统。Linux通过内核模块对此进行支持。一些文件系统如ZFS,glusterfs 和 luster 使用 fuse 实现。Linux用于支持用户空间文件系统的内核模块名叫fuse, fuse是一个通用操作系统重要的组成部分。Linux从2.6.14版本开始通过fuse模块支持在用户空间实现文件系统。用户空间编程可以选择多种语言实现,如c++,java等,还可以复制自己的库。在用户空间实现文件系统能够大幅提高生产率,简化了为操作系统提供新的文件系统的工作量,特别适用于各种虚拟文件系统和网络文件系统。步骤203:编译生成支持NTFS文件系统的读写的可执行文件。本实施例中,fuse使用fuse_operations来给用于提供编程结构,让用户通过注册自己编写的函数到给结构体来实现自己的文件系统。所述文件是一个通过模块编译的二进制文件,NTFS文件系统的所有操作均通过此文件进行.可以说它就是一个NTFS文件系统。步骤204:增加对NTFS文件系统操作的mount及格式化操作源码。本步骤中也可以只增加对NTFS文件系统操作的mount操作源码。本实施例中,通过void进程对生成的可执行文件进行源码修改。void进程用于管理和控制Android平台外部存储设备,包括SD插拨、挂载、卸载、格式化等;vold进程接收来自内核的外部设备消息。图4为void进程框图。如图4所示,Vold接收来自内核的事件,通过netlink机制。Netlink是一种特殊的socket ;Netlink是一种在内核与用户应用间进行双向数据传输的非常好的方式,用户态应用使用标准的socket API就可以使用netlink提供的强大功能;Netlink是一种异步通信机制,在内核与用户态应用之间传递的消息保存在socket缓存队列中;内核通过Netlink发送uEvent格式消息给用户空间程序;外部设备发生变化,Linux内核发送uevent消息。步骤205:编译修改后的源码生成系统镜像。所述系统镜像是一种文件,和装载有操作系统的光盘一样,只不过光盘是一个看得见的实物,系统镜像是一个是看不见的文件。步骤206:将生成的系统镜像加载到android设备中。通过安卓平台的指定路径即可加载所述系统镜像,通过NTFS文件系统进行内置
磁盘管理。本实施所述的方法在保留原有FAT文件系统的基础上,实现ntfs文件系统,同时支持两种文件系统。图3为本发明第二实施例提供的安卓设备内置硬盘实现NTFS文件系统的方法流程图。如图3所示,具体流程包括:步骤301:配置android设备软件编译环境。步骤302:在Iinux内核中启用fuse。android内核本身就是Iinux内核的一个子集,Iinux内核本身对fat是完全支持的。用户空间文件系统(File system in Userspace,简称fuse)是操作系统中的概念,指完全在用户态实现的文件系统。Linux通过内核模块对此进行支持。一些文件系统如ZFS,glusterfs 和 luster 使用 fuse 实现。Linux用于支持用户空间文件系统的内核模块名叫fuse, fuse是一个通用操作系统重要的组成部分。Linux从2.6.14版本开始通过fuse模块支持在用户空间实现文件系统。用户空间编程可以选择多种语言实现,如c++,java等,还可以复制自己的库。在用户空间实现文件系统能够大幅提高生产率,简化了为操作系统提供新的文件系统的工作量,特别适用于各种虚拟文件系统和网络文件系统。步骤303:编译生成支持NTFS文件系统的读写的可执行文件。Fuse使用fuse_operations来给用于提供编程结构,让用户通过注册自己编写的函数到给结构体来实现自己的文件系统。所述文件是一个通过模块编译的二进制文件,ntfs文件系统的所有操作均通过此文件进行.可以说它就是一个ntfs文件系统。步骤304:将原有对FAT文件系统操作的mount及格式化操作源码全部更改为NTFS系统操作的mount及格式化操作源码。本步骤中还可以只将原有对FAT文件系统操作的mount操作源码更改为NTFS系统操作的mount操作源码。本实施例中,通过void进程对生成的可执行文件进行源码修改。void进程用于管理和控制Android平台外部存储设备,包括SD插拨、挂载、卸载、格式化等;vold进程接收来自内核的外部设备消息。步骤305:编译修改后的源码生成系统镜像。所述系统镜像是一种文件,和装载有操作系统的光盘一样,只不过光盘是一个看得见的实物,系统镜像是一个是看不见的文件。

步骤306:将生成的系统镜像加载到android设备中。通过安卓平台的指定路径即可加载所述系统镜像,通过NTFS文件系统进行内置
磁盘管理。本实施所述的方法将原有FAT文件系统全部更改为ntfs文件系统,只支持NTFS文件系统。图5为本发明第三实施例提供的安卓设备内置硬盘实现NTFS文件系统的装置。所述装置包括编译模块501,用于基于fuse框架编译生成支持NTFS文件系统读写的可执行文件;修改模块502,用于对所述生成的可执行文件进行源码修改;所述编译模块501还用于对所述修改后的源码进行编译生成系统镜像;其中,所述生成的系统镜像由安卓平台进行加载。所述修改模块502用于增加对NTFS文件系统操作的mount操作源码;或者,用于增加对NTFS文件系统操 作的mount及格式化操作源码。所述修改模块502用于将原有对FAT文件系统操作的mount操作源码更改为NTFS系统操作的mount操作源码;或者,用于将原有对FAT文件系统操作的mount及格式化操作源码全部更改为NTFS系统操作的mount及格式化操作源码。所述修改模块502通过void进程对生成的可执行文件进行源码修改。其中void进程的工作过程可参考图4部分的详细描述。所述NTFS文件系统采用簇进行数据存储,且支持单个文件达到2T,单个分区容量达到4T。Android设备内置硬盘使用NTFS文件系统,由于其采用了更小的簇进行数据存储,极大的提高了硬盘空间的利用率,同时突破了 FAT文件系统单个文件不能大于4G限制,使超高清视频(大于4G)的观看及超大软件的应用成为现实。上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
权利要求
1.一种安卓设备内置硬盘实现NTFS文件系统的方法,其特征在于,所述方法包括: 基于fuse框架编译生成支持NTFS文件系统读写的可执行文件; 对所述生成的可执行文件进行源码修改; 编译所述修改后的源码生成系统镜像并加载到安卓平台。
2.根据权利要求1所述的安卓设备内置硬盘实现NTFS文件系统的方法,其特征在于,所述对所述生成的可执行文件进行源码修改包括, 增加对NTFS文件系统操作的mount操作源码; 或者,增加对NTFS文件系统操作的mount及格式化操作源码。
3.根据权利要求1所述的安卓设备内置硬盘实现NTFS文件系统的方法,其特征在于,所述对所述生成的可执行文件进行源码修改包括, 将原有对FAT文件系统操作的mount操作源码更改为NTFS系统操作的mount操作源码; 或者,将原有对FAT文件系统操作的mount及格式化操作源码全部更改为NTFS系统操作的mount及格式化操作源码。
4.根据权利要求1至3之一所述的安卓设备内置硬盘实现NTFS文件系统的方法,其特征在于,通过void进程对生成的可执行文件进行源码修改。
5.一种安卓设备内置硬盘实 现NTFS文件系统的装置,其特征在于,所述装置包括, 编译模块,用于基于fuse框架编译生成支持NTFS文件系统读写的可执行文件; 修改模块:用于对所述生成的可执行文件进行源码修改; 所述编译模块还用于对所述修改后的源码进行编译生成系统镜像; 其中,所述生成的系统镜像由安卓平台进行加载。
6.根据权利要求5所述的安卓设备内置硬盘实现NTFS文件系统的装置,其特征在于,所述修改模块用于增加对NTFS文件系统操作的mount操作源码;或者,用于增加对NTFS文件系统操作的mount及格式化操作源码。
7.根据权利要求5所述的安卓设备内置硬盘实现NTFS文件系统的装置,其特征在于,所述修改模块用于将原有对FAT文件系统操作的mount操作源码更改为NTFS系统操作的mount操作源码;或者,用于将原有对FAT文件系统操作的mount及格式化操作源码全部更改为NTFS系统操作的mount及格式化操作源码。
8.根据权利要求5至7之一所述的安卓设备内置硬盘实现NTFS文件系统的装置,其特征在于,所述修改模块通过void进程对生成的可执行文件进行源码修改。
全文摘要
本发明公开一种安卓设备内置硬盘实现NTFS文件系统的方法及装置,所述方法包括基于fuse框架编译生成支持NTFS文件系统读写的可执行文件;对所述生成的可执行文件进行源码修改;编译所述修改后的源码生成系统镜像并加载到安卓平台。该方法突破了内核程序的限制,将开发者从处理文件系统模块与系统内核之间关系的复杂任务中解脱出来,使得开发者专注于文件系统设计和实现上,降低了任务的复杂度,同时,采用NTFS文件系统进行磁盘管理,能够有效提高磁盘空间的利用率,满足在安卓平台上播放超高清视频及超大软件应用的要求。
文档编号G06F9/445GK103218228SQ20131012331
公开日2013年7月24日 申请日期2013年4月10日 优先权日2013年4月10日
发明者蒋世民, 陈仔俊, 卓世杰 申请人:广东欧珀移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1