From a layman point of view, one would say, "Oh, I'm unrooted so I am blocked and access is not allowed." I want the programmatic point of view; telling me how an unrooted device doesn't have access to the whole filesystem, etc., and how a rooted device has that access.
1.Is the filesystem set by default to disallow reads/writes to /system, /sys, /data, etc.?
2.Is there something stored in /system or /data (such as a program, block device/file, etc.) that the unrooted OS runs that limits system-wide access on several tasks that rooted users have?
3.Does the default "unrooted" OS actually have system-wide prevention of unrooted access?
Because look at it this way: to "root" your device something must be changed, right? So the "rooting program" or process must entail how this restriction is circumvented. Does anyone here/can anyone link to anything (or explain it) that explains this process of how the rooting progress allows users access they weren't normally given by default (programmatically; not details on steps to follow in a rooting process and not info on how to root on your phone from a user's point of view; from a developer's point of view).
Best example: Say I'm an Android developer and I wish to learn how to create a rooting program. What would I, for example, need to know to do this?