Posted by: ligesh | May 15, 2009

Android Operating System

Android is a software platform for mobile devices, powered by the Linux kernel, initially developed by Google and later the Open Handset Alliance. It allows developers to write managed code in the Java language, controlling the device via Google-developed Java libraries.Applications written in C and other languages can be compiled to ARM native code and run, but this development path is not officially supported by Google.

The unveiling of the Android platform on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 48 hardware, software, and telecom companies devoted to advancing open standards for mobile devices.[6][7] Google released most of the Android code under the Apache license, a free-software and open source license.

Summary:

Website
Android
Company / developer Open Handset Alliance
Working state Current
Source model Free and open source software
Initial release 2008-10-21
Latest stable release 1.5 Release 1 / 2009-04-27; 18 days ago
Kernel type Monolithic (Linux)
License Apache 2.0 and GPLv2[1]
android.com

History

Alternative logo.In July 2005, Google acquired Android, Inc., a small startup company based in Palo Alto, California, USA.[9] Android’s co-founders who went to work at Google included Andy Rubin (co-founder of Danger[10]), Rich Miner (co-founder of Wildfire Communications, Inc.[11]), Nick Sears (once VP at T-Mobile[12]), and Chris White (headed design and interface development at WebTV[13]). At the time, little was known about the functions of Android, Inc. other than that they made software for mobile phones.[9] This began rumors that Google was planning to enter the mobile phone market, although it was unclear what function it might perform in that market.[citation needed]

At Google, the team, led by Rubin, developed a mobile device platform powered by Linux operating system which they marketed to handset makers and carriers on the premise of providing a flexible, upgradeable system.[citation needed] It was reported that Google had already lined up a series of hardware component and software partners and signaled to carriers that it was open to various degrees of cooperation on their part.[14][15][16]

Android at Googleplex.More speculation that Google would be entering the mobile-phone market came in December 2006.[17] Reports from the BBC and The Wall Street Journal noted that Google wanted its search and applications on mobile phones and it was working hard to deliver that. Print and online media outlets soon reported rumors that Google was developing a Google-branded handset.[18] More speculation followed reporting that as Google was defining technical specifications, it was showing prototypes to cell phone manufacturers and network operators. As many as 30 prototype phones were reported to be operating “in the wild.”

In September 2007, InformationWeek covered an Evalueserve study reporting that Google had filed several patent applications in the area of mobile telephony.

Open Handset Alliance founded
Main article: Open Handset Alliance
“Today’s announcement is more ambitious than any single ‘Google Phone’ that the press has been speculating about over the past few weeks. Our vision is that the powerful platform we’re unveiling will power thousands of different phone models.”
—-Eric Schmidt, Google Chairman/CEO
On 5 November 2007, the Open Handset Alliance, a consortium of several companies which include Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, NVIDIA, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile, and Texas Instruments, was unveiled with the goal to develop open standards for mobile devices.[2] Along with the formation of the Open Handset Alliance, the OHA also unveiled their first product, Android, a mobile device platform built on the Linux kernel version 2.6.

On 9 December 2008, it was announced that 14 new members would be joining the Android project including: ARM Holdings Plc, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson,Toshiba Corp, and Vodafone Group Plc.

Google Chairman and CEO Eric Schmidt took some time in the official press release to dispel all previous rumors and speculation about the existence of a stand-alone Google phone.

Licensing
Since 21 October 2008, Android has been available as open source. Google opened the entire source code (including network and telephony stacks[24]), which had previously been unavailable, under an Apache license.[25]

With the Apache License, vendors are free to add proprietary extensions without submitting those back to the open source community.

Android had been criticized for not being all open-source software despite what was announced by Google. Parts of the SDK are proprietary and closed source and some believe this is so that Google can control the platform.[26][27][28][29] The Android Software Development Kit License Agreement[30] states that:

3.2 You agree that Google (or Google’s licensors) own all legal right, title and interest in and to the SDK, including any intellectual property rights which subsist in the SDK. Use, reproduction and distribution of components of the SDK licensed under an open source software license are governed solely by the terms of that open source software license and not by this License Agreement. Until the SDK is released under an open source license, you may not extract the source code or create a derivative work of the SDK.

However, Google has since announced that all parts of the Android will be released under the Apache License where applicable and under the GPL elsewhere.[citation needed]

[edit] Updates

A cupcake was placed beside Android at the Googleplex to commemorate the 1.5 release of Android.Although an open-source product, some Android software development has been continuing in a private development branch. In order to bring this software into public view, a read-only mirror branch has been created, known as cupcake. It is thought the name comes from Marissa Mayer, who has an obsession with cupcakes.[31] Cupcake is commonly misunderstood as the title of an actual update, but as stated on Google’s development website: “cupcake is still very much a work in progress. It is a development branch, not a release.”[32] Notable changes to the Android software that will be introduced in cupcake include changes to the download manager, the framework, Bluetooth, the system software, radio and telephony, developer tools, the build system and several applications, as well as a number of bug fixes.[32] The exact update time frame remains unclear.[33] Future Android releases will supposedly use alphabetically-increasing codenames named after desserts: cupcake, donut, éclair, etc.[citation needed]

