Recursive Complexity

Thoughts and musings of a programmer and wanna be entrepreneur

Posts Tagged ‘Computers

The smartphone and the cloud…few possibilities (part 3)

leave a comment »

This is the 3rd article in a series of 3 articles talking about the use of the cloud for the smart phones. The previous 2 articles can be found here and here.

In this article I talk about how the cloud can be used to extend the storage space available to a smart phone. Smart phones of today and in the near future typically have/will have a storage space big enough to store lots of data. If you want to store lot of movies and want them readily available for viewing on your smart phone, you can store those movies locally. But that would consume vital disk space that can be used for apps or other more useful data (considering that movies are not that useful and only serve as entertainment 🙂 ).

Devices on the cloud typically have some local storage space. Now, can we use the storage space available on those devices in order to store and retrieve data ? Yes we can and the technology required would also be simple and an extension of what is already there for desktop and server systems.

Remote storage area

In the above figure, the smart phone accesses the storage space available on another smart phone, desktop, laptop or storage device that forms part of the cloud. These device that offer storage space need to have some kind of hardware or software support that enables another device on the cloud to access them and request for use of their storage area. The smart phone that accesses this storage space makes it appear as a local storage area for the user. All data transfer to and from this remote storage space is made just like it would happen for data transfers to and from local storage area. The lower levels of the smart phone operating system would take care of the steps required to send and receive the data to the remote storage area.

The concept is the same as the iSCSI, FCoE and FC technologies that enable desktop/laptop/server systems to login to and access disk area present on a remote system which is accessible. A target system has a software running on it which listens for in coming requests to access the storage space and after authenticating the requests provides permission to access the storage area. The client making the request is known as the initiator. This initiator target concept originates from SCSI protocol.

Although this process is network intensive and consumes a lot of bandwidth, it is assumed that in the future the network would we very fast and free of any glitches which makes this idea very viable.


  • Hardware or software support to make the remote storage space available for clients.
  • Hardware or software support on clients to access the remote storage area.
  • Fast networks.
  • Secure networks.


  • The smart phone may become entirely diskless. All data can be sent to and accessed from this remote storage area.
  • Critical data my be stored on other remote devices which provides redundancy and data loss protection.
  • Data can sent from one device to the other without much effort. This for example can help the user to download a move on his mobile phone and store it on his desktop. When he/she returns home, can view it easily on his/her desktop.
  • No need for mobile devices to support huge storage devices.
  • The mobile devices can become smaller and more portable as less space storage devices occupy less space.


  • The remote device that provides access to the storage area has to be running all the time. This consumes a lot of power.
  • Security is a problem as eaves dropping and spoofing are common on public networks.
  • If the network is slow, it’s a pain to wait till all data is transferred.

The smart phone in the future will be a full-fledged computing device and the network will have many more capabilities added to it repertoire. Hence, the ideas talked about in this series make sense and will be available to the user soon. This ends my 3 article series. Hope you enjoyed it :-).


Written by Vivek S

July 16, 2011 at 8:58 am

Posted in Tech

Tagged with , ,

The smartphone and the cloud…few possibilities (part 2)

with one comment

This is the second article in a series of 3 articles, about the use of the cloud for the smart phone.

As I mentioned in my previous article, the cloud can be used to bring up a mobile phone, saving memory occupied by the OS along with many other advantages as mentioned in that article.

Now let us take it a bit further and make the mobile phone boot off of another mobile phone, laptop, desktop or a storage device that is part of the cloud.

Boot from another storage device

Cloud boot

When the user switches on his mobile phone, a ROM embedded in the device is loaded in main memory. This ROM then initializes the network stack and establishes a connection to the cloud. This connection establishment is actually to the individual device which contains the boot image. However, for the end user, he is just establishing a connection to the cloud. The protocol used to establish the connection and make a request for the boot image should contain some facility to specify whether the boot image is located on a particular device or in the data center. Based on this parameter, the  cloud internally establishes a connection to this device and requests it to deliver the required boot image. This boot image is then forwarded to the end user. The protocol used inside the cloud may be entirely different from the one used for the communication between the end user and the cloud or the same, whichever is safe and convinient.


  • Special software (embedded ROM) or hardware support for the boot process in the device that serves the boot image.
  • The individual device on the cloud should be up and running.
  • Secure access to the boot image from the user to the cloud.


  • No need for data centre access which might cost money.
  • Mutlitple mobile phones, but just one OS image is necessary. This saves cost as the user has to pay for an OS image.
  • Customized OS to suit the user need.
  • One place upgrade of OS components.


  • The device needs to be up and running when the request for the boot image is made.
  • Secure access to individual devices is a tricky business as it has to be done by the person owning the device. In a data center, security is a given as people pay for the services. In this scenario, there is no money involved.
  • Special software (embedded ROM) or hardware support for the boot process on the individual devices.

