Friday, December 19, 2008

Introduction to WAP

What is WAP?

The wireless industry came up with the idea of WAP. The point of this standard was to show internet contents on wireless clients, like mobile phones.

* WAP stands for Wireless Application Protocol
* WAP is an application communication protocol
* WAP is used to access services and information
* WAP is inherited from Internet standards
* WAP is for handheld devices such as mobile phones
* WAP is a protocol designed for micro browsers
* WAP enables the creating of web applications for mobile devices.
* WAP uses the mark-up language WML (not HTML)
* WML is defined as an XML 1.0 application
The Wireless Application Protocol

The WAP protocol is the leading standard for information services on wireless terminals like digital mobile phones.

The WAP standard is based on Internet standards (HTML, XML and TCP/IP). It consists of a WML language specification, a WMLScript specification, and a Wireless Telephony Application Interface (WTAI) specification.

WAP is published by the WAP Forum, founded in 1997 by Ericsson, Motorola, Nokia, and Unwired Planet. Forum members now represent over 90% of the global handset market, as well as leading infrastructure providers, software developers and other organizations. You can read more about the WAP forum at our WAP Forum page.
WAP Micro Browsers

To fit into a small wireless terminal, WAP uses a Micro Browser.

A Micro Browser is a small piece of software that makes minimal demands on hardware, memory and CPU. It can display information written in a restricted mark-up language called WML.

The Micro Browser can also interpret a reduced version of JavaScript called WMLScript.
What is WML?

WML stands for Wireless Markup Language. It is a mark-up language inherited from HTML, but WML is based on XML, so it is much stricter than HTML.

WML is used to create pages that can be displayed in a WAP browser. Pages in WML are called DECKS. Decks are constructed as a set of CARDS.
What is WMLScript?

WML uses WMLScript to run simple code on the client. WMLScript is a light JavaScript language. However, WML scripts are not embedded in the WML pages. WML pages only contains references to script URLs. WML scripts need to be compiled into byte code on a server before they can run in a WAP browser.

Visit our WMLScript tutorial to learn more about scripting in WML documents.
Examples of WAP use

* Checking train table information
* Ticket purchase
* Flight check in
* Viewing traffic information
* Checking weather conditions
* Looking up stock values
* Looking up phone numbers
* Looking up addresses
* Looking up sport results

FAQ about WAP

These are frequently asked question about WAP:

* What is WAP?
* Who is WAP for?
* How does WAP relate to standardization bodies?
* How is WAP related to Internet standards?
* What is the status of WAP?
* What is the future of WAP?

We will try to answer most of these questions. In the meantime read the answers at: http://www.wapforum.org/faqs/index.htm.

Readmore »»

10 Tips for Wireless Home Network Security

By Bradley Mitchell, About.com
Many folks setting up wireless home networks rush through the job to get their Internet connectivity working as quickly as possible. That's totally understandable. It's also quite risky as numerous security problems can result. Today's Wi-Fi networking products don't always help the situation as configuring their security features can be time-consuming and non-intuitive. The recommendations below summarize the steps you should take to improve the security of your home wireless network.
1. Change Default Administrator Passwords (and Usernames)
At the core of most Wi-Fi home networks is an access point or router. To set up these pieces of equipment, manufacturers provide Web pages that allow owners to enter their network address and account information. These Web tools are protected with a login screen (username and password) so that only the rightful owner can do this. However, for any given piece of equipment, the logins provided are simple and very well-known to hackers on the Internet. Change these settings immediately.
More Info
2. Turn on (Compatible) WPA / WEP Encryption
All Wi-Fi equipment supports some form of encryption. Encryption technology scrambles messages sent over wireless networks so that they cannot be easily read by humans. Several encryption technologies exist for Wi-Fi today. Naturally you will want to pick the strongest form of encryption that works with your wireless network. However, the way these technologies work, all Wi-Fi devices on your network must share the identical encryption settings. Therefore you may need to find a "lowest common demoninator" setting.
More Info
3. Change the Default SSID
Access points and routers all use a network name called the SSID. Manufacturers normally ship their products with the same SSID set. For example, the SSID for Linksys devices is normally "linksys." True, knowing the SSID does not by itself allow your neighbors to break into your network, but it is a start. More importantly, when someone finds a default SSID, they see it is a poorly configured network and are much more likely to attack it. Change the default SSID immediately when configuring wireless security on your network.
More Info
4. Enable MAC Address Filtering
Each piece of Wi-Fi gear possesses a unique identifier called the physical address or MAC address. Access points and routers keep track of the MAC addresses of all devices that connect to them. Many such products offer the owner an option to key in the MAC addresses of their home equipment, that restricts the network to only allow connections from those devices. Do this, but also know that the feature is not so powerful as it may seem. Hackers and their software programs can fake MAC addresses easily.
More Info
5. Disable SSID Broadcast
In Wi-Fi networking, the wireless access point or router typically broadcasts the network name (SSID) over the air at regular intervals. This feature was designed for businesses and mobile hotspots where Wi-Fi clients may roam in and out of range. In the home, this roaming feature is unnecessary, and it increases the likelihood someone will try to log in to your home network. Fortunately, most Wi-Fi access points allow the SSID broadcast feature to be disabled by the network administrator.
More Info
6. Do Not Auto-Connect to Open Wi-Fi Networks
Connecting to an open Wi-Fi network such as a free wireless hotspot or your neighbor's router exposes your computer to security risks. Although not normally enabled, most computers have a setting available allowing these connections to happen automatically without notifying you (the user). This setting should not be enabled except in temporary situations.
More Info
7. Assign Static IP Addresses to Devices
Most home networkers gravitate toward using dynamic IP addresses. DHCP technology is indeed easy to set up. Unfortunately, this convenience also works to the advantage of network attackers, who can easily obtain valid IP addresses from your network's DHCP pool. Turn off DHCP on the router or access point, set a fixed IP address range instead, then configure each connected device to match. Use a private IP address range (like 10.0.0.x) to prevent computers from being directly reached from the Internet.
More Info
8. Enable Firewalls On Each Computer and the Router
Modern network routers contain built-in firewall capability, but the option also exists to disable them. Ensure that your router's firewall is turned on. For extra protection, consider installing and running personal firewall software on each computer connected to the router.
More Info
9. Position the Router or Access Point Safely
Wi-Fi signals normally reach to the exterior of a home. A small amount of signal leakage outdoors is not a problem, but the further this signal reaches, the easier it is for others to detect and exploit. Wi-Fi signals often reach through neighboring homes and into streets, for example. When installing a wireless home network, the position of the access point or router determines its reach. Try to position these devices near the center of the home rather than near windows to minimize leakage.
More Infojavascript:void(0)
10. Turn Off the Network During Extended Periods of Non-Use
The ultimate in wireless security measures, shutting down your network will most certainly prevent outside hackers from breaking in! While impractical to turn off and on the devices frequently, at least consider doing so during travel or extended periods offline. Computer disk drives have been known to suffer from power cycle wear-and-tear, but this is a secondary concern for broadband modems and routers.