On April 30, 2009, the official 1.5 update for Android was released.[34][35] There are several new features and UI updates included in the 1.5 update:

Ability to record and watch videos with the camcorder mode
Uploading videos to Youtube and pictures to Picasa directly from the phone
A new soft keyboard with an “Autocomplete” feature
Ability to automatically connect to a Bluetooth headset within a certain distance
New widgets and folders that can populate the desktop
Animations between screens
Copy and paste

Features

The Android Emulator home screen.Current features and specifications

Handset layouts The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 1.0 specifications, and traditional smartphone layouts.
Storage The Database Software SQLite is used for data storage purposes
Connectivity Android supports connectivity technologies including GSM/EDGE, CDMA, EV-DO, UMTS, Bluetooth, and Wi-Fi.
Messaging SMS and MMS are available forms of messaging including threaded text messaging.
Web browser Main article: WebKit
The web browser available in Android is based on the open-source WebKit application framework.

Dalvik virtual machine Software written in Java can be compiled into Dalvik bytecodes and executed in the Dalvik virtual machine, which is a specialized VM implementation designed for mobile device use, although not technically a standard Java Virtual Machine.
Media support Android supports the following audio/video/still media formats: MPEG-4, H.264, MP3, AAC, MIDI, OGG, AMR, JPEG, PNG, GIF.
Additional hardware support Android can utilize video/still cameras, touchscreens, GPS, accelerometers, and accelerated 3D graphics.
Development environment Includes a device emulator, tools for debugging, memory and performance profiling, a plugin for the Eclipse IDE.
Market Main article: Android Market
Similar to the App Store on the iPhone OS, The Android Market is a catalog of applications that can be downloaded and installed to target hardware over-the-air, without the use of a PC. Originally only freeware applications were supported. Paid-for apps have been available on Android Market since 19 February 2009.

Multi-touch Android has native support for multi-touch but the feature is disabled (possibly to avoid infringing Apple patents on touch-screen technology[41]). An unofficial mod has been developed that enables multi-touch.

Hardware products running Android

Released

HTC Dream (T-Mobile G1)The HTC Dream (also marketed as T-Mobile G1, Era G1 in Poland) was the first phone to the market that uses the Android platform.[43][44] The phone is part of an open standards effort of the Open Handset Alliance.
It was released in the US on October 22, 2008, in the UK on October 30, 2008, in the Netherlands and the Czech Republic on January 31, 2009,[47], Poland on February 23, 2009, Australia on February 05, and will be available in other countries including Singapore, France and Germany in early 2009.
The HTC Magic, the successor to the Dream, went on sale in Europe on 27 April 2009.The Magic is similar to the Dream but without the slide-out keyboard, instead using an on-screen keyboard. It will become more widely available in May,[55] initially exclusive to Vodafone customers in Spain, the UK, Germany and France (SFR) and non-exclusively in Italy, with more countries to follow.
Chinese company Qigi released a version of its i6 (formerly Windows Mobile) device running Android in December 2008.The device is manufactured by Chinese ODM TechFaith.
HKC Pearl, which claims to dual-boot Windows Mobile 6.1 and Android.
HKC Imobile v413, an Android build similar to the HTC Touch.

Read Further on http://en.wikipedia.org/wiki/Google_Android

Posted by: ligesh | August 8, 2008

Olympic Spirit

The project of the Beijing 2008 Olympic Games Image and Look aims at creating unique, complete and consistent visual images for the Beijing 2008 Olympic Games and Paralympic Games through architectural development and integrated application and management of the image elements of the Beijing 2008 Olympic Games and Paralympic Games. The Olympic image elements are basic elements of the project of Beijing 2008 Olympic Games Image and Look, which include the Olympic Symbol, Beijing Olympic Games emblem, its color system, theme slogan, secondary marks, mascots, Olympic Pictogram, core patterns and a set of photographic images. The Olympic Rings and the image elements of the Beijing Olympic Games, whose design has been completed, symbolize the Olympic Spirit and the concepts of this edition of the Olympic Games, and serve as the basis for the creation of the Beijing 2008 Olympic Games Image and Look. They are the carrier to showcase to the world the culture and tradition, as well as the city images and human spirit of China and Beijing. They constitute significant wealth of the Beijing 2008 Olympic Games.

Graphic elements of BEIJING 2008

The Olympic Rings The Olympic Rings“These five rings — blue, yellow, black, green and red — represent the five parts of the world now encompassed by Olympism and ready to compete against each other. Moreover, the six colours (including the white background) thus combined represent those of all nations, without exception …” [Full story]

Chinese Seal, Dancing Beijing The Olympic EmblemEvery emblem of the Olympics tells a story. The Beijing 2008 Olympic Games emblem “Chinese Seal, Dancing Beijing” is filled with Beijing’s hospitality and hopes, and carries the city’s commitment to the world. [Full story]

