Question: why is bss segment needed?
Answer: bss is to have smaller executables, saving space and allowing faster loading of the program, as the loader can just allocate a bunch of zeroes instead of having to copy the data from disk. When running the program, the program loader will load . data and . bss into memory.