If you own a wireless router but are only using it wired (Ethernet) connections, you can also sometimes turn off Wi-Fi on a broadband router without powering down the entire network.
Readmore »»

Autorun.inf structure and making

Introduction to Autorun.inf

When you insert a CD into the computer, Windows looks if AUTORUN.INF file is located in the root folder of a CD. If AUTORUN.INF is found, then Windows follows the instructions in this file to run a program. If you want your program, document, presentation or web page to be open, once a CD is inserted, then you need to create AUTORUN.INF file or just use our free 1st AutoRun Express utility.
Autorun.inf samples

We'll learn AUTORUN.INF structure in details later. Now take a look at the following sample AUTORUN.INF file:

[autorun]
open=Setup.exe
icon=Setup.exe,1

This sample AUTORUN.INF file tells Windows to run Setup.exe program located in the CD root folder. Also it specifies that Windows should use first icon from Setup.exe to display this CD in Explorer.
How to create Autorun.inf?

You may create and edit AUTORUN.INF file manually (using Windows Notepad) or you may use free 1st AutoRun Express utility to create your own autorun CDs with a few clicks!
Autorun.inf structure and commands

AUTORUN.INF is a text file that should contain an Autorun section. This section starts with a header:

[autorun]

and should be followed with commands. There are the following commands available:

icon=my.ico
icon=setup.exe,1

Icon command specifies an icon for the CD drive in My Computer. You may specify an icon file directly or an exe/dll file with icons inside and specify an index of the desired icon. Please note, that 1st AutoRun Express allows you to pick icons visually and copies icon automatically to the burning folder if you pick an icon outside the CD.

label=My Presentation

Label command specifies a text label that is displayed for this CD in Explorer

shell\readme\command=notepad README.TXT
shell\readme=Read &me
shell\software\command=Setup.exe
shell\software=Setup the software

Use a series of shell commands to specify one or more entries in the pop-up menu that appears when the user right-clicks on the CD icon. (The shell entries supplement the open command.)

This example shows how to add two entries to the menu (Read me - to display the README.TXT file in Notepad, and Setup the software - to start the software installation by running the "setup.exe" file.)

Any verb string (without spaces) can appear after "shell\"; "readme" and "software" were used above.

On one line, append "\command=" followed by the command you want to run. On the next line, append "=" and the text that appears in the menu. Put an ampersand character (&) before the character that should be used as the menu item short-cut key.

[DeviceInstall]

Windows XP also supports a [DeviceInstall] section in AUTORUN.INF with the DriverPath command specifying a base directory for driver file searches.

[autorun.mips]
[autorun.alpha]
[autorun.ppc]

AUTORUN.INF may have other sections for other NT/W2000 users, ie MIPS, DEC Alpha, and PowerPC.
Autorun.inf drawbacks

Major Autorun.inf drawback is that it only allows you to run programs, but not documents, HTML pages etc.

If you target Windows 2000/XP only, then you may overcome this limitation by using shellexecute command. Otherwise you can try to use the "start" command as in the following example:

[autorun]
open=start index.html

However, if you do this, Windows displays a DOS box briefly, and "start" command might not be available on some systems.

If you want to open documents, web pages etc. in any Windows version guaranteed and without flickering DOS box, then you may use free 1st AutoRun Express utility to create your own autorun CDs with a few clicks.
Why Autorun.inf does not work on my or user's computer?

