Port NetBSD's UDF implementation
Name: Oleksandr Dudinskyi
Email: Dudinskyj@gmail.com
- Phone: +380638666805
- IM/IRC: TranceX
- Languages (spoken and written): Ukraine, Russian, English
- Availability: I have enough time in this summer for implementation this project. I will not work anywhere in summer and plan working 30-35 hours per week in my project. Depending on the rate of of the project.
Possible Mentor: Andriy Gapon
Bio: Current I am a student on technical specialty in my university and going to enter the magistracy. Last summer I worked in freebsd project "Disk device error counters". It bring me many skills during the project. Starting from work with the kernel and ending with the testing device read/write errors. It was interesting and useful lessons for me. And I want work on interesting projects in this summer.
Project Information
Project Description
I plan realize functionality that was added in version udf
- 2.01
- Many of the UDF standard's ambiguities were resolved in this version.
- 2.50
- Metadata Partition facilitating metadata clustering,easier crash recovery and optional duplication of file system information:
- 2.60
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:
- 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.
- Many features which are in new revisions expand the system capability with this format in disk devices.
- 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.
Deliverables
- 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.