{"id":491,"date":"2007-11-20T20:52:14","date_gmt":"2007-11-21T04:52:14","guid":{"rendered":"http:\/\/multimedia.cx\/eggs\/iso-compromise\/"},"modified":"2007-11-20T20:52:14","modified_gmt":"2007-11-21T04:52:14","slug":"iso-compromise","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/iso-compromise\/","title":{"rendered":"ISO Compromise"},"content":{"rendered":"<p>Engineering is about trade-offs and compromises. One of the most fundamental trade-offs to be made when designing a storage format is whether multi-byte numbers will be encoded as little or big endian numbers. But have you ever studied the data structures involved in ISO-9660, the standard filesystem format for optical discs? It seems that the committee tasked with developing this standard were unwilling to make this one tough decision and specified all multi-byte numbers as <strong>omni-endian<\/strong>. I just made that term up. Maybe it could be called bi-endian or multi-endian. The raw detail is that multi-byte numbers are stored in little endian format <em>and then<\/em> in big endian. For example, 0x11223344 is stored using 8 bytes: 0x44 0x33 0x22 0x11 0x11 0x22 0x33 0x44.<\/p>\n<p><center><br \/>\n<img decoding=\"async\" src=\"\/eggs\/images\/Nuvola_devices_cdrom_unmount.png\" alt=\"CD-ROM\" \/><br \/>\n<\/center><\/p>\n<p>Do any other filesystems take this compromise? I am not that versed. I have studied the odd game-related optical filesystem; I had to write a manual ext2 searching tool for a sysadmin class; I also had to try to recover a virus-corrupted FAT16 filesystem (to no avail; that virus cleanly chewed up some of the most important sectors).<\/p>\n<p>Anyway, if I were to go ahead and try for a new <a href=\"http:\/\/fuse.sf.net\/\">FUSE<\/a> driver for ISO-9660 (or modify an existing driver), I would want to go after the main format. Plus, I would want to natively interpret that <a href=\"http:\/\/multimedia.cx\/eggs\/ciso-technology\/\">CISO format<\/a> on the fly. Further, I would use this as a platform to understand what is so special about the apparent ISO-9660 data ripped from a Sega Dreamcast GD-ROM.<\/p>\n<p>Are there any other ISO bastardizations to target for such a tool?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Engineering is about trade-offs and compromises. One of the most fundamental trade-offs to be made when designing a storage format is whether multi-byte numbers will be encoded as little or big endian numbers. But have you ever studied the data structures involved in ISO-9660, the standard filesystem format for optical discs? It seems that the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[91,69,97],"class_list":["post-491","post","type-post","status-publish","format-standard","hentry","category-programming","tag-ciso","tag-dreamcast","tag-iso-9660"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=491"}],"version-history":[{"count":0,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/491\/revisions"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}