Your CD users may have switched off autorun. This might be because they are concerned about viruses. Also, if they press the Shift key down while inserting the CD, AutoRun is disabled. In Windows NT4, 2000 and XP systems, only Administrators and Power Users can use AutoRun.

There is no way to force your users to use AutoRun. It is therefore good practice to provide instructions so that users know how to start your CD, eg tell them to open file index.htm in their browser. These instructions are also required if your CD might be viewed by non-Windows users.
How to disable Autorun.inf?

To test AutoRun you need to have it enabled on your computer. A registry setting can be used to disable AutoRun. Click Start|Run then type in regedit. Select Edit|Find and type in NoDriveTypeAutoRun. This value should be found in this key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer.

The NoDriveTypeAutoRun value should be hexadecimal 95 if AutoRun is enabled on all CDs, or B5 if disabled for CDs. (If you want to test AutoRun on a floppy disk, set this value to 91.) You may need to change more than one instance of NoDriveTypeAutoRun in the registry. You usually need to reboot for a new value to take effect.

In Windows 95/98/Me the NoDriveTypeAutoRun value is displayed as 95 00 00 00. In Windows NT4, 2000 and XP this value is displayed as 0x00000095 or hexadecimal 95. If you modify the NoDriveTypeAutoRun value make sure it is still in the correct format.

There are two other - uncommon - ways of disabling AutoRun. The NoDriveAutoRun registry value is in the same key as NoDriveTypeAutoRun. Each bit represents each drive, so hexadecimal 01 disables AutoRun for floppy drive A, 04 disables AutoRun for drive C, 10 disables AutoRun on E. Values can be combined, so 19 disables AutoRun on E, D and A.

If either NoDriveTypeAutoRun or NoDriveAutoRun specify that AutoRun should be disabled for a drive, then it is disabled for that drive.

Finally, programmers might like to know that AutoRun can also be disabled by the program that controls the foreground window by handling the "QueryCancelAutoPlay" Windows message. Please consult the Microsoft documentation for more details.
How to test Autorun.inf?

If you want to preview your autorun CD without actual burning, then you may try the SUBST command. This command allows you to create a virtual drive that is actually a folder on your physical drive.

Copy your autorun CD contents into the specific folder on your CD. Let's it be "C:\My CD". Then click Start|Run and enter:

subst O: "C:\My CD"

Where O: is an unused drive name. Click OK and after this command you will find a new drive O: in My Computer with the same contents as in C:\My CD folder. It should display an icon specified in AUTORUN.INF and when you double-click its icon it will autorun.

To remove substitution later please use the following command:

subst O: /d

Also, when you are using our free utility 1st AutoRun Express to create autorun cd, then you may test how autorun will run directly from inside the program.
Autorun.inf and mixed cds

Enhanced CDs contain both music audio and computer data, so they can be played on audio equipment and used on a computer. (Enhanced CDs are also known as CD Extra or CD Plus CDs.) Note that the Mixed-mode CDs also contain audio and data, but these may not be playable on audio equipment.

Note that not all Windows computers will recognise the data on an Enhanced CD, although the audio is always seen. (Windows Me, 2000 and XP usually seem to recognise Enhanced CD data, but it may be drive dependent.) Therefore, do not use this format if you want to be sure that your data is available.

If the Enhanced CD data does not have an AUTORUN.INF file, then Windows will usually start playing the CD when it is inserted. However, if an AUTORUN.INF is present, then Windows will follow the instructions in there rather than playing the CD.

The data on an Enhanced CD can only use short filenames or folder names. Long filenames will be truncated to an "8.3" form, eg "index.html" may appear as "INDEX~1.HTM".
Readmore »»

Enable/Disable Autorun

How To Enable/Disable Autorun (Windows 95/98/Me)

1. Access the System Properties Dialog. Using Control Panel: My Computer: Properties or Explorer: My Computer: Properties.

2. Select the Device Manager tab.

3. Select the CD-ROM folder.

4. Select the entry for your CD-ROM drive.

5. Select Properties.

6. Select the Settings tab.

7. Turn on or off the Auto insert notification option.

8. Select OK.

9. Select OK

How To Enable/Disable Autorun (Windows NT/2000)

1. Start RegEdit (regedt32.exe).

2. Go to HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Cdrom.

3. Edit the Autorun value to '1' to enable autorn, and '0' to disable autorun.

4. Close RegEdit

How To Enable/Disable Autorun (Windows XP)

1. Open Windows Explorer by pressing the Windows + "e" key.

2. Right-click the desired CD-ROM and select Properties from the menu.

3. Select the AutoPlay tab.

4. Select each item from the pulldown list and for the Action to perform, select "Take no action" to disable autorun, or pick the apporpriate action to take if enabling autorun.

5. Select OK.

How To Enable Autorun for Other Removable Media

Autorun can be enabled or disabled for all Removable media types, such as a floppy or Zip disk. Windows systems are configured to enable CD Notification, other removable media are by default disabled.

The System Properties User interface only exposes the CD Enable or Disable selection. The setting reflected in this dialog makes an entry in the System Registry. It is in this same location that other media types are configured.

Notes:

1. Modifiying the Registry is not for the inexperienced user. Anyone will tell you, be VERY careful.
2. The modifications made in this case use Hex not Decimal numbers. If you are unfamiliar with the Registry or the characteristics of base numbering and Hex, studying these topics prior to making these modifications is advisable.

