There was an error in this gadget

Wednesday, February 16, 2011

Why Linux ?

Operating System is a piece of software that makes computer useful, it acts as an interface between computer and the users, it is responsible for talking to different hardware,chipset, and by providing set of interfaces inform of API to application program, allows them to use these resources, operating system might have graphical shell which allows one to use graphical menus, icons etc to perform different operations or it might have text based shell , as was the case with UNIX or MS-DOS. The heart of operating system is its kernel, and Linux is the name of kernel which was created by a Finnish student Linus Torvalds as part of his masters thesis in 1993 and has taken computer world by storm.

Linux is somewhat similar to UNIX, which has been around for close to forty years and hence Linux has very similar interface, system organization, tools and more importantly inherits many security features which has made UNIX such a robust and powerful operating system. There is a misnomer though that Linux is the name of the operating system, however, it is somewhat wrong, there are host of other tools and utilities which work with Linux kernel that makes the operating system and GNU Tools is a critical part of it, hence, it is more precise to call Linux operating system GNU/Linux.

The best thing about GNU/Linux is unlike Windows which is owned by an organization and is available commercially, is that GNU/Linux is open-source and available free of cost, which means anyone can see the source code of the operating system, and if has enough skill contribute to its development. They can take Linux kernel, add new features and if they want they can market it.

There are host of companies from Likes of Google to HP who are supporting GNU/Linux, Android which runs on most of Smart phones and tablet today uses Linux kernel at its heart , similar is the case of upcoming Web-OS which is operating system for upcoming tablets from HP. In Universities, most of the research happens on Linux as platform of choice as there are host of open source libraries on Linux which allows one to do all kind of calculation, simulation easily and the overall eco-system of software and libraries on Linux promotes this.

Rather than going into technical details of Linux operating system, I am going to concentrate on some of the features that make it such a robust operating system and an ideal choice for use on Desktop Computers -

(a) Security -

Security is essential today, when we are connected to Internet 24x7, with whole host of malicious malware/spy-wares waiting to steal your personal information. Viruses, Spy-wares, Malware and hassle of removing them from system is something not very new to Windows user, all the windows user irrespective of their level of expertise have to deal with them, and even if you have latest antivirus one cannot say deterministically that the system is adequately protected and will not be infested with virus.

GNU/Linux provides a easy way out, the overall architecture of Linux is such that its difficult for viruses to infect Linux computers, all the users do not have permission to modify system files, there are different permission and groups which restrict access and most importantly most of the source-code for applications(including the kernel) is available online and hence is under immense scrutiny and hence bugs and potential security loop-holes are fixed quickly as compared to other proprietary operating system. There are malicious programs on Linux, but they are extremely rare, few and in general its very difficult to get Linux machine infested with malware.

(b) Cost of Ownership and Variants

GNU/Linux is free and open-source, this means anyone can download and Install GNU/Linux based distribution off Internet without having to pay a single penny, further one can modify existing Linux distribution , add customization, packages etc and distribute the modified version.

This is one reason why we have hundreds of different GNU/Linux distribution, each customized to serve a particular purpose, we have GNU/Linux distribution which have size ranging from 50MB to couple of Gigabyte, some of these distributions are targeted at consumers while others are optimized for use on Servers. There are many variants of GNU/Linux distribution, providing multitude of choice for user to pick from depending upon his needs.

(c ) User- Friendly

This was one area where GNU/Linux lagged traditionally , but there has been tremendous amount of work that has gone into making GNU/Linux distributions user friendly. Today most GNU/Linux distributions come with graphical shell which is (if not better) as user friendly as Microsoft Windows or Mac OS. There are hundreds and thousands of application that can be installed with few clicks, almost all the popular file and media formats are supported on GNU/Linux, and further involvement of companies like Google, Intel, HP into the development process has hastened the availability of quality applications on GNU/Linux operating system.

(d) Amazing Platform for Learners

GNU/Linux was created by hacker, it is developed by programmers, some working part time for sheer joy or some employed by companies like Google, RedHat, Intel etc to develop and make GNU/Linux better. Needless to say, it is amazing platform for Programmers. Further, being open source and being closely related to UNIX, makes the entire ecosystem of GNU/Linux to be amazing platform for students , researchers and people wanting to learn.

