Well, I wrote the following article a year ago. A YEAR AGO! I’m actually amazed that I wrote such a thing. Well, so… Here it goes…
Linux, as you all know, is a free-open source operating system. Inspire of having number of advantages over Windows, Linux is still free and of course open source. Now, you might be thinking why I’m using terms ‘free’ and ‘open’ source separately. ‘Free’ means that Linux is freely available and downloadable from internet. Some of the vendors like ‘Ubuntu’ offer CDs loaded with Linux absolutely free of cost. Open source means that if you know kernel programming and mechanics of operating system, then you can actually tweak Linux and also program Linux from a scratch. That’s open source and Linux provides that flexibility. Unlike Linux, Windows is not open source. It does not allow user to modify its kernel or components. This is one of the reasons why Linux is hot favourite among young developers.
What separates them?
The main difference between Linux and windows is their build. Practically, Windows is created only by Microsoft Corporation while Linux has been created and tweaked by entire world! Why entire world? Because, it’s open source. If I have Linux and I find a bug, then I can tweak and remove that thing myself. I also tell the organization about the bug which I fixed. So, they verify it and tell their rest of the consumers about the fix. So, that’s how it all works. With windows, it is not like that. I must appreciate Microsoft’s efforts in improving windows because in new versions of windows – The Vista Series – they have put an improved version of error reporting like Problems Report and Solutions. With that you can just submit the error report. You cannot tell them how to fix that even if you know. Of course, you cannot fix grave errors in windows even if you think because it’s not open source!
Who’s better on performance?
Practically, on considering stable releases of Linux offered by several organizations like Ubuntu, Debian, Fedora, etc., no doubt Linux outperforms Windows. Windows has always been a bulky operating system taking several minutes to boot up, then a minute to get stable and so on. While with Linux, running on an average PC, booting up is a child’s play for Linux, 10 – 15 seconds is a limit. Even if ‘background processing’ indicator on mouse cursor is on, you can still get your stuff by clicking. Exploring your computer is just with double-click of a button. You’ll never find this speed on Windows!
Also, shutting down your PC is a matter of 5-6 seconds for Linux. And what’s more? Linux works on a 1 GHz PC with 128 MB RAM and even 10 GB Hard Drive!
What’s your colour today?
Unlike Windows, Linux provides a lot of customization features. It is so flexible that you can customize almost everything. From changing your wallpaper to behaviour and animation of minimizing/maximizing a window, you can change and tweak everything. Linux also provides various desktop effects – some of which even require a 3D card – which are super cool.
For Linux, wallpapers are billions, themes are millions, and yet there are thousands of programs that help even more to customize Linux. Also various types of desktop environment are available on Linux like GNOME (Most common with cool GUI), KDE (High end graphical interface), and Xfce (Fastest of all). These desktop environments not only handle the look and feel of the Linux environment but also provide you with lot of other flexibilities. Instead of trying out new desktop environments, I prefer to GNOME and its cool Compiz-Fusion Desktop effects which tweak almost all aspects of the operating system. In customization, Linux easily overcomes Windows.
This is where Linux gets outperformed. Almost 91% of the applications available in the market run on windows. 5% work on Mac OS X, 3% of it in Linux and the rest are for other OS. Windows has its roots wide-spread all over the world because it was the first OS to offer the idea of multi-tasking and a lot more new features that were not even thought of at that time. While Linux – which is not that old but still is not as old as windows – has relatively very less number of applications available worldwide. Linux is rapidly getting wide spread in the world of computing because it is a lot more flexible and offers a lot more possibilities than Windows. Linux offers its developers great flexibility of working with applications. Previously, Linux was called non-user friendly because it was difficult to operate but now that it has been tweaked and is available in several forms, Linux has removed this badge of dishonour from itself.
Organizations like Ubuntu etc. have made Linux user friendly and easy to use operating system that provides its users with number of options which makes it easy to use.
Running Windows on Linux?
Also, now you can run Windows applications on Linux. With ‘Wine’ – an application for Linux – you can run windows applications and programs on Linux. Wine uses its DLL library to run Windows applications. If you dual boot Windows and Linux, then it’ll be better. Wine uses Windows library and its own library in combination to run the application smoothly. Wine also has configuration screen where, you can select in which mode Wine should work. There are several modes available based on Windows OS Released. On my Linux, there are following modes:
• Windows Vista
• Windows XP
• Windows Me
• Windows 98
• Windows 3.0
And several others including server editions which I cannot recall right now.
Each of these modes create a separate environment for the application to run smoothly. Here, environment does not mean that your Linux look would change. You won’t even notice that! So, are you thinking of running Windows Games on your Linux? Don’t dream that! It won’t run. Games are called as hefty softwares that require large amount of resources and also they have some of functions which are accessible to them in Windows but not in Linux. However, these people are trying a lot to make each and every application of Windows run on Linux. Good luck to them!
Where’s the security?
Linux has security from viruses. Don’t think that an antivirus system has been integrated to it. It isn’t in this case. Because, Linux does not support viruses! Yes, Viruses don’t run on Linux because they find it hard to harass you while you are logged in. Surprised? Ok, let’s be frank. There’s one virus on Linux and that’s – Bliss. But just think of it. Linux has just one virus to support while Windows is entirely surrounded by viruses. Viruses for Windows – maybe billions – Viruses for Linux – Just One!! And that too is not going to do any big thing to your computer! So, here we have arrived to the point where we must say that Linux is too stout to respond to viruses. Consider a case where a burglar has entered a bank, he shows a gun, fires in the air and expects people to panic. But what happens? People ignore him! He shoots at the cashier but finds that his guns do not work against him. Bullets just fall down touching the cashier! This is the case when virus enters into Linux. Virus would try hard to do harm but Linux won’t execute any operations that virus has told. Virus will try to infiltrate your files but that also would not work because unlike windows, Linux is not having applications chained.
Little things that matter!
Yet, there are a lot of little things offered by Linux that provide great advantage over Windows. First of all, Linux has a ‘Force Quit’ feature. If you find any misbehaving application (Though you’ll rarely find) that’s taking too long to respond, you can use Force Quit. Force quit is a utility provided in Linux which immediately exits a non-responding application. So, you won’t need to wait minutes for a non-responding application to end. Sometimes, you’ll find that in windows, when an application does not respond, then your computer will also not respond. This happens because in windows, all applications are chained. When running applications are chained, they all get affected if one of them stops responding. This is not the case in Linux, In Linux, applications work independently, meaning, that they are not chained. So, if any damn application gets ‘hanged’ your computer and other applications will continue working in full swing. Second advantage in Linux, that it has an in-built archive manager. With archive manager, you can handle multiple types of archives without installing a separate program for it. Linux also has a highly advanced calculator with three extended modes which are ‘Advanced’, ‘Financial’ and ‘Programming’. Linux also comes with Password and Encryption key manager which allows you to create passwords for applications and folders. It also allows you to create encryption keys whose strength ranges from 2048 bits to 4096 bits. With that, you can encrypt archives, files and folders to ensure that they are safe. Many Linux editions also allow you to change the way login screen looks and behaviour of the boot loader and its appearance. Linux also allows you to scale CPU usage. Meaning, you can set how much of the CPU power Linux should use. This helps you a lot in saving power. Suppose, you are reading an eBook on your Linux PC during a journey, if you were using windows, and even in power saver mode, you’ll drain a lot of battery. But in Linux, it dims the display automatically. Now, reading an eBook does not require processing power. So, you can set the value to least mode. In this way, Linux will stop most of background processes which drain battery and will ensure that the battery is saved. Now, as were discussing about battery, it reminds me of an amazing feature that Linux provides. Linux has an in-built system that provides detailed information on the battery installed on your laptop. It includes details like your battery model, version, status, and vendor. These details are common in windows. Excluding these, it also tells you details about battery technology, serial number, current charge capacity of battery(in %), current charge(in watt-hour), last full charge(in watt-hour) and design charge(in watt-hour). It also provides you with information based on graphs too! I’m sure that these features are not available on windows.
If you refer to new versions of windows, in Vista line, you’ll find that they are having preview panes. The moment, you select an item, its preview (if available) is shown in the preview pane. Previews are available for pictures, music, videos and some other types. Suppose, I click a music file. If my computer or rather Windows media player has that plugin, then it will show a mini media player in the preview pane with a play button. If I click play button, it will search the plugin in Windows Media library and then it will play the file. On my VAIO BZ, windows music preview does not work correctly. For the first file I play on starting the computer, it takes a lot of time in loading the preview pane. After that it plays the file. Now, Ubuntu Linux 9.04 has something new to offer. Now, unlike windows, Ubuntu has a ‘Movie Player’ as default player. While exploring my computer, if I stumble upon a music file which I want to preview, I simply hover my mouse over it and immediately, it’ll start playing the file. But unfortunately in this technique, pausing is not possible. If I move down my mouse from that music file, the file immediately stops playing. Ubuntu also does not offer a seek bar!
Also, there’s one thing where Linux surrenders. It’s Silverlight Experience! At Windows, you have Silverlight integrated in Windows Internet Explorer as well as many other web browsers like Firefox. But, in Ubuntu (or I assume in most of Linux operating systems) Silverlight isn’t available. Yes, if you do visit a website featuring Silverlight, it’ll tell you to download an alternative version of Silverlight as moonlight but even after downloading moon light, I can’t get Silverlight experience – It still says that Silverlight is missing.
So, what do you learn from this? Most of all high-end Microsoft technologies aren’t shared by Microsoft.
For all Photoshop editors, Linux is a disappointment because there’s probably no Linux edition for adobe Photoshop.
Now, Linux also has an in built application called Disk Analyser. It is an application which tells you what folder has been eating, rather reserving your disk space. It is very useful application in that way because it lets you know what to delete to free your space. It not only tells you about your file system but tells you the ‘free space sharing’ on any other device that you connect. In this case, windows gets defeated. It’s not having an in built application for this, so, you’ll have to wander-on-the-web to get one!
I’ve heard that Linux produces outstanding graphics but I haven’t seen it in action and therefore I tell you about that so sure. But I think that it would be able to produce out-standing graphics because it’s swift. Windows and other operating system themselves allocate very high memory and therefore they have relatively less to dedicate for graphics. Whereas in Linux, this case is totally different. Linux itself uses very less of your RAM as well as your hard drive. So, it can dedicate more graphics to your games and all that stuff. This is just a guess and I am not so sure about it. Built-in games of Linux are very standard – sort of only two-dimensional and therefore, you cannot judge its actual capacity. However, some of real 3D games are available but aren’t satisfactory because they aren’t developed that passionately. I purely do not mean to discourage or hurt the Linux game developers but despite of such nice capabilities of Linux to handle the resources you won’t get any game on Linux that can compete the one on windows. This might be because the real ‘expert’ game developers are looking for money and hence they are moving towards development of games for windows as most of the high-end games in windows aren’t free. Now, you might be wondering about 3D modelling software like Maya? As of now, I haven’t encountered any such software but I am still looking for it. There must be some sort of software available on Linux. Don’t worry, you’ll obviously find one.
Speed with appearance?
This is very easy question to answer – You compromise speed, you’ll get speed. But after you use Linux, you’ll probably disagree with this. Even after using themes and effects, you’ll observe that your working speed has been little affected. Shocked? I was too but I soon discovered this myself on my computer. Of course, you might suffer from a sort of decrease in speed at first but this decrease in speed will be rather unnoticed by you unless you are using a computer that’s got a configuration which is just on the minimum system requirements of Linux. Now, if you know this, then there are different window managers in Linux. Most popular and used is GNOME. Still, there are two other types called KDE and Xfce. GNOME is for a computer user who wants both speed and appearance. KDE is for one who wants very cool appearance, mostly for high-fi users. Xfce us mostly used by users who have very low system requirements and want speed. Now, this is not always true because some users who just don’t care about appearance even after having a high-end system use Xfce. Another one, which is not a window manager (Though most of users think it is), is Compiz Fusion. It accelerates the appearance of your system and allows you to perform a lot more tweaks like changing the open/close/minimize/maximize animations, window borders, various effects and things like modifying the application switcher method. All these will be better understood by you if you use hands on approach and get at least a Live CD of Ubuntu Linux. Different window managers provide their own options of modifying the appearance on Linux while on windows? You know, you’ll have to stick to the like or not Windows own window manager. Now this is mostly attracting to users but if you consider old versions, then they weren’t attractive. But now, considering Windows Vista and Windows 7, they seem to be cool. Still, you don’t get options of really ‘modifying’ them. Don’t tell me about the ‘themes’ option. That’s of no use. If you want to change desktop background and other sorts of things without affecting the real appearance, then it’s better to do it yourself rather than depending on it.
Still thinking of Windows? Think again! Because Linux is used by huge servers and supercomputers. It’s their choice because they rely on the usability, flexibility and resource management of Linux. Shouldn’t you rely on it?
Well, they said that Mozilla firefox is the most efficient browser. I wasn’t satisfied. Hence, I went to check. I am a big fan of Google Chrome. However, I recently learnt that chrome collects browsing information. That didn’t sound good to me and hence I switched to Mozilla Firefox. On the download page, it said that it is the most efficient browser. I downloaded it, but initially I had some issues. It lagged a bit when I used it on my laptop. However, when I used it on my university’s mac (with Windows 7 installed) it was smooth. Hence I was suspicious. I had to check. I closed all applications, refreshed the page few times and fired up Mozilla Firefox and Google Chrome.
I opened up www.sciencedaily.com in both the browsers. I fired up Task Manager only to find that Google chrome had three simultaneous processes and firefox had one. This probably means that it is doing multi-threading a lot and has a lot of external handlers. It is a good practice though when you are programming something like a web browser. However, I counted the memory allocated and firefox had like 88,000 and Google Chrome had in total something like 50,000. I was surprised.
Then, to satisfy myself that Firefox is better, I opened two tabs in both chrome and firefox. In one tab, I opened the google home page and in another I opened up www.sciencedaily.com. This time, I hoped chrome to jump up. The task manager showed that chrome had four processes, one more than last time I had seen and firefox still had one process. In terms of memory, firefox allocated something like 120,000 and chrome took something like 90,000. I was even more surprised. My quick analysis at that point was that the memory print of chrome increases rapidly with increase in number of tabs while in same conditions, that of firefox increases at relatively slower rate.
In the third test, in which I seriously hoped firefox to win, I opened up four tabs as follows:
1. Tab 1: www.google.com
2. Tab 2: www.sciencedaily.com
3. Tab 3: www.bing.com
4. Tab 4: news.google.com
This time, firefox really won. Its memory print was around 143,000 while at the same time, that of chrome was around 150,000. Yayy! Victory at last!
So, well, what does this tell to average computer user? I will still be using firefox. However, if I quickly want to check something like a definition or address, I’d use chrome. However, for tab intensive stuff like research and like that, I will be using firefox.
The big O notation explains how efficient the code is. It is like measurement scale for code efficiency. If you go in details, it can become complex. However, in this post, I’ll explain how to get a rough idea of your code’s efficiency.
To roughly calculate it, you need to know size of your problem which is ‘n’ in this case. Look through your code, and analyze the loops that you have. Basically, loops are the determining factor. If your code has 100 loops (not nested) then the efficiency is O(n). No matter what the number is, if your code has no nested loops, then the efficiency is still O(n). However, if you have one single nested loop, then efficiency is n2. Nested loops decrease efficiency of code. This is simply depicted by the fact that n2 is greater than n.
To write efficient code, it should be your goal to reduce number of nested loops. To do this, the best way is to reuse values that have been previously generated. My way to do this is by using connected methods. I will be discussing more about this in next posts. You can also exit loops when you have met your aim. In this case, while loop is preferred but if you have more than one condition, you should exit the loop when they are met just to save iterations.
If you wish to know more about the big O notation, read the article written by Rob Bell