Are you speaking of RAM and hard disk? RAM is 4GB, eMMC is 16GB. Actual root partition available capacity will be less due to partitioning, total available size of a root partition with nothing in it would be approximately 14 to 15GB.
The flash utility gives you complete control over what goes in eMMC, but if you want a running system you mostly can change only the root partition (other hidden partitions are part of the boot process).
As to which part of RAM is available Linux always segregates a certain amount of RAM for kernel use, the rest can be used for user space…I think 1GB is reserved for kernel (there are kernel options which have a limited ability to modify this, I’ve not used them before). GPU does not have separate memory so anything CUDA/GPU/user land shares the rest.
Correction Note: The 3G/1G memory split applies only in 32-bit arm (the Tegra K1), and not to 64-bit (Tegra X1 does not care about this, so no kernel option for it exists there).