In most universities, most of simulation, programming is done on Linux platform, the availability of quality libraries to do all kind of things from doing basic algebra to signal processing etc free of cost with source code to hack into, fosters this.

(e) Relatively Simple to Try and Test

There was a time when it was extremely difficult to install and try GNU/Linux, one had to use cryptic installer to install Linux and there was additional risk of losing data, in case something goes wrong. Things have changed to a great extent over the past few years, its extremely simple these days to try and test Linux distributions. One can even test Linux without installing it onto the system, by using Live CD, where we boot entire system from CD/USB or we could install Linux without partitioning onto a Windows drive , in a way similar to how any conventional Windows application would be installed.

I will reserve instructions about how to Try and test GNU/Linux for a future post.

In short, GNU/Linux is an amazing operating system for people working on wide-spectrum of things, we have GNU/Linux distribution that work on extremely low powered micro-controllers, to distributions that work on Smart Phones to being used on Servers and Defence Equipment. Further, it is an excellent platform for students and provides host of utilities which could be used in academic environment, further being relatively secure from viruses and malware, having hundreds of application, being user-friendly makes it an ideal replacement for Windows for desktop usage. I have seen GNU/Linux evolve over the past eleven years and it is only going to evolve further and become more popular, will you be switching to GNU/Linux ?

© 2011, Ambuj Varshney
The Author is a senior undergraduate at Dhirubhai Ambani Institute of Information and Communication Technology, Gandhinagar and works primarily on Wireless Sensor Network and Embedded Systems and has been using computers for close to two decades and is a proud open-source supporter and has been using GNU/Linux for close to 11 years and maintains a fairly popular blog about GNU/Linux.

Friday, February 4, 2011

Wireless Sensor Network : Interconnecting our Physical World

There has been tremendous growth in technology over the past few decades, in particular computers have evolved at exponential rate ( Moore’s Law states that number of transistors on chip will double every two years and hence the processing power of chip, for over 40 years this law has been true). I still fondly remember my first computer close to two decade back, it was IBM PC XT running at princely 4 Megahertz CPU Clock, It did not have hard disk and we had to switch 5 and quarter inch big disk in and out of drive to execute programs, there was no mouse, display was green coloured, a far cry from present day computer and days Internet where we have information with click of mouse. Did I mention this computer did not have mouse or to be more precise did not have graphical user interface and one had to type in cryptic command to execute applications.

Technology has evolved at such an astonishing rate that we find microchip everywhere, from washing-machine which are intelligent enough to adjust spinning parameters based on load, moisture to microwave ovens and refrigerator connected to Internet( these appliances are perhaps more powerful than my first computer!) or perhaps smart-phones, the likes of Google Android based devices and Apple iPhone which are computer in themselves, more powerful than computers we had couple of years back and yet small enough to fit into pocket. These devices allow you to watch High Definition movie,listen to music for countless hour, it is baffling to think that a decade back we used Tape Recorder and cassette players. Rapid miniaturization and cost of components going down has been huge factor that has facilitated this.

Similar to microchip, use of sensors has become widespread as well, sensors are devices that convert physical phenomenon such as temperatures, light , humidity, pressure etc to electrical signals, so they can be processed and made use off.Today we find sensors in almost everything imaginable from shoes to industrial units to mobile-phones ( for instance iPhone has sensor accelerometer which measures tilt of device and changes orientation accordingly).

The convergence of low-cost,low powered micro-controllers with different sensors has opened a specific field of Wireless Sensor Network, Wireless Sensor Network consists of number of small devices with low powered yet powerful microprocessor ( as is found in General Purpose computer) with host of sensor which sense environmental factors and make intelligent decision. These devices have been used from things like Wildlife monitoring to finding water on moon or perhaps improving patient health-care. There are no bounds to possible application of this technology, which is growing day by day, rather than going into technical details of these nodes , let me explain concept of Wireless Sensor Network with these examples.

