7/04/2011

Working directories

 I had a strange bug today which trashes the shell command prompt when changing to a sub-directory of the ISO volume. I fixed the faulty eval_path() handler which wasn't detecting well a filesystem change in the path, e.g: if the  iso9660 volume is mounted on /cdrom, an access to the path /cdrom/sub_dir/../../ results  in a fileystem change since / reside on an other file-system.


  This screenshot shows the basics of directory management in a iso9660 volume : the application is able to navigate through the folder structure. Note that the source ISO disk virtually inserted in the /dev/hdb drive has been created with mkisofs with all iso9660-compliancy options enabled : all file and directory names use a limited character set (i.e: caps only).
  The ECMA-119 standard defines three levels of implementation :

  • Level 1 : 
    • Each file consists of only one file section (a sector wide)
    • The file should be formatted as "8.3" characters (8 characters for the name and 3 for the extension)
    • A directory name should not contain more than eight characters
    • The character set is limited to "d-characters" (digits, capital letters and underscore)
  • Level 2 :
    • Each file consists of only one file section
  • Level 3 :
    • No restrictions on file size


  With the directory handlers working I can start the file handlers. Currently only the "fstat" system call is implemented for files, and I will enhance its implementation with data found in "extended attribute records". These records are optional and gives some informations about the permissions of a given file.
  Those permissions will be really ready after the integration of the Rock Ridge extension which embed ACL in an ISO9660 among other things.

No comments:

Post a Comment