User:.digamma/null
From Wikipedia, the free encyclopedia
This is a Wikipedia user page.
This is not an encyclopedia article. If you find this page on any site other than Wikipedia, you are viewing a mirror site. Be aware that the page may be outdated and that the user to whom this page belongs may have no personal affiliation with any site other than Wikipedia itself. The original page is located at http://en.wikipedia.org/wiki/User:.digamma/null. |
Contents |
[edit] Musings on the Characteristics of the Null Device
[edit] Form
The null device, both in its software and hardware forms, as viewed by the hosting machine, is simultaneously empty, full, and satisfies both statements that it's internal volume is 0 and approaching infinity.
[edit] State of Containment
The aspect that it is both empty and full is a reference to it's stateful qualities of containment. By definition, it contains nothing (since null is returned when it is read or streamed) and is full since it can accept anything that is put into it. However, the mere concept of 'full' is a reference to capacity and more specifically, that something has reached capacity. Since the null device can always accept more data, it is thus never full. The attribution of 'full' is an error and the correct stateful characteristic is that it is 'never full' or 'always growing.'
[edit] Dimension
This is probably one of the simpler and more interesting characterization classes of the null device since man is always more familiar with something that has mass, and more understood through the sense of touch.
As with all software components, modules, and units, it's corresponding size is nothing equivalent to anything physical. That is, the mere binary data of software consumes no space. Yet it's presence on hardware changes this view. We'll consider both software (i.e. programs) and data as binary data. Mechanically speaking, a bit requires a few transistors in order to be stored (as in memory), retain it's state of either on or off, and (depending on the storage device) remain electrically charged such that its state is not altered by this continuous charge.
Thus binary data does not consume any space or volume unless it is present in hardware. Software cannot exist without hardware. Over time, the physical presence of binary data on hardware has consumed progressively less space (i.e. technological breakthroughs). Since the required space to store the same amount of binary data is not a function of the precise quantity of binary data, but is a function of the technology of the hardware on which it is stored (i.e. 1 cubic inch of space can retain more binary data today than it could 30 years ago). Therefore, it can be said that binary data, in and of itself, does not consume physical space (more formally, ).
Metaphorically speaking, if the null device was regarded as a 3-dimensional object, the volume of it is simultaneously 0 and approaching infinity. Firstly, a volume of 0 implies, by definition, that which the null device receives it does not retain. The null device's association with the received binary data is no longer than a few clock cycles (enough cycles to read the operation, execute the operation, and update the originator of the data).
Secondly, it's volume is approaching infinity. Again, if the null device were regarded as a 3-dimensional object (conceptually, not physically), and binary data was regarded as the same, then it's continuous ability to receive binary data would suggest that it may have a volume approaching infinity - by mere black-box observation. Since the null device is indeed not a 3-dimensional object, and it does not retain anything it receives, to regard it with a volume that approaches infinity is yet another error. To do so is a twisting of the characteristics of the null device. Thus it is more correct to say that the volume of the null device is infinitely immeasurably small, or more simply 0.
[edit] Existence
The question, 'does the null device exist in physical space?' emerges. That is, if a hosting computer system was disassembled, could one carefully identify the null device. With today's technology, a microscope, or perhaps atomic microscope may be necessary. I propose that unless the null device on the hosting computer system was designed and implemented as a hardware entity, it does not exist physically. Conversely, if a particular null device was designed and implemented in hardware, it would certainly exist and in quite probably a very small space - taking the form of nothing less than a resistence or a capacitance.
If a particular null device was not designed and implemented on hardware, then it exists only in the software. This would most likely be the operating system or perhaps the BIOS.
[edit] Temporal Quality
[edit] Availability
The null device is always available for reading and writing of data. As described earlier reading from the null device produces nothing - it is an operation that can be performed.
Continuous availability prompts the next natural question, 'is the null device equally available to an infinite number of simultaneously executing threads?' I/O operations in a computer are almost always synchronous. This is because the address bus can only access one device on the motherboard per clock cycle. This would be applicable if the null device exists in the BIOS (on a separate chip) or in the OS (on the HDD). In order to access these components, control of the address bus is required. This means that simultaneously executing threads will timeshare the address bus (as controlled by the OS) and will execute their reads or writes to the null device in serial fashion.
However, if the null device exists on the CPU die, then this changes the availability of the device. If the CPU reserves a unique address known only to the CPU as the null device, then the instruction never leaves the CPU, the read or write operation is interpreted to simply update the originator (in case of a read) or a simple NOP in case of a write, and the operation completes entirely on the CPU. This would return us to the questions of the form of the null device since it's mere existence again is in question. Yet, under this model, in a multicore system, individual threads truly execute in parallel. Thus the availability of the null device is directly proportional to the number of cores in the system.
[edit] Data Presence
Data appears, either inbound or outbound, at the null device for a mere instant. That is once data arrives at the null device it is immediately consumed. Conversely, once void is fabricated from the null device, it is immediately dispatched to it's destination for writing.
Under further analysis, upon arrival on the inbound to the null device, data appears and in the transition of a valence electron between two atoms, the data disappears (i.e. is consumed). This instantaneous transition occurs (at near the speed of light) many times for each bit in the data stream. This results in the following:
- @ - data exists
- @ - data has been consumed by the null device
[edit] Relation to Void
In terms of an astronomical void, it is nothing similar since a void in outer space is a great distance between two identifiable masses. However, in relation to void, that is, the presence of nothing, the absence of everything, then it is equivalent.