# Re: Using standardized SI prefixes

```On Tue, 2007-06-12 at 15:50 +0100, Alex Jones wrote:

> On Tue, 2007-06-12 at 09:24 +0100, Scott James Remnant wrote:
> > The difference is a sufficiently small percentage, that most users will
> > not care.
>
> No, like I said in my earlier post, the error grows quickly. As 1.024^x,
> in fact.
>
> x = 1	kibi vs. kilo		2.4%
> x = 2	mebi vs. mega		4.9%
> x = 3	gibi vs. giga		7.4%
> x = 4	tebi vs. tera		10%
>
> Especially nowadays with terabyte disks coming out and hitting the
> consumer market, there is *no place* for 10% of ambiguity.
>
a) terabyte disks are often just that, 1x10^12 bytes.

b) quoting the disk as 1TB guarantees that you have at least 1x10^12
bytes available.

Depending on the actual disk model, you may have 1x2^40 bytes, or
1024x10^9 bytes, or 1024x2^30 bytes available - or in fact anything
in between.

Only by quoting 1TB are you not potentially violating a guarantee of
available bytes.

It is always better to underquote than overquote.

c) One of each "binary" unit, rounded with no decimal places, is
identical to the equivalent SI unit.

1YB = 1x10^24	1YiB = 2^80 =~(0 dec place) 1YB
1ZB = 1x10^21	1ZiB = 2^70 =~(0 dec place) 1ZB
1EB = 1x10^18	1EiB = 2^60 =~(0 dec place) 1EB
1PB = 1x10^15	1PiB = 2^50 =~(0 dec place) 1PB
1TB = 1x10^12	1TiB = 2^40 =~(0 dec place) 1TB
1GB = 1x10^9		1GiB = 2^30 =~(0 dec place) 1GB
1MB = 1x10^6		1MiB = 2^20 =~(0 dec place) 1MB
1kB = 1x10^3		1KiB = 2^10 =~(0 dec place) 1kB

d) There are few places where binary units should be exposed to humans
anyway.

Bandwidth should be quoted in true SI units over a metric of time,
e.g. kilobytes-per-second  (e.g. the average UK DSL upload speed is
250kbps == 250,000bps)

Therefore Traffic should also be quoted in true SI units to make
conversion between bandwidth and traffic easy[0]  (e.g. the web
server shifted 86.4GB today =~ 86,400,000,000 bytes)

Therefore File Sizes should also be quoted in true SI units, because
they consist the majority of traffic; and to allow easy determining
of the speed of upload (my 10GB file will take ~90 hours to upload on
my DSL line[1])

Therefore Disk Sizes should also be quoted in true SI units, because
they are used to store files, and because the ATA standard says so (I
can fit 10 10GB files on my 100GB disk).

Memory usage should be quoted in true SI units, since executable
programs are derived from files (this 10MB program binary will use
10MB of RAM)

Therefore Memory sizes should also be quoted in true SI units (I can
fit 50 10MB programs, and 50 10MB files in my 1GB of RAM)

The only real places I can see are where an implementation factor
actually results in things using a true power of two, for example
filesystem block sizes or disk sector sizes, etc.  And in these
cases, the multiple of two only extends as high as the "block" or
"sector" unit.

A 1.5GB file will use 366,211 blocks of 4096 bytes.  Since you're
referring to a technical implementation detail, which is only
interesting in terms of accuracy, using phrases such as "kibiblocks"
is ridiculous.

Scott

[0] try converting a continual 8 Megabits-per-second to Gibibytes for
the day <g>
[1] !!! the UK sucks
--
Scott James Remnant
Ubuntu Development Manager
scott@ubuntu.com
```

Attachment: signature.asc
Description: This is a digitally signed message part