I have been working on a Wireless Sensor Project to facilitate Wild Life researchers. Census of tigers is a big problem, in general census of any wild specie is difficult as the method has to be such that it does not disturb natural setting of animal, further one has to be careful while dealing with wild animals. Tigers are getting extinct and census becomes ever more important, one method employed by wild life researchers to count tigers is to use distinct stripes on body of tiger, each tiger has a different stripe which allows one to differentiate between tigers and count their number, getting clear images thus become important.

Wild life researchers have used traditionally normal digital camera with some switch like mechanism to trigger the camera, this has been inefficient as well it is difficult everyday to go and fetch images. Wireless Sensor Network nodes can be used in such a scenario, with a radio to allow for communication wirelessly, this allows wild life researchers to find information about tigers real-time and store hundred and thousand of images as well as using multiple deployed nodes, get more correct information about tigers movement.

Another upcoming area of research is application of sensor network for medical application, for instance researchers at Harvard University’s sensor network lab are working on creating a hardware platform for aiding in research and treatment of diseases like epilepsy or Parkinson disease by having sensor network nodes equipped with different sensor like motion sensor accelerometer or EMG sensor and getting real-time medical data from patients to aid in treatment in these disease. For instance, in case of epilepsy seizures can happen anytime and patients often do not have control , they shake profusely, having number of nodes with motion sensor on body of patient could inform the medical staff/relatives/friends of patient about seizure , so medical aid can be given quickly. Wireless Sensor Network could be used effectively for continuous monitoring of patients vital parameter to improve medic-care.

Data Centers and Server Farms is another area where sensor network is being used extensively, Imagine server farms of Google, Facebook or any other cloud based service provider, where we have hundred and thousand of servers running 24x7. Computers are mean machine, they consume huge amount of energy and produce tremendous amount of heat. Wireless Sensor Network help in reducing amount of energy consumed by keeping track of fluctuating energy requirements, overheating and giving vital real-time information which can be used to optimize energy consumption thus saving money and increasing overall reliability.

There are many other possible applications of wireless sensor network, it has been used from Volcano monitoring to detection of intrusion to deployment in battle field to detect enemy combatant to detection of landslide. They are slowly invading our lives, we have intelligent appliances and in future these appliances will talk to each other, augmented reality is another possible area where sensor network could influence our daily life or possibly body sensor network for applications from monitoring vital parameters to giving input to computer, in reality possible application of wireless sensor network is limited by our imagination.

© 2011, Ambuj Varshney
The Author is a senior undergraduate at Dhirubhai Ambani Institute of Information and Communication Technology, Gandhinagar and works primarily on Wireless Sensor Network and Embedded Systems and has been using computers for close to two decades and is a proud open-source supporter and has been using GNU/Linux for close to 11 years and maintains a fairly popular blog about GNU/Linux.

Tuesday, January 25, 2011

Opencourseware : Role in Indian Education System

In India we have engineering colleges and Universities springing up like mushrooms, In suburbs of Delhi, its not difficult to find huge hoardings of engineering colleges proclaiming to be the best, giving quality education stopping short of offering moon, you don't need to be smart to guess quality of education imparted in these universities and colleges. Its not difficult to find people having Masters degree involved in teaching at undergrad level and infact you will find many who teach at undergrad level in these universities and colleges have highest degree which is bachelors, Even in some government run colleges , its difficult to find sufficient number of Phd(s) in department, leave alone debate about quality of Phd(s) coming out from the Universities in India and their involvement in scholarly research. This appalling to say the least.

Undergraduate education is probably one of the most important phase of life for a student, In India probably this is the time when most people move out of protective boundaries of their home and start living on their own, they make new friends and most importantly learn things they might do for rest of their life or atleast spend a significant amount of time doing in their life. This makes education imparted at this stage, the most critical component.

Having good professors, teacher who could infuse spirit of learning and research, having a system which encourages one to think out of box, to think about learning things out of interest rather than following the Indian rote way of learning which is preached at school level, an examination system that encourages learning and is transparent and a system which is free from politics and corruption becomes very important. An educational system that infuses ethics in students is probably the most important yet neglected part. We cannot beat china by copying and imitating what US does but by innovation, research. I from my example know that having a good professor to help you, guide you goes a long way to develop interest in complex subject,it goes a long way to unravel the complexities involved with higher division courses.