To Modify these Registry Settings, Use Regedit and navigate to the following Key:

HKEY_CURRENT_USER
Software
Microsoft
Windows
CurrentVersion
Policies
Explorer
"NoDriveTypeAutoRun"

The default value for the setting is 95 0 0 0. Change the first byte to 91. Restart the computer to make the new setting take effect. You may have to right-click on the floppy and choose AutoPlay from the menu to see the AutoPlay behavior.
Additional Technical Info

The first byte defines which drive types to EXCLUDE from Autorun behavior. The hex value of the byte is the sum of all of the drive type values to exclude + 128.

DRIVE_UNKNOWN 1
DRIVE_NO_ROOT_DIR 2
DRIVE_REMOVABLE 4 (floppy disks and removable cartridges)
DRIVE_FIXED 8 (hard disks)
DRIVE_REMOTE 16 (network drives)
DRIVE_CDROM 32 (CD-ROMs)
DRIVE_RAMDISK 64

The default configuration excludes UNKNOWN (1), REMOVABLE (4) and REMOTE (16) which would be 16 + 4 + 1 + 128 = 149, which is hex 95. If you take out REMOVABLE you get 16 + 1 + 128 = 145, which is hex 91.

The calculation for this value is 1 + 4 + 16 + 128 = 149. 149 Decimal is 95 Hex

The new calculation is 1 + 16 + 128 = 145. 149 Decimal is 91 Hex

You may have to restart for the system to recognize a floppy or Zip as an Autoplay drive. If your floppy drive does not show a custom icon or AutoPlay in the menu when right-clicked, double-click on the icon for your computer on the desktop and press F5 to refresh the information in the Explorer window. Zips and floppies will not autolaunch when media is inserted. You must double-click their icon or right-click and choose AutoPlay from the menu.
Readmore »»

Monday, December 15, 2008

IE8 Is Great But I Uninstalled It

George P. Alexander Jr. (Software Engineer) posted 10/28/2008 | Comments (2)
So after a not-so-happy time with IE 8 Beta, I've uninstalled it and have IE7 back on my desktop. Two simple reasons why I use Internet Explorer is because 1. most corporate websites and web applications render right only under IE and 2. Web applications I develop for some of these corporations have a requirement that they should work right in IE first and any other browser is secondary.

A vicious cycle I guess.

I do think that IE8 is pretty neat and I did like it a lot. One new feature is a "web slice" and I didn't find it very amusing. When it comes to speed, I'm pretty happy with Firefox and Chrome. From a developer's perspective however, there certainly were a few things to note that would make you think twice before wanting to uninstall.
The built-in IE8 debugger tools for HTML, Javascript and CSS is pretty neat. You just can't miss the profiler for scrolling through functions easily, inferring script performance by knowing the total number of calls to a function, time spent on it, tools for graph reporting and data exporting etc. Before you had to down the IE developer toolbar to get some cool developer support but now you get all that built-in so you kind'a get that Firefox developer feel when using it (Remember when developers always loved Firefox over Internet Explorer?). It is also more error friendly than previous IE versions when reporting errors from external script files. Before, when script debugging was disabled and you enabled errors to be notified, the source of the error was usually a pain to find out since it was in most cases, always not right. Hence, you had to enable script debugging and this would cascade to all your browser sessions. Any open browser session that had regular or irregular auto-refreshes or an Ajax call (like Google homepage) with a script error would instantly pop-up with a debug prompt. This is really irritating if you've been through it a couple of times. But now this seems to be fixed with IE8. So no need to enable debugging anymore to pinpoint the source of error. Besides, I hated script debugger or having an external applications to debug my web applications as loading these external applications took an extra load of time and since debugging is something you do so frequently, it just sucks have to go through the same routine frequently.

IE8 is also CSS 2.1 and standards compliant while CSS extensions that were added from IE5 onwards have been fully depreciated to protect against browser based attacks. So no more "IE is so insecure" at least on that basis.

One small development enhancement to the XMLHttpRequest object was the inclusion of a timeout property so as to handle requests that needed to get canceled if they were unresponsive. Major add-ons were APIs for cross domain security that enable you to use toStaticHTML and toJSON for sanitizing. JSON support is now native.

These are just some of the reasons why a developer would like IE8 especially if you're a .Net developer who has to develop for IE. But what mainly caused me to uninstall the upgrade was the same old problem - frequent crashes aka instability. After installing IE 8 Beta, I noticed that uncompressing zip files to any other location except the current folder would cause Windows Explorer to crash. On the same note, one IE 8 beta session crash closes all my IE browser windows (this is true for IE7 too though so I still can't figure out the root cause. But I think the chances of this happening in IE7 is much less). I hate that especially since I'm the kind'a guy who has at the least, a minimum of 10 browser windows open. Even though I use Firefox heavily more than Chrome and IE, I need IE open for the sake of few corporate websites and also for application development.

But all these crashes started getting a bit irritating after sometime so I eventually decided to uninstall the update to IE8. I thought the crashes were somehow related but after uninstalling, I still have my Windows Explorer crashing when uncompressing files to other locations. I don't know if the IE8 upgrade did something that messed Windows Explorer from uncompressing things right. There's no specific error code I can refer too either.

