Port NetBSD's UDF implementation

Project Information

Project Description

I plan realize functionality that was added in version udf

Many of the UDF standard's ambiguities were resolved in this version.
Metadata Partition facilitating metadata clustering,easier crash recovery and optional duplication of file system information:

Pseudo OverWrite method for drives supporting pseudo overwrite capability on sequentially recordable media.

For this I will porting netbsd implementation of UDF (code directory /sys/fs/udf/ in src) where all needing of features exist.

I want to implement my project for several reasons:

  1. UDF is used by most CD-R/RW packet-writing programs and commerical DVD-Video and DVD-ROM discs that why basic understand principal of work udf is very interesting and cognitive.
  2. Many features which are in new revisions expand the system capability with this format in disk devices.
  3. It improves work with disks in FreeBSD for ordinary people including me. I do not know yet if I have enough time for realization write support, but I will start working in this direction and and finish after GSoC.


May 21 - May 24

transferring implementation UDF from NetBSD into FreeBSD source code and consider libraries used in the project (ecma167-udf.h, osta.h, udf.h, udf_mount.h) what structures, flags and parameters of main functions are used.

May 25 - June 10

modify function udf_mount, udf_mountfs, udf_unmount and others for mount new type of disc in file udf_vfsops.c.

June 11 - July 24

modify function udf_access, udf_getattr, udf_open, udf_pathconf, udf_readdir, add udf_advloc, udf_close and others in file udf_vnops.c

June 25 - June 1

making appropriate changes in udf_osta.c

June 1 - June 16

add new key to maintenance command mount_udf for support new version of UDF, test and fix bugs in previous functional.

July 16 - July 29

Adaptation udf_allocation to implement directory hashing to speed up directory traversals in mounted devices.

July 30 - August 5

add new options to mount_udf(8) for example:

   -u uid      Set the owner of anonymous files on the file system.  The 
                 default owner is the user nobody. 
   -t gmtoff   Set the time zone offset (in seconds) from UTC to gmtoff, 
                 with positive values indicating east of the Prime Meridian. 
                 If not set, the user's current time zone will be used.  
   -g gid      Set the group of anonymous files on the file system.  The 
                 default group is the nobody group. 
August 6 - August 12
final test all parts of code.
August 13 - August 20
write all documentation for implemented udf functional.

Test Plan

For testing my code I will mount different type of discs, various DVD-Video and DVD-ROM disks, also CD-R, CD-RW, CD-MRW, DVD-RW, DVD+RW, DVD+MRW, Blu-ray Disc, (USB) flash media and harddisc partitions. Also compare the speed of operation with support directories hashing using the timer.

SummerOfCode2012/UDFImplementation (last edited 2012-07-18T12:08:42+0000 by EugeneSyromyatnikov)