One World One Dream “One World One Dream”“One World One Dream” fully reflects the essence and the universal values of the Olympic spirit — Unity, Friendship, Progress, Harmony, Participation and Dream. It expresses the common wishes of people all over the world, inspired by the Olympic ideals, to strive for a bright future of Mankind. [Full story]

The Official Mascots

FuwaFuwa Designed to express the playful qualities of five little children who form an intimate circle of friends, Fuwa embody the natural characteristics of four of China’s most popular animals — the Fish, the Panda, the Tibetan Antelope, the Swallow — and the Olympic Flame. [Full story]

Pictograms

Pictograms Pictograms Named “the beauty of seal characters” and with strokes of seal characters as their basic form, the Pictograms of the Beijing 2008 Olympic Games integrate pictographic charm of inscriptions on bones and bronze objects in ancient China with simplified embodiment of modern graphics, making them recognizable, rememberable and easy to use. More>>

The Medal

The MedalThe MedalThe medal for the Beijing 2008 Olympic Games is designed with inspiration coming from “bi”, China’s ancient jade piece inscribed with dragon pattern. The medals, made of gold and jade, symbolize nobility and virtue and are embodiment of traditional Chinese values of ethics and honor, sending forth strong Chinese flavor. [Full story]

The Torch

The Beijing Olympic Torch The Beijing Olympic Torch The torch of the Beijing Olympic Games has a very strong Chinese flavour. It demonstrates the artistic and technical level of China. It also conveys the message of a Green Olympics, a High-tech Olympics and the People’s Olympics. The shape of the paper scroll and the lucky clouds graphic, expresses the idea of harmony. More>>

Beijing Paralympics Graphics

Sky, Earth and Human Beings Paralympic EmblemDubbed “Sky, Earth and Human Beings,” the emblem of the Beijing Paralympics is a stylized figure of an athlete in motion, implying the tremendous efforts a disabled person has to make in sports as well as in real life. [Full story]

Fu Niu Lele Paralympic MascotCows, symbolic of a down-to-earth, diligent, staunch and never-say-die spirit, are adopted to show the unremitting spirit of athletes with a disability in being the best they can be. It dovetails with the upbeat spirit of Paralympians and the concept of “Transcendence, Equality, Integration” of the Beijing Paralympic Games. [Full story]

One World One Dream Theme SloganIn Chinese, the word “tongyi”, which means “the same”, is used for the English word “One”. It highlights the theme of “the whole Mankind lives in the same world and seeks for the same dream and ideal”. [Full story]

Paralympic Pictograms Paralympic PictogramsThe pictograms of the Beijing Paralympic Games have adopted the creative concepts and design styles of the pictograms of the Beijing Olympic Games, while taking into account the characteristics of the Paralympic sports and the experience of the previous editions of the Paralympic Games. [Full story]

Medals of the Beijing 2008 Paralympic Games Medals of the Beijing 2008 Paralympic GamesThe design of the medals for Paralympic Games is inspired by the ancient Chinese dragon-pattern jade disc: jade disc wedged on the obverse of the medal with the Emblem of the Beijing 2008 Paralympic Games in the center. [Full story]

Posted by: ligesh | August 8, 2008

BEIJING 2008 >> Image & Look

The Olympic Emblem

The Olympic Emblem

Every emblem of the Olympics tells a story. The Beijing 2008 Olympic Games emblem “Chinese Seal, Dancing Beijing” is filled with Beijing’s hospitality and hopes, and carries the city’s commitment to the world.

Milestone

“Dancing Beijing” is a milestone of the Olympics. It serves as a classic chapter of the Olympic epic inscribed by the spirit of the Chinese nation, calligraphed by the deeper import of the ancient civilization, and molded by the character of Cathay’s descendents. It is concise yet deep inside, bringing forth the city’s gradual changes and development. It appears dignified yet bears a tune of romance, reflecting the nation’s thoughts and emotions.

In the lead up to the Beijing 2008 Olympics, the emblem will attract more and more people from around the world to Beijing and China to join the great celebration with the Chinese people.

Commitment

“Dancing Beijing” is a Chinese Seal. It is engraved with commitment made to the Olympic Movement by a country that has 56 ethnic groups and a population of 1.3 billion. While witnessing the advocacy of the Olympic Spirit by a nation with both ancient civilization and modern culture, it also unfolds a future-oriented city’s pursuit of the Olympic Ideal.

It is a symbol of trust and an expression of self confidence, standing for the solemn yet sacred promise that Beijing – the host city of the Beijing 2008 Olympic Games – has made to the world and to all mankind.

“Complete sincerity can affect even metal and stone (literally meaning sincerity smoothes the way to success).” The inception of our ancestors’ wisdom and the image of a seal made of metal and stone allow the emblem to present Chinese people’s respect and honesty for the Olympics.

The moment we earnestly imprint the emblem with the “Chinese seal”, Beijing is about to show the world a grand picture of “peace, friendship, and progress of mankind” and to strike up the passionate movement of “faster, higher, and stronger” for mankind.

Image

“Dancing Beijing” serves as the city’s foremost appearance. It is an image that shows the eastern ways of thinking and the nation’s lasting appeal embodied in the Chinese characters. It is an expression that conveys the unique cultural quality and elegance of Chinese civilization.

