Confusion on Metadata | Named Forks | Extended Attributes | Resource Fork -- HFS+ I think there is some general confusion on the relation between all four of these items scattered throughout the web. I wanted to get this straightened out.


Are named forks the same as extended attributes? If not, what are extended attributes?
Is the resource fork still implemented as a fork or as an extended attribute? If it is implemented some other way, then how?
The metadata stored with a file (creator, date modified...) is there any relation or overlap in terminology between the other three mentioned. An example would be, are extended attributes just extra metadata pairs (key + value) stored on a file.


Any answers that can clarify how all four of these are interrelated, especially regarding the three question would be greatly appreciated, and contribute to settling disputes I see occurring across different resources.
Confusion arises from the fact that the relationship between these concepts is complex and has changed over time. In current systems the difference between a named fork and an extended attribute is largely academic. 

For an extended attribute, the actual data is stored in the attribute data record. 

For a fork, what's stored is the list of disk allocation blocks that contain the data. A resource fork is still a fork. 

Basic file system metadata is stored in dedicated elements of the file system record itself, independent of the attributes and named fork references.