# What actually is the concept of transparency? Why not call it Abstraction?

I searched this over Google few times but ended up with articles on transparency rather than an answer. With relation to distributed database study(or distributed OS), what is the concept of transparency? I mean in replication, fragmentation and everywhere I guess the idea is to implement these concepts but not to bother user about them. Correct me if I'm wrong but I think the idea is "User shouldn't know?". Then HOW is this transparency? Isn't it abstraction? Hiding the implementation details?

Example: Consider Linux. There's one command, cp <srcfile> <destfile> for copying files on the mounted file system. There's a completely different command, usually scp <user>@<machine-name>:<srcfile> <destfile> for copying a file from a remote filesystem that is mounted on a remote machine. scp is an abstraction in that it hides all the implementation details about contacting the remote machine using the ip protocol, the encryption of the channel, and the mechanics of accessing the disks on the local and remote sides of the transfer. But in no way is the distinction between a local file and a remote file transparent. You have to use a different command depending on where the file is.
Worse, you can't edit the remote file in-place. With a local file you just open the file in your text editor. With a remote file you have to scp it to your local file system, edit the copy, and then scp the modified file back to the original location.