With inspiration from the traditional Chinese art form – calligraphic art, the character “Jing” (the latter of the city’s name) is developed into the form of a dancing human being, reflecting the ideal of a “New Olympics”. The words “Beijing 2008″ also resembles the vivid shapes of Chinese characters in handwriting, voicing in concise strokes of the countless feelings Chinese people possess towards the Olympics.

As people ponder on the rich connotations and charms of these Chinese characters, a “New Beijing” has thus been brought forward.

Beauty

“Dancing Beijing” is a favorite color of the Chinese people. The color “red” is intensively used in the emblem, pushing the passion up to a new level. It carries Chinese people’s longing for luck and happiness and their explanation of life.

Red is the color of the Sun and the Holy Fire, representing life and a new beginning. Red is mind at ease, symbol of vitality, and China’s blessing and invitation to the world.

Hero

“Dancing Beijing” calls upon heroes. Olympic Games functions as the stage where heroes are made known, miracles created and glories earned, and where every participant constitutes an indispensable part of the occasion.

The powerful and dynamic design of the emblem is a life poem written by all participants with their passion, affections, and enthusiasm. It is an oath every participant takes to contribute power and wisdom to the Olympics.

The emblem cheers for arts and for the Olympic heroes, who pass down the essence of the Olympic Spirit, which well connects sports and cultures.

Spirit

“Dancing Beijing” extends the totem of the Chinese nation. The form of a running human being stands for the beauty and magnificence of life. Its graceful curves are like the body of a wriggling dragon, relating the past and future of one same civilization; they are like rivers, carrying the century-old history and the nation’s pride; they are like veins, pulsing with vitality of life.

The intrinsic values of sports — athlete-centered and people-oriented – are well defined and upgraded in an artistic way in “the dance of Beijing.” We sing if words fail to explain it all, and we dance if the singing does not explicitly tell the meaning.

Vigorous Beijing is looking forward to the celebration in 2008 and the Olympics wait all mankind to dance together.

Posted by: ligesh | June 15, 2008

Memory Leak !

 

                          In computer science, a memory leak is a particular type of unintentional memory consumption by a computer program where the program fails to release memory when no longer needed. This condition is normally the result of a bug in a program that prevents it from freeing up memory that it no longer needs.

This term has the potential to be confusing, since memory is not physically lost from the computer. Rather, memory is allocated to a program, and that program subsequently loses the ability to access it due to program logic flaws.

As is noted below, a memory leak has similar symptoms to a number of other problems, and generally can only be diagnosed by a programmer with access to the program source code; however many people are quick to describe any unwanted increase in memory usage as a memory leak, even if this is not strictly accurate.

Consequences

A memory leak can diminish the performance of the computer by reducing the amount of available memory. Eventually, in the worst case, too much of the available memory may become allocated and all or part of the system or device stops working correctly, the application fails, or the system slows down unacceptably due to thrashing.

Memory leaks may not be serious or even detectable by normal means. In modern operating systems, normal memory used by an application is released when the application terminates. This means that a memory leak in a program that only runs for a short time is rarely serious.

Cases where leaks are much more serious include:

  • where the program is left running, and consumes more and more memory over time (such as background tasks, on servers, but especially in embedded devices which may be left running for many years);
  • where new memory is allocated frequently, as when rendering the frames of a computer game or animated video
  • where the program is able to request memory (e.g. shared memory) that is not released, even when the program terminates;
  • where the leak is happening inside the operating system
  • where the leak is happening in a system critical driver
  • where memory is very limited e.g. in an embedded system or portable device
  • where running on operating systems (such as AmigaOS) where memory may not be automatically released on termination, and if lost can only be reclaimed by a reboot

 

A layman’s example

This example, written in pseudocode, is intended to show how a memory leak can come about, and its effects, without needing any programming knowledge. Please note that this is a fictitious example.

The program in this case is part of some very simple software designed to control a lift (elevator). This part of the program is run whenever anyone inside the lift presses the button for a floor.

When a button is pressed:
  Get some memory, which will be used to remember the floor number
  Put the floor number into the memory
  Are we already on the target floor?
    If so, we have nothing to do: finished
    Otherwise:
      Wait until the lift is idle
      Go to the required floor
      Release the memory we used to remember the floor number

This program has a memory leak. When a floor’s number is pressed and the lift is already at that floor, the memory that was obtained in the second line is never given back. Each time this case occurs, more memory is leaked.

This will not have any immediate effect. People do not often press the button for the floor they are already on, and in any case, the lift might have enough spare memory that this could happen a hundred or a thousand times. However, the lift will eventually run out of memory. This could take months or years, so it might never be discovered by even relatively thorough testing.

The consequences in this case would be unpleasant; at the very least, the lift would stop responding to requests to move to another floor. If the program needs memory to open the lift door, then someone may also be trapped inside, since there is no memory available for that door to open.

The memory leak would only last as long as the program was running. For example: if the lift’s power were turned off the program would stop running. When power was turned on again, the program would restart and all the memory would be available again, and the slow process of leaking would start again.

 