One browser's loss is another browser's gain: I just installed the latest trunk from Firefox Minefield after reading a lot of reviews about it. The browsers keep coming but you'll probably need to weed out the hype from reality...

IE8 Beta 2 is great... but I'll put it on hold till it stabilizes a bit more.

Time to call it a day,

Until next time,

God bless!
Readmore »»

Checking Compatability Issues While Upgrading From SQL Server 2000 / 2005 To SQL Server 2008

George P. Alexander Jr. (Software Engineer) posted 9/18/2008 | Comments (0)
I've been asked a couple of times whether it's risky to upgrade from SQL Server 2000/2005 to SQL Server 2008 or just go for a fresh install

Well, my SQL Server 2009 RTM install was not exactly a peaceful one. I had to uninstall my instance of SQL Server 2005 Express Edition to finally have SQL Server 2008 RTM working.

From a home user's point of view such as myself who mainly installs for exploring as a developer, I think it's not a big issue. Though I haven't seen any upgrades being done, I've seen many SQL Server 2000 databases move over to SQL Server 2005 environments without any issues either.

I'm sure that from a DBA's point of view within a corporate environment, an extensive understanding and analysis will be required together with the application development team as this would have to be handled in a case by case basis. Further, SQL Server 2008 is still in RTM and corporates would be cautious till SP1 is out.
If you want to check for computability issues for upgrading from your older version of SQL Server to SQL Server 2008, there is a useful tool out there that you can download for free from the Scalability Experts. It tells you if you might have compatibility issues while trying to upgrade from SQL Server 2000 / SQL Server 2005 to SQL Server 2008. SQL Server Upgrade Assistant 2008 helps you automate a test against your SQL Server 2000 or 2005 instance for compatability with SQL Server 2008. It also verifies how queries will function after a database has been upgraded.

So if you are thinking of an upgrade from an older version of SQL Server to SQL Server 2008, you might want to run it through this tool which executes a number of test plans to make it easier for you to decide.

Though there may not be a sure shot answer, this tool should help you make the decision drastically though.

Until next time,

Happy programming!
Readmore »»

Computer data storage

Computer data storage, often called storage or memory, refers to computer components, devices, and recording media that retain digital data used for computing for some interval of time. Computer data storage provides one of the core functions of the modern computer, that of information retention. It is one of the fundamental components of all modern computers, and coupled with a central processing unit (CPU, a processor), implements the basic computer model used since the 1940s.

In contemporary usage, memory usually refers to a form of semiconductor storage known as random access memory (RAM) and sometimes other forms of fast but temporary storage. Similarly, storage today more commonly refers to mass storage - optical discs, forms of magnetic storage like hard disks, and other types slower than RAM, but of a more permanent nature. Historically, memory and storage were respectively called primary storage and secondary storage.
The contemporary distinctions are helpful, because they are also fundamental to the architecture of computers in general. As well, they reflect an important and significant technical difference between memory and mass storage devices, which has been blurred by the historical usage of the term storage. Nevertheless, this article uses the traditional nomenclature.
Contents
[hide]

* 1 Purpose of storage
* 2 Hierarchy of storage
o 2.1 Primary storage
o 2.2 Secondary storage
o 2.3 Tertiary storage
o 2.4 Off-line storage
* 3 Characteristics of storage
o 3.1 Volatility
o 3.2 Differentiation
o 3.3 Mutability
o 3.4 Accessibility
o 3.5 Addressability
o 3.6 Capacity
o 3.7 Performance
o 3.8 Environmental Impact
* 4 Fundamental storage technologies
o 4.1 Semiconductor
o 4.2 Magnetic
o 4.3 Optical
o 4.4 Paper
o 4.5 Uncommon
* 5 Related technologies
o 5.1 Network connectivity
o 5.2 Robotic storage
* 6 See also
o 6.1 Primary storage topics
o 6.2 Secondary, tertiary and off-line storage topics
o 6.3 Data storage conferences
* 7 References

[edit] Purpose of storage

Many different forms of storage, based on various natural phenomena, have been invented. So far, no practical universal storage medium exists, and all forms of storage have some drawbacks. Therefore a computer system usually contains several kinds of storage, each with an individual purpose.

A digital computer represents data using the binary numeral system. Text, numbers, pictures, audio, and nearly any other form of information can be converted into a string of bits, or binary digits, each of which has a value of 1 or 0. The most common unit of storage is the byte, equal to 8 bits. A piece of information can be handled by any computer whose storage space is large enough to accommodate the binary representation of the piece of information, or simply data. For example, using eight million bits, or about one megabyte, a typical computer could store a small novel.

Traditionally the most important part of every computer is the central processing unit (CPU, or simply a processor), because it actually operates on data, performs any calculations, and controls all the other components.

Without a significant amount of memory, a computer would merely be able to perform fixed operations and immediately output the result. It would have to be reconfigured to change its behavior. This is acceptable for devices such as desk calculators or simple digital signal processors. Von Neumann machines differ in that they have a memory in which they store their operating instructions and data. Such computers are more versatile in that they do not need to have their hardware reconfigured for each new program, but can simply be reprogrammed with new in-memory instructions; they also tend to be simpler to design, in that a relatively simple processor may keep state between successive computations to build up complex procedural results. Most modern computers are von Neumann machines.

