Most memory manufacturers, except those that make RAM, say a kilobyte is 1,000 bytes, a megabyte 1,000,000 bytes, a gigabyte 1,000,000,000 bytes and so on. This is following the normal SI standard of naming quantities.
Operating systems, given the Binary Bits and Bytes nature of computers, measure this in powers of 2^10. So a kilobyte is 2^10, a megabyte is 2^20, a gigabyte 2^30, and so on. Turns out there are more bytes in a given order of magnitude than the SI method.
It wasn't until 1998 that the convention of how operating system of measures memory became standardized by the International Electrotechnical Commission (IEC), being called binary prefixes. It's the same as the SI prefix, but just replace the last two letters with "bi". Kilobyte becomes kibibyte, megabyte becomes mebibyte, and so on. But to make things worse, either way of naming is valid. So while a gibibyte is without a doubt 2^30 bytes, a gigabyte could still be 1,000,000,000 bytes or 2^30 bytes.
Most operating systems still use binary prefixes. Mac OS X and Ubuntu Linux use the SI method.
Note that network based speeds may be displayed using SI prefixes while also using bits per second, not bytes per second. File transfers are usually reported with how the OS reports sizes.