Showing posts with label ABI. Show all posts
Showing posts with label ABI. Show all posts

23 March, 2009

Flash memory

After getting my new Asus Eee 900 PC, I was curious to research flash memory, to see the current state of events surrounding this technology.

Among a few of my notations, I learned that non-volatile memory, is memory that can retain it's information even when power is cut. [ Thus SSDs (Solid State Drives) are non-volatile, because they are supposed to replace the now obsolete magnetic-disk storage format. ]

Another interesting fact about solid state memory, memory chips and programmable memory chips, is the little known fact about how they originated.., or, why they were developed in the first place.

What I found didn't really shock me at all. Like with everything else technology-related, the U.S. Air Force had it's cold, damp hands in the mix.

PROMs (Programmable Read Only Memory chips) were developed at American Bosch Arma Corporation in Garden City, New York as a request from the United States Air Force to serve as a flexible and more reliable way of storing targeting constants (ballistic targeting vectors / calculations) in ICBMs (or, InterContinental Ballistic Missiles).

PROMs are defined as "non-volatile permanent storage devices", as they are programmed after creation, by shorting fuses in the chip to state binary digit programming [1(on) or 0(off)]. Or, to be blunt: PROMs usually contain machine-level instruction-sets to execute pre-defined tasks.

But as with a lot of technology, permanent storage is not a preferred every day method for the average Joe. So, later years were dedicated to develop dynamic flash memory.

In modern flash memory, the chips should be/are able to re-write/delete data up to several times without any significant drops in performance.

05 March, 2009

API / ABI / POSIX

API => Application Programming Interface

An application programming interface (API) is a set of routines, data structures, object classes and/or protocols provided by libraries and/or operating system services in order to support the building of applications.

The API itself is largely abstract in that it specifies an interface and controls the behavior of the objects specified in that interface. The software that provides the functionality described by an API is said to be an implementation of the API. An API is typically defined in terms of the programming language used to build an application. The related term, ABI (Application Binary Interface), is a lower level definition concerning details at the Assembly language level. For example, the Linux Standard Base is an ABI, while POSIX is an API.

POSIX => Portable Operating System Interface

The POSIX standard defines an API that allows a wide range of common computing functions to be written such that they may operate on many different systems (Mac OS X and various BSDs implement this interface); however, making use of this requires re-compilation for each platform.