Programming issues

Memory leaks are a common error in programming, especially when using languages that have no built-in automatic garbage collection, such as C and C++. Typically, a memory leak occurs because dynamically allocated memory has become unreachable. The prevalence of memory leak bugs has led to the development of a number of debugging tools to detect unreachable memory. IBM Rational Purify, BoundsChecker, Valgrind, Insure++ and memwatch are some of the more popular memory debuggers for C and C++ programs. Garbage collection capabilities can be added to any programming language that lacks it as a built-in feature, and libraries for doing this are available for C and C++ programs.

Languages that provide automatic memory management, like Java, C#, VB.NET or LISP, are not immune to memory leaks. For example, a program could continue to add entries to a list, but then forget to remove them when done. The memory manager would not know if the entry will be referenced again, unless the program does something to indicate it is no longer needed. Normally, this is done by removing any reference to the item in question. This is similar to people placing items on a pile or in a drawer, and then forgetting about them.

Although the memory manager can recover memory that has become unreachable and therefore logically useless, it cannot free memory that is still reachable and therefore potentially still useful. Modern memory managers therefore provide techniques for programmers to semantically mark memory with varying levels of usefulness, which correspond to varying levels of reachability. The memory manager does not free an object that is strongly reachable. An object is strongly reachable if it is reachable either directly by a strong reference or indirectly by a chain of strong references. (A strong reference is a reference that, unlike a weak reference, prevents an object from being garbage collected.) To prevent this type of memory leak, the developer is responsible for cleaning up references after use, typically by setting the reference to null once it is no longer needed and, if necessary, by unregistering any event listeners that maintain strong references to the object.

In general, automatic memory management is more robust and convenient for developers, as they don’t need to implement freeing routines or worry about the sequence in which cleanup is performed or be concerned about whether or not an object is still referenced. It is easier for a programmer to know when a reference is no longer needed than to know when an object is no longer referenced. However, automatic memory management can impose a performance overhead, and it does not eliminate all of the programming errors that cause memory leaks.

 

RAII

Main article: Resource Acquisition Is Initialization

RAII, short for Resource Acquisition Is Initialization, is an approach to the problem commonly taken in C++, D, and Ada. It involves associating scoped objects with the acquired resources, and automatically releasing the resources once the objects are out of scope. Compare the following C and C++ examples:

/* C version */
#include <stdlib.h>

void f()
{
    int *array = calloc(1024, sizeof(int));
    /* Do some work with array here */
    free(array);
}
// C++ version
#include <vector>

void f()
{
    std::vector<int> array(1024);
    // Do some work with array here
}

The C version, as implemented in the example, requires explicit deallocation; the array is allocated from the heap, and continues to exist until explicitly freed. It should be noted, however, that this is only an example. C has the concept of automatic storage duration, and it would be perfectly possible, for example, to declare the array as a local array of integers, which would be deallocated automatically when leaving the function.

The C++ version requires no explicit deallocation; it will always occur automatically as soon as the object array goes out of scope. This avoids the overhead of garbage collection schemes, and can even be applied to resources other than memory such as file handles, which mark-and-sweep garbage collection does not handle as gracefully. However, using RAII correctly is not as easy as garbage collection and it has its own pitfalls. For instance, in C++, if one is not careful, it is possible to create dangling pointers (or references) by returning data by reference, only to have that data be deleted when its containing object goes out of scope.

D uses a combination of RAII and garbage collection, employing automatic destruction when it is clear that an object cannot be accessed outside its original scope, and garbage collection otherwise.

 

Reference counting and cyclic references

More modern garbage collection schemes are often based on a notion of reachability – if you don’t have a usable reference to the memory in question, it can be collected. Other garbage collection schemes can be based on reference counting, where an object is responsible for keeping track of how many references are pointing to it. If the number goes down to zero, the object is expected to release itself and allow its memory to be reclaimed. The flaw with this model is that it doesn’t cope with cyclic references, and this is why nowadays we are prepared to accept the burden of the more costly mark and sweep type of systems.

The following code illustrates the canonical reference-counting memory leak.

Dim A, B
Set A = CreateObject("Thingy.Thing")
Set B = CreateObject("Thingy.Thing")
' At this point, the two objects each have one reference,
Set A.Blah = B
Set B.Blah = A
' Now they each have two references. 
Set A = Nothing
' You could still get out of it!
Set B = Nothing
' You now have a memory leak.

In practice, this trivial example would be spotted straight away and fixed. In most real examples, the cycle of references spans more than two objects, and is more difficult to detect.

A well-known example of this kind of leak came to prominence with the rise of AJAX programming techniques in web browsers. Javascript code which associated a DOM element with an event handler and failed to remove the reference before exiting, would leak memory. (AJAX web pages keep a given DOM alive for a lot longer than traditional web pages, so this leak was much more apparent.)

 

Effects

If a program has a memory leak and its memory usage is steadily increasing, there will not usually be an immediate symptom. Every physical system has a finite amount of memory, and if the memory leak is not contained (for example, by restarting the program with the leak) it will sooner or later start to cause problems.