In practice, almost all computers use a variety of memory types, organized in a storage hierarchy around the CPU, as a tradeoff between performance and cost. Generally, the lower a storage is in the hierarchy, the lesser its bandwidth and the greater its access latency is from the CPU. This traditional division of storage to primary, secondary, tertiary and off-line storage is also guided by cost per bit.

[edit] Hierarchy of storage
Various forms of storage, divided according to their distance from the central processing unit. The fundamental components of a general-purpose computer are arithmetic and logic unit, control circuitry, storage space, and input/output devices. Technology and capacity as in common home computers around 2005.

[edit] Primary storage

Direct links to this section: Primary storage, Main memory, Internal Memory.

Primary storage, presently known as memory, is the only one directly accessible to the CPU. The CPU continuously reads instructions stored there and executes them as required. Any data actively operated on is also stored there in uniform manner.

Historically, early computers used delay lines, Williams tubes, or rotating magnetic drums as primary storage. By 1954, those unreliable methods were mostly replaced by magnetic core memory, which was still rather cumbersome. Undoubtedly, a revolution was started with the invention of a transistor, that soon enabled then-unbelievable miniaturization of electronic memory via solid-state silicon chip technology.

This led to a modern random access memory (RAM). It is small-sized, light, but quite expensive at the same time. (The particular types of RAM used for primary storage are also volatile, i.e. they lose the information when not powered).

As shown in the diagram, traditionally there are two more sub-layers of the primary storage, besides main large-capacity RAM:

* Processor registers are located inside the processor. Each register typically holds a word of data (often 32 or 64 bits). CPU instructions instruct the arithmetic and logic unit to perform various calculations or other operations on this data (or with the help of it). Registers are technically among the fastest of all forms of computer data storage.
* Processor cache is an intermediate stage between ultra-fast registers and much slower main memory. It's introduced solely to increase performance of the computer. Most actively used information in the main memory is just duplicated in the cache memory, which is faster, but of much lesser capacity. On the other hand it is much slower, but much larger than processor registers. Multi-level hierarchical cache setup is also commonly used—primary cache being smallest, fastest and located inside the processor; secondary cache being somewhat larger and slower.

Main memory is directly or indirectly connected to the CPU via a memory bus, today sometimes referred to as a front side bus. It is actually comprised of two buses (not on the diagram): an address bus and a data bus. The CPU firstly sends a number through an address bus, a number called memory address, that indicates the desired location of data. Then it reads or writes the data itself using the data bus. Additionally, a memory management unit (MMU) is a small device between CPU and RAM recalculating the actual memory address, for example to provide an abstraction of virtual memory or other tasks.

As the RAM types used for primary storage are volatile (cleared at start up), a computer containing only such storage would not have a source to read instructions from, in order to start the computer. Hence, non-volatile primary storage containing a small startup program (BIOS) is used to bootstrap the computer, that is, to read a larger program from non-volatile secondary storage to RAM and start to execute it. A non-volatile technology used for this purpose is called ROM, for read-only memory (the terminology may be somewhat confusing as most ROM types are also capable of random access).

Many types of "ROM" are not literally read only, as updates are possible; however it is slow and memory must be erased in large portions before it can be re-written. Some embedded systems run programs directly from ROM (or similar), because such programs are rarely changed. Standard computers do not store non-rudimentary programs in ROM, rather use large capacities of secondary storage, which is non-volatile as well, and not as costly.

Recently, primary storage and secondary storage in some uses refer to what was historically called, respectively, secondary storage and tertiary storage.[1]

[edit] Secondary storage
A hard disk drive with protective cover removed.

Secondary storage, or storage in popular usage, differs from primary storage in that it is not directly accessible by the CPU. The computer usually uses its input/output channels to access secondary storage and transfers the desired data using intermediate area in primary storage. Secondary storage does not lose the data when the device is powered down—it is non-volatile. Per unit, it is typically also an order of magnitude less expensive than primary storage. Consequently, modern computer systems typically have an order of magnitude more secondary storage than primary storage and data is kept for a longer time there.

In modern computers, hard disks are usually used as secondary storage. The time taken to access a given byte of information stored on a hard disk is typically a few thousandths of a second, or milliseconds. By contrast, the time taken to access a given byte of information stored in random access memory is measured in billionths of a second, or nanoseconds. This illustrates the very significant access-time difference which distinguishes solid-state memory from rotating magnetic storage devices: hard disks are typically about a million times slower than memory. Rotating optical storage devices, such as CD and DVD drives, have even longer access times.

Some other examples of secondary storage technologies are: flash memory (e.g. USB sticks or keys), floppy disks, magnetic tape, paper tape, punch cards, standalone RAM disks, and Zip drives.

The secondary storage is often formatted according to a filesystem format, which provides the abstraction necessary to organize data into files and directories, providing also additional information (called metadata) describing the owner of a certain file, the access time, the access permissions, and other information.

Most computer operating systems use the concept of virtual memory, allowing utilization of more primary storage capacity than is physically available in the system. As the primary memory fills up, the system moves the least-used chunks (pages) to secondary storage devices (to a swap file or page file), retrieving them later when they are needed. As more of these retrievals from slower secondary storage are necessary, the more the overall system performance is degraded.

