The ARM has hard-ip and some dedicated-ish IO. PS means the processors owns the pin and the logic as hard-ip. PL means the FPGA owns the pin. This is an attempt to simplify the circular bootstrap issue in previous designs. Basically, the application required the CPU to program the FPGA but required the FPGA to be programmed to allow the CPU to program the FPGA. Because dynamic partial reconfiguration was/is not well supported, this led to additional complexity in older designs. By giving the CPU access to key memory/flash/communications IO, this problem can be resolved.
SDK is simply tools for developing software for your board. It isn't strictly required. I don't think I've used SDK except to get a device tree (from a plugin) that I could use with buildroot.