I can't wait to see someone to find the first commit of SCCS via its Git repository.
Having a standard to separate your data from your metadata isn't necessarily incompatible with streams. It would be something you would IOCTL on an open stream if you cared.
int fd;
fd = open("the_file", O_RDONLY);
if ( fd < 0 )
{
perror("the_file");
return -1;
}
char* filetype = NULL;
ioctl(fd, FDRESGET, "FILETYPE", &filetype);
if ( filetype != NULL )
{
printf("%s has a filetype of %s\n", "the_file", filetype);
}
You could also have a version FNRESGET that operates on file names instead of file descriptors. Also a setter. There's still obviously a lot of details to work out, but nothing about this should be all that difficult. It even simplifies some other parts of the system, for example if you have a network socket the socket metadata like the remote IP address and port numbers could be in the resource fork of the socket itself.(An excerpt from history.txt)
I have scads of macOS footprints all over my NAS from a Mac I used a decade ago.