[edit] Tertiary storage
Large tape library. Tape cartridges placed on shelves in the front, robotic arm moving in the back. Visible height of the library is about 180 cm.

Tertiary storage or tertiary memory,[2] provides a third level of storage. Typically it involves a robotic mechanism which will mount (insert) and dismount removable mass storage media into a storage device according to the system's demands; this data is often copied to secondary storage before use. It is primarily used for archival of rarely accessed information since it is much slower than secondary storage (e.g. 5-60 seconds vs. 1-10 milliseconds). This is primarily useful for extraordinarily large data stores, accessed without human operators. Typical examples include tape libraries and optical jukeboxes.

When a computer needs to read information from the tertiary storage, it will first consult a catalog database to determine which tape or disc contains the information. Next, the computer will instruct a robotic arm to fetch the medium and place it in a drive. When the computer has finished reading the information, the robotic arm will return the medium to its place in the library.

[edit] Off-line storage

Off-line storage, also known as disconnected storage, is a computer data storage on a medium or a device that is not under the control of a processing unit.[3] The medium is recorded, usually in a secondary or tertiary storage device, and then physically removed or disconnected. It must be inserted or connected by a human operator before a computer can access it again. Unlike tertiary storage, it cannot be accessed without human interaction.

Off-line storage is used to transfer information, since the detached medium can be easily physically transported. Additionally in case a disaster, for example a fire, destroys the original data, a medium in a remote location will be probably unaffected, enabling disaster recovery. Off-line storage increases a general information security, since it is physically inaccessible from a computer, and data confidentiality or integrity cannot be affected by computer-based attack techniques. Also, if the information stored for archival purposes is accessed seldom or never, off-line storage is less expensive than tertiary storage.

In modern personal computers, most secondary and tertiary storage media are also used for off-line storage. Optical discs and flash memory devices are most popular, and to much lesser extent removable hard disk drives. In enterprise uses, magnetic tape is predominant. Older examples are floppy disks, Zip disks, or punched cards.

[edit] Characteristics of storage
A 1GB DDR RAM memory module

Storage technologies at all levels of the storage hierarchy can be differentiated by evaluating certain core characteristics as well as measuring characteristics specific to a particular implementation. These core characteristics are volatility, mutability, accessibility, and addressibility. For any particular implementation of any storage technology, the characteristics worth measuring are capacity and performance.

[edit] Volatility

Non-volatile memory
Will retain the stored information even if it is not constantly supplied with electric power. It is suitable for long-term storage of information. Nowadays used for most of secondary, tertiary, and off-line storage. In 1950s and 1960s, it was also used for primary storage, in the form of magnetic core memory.
Volatile memory
Requires constant power to maintain the stored information. The fastest memory technologies of today are volatile ones (not a universal rule). Since primary storage is required to be very fast, it predominantly uses volatile memory.

[edit] Differentiation

Dynamic memory
A form of volatile memory which also requires the stored information to be periodically re-read and re-written, or refreshed, otherwise it would vanish.
Static memory
A form of volatile memory similar to DRAM with the exception that it does not refresh on occasion.

[edit] Mutability

Read/write storage or mutable storage
Allows information to be overwritten at any time. A computer without some amount of read/write storage for primary storage purposes would be useless for many tasks. Modern computers typically use read/write storage also for secondary storage.
Read only storage
Retains the information stored at the time of manufacture, and write once storage (WORM) allows the information to be written only once at some point after manufacture. These are called immutable storage. Immutable storage is used for tertiary and off-line storage. Examples include CD-ROM and CD-R.
Slow write, fast read storage
Read/write storage which allows information to be overwritten multiple times, but with the write operation being much slower than the read operation. Examples include CD-RW.

[edit] Accessibility

Random access
Any location in storage can be accessed at any moment in approximately the same amount of time. Such characteristic is well suited for primary and secondary storage.
Sequential access
The accessing of pieces of information will be in a serial order, one after the other; therefore the time to access a particular piece of information depends upon which piece of information was last accessed. Such characteristic is typical of off-line storage.

[edit] Addressability

Location-addressable
Each individually accessible unit of information in storage is selected with its numerical memory address. In modern computers, location-addressable storage usually limits to primary storage, accessed internally by computer programs, since location-addressability is very efficient, but burdensome for humans.
File addressable
Information is divided into files of variable length, and a particular file is selected with human-readable directory and file names. The underlying device is still location-addressable, but the operating system of a computer provides the file system abstraction to make the operation more understandable. In modern computers, secondary, tertiary and off-line storage use file systems.
Content-addressable
Each individually accessible unit of information is selected with a hash value, or a short identifier with a number pertaining to the memory address the information is stored on. Content-addressable storage can be implemented using software (computer program) or hardware (computer device), with hardware being faster but more expensive option.

[edit] Capacity

Raw capacity
The total amount of stored information that a storage device or medium can hold. It is expressed as a quantity of bits or bytes (e.g. 10.4 megabytes).
Density
The compactness of stored information. It is the storage capacity of a medium divided with a unit of length, area or volume (e.g. 1.2 megabytes per square inch).

[edit] Performance