So considering the shortage of quality Phd(s) in the country, or infact shortage of Phd in the country and huge imbalance between number of Phd(s) available and number of educational institutions- what can we do to reduce this gap ?

I will not go about changes that can be made to educational institutions, I cannot comment on policies government should make, I am bit too naive to make these comments.

However, in this age of connected world, where we can easily download the latest IEEE or ACM journal or paper off the net, or we can access resource about research happening across the globe, there are simple steps that could help improve this situation initiatives like Opencourseware is can play an Important role.

MIT started Opencourseware a decade back, initially they did trial run and released few lecture videos and course-notes, however it proved to be major hit and subsequently they released whole plethora of course-notes, student notes, lecture videos, homework , assignment , exams and other resources. The list of open educational content available from the leading tech university in the world is mind boggling. MIT started this and inspired many schools to release their version of opencourseware, their whole classroom session for entire course available online and is probably the best resource for some one having no access to high quality faculty to learn on their own.Even our very own IIT(s) have released under NPTEL-HRD scheme released tons and tons of video lectures, notes etc.

I come from a Information and Communication Technology background, I have interest in Computer Science with Minor Interest in Signal Processing and Electronics, I have personally used these courses and found them to be extremely useful, for me I have used them as a resource to revise some of the concept learned in class or learn new things ( for instance I found Psychology lectures from Yale to be absolutely amazing! ), learning from some of the best people in the world even if it mean spending time infront of laptop is amazing experience. Some of the T-Schools in India with faculty crunch could use these resources to improve learning.

I have compiled list of some of the video lectures covering all the topics defined in ACM outline of computer science, If one deems one can take all the Computer Science courses online by following these. I have further added some electronics course, as well as link to some opencourseware from around the world.

Open Course Ware -

Yale :
MIT Open Courseware :
UC Berkeley webcast :
India's NPTEL HRD Youtube Channel :
Stanford SEE :

Introductory courses -

1. Programming Methodology (Stanford)
2. Programming Abstraction (Stanford)
3. Programming Paradigms ( Stanford )
4. Structure and Interpretation of Computer Programs ( UC Berkeley)
5. Discrete Mathematics ( SUNY Stony Brooks )
6. Introduction to Computer Science using Python (MIT)

Compilers and Programming Languages
6. Compilers ( UWashington)
7. Programming Languages ( UWashington)
8. Programming Languages (IIT)

Algorithms, Networking , Data Structure and Operating Systems,
9. Operating Systems (UC Berkeley)
10. Introduction to Algorithms (MIT)
11. Design and Analysis of Algorithms (IIT)
12. Data Structures and Algorithms ( UC Berkeley)
13. Data Structure ( IIT)
14. Computer NEtworks ( UWashington)
15. Computer Networks (IIT)

Advanced Topics

20. Machine Learning ( Stanford)
21. Wireless Sensor Network ( Some german university)
22. Software Engineering (UC Berkeley)
23. Machine Structures ( UC Berkeley)

Signal Processing and Electronics

27. Structure and Interpreation of Signals (UC Berkeley)
28. Signals and Systems (UC Berkeley)
29. Digital Signal Processing (UC Berkeley)
30. Digital Image Processing ( UC Berkeley , IIT , IIT 2)
31. Basic Electronics ( UC Berkeley)

In India where quality education at undergraduate and masters level is still a dream, open courseware could prove to be the most affordable solution to improving the quality of our educational institutions. We need to take serious steps to improve the quality of education in India, if we want to be known as a economy to reckon with in the 21st century, we need to focus on higher education (along with basic education) in particular there has to be increase in spending on Research and Development, there has to be environment to support innovation in universities and there has to be enough incentive provided by government to attract the best and the brightet students to pursue research in India.

- Ambuj Varshney

Ambuj Varshney is a senior undergraduate at Dhirubhai Ambani Institute of Information and Communication Technology, Gandhinagar, India with interest in Embedded Systems, Wireless Sensor Network and is a Linux Aficionado and has been using GNU/Linux for over 11 years and blogs at