This process serves a back up for the one described in my previous article. When there is no access to the data center, the user can boot his mobile phone from a nearby laptop or a desktop provided he/she has set it up to provide the boot image.

Written by Vivek S

July 3, 2011 at 5:05 pm

Posted in Tech

Tagged with , ,

What is BIOS ?

with one comment

What is a computer BIOS ? This was the question I had no answer to before I started working on it. All my earlier attempts to know what it is were fruitless as I had no understanding of the low-level features of a computer. Not the case now as I at least have a basic understanding of it and as I am working on optional-ROM, I have a hands on knowledge of what it is. I will talk about the system BIOS and give a little introduction to device optional-ROM (also called option-ROM).

BIOS stands for Basic Input Output System. Whenever you power on the system (or reboot), whatever output you see till the operating system starts executing (Windows 95, XP, Vista, 7 screen appears or Linux starts printing a lot of [ok]s) is by BIOS. This contains information about the system and the devices found on the system (size of RAM, USB devices found, CD-ROM drive type, Floppy-disk controller etc.). BIOS is a small program stored in flash memory on the motherboard (see image below). The computer vendor puts this small piece of code in the flash memory during device manufacture. When the system powers up, the processor doesn’t know what to do as the RAM is empty, but it does know where the BIOS is (This is hardwired into the motherboard logic) and starts executing it. The BIOS then starts initializing the system components one by one. This is what causes the output to be seen mentioned earlier. As it encounters devices and peripherals, it initializes them, gathers information about them and displays them on the screen.

BIOS flash memory

BIOS flash memory

You can configure the system hardware by going into the BIOS and configuring the devices present on the system. When the system is powered on, there is generally a message at the bottom of the screen or on the top right corner to press a key (F2 or DEL) to enter setup which is nothing but the system BIOS. When you press this key, the system BIOS displays various information about the devices and peripherals present which can be changed as required. Once this is done, there is generally a key to save the information and reboot, during which the necessary changes would have taken effect. See image below.

BIOS config utility

BIOS config utility

There are other advanced things that can happen during the execution of the BIOS. For this we need to know something about device option-ROM. An option-ROM is a piece of code that  resides in memory on the device and provides an interface to initialize, configure and manage the device.

The system BIOS while scanning for devices present on the system encounters a device which has option-ROM loaded on to it (This can be done in various ways and is widely known as flashing the code onto the device), it loads the option-ROM into main memory and gives control to it which can then be used to configure and setup the device as needed (The interface provided depends on the hardware vendor). The execution of the option-ROM depends on whether such an execution is allowed or required and is controlled by some parameters which can be configured in the BIOS. The option-ROM after doing the necessary tasks reboots the system if there is any change in the settings or hands back the control to the BIOS which continues it execution and finally the OS takes over.

An example use of this kind of setup is in storage area networks where ethernet adapters are flashed with a particular type of option-ROM (iSCSI, FCoE or PXE ) depending on the requirement. When the system starts up, the option-ROM is executed and the user can configure and initialize the adapter as required.

After the BIOS has finished initializing all the necessary components of the system, it loads another small program into main memory called the boot loader, common examples are GRUB, LILO etc. It hands over the control to the boot loader which then loads the OS into main memory and the OS takes control from then onwards.

The BIOS also provides low-level access to system hardware which is used by operating systems to configure and manage the device. Below are some useful links which explain BIOS in more detail.

Will try to follow this up with more about BIOS or option-ROMs. Keep reading.

Written by Vivek S

July 27, 2010 at 4:42 pm

Posted in Tech

Tagged with

TED Blog

The TED Blog shares interesting news about TED, TED Talks video, the TED Prize and more.