"And the whole "1 gigabyte = 1024 megabytes" is just something that Microsoft OS's report the space to be?"
No, all x86 compatible hardware uses 1024 Megabytes = 1 Gigabyte to determine hard drive capacity, for some reason Pink seems to think MS is the one that created this problem, but they are just using what the hardware tells it.  ATA drives determine capacity by using binary numbers, which is why every ATA hard drive capacity barrier is in some way linked to a power of 2.  When I boot my system the Adaptec SCSI controller detects 18GB drives as 17GB, the add-in Promise ATA controller also reports GiB, both of these initializing before MS has any say in what the system is doing.  The problem begins at the hardware level, so if you want to blame someone blame the people that came up with the ATA and SCSI standards.
"it's because there are 8 bits in a byte. 8x128=1024. 8bits in a byte."
Huh?  1024 comes from 2^10.  It has nothing to do with bits vs bytes. 
2^10 bytes = 1024 bytes = 1 kilobyte
2^20 bytes = 1,048,576 bytes =  1024 kilobytes = 1 megabyte
2^30 bytes = 1,073,741,824 bytes = 1,048,576 kilobytes = 1024 megabytes = 1 gigabyte
"in reality 1000 bytes in a kilobyte and 1000 kilobytes in a gigabyte"
1000 kilobytes in a megabyte, not gigabyte