Most modern consumer desktop operating systems have both main memory which is physically housed in RAM microchips, and virtual memory which is physically housed in secondary storage, such as a hard drive. Memory allocation is dynamic – each process gets as much memory as it requests. Active pages are transferred into main memory for fast access; inactive pages are pushed out to secondary storage to make room, as needed. When a single process starts consuming a large amount of memory, it usually occupies more and more of main memory, pushing other programs out to secondary storage – usually significantly slowing performance of the system. Even if the leaking program is terminated, it may take some time for other programs to swap back into main memory, and for performance to return to normal.

When all the memory on a system is exhausted (whether there is virtual memory or only main memory, such as on an embedded system) any attempt to allocate more memory will fail. This usually causes the program attempting to allocate the memory to terminate itself, or to generate a segmentation fault. Some programs are designed to recover from this situation (possibly by falling back on pre-reserved memory). The first program to experience the out-of-memory may or may not be the program that has the memory leak.

Some multi-tasking operating systems have special mechanisms to deal with an out-of-memory condition, such as killing processes at random (which may affect “innocent” processes), or killing the largest process in memory (which presuambly is the one causing the problem). Some operating systems have a per-process memory limit, to prevent any one program from hogging all of the memory on the system. The disadvantage to this arrangement is that the operating system sometimes must be re-configured to allow proper operation of programs that legitimately require large amounts of memory, such as those dealing with graphics, video, or scientific calculations.

If the memory leak is in the kernel, the operating system itself will likely fail. Computers without sophisticated memory management, such as embedded systems, may also completely fail from a persistent memory leak.

Publicly accessible systems such as web servers or routers are prone to denial-of-service attacks if an attacker discovers a sequence of operations which can trigger a leak. Such a sequence is known as an exploit.

 

Other memory consumers

Note that constantly increasing memory usage is not necessarily evidence of a memory leak. Some applications will store ever increasing amounts of information in memory (e.g. as a cache). If the cache can grow so large as to cause problems, this may be a programming or design error, but is not a memory leak as the information remains nominally in use. In other cases, programs may require an unreasonably large amount of memory because the programmer has assumed memory is always sufficient for a particular task; for example, a graphics file processor might start by reading the entire contents of an image file and storing it all into memory, something that is not viable where a very large image exceeds available memory.

To put it another way, a memory leak arises from a particular kind of programming error, and without access to the program code, someone seeing symptoms can only guess that there might be a memory leak. It would be better to use terms such as “constantly increasing memory use” where no such inside knowledge exists.

The term “memory leak” is evocative and non-programmers especially can become so attached to the term as to use it for completely unrelated memory issues such as buffer overrun.

 

Simple C example

The following C function deliberately leaks memory by losing the pointer to the allocated memory. Since the program loops forever calling the defective function, malloc() will eventually fail (returning NULL) when no more memory is available to the program. The address of each allocation is stored in a local variable that only exists inside the function; this address is lost when the function returns, so it is impossible to free any of the previously allocated blocks.

#include <stdio.h>
#include <stdlib.h>

void f(void)
{
     void* s;
     s = malloc(50); /* get memory */
     return;         /* memory leak - see note below */
     /*
      * Memory was available and pointed to by s, but not saved.
      * After this function returns, the pointer is destroyed,
      * and the allocated memory becomes unreachable.
      *
      * To "fix" this code, either the f() function itself
      * needs to add "free(s)" somewhere or the s needs
      * to be returned from the f() and the caller of f() needs
      * to do the free().
      */
}

int main(void)
{
     /* this is an infinite loop calling the above function */
     while (1) f(); /* Malloc will return NULL sooner or later, due to lack of memory */
     return 0;
}
Posted by: ligesh | December 12, 2007

Facts and Fiction About Blades

 PowerEdge 1955courtesy : www.dell.com

The Facts…and Fiction about blades

The first blade server without compromise – Dell delivers on the promise of high density computing with a blade server featuring the latest high performance server technologies, plus total cost of ownership and density advantages over traditional Dell 1U servers. No blade server has ever been this sharp.

PowerEdge 1955 Product Details


Blades are an Option, NOT a Mandate

Blades are an Option, NOT a Mandate

When it comes to servers, Dell’s approach is simple: provide a solution with the right platforms to address each customer’s unique needs. Helping customers solve their challenges by making IT simple is the Dell difference.

Other blade vendors have pushed “Blade Everything” agendas, focused on creating extensive proprietary lock-in architectures that ultimately benefit the vendors, not end users. Dell considers blades a natural extension of the PowerEdge server product line, and blades can be an integral part of an IT solution. But blades are not a one-size-fits-all solution for all IT problems; Dell considers blades a platform choice, not a mandate.

It’s time to ignore the marketing spin and hype from other blade vendors. IT professionals need real solutions to address IT complexity. By working with Dell, customers have a partner that can build custom solutions with the right platforms to help maximize datacenter effectiveness and simplify IT.

To hear more about Dell’s blade strategy, listen to some plain talk from Glenn Keels from Dell’s server group and resident blade expert on the Dell podcast Fact vs. fiction: Blade everything data center.

