Unicode filenames in an ISO9660 file-system
Chris Johns
chrisj at rtems.org
Thu Jul 14 05:48:24 UTC 2011
On 14/07/11 4:37 AM, Christophe Huriaux wrote:
>
> I'm about to implement the Joliet extension in the ISO9660 filesystem
> as part of my GSoC project.
Well done on the progress.
> This extension removes the limitations on
> the character set used (the ISO9660 standard implies a character set
> comprising only uppercase letters, digits and underscores in a
> filename.extension format), and brings the internationalization thanks
> to Unicode filenames.
> In order to maintain backward compatibility for systems which doesn't
> handle the Joliet extension, every entry in the directory structure of
> the ISO9660 volume is recorded twice :
> - One which is fully ISO9660 compliant (for older systems)
> - Another one with Unicode and long filenames support
>
> Since the RTEMS iso9660 implementation is going to be aware of those
> Unicode encoded records, I'll have to make a decision on how to handle
> them, should I :
> - use Joliet records and leave the filenames unchanged to the
> upper layers (and thus to the final application) : the end application
> should be able to interpret the character set (which is not the case,
> RTEMS is not designed to handle Unicode strings AFAIK, does it ?)
> - use Joliet records and somehow convert the filenames in an other
> character set in order to avoid compatibilty breaks
> - don't use Joliet at all : "classic" filenames (lowercase,
> special characters, ...) would not be handled in this case and it limits
> data interchange.
>
> I need comments from RTEMS users since I don't know all the internal
> of the OS, maybe I'm wrong regarding the Unicode support.
>
I do not know. I suppose it comes down to the cost in terms of code to
implement this. If it is not a big deal I would include it and look at
some sort of mount options to manage it. I suppose you can have
disabled, enable with mapping tables and pass through. By mapping tables
I was wondering if some sort to translation table can be used. Check the
DOSFS code. There is some support for this kind of thing
Chris
More information about the users
mailing list