Latency
The time it takes to access a particular location in storage. The relevant unit of measurement is typically nanosecond for primary storage, millisecond for secondary storage, and second for tertiary storage. It may make sense to separate read latency and write latency, and in case of sequential access storage, minimum, maximum and average latency.
Throughput
The rate at which information can be read from or written to the storage. In computer data storage, throughput is usually expressed in terms of megabytes per second or MB/s, though bit rate may also be used. As with latency, read rate and write rate may need to be differentiated. Also accessing media sequentially, as opposed to randomly, typically yields maximum throughput.

[edit] Environmental Impact
A low-power hard-drive made with recyclable aluminum and bamboo

The impact of a storage device on the environment.

Energy

* Energy star certified power adapters for storage devices reduce power consumption 30 percent on average[4]
* Storage devices that reduce fan usage, automatically shut-down during inactivity, and low power hard drives can reduce energy consumption 90 percent. [5]
* 2.5 inch hard disk drives often consume less power than larger ones.[6][7] Low capacity solid-state drives consume less power than DRAM, because they have no moving parts.[8][9][10] Also, memory may use more power than hard disks.[10]

Recycling

* Some devices are made of recyclable materials like aluminum, bamboo, or plastics
* Easily disassembled devices are easier to recycle if only certain parts are recyclable
* Packaging may be recyclable and some companies print instructions on the box or use recyclable paper for the instructions instead of waxed paper

Manufacturing

* The amount of raw materials (metals, aluminum, plastics, lead) used to manufacture the device
* Excess waste materials and if they are recycled
* Chemicals used in manufacturing
* Shipping distance for the device itself and parts
* Amount of packaging materials and if they are recyclable

[edit] Fundamental storage technologies

As of 2008, the most commonly used data storage technologies are semiconductor, magnetic, and optical, while paper still sees some limited usage. Some other fundamental storage technologies have also been used in the past or are proposed for development.

[edit] Semiconductor

Semiconductor memory uses semiconductor-based integrated circuits to store information. A semiconductor memory chip may contain millions of tiny transistors or capacitors. Both volatile and non-volatile forms of semiconductor memory exist. In modern computers, primary storage almost exclusively consists of dynamic volatile semiconductor memory or dynamic random access memory. Since the turn of the century, a type of non-volatile semiconductor memory known as flash memory has steadily gained share as off-line storage for home computers. Non-volatile semiconductor memory is also used for secondary storage in various advanced electronic devices and specialized computers.

[edit] Magnetic
[show]
v • d • e
Magnetic storage media

Wire (1898) • Tape (1928) • Drum (1932) • Ferrite core (1949) • Hard disk (1956) • Stripe card (1956) • MICR (1956) • Thin film (1962) • CRAM (1962) • Twistor (~1968) • Floppy disk (1969) • Bubble (~1970) • MRAM (1995) • Racetrack (2008)

Magnetic storage uses different patterns of magnetization on a magnetically coated surface to store information. Magnetic storage is non-volatile. The information is accessed using one or more read/write heads which may contain one or more recording transducers. A read/write head only covers a part of the surface so that the head or medium or both must be moved relative to another in order to access data. In modern computers, magnetic storage will take these forms:

* Magnetic disk
o Floppy disk, used for off-line storage
o Hard disk, used for secondary storage
* Magnetic tape data storage, used for tertiary and off-line storage

In early computers, magnetic storage was also used for primary storage in a form of magnetic drum, or core memory, core rope memory, thin film memory, twistor memory or bubble memory. Also unlike today, magnetic tape was often used for secondary storage.

[edit] Optical
[show]
v • d • e
Optical storage media

Compact Disc (1982) : CD-R (1988) · CD-RW (1997)
DVD (1995) : DVD-RAM (1996) · DVD-R (1997) · DVD-RW (1999) · DVD+RW (2001) · DVD+R (2002) · DVD+R DL (2004) · DVD-R DL (2005)
Other : Microform (1870) · Optical tape (20th century) · Laserdisc (1958) · UDO (2003) · ProData (2003) · UMD (2004) · Blu-ray Disc (2006) · HD DVD (2006)
Magneto-optic Kerr effect (1877) : MO disc (1980s) · MiniDisc (1991)
Optical Assist : Laser turntable (1986) · Floptical (1991) · Super DLT (1998)

Optical storage, the typical Optical disc, stores information in deformities on the surface of a circular disc and reads this information by illuminating the surface with a laser diode and observing the reflection. Optical disc storage is non-volatile. The deformities may be permanent (read only media ), formed once (write once media) or reversible (recordable or read/write media). The following forms are currently in common use:[11]

* CD, CD-ROM, DVD, BD-ROM: Read only storage, used for mass distribution of digital information (music, video, computer programs)
* CD-R, DVD-R, DVD+R BD-R: Write once storage, used for tertiary and off-line storage
* CD-RW, DVD-RW, DVD+RW, DVD-RAM, BD-RE: Slow write, fast read storage, used for tertiary and off-line storage
* Ultra Density Optical or UDO is similar in capacity to BD-R or BD-RE and is slow write, fast read storage used for tertiary and off-line storage.

Magneto-optical disc storage is optical disc storage where the magnetic state on a ferromagnetic surface stores information. The information is read optically and written by combining magnetic and optical methods. Magneto-optical disc storage is non-volatile, sequential access, slow write, fast read storage used for tertiary and off-line storage.

3D optical data storage has also been proposed.
Readmore »»

Bogger

Antok Mashuri