What Analysts and Press are saying about blades:

IT Organizations should expect vendors to put enormous pressure on them to adopt blade technology; however, blade server technology is not fully mature. – Gartner, Inc., Feb. 20071

We give Dell credit for cutting back on the blade hype. Too many customers have been burned – sometimes literally – by the big vendor blade pitch. – The Register, May 20072

PowerEdge 1955 Product Details

No spin, no hype

No spin, no hype: Dell PowerEdge Blades are Simpler, Faster, and Cooler

With the “Blade Everything” agenda in the proper perspective, Blade servers can be an answer, as a rapidly emerging technology, to address space constraints, reduce power consumption on a per server basis, and reduce overall management and maintenance costs. When applied appropriately blades have impressive total cost of ownership advantages and here are some facts on why Dell PowerEdge Blades are the best:

  • Simpler – Dell is the ONLY vendor that fully configures and factory tests each blade to customer specifications. In addition, Dell ships blade server in fewer boxes than other vendors. In fact, an independent 3rd party evaluator received similar orders of Dell PowerEdge blades and HP c-Class blades, the Dell blades came in 2 boxes, HP came in 78 boxes3. Dell simplifies the total ordering and implementation process from start to finish.
  • Best Blade Performance – Dell PowerEdge blades posted the best SPEChpc benchmark performance scores in the InfoWorld “Battle of the Blades” head to head comparison5. As well, an independent 3rd party comparison of Dell PowerEdge vs. HP c-Class blades showed the Dell blades outperformed HP in the SPECjbb2005 benchmark.6 Dell delivers the performance necessary for mission critical workloads.
  • Best Power Efficiency and Performance/Watt – Dell PowerEdge blades are up to 16% more power efficient than HP and IBM, according to the publicly available online calculators available from the manufacturers (see Figure 1). Also, an independent 3rd party comparison of Dell PowerEdge vs. HP c-Class blades showed the Dell Blades draw less power, and provide up to 8% better performance per watt over HP blades4. Every watt counts and Dell blades help lower utility bills and enable increased capacity.

Figure 1 – Power comparison using each manufacturers online power calculators

Blades Comparison

PowerEdge 1955 Product Details


Speeding Up Deployment and Easing Management

Dell believes that customers should not be forced to choose a systems management strategy based on their hardware vendor of choice or the form factor of a server. Why should managing blade servers be any different from managing other servers? Dell’s partnerships with industry leaders allow choice and flexibility with integration into leading 3rd party enterprise management applications and existing management infrastructures such as Microsoft and Altiris .

Physical deployment of servers can be greatly accelerated by utilizing blade servers. With individual rack servers, each server must be installed separately. With blade servers, once the time investment has been made to install the blade chassis, adding an additional server to the chassis is as simple as sliding a blade server into the chassis and powering up the blade.

Just like other PowerEdge servers, the PowerEdge 1955 is easy to manage with the intuitive suite of Dell OpenManageTM products for deployment, change management, and monitoring. Once the blade server is installed in the chassis, the server can easily be provisioned with existing tools like those from Dell, Microsoft or Altiris. A port in the front of each blade server is also available to enable USB ports for provisioning the server with external USB media like CD-ROM, floppy drive or USB key devices.

The DRAC/MC (shown below) also provides remote management of the enclosure and blade servers including power control, event log reporting, and inventory reporting. In addition, a second DRAC/MC module is available for active/passive redundancy. In addition to the DRAC/MC, the Avocent Digital Access KVM switch can enhance remote management capabilities with support for remote graphical console redirection, virtual media support, and seamless tiering into existing Dell or Avocent KVM infrastructures.

PowerEdge 1955 Product Details

Posted by: ligesh | December 12, 2007

Ubuntu Server Edition – it’s simpler than you think.

CANONICAL

Stable. Secure. Fully supported. Ubuntu Server Edition – it’s simpler than you think.

Ubuntu Server Edition provides secure installation combined with easy deployment. In fact, you can be up and running in as little as 15 minutes. 

This is made possible by Ubuntu’s totally different approach to deployment. Our packages are delivered with the configuration work done pre-install – all you have to do is select and run.

Here’s a selection of vital services that can be deployed the Ubuntu way:

  • mail
  • web
  • DNS
  • file serving
  • database management
  • LAMP (Linux, Apache, MySQL and PHP)

Built on the solid foundation of Debian, Ubuntu Server Edition has no license fees, plus you get the reassurance of expert commercial support from the people who know Ubuntu best: Canonical. Not to mention a continually growing ecosystem, built-in security, minimal maintenance, and an ever-growing community of peers and reference customers.

Free to download
Ubuntu Server Edition is free, and always will be. Our best work is available to all, there’s no ‘for pay’ edition containing extras. We believe once you have evaluated and tested on Ubuntu Server Edition, and you’re ready to deploy, Canonical Support Services is the natural choice. Simply, it means you can continue adding real value to your organization safe in the knowledge you have the world’s leading Ubuntu experts behind you.

Enjoy your Ubuntu, explore the community, feed back, get involved. It could change your business.

Ubuntu Server Edition supports x86, AMD64 and UltraSPARC T1 architectures.

Download Ubuntu Server Edition

Build your virtualization strategy on Ubuntu Server

Virtualization is changing the way businesses run applications. Ubuntu Server Edition is certified on the latest VMWare ESX meaning it is the guest OS on which you can build your virtualization strategy.

Ubuntu Server also provides Ubuntu JeOS (Just enough Operating System). This is optimized to work as the platform on which virtual appliances can be built. These appliances can then be run anywhere in your business.

Even if your business is not considering virtualization yet, working with Ubuntu means that when you do you’ll already be familiar with the tools you need.

Posted by: ligesh | November 28, 2007

20 Ways to Say NO!

I AM IN THE MIDDLE OF SEVERAL PROJECTS

  • let people know when you have accepted other responsibilities
  • no need to make excuses if you don’t have any free time
  • no one will fault you for having already filled your plate

I AM NOT COMFORTABLE WITH THAT

  • you might be uncomfortable with any of a number of issues
  • the people involved, the type of work, the morale implications, etc.
  • this is a very respectful way to avoid a sticky situation

I AM NOT TAKING ON ANY NEW RESPONSIBILITIES

  • you aren’t saying that you will never help out again
  • just that you feel your schedule is as full as you would like now
  • understanding your limits is a talent to be expected

I AM NOT THE MOST QUALIFIED PERSON FOR THE JOB

  • if you don’t feel that you have adequate skills, that’s okay
  • it’s better to admit your limitations up front
  • the best way to avoid feeling overwhelmed down the road

I DO NOT ENJOY THAT KIND OF WORK

  • life isn’t about drudgery — if you don’t enjoy it, why do it?
  • don’t be afraid to let someone know you just don’t want to
  • someone else is bound to enjoy the work you don’t

I DO NOT HAVE ANY MORE ROOM IN MY CALENDAR

  • be honest if your schedule is filled
  • “filled” doesn’t have to mean really filled
  • know when you are scheduled as much as you are willing and stop

I HATE TO SPLIT MY ATTENTION AMONG PROJECTS

  • let people know that you want to do a good job for them
  • but you can’t when your focus is too divided or splintered
  • you will be more effective if you focus on one project at a time

I HAVE ANOTHER COMMITMENT

  • it doesn’t matter what the commitment is
  • it can even simply be time to yourself or with friends or family
  • you don’t have to justify — you simply aren’t available

I HAVE NO EXPERIENCE WITH THAT

  • volunteering shouldn’t mean learning an entirely new set of skills
  • suggest that they find someone who has experience in that area
  • offer to help out with something that you already know how to do

I KNOW YOU WILL DO A WONDERFUL JOB YOURSELF

  • people often ask for help because they doubt their own abilities
  • let them know that you have confidence they will succeed
  • you are actually doing them a favor in the long run

I NEED TO FOCUS MORE ON MY PERSONAL LIFE

  • don’t be ashamed of wanting to spend time with your family
  • having a strong family is an important priority in and of itself
  • be willing to put your personal needs first

I NEED TO FOCUS ON MY CAREER RIGHT NOW

  • often, you have to focus your energies on a work-related task
  • you may have to give up some civic or community duties
  • if you don’t do it, someone else will take on the task

I NEED TO LEAVE SOME FREE TIME FOR MYSELF

  • it’s okay to be selfish — in a good way!
  • treat your personal time like any other appointment
  • block off time in your calendar and guard it with your life

I WOULD RATHER DECLINE THAN DO A MEDIOCRE JOB

  • know when you aren’t going to be able to deliver a quality product
  • the reason doesn’t matter — not enough time, wrong skills, etc.
  • whatever the reason is enough for turning a request down

I WOULD RATHER HELP OUT WITH ANOTHER TASK

  • saying no doesn’t mean that you can’t help at all
  • if someone asks you to do something you really despise, refuse
  • then offer to help with something you find more enjoyable

LET ME HOOK YOU UP WITH SOMEONE WHO CAN DO IT

  • if you aren’t available to help out, offer another qualified resource
  • helping to connect people is a valuable service to offer
  • make sure the person you refer will represent you well

NO

  • sometimes it’s okay to just say no!
  • just say it in a way that expresses respect and courtesy
  • leave the door open for good relations

NOT RIGHT NOW, BUT I CAN DO IT LATER

  • if you really want to help but don’t have time, say so
  • offer to help at a later time or date
  • if they can’t wait for you, they’ll find someone else

SOME THINGS HAVE COME UP THAT NEED MY ATTENTION

  • unexpected things happen that throw your schedule off
  • accept that you may need to make a few adjustments
  • it is temporary and you will have more time when life stabilizes

THIS REALLY IS NOT MY STRONG SUIT

  • it’s okay to admit your limitations
  • knowing what you can handle and what you can’t is a skill
  • your time will be more efficiently spent on something you do well

By Ramona Creel

Older Posts »

Categories

Follow

Get every new post delivered to your Inbox.