Search This Blog

Monday, November 24, 2014

Is Linux for Gamers? OH YES IT IS !!!

What if you are a Gamer?

What if you like playing games? Is Linux the right OS for you? Well that is a tricky one, It all depends on how you play our games. If Steam is your thing then I can say now Linux also has a good collection of Games(700 and counting) available for the platform. So it should not be so much of a problem to play your Linux compatible Steam games under Linux. Valve in fact has based its Steam OS on Linux, on Debian to be precise. In addition to this we also have Wine which is a compatibility layer that allows Windows Programs/Games run on Linux. In fact I am the maintainer of a couple of games in Wine HQ. NFS most wanted and NFS Hot Pursuit 2010. I play them under wine and it works as good as it works under Windows. Not only that, MS office can also be run Under wine, there is a huge collection of Games and Productivity software which can be successfully under wine. There are commercially available products like Crossover which helps running windows applications under Linux. Then there is Playonlinux which is a free and opensource and is a great way of running your windows programs under Wine. 

Although things are way better now with games on Linux, games can always be tricky on Linux, there are a few Caveats. If you work around them then gaming can be fun.

If you are running 64 Bit GNU/Linux, you are in for more troubles that on the 32 bit GNU/Linux. Most of the Games will run with free and open source drivers for your video card but not all. You need the proprietary driver for your graphics card. I will explain both of these issues now.

64 Bit GNU/Linux poses issues with Games especially under Wine. While playing on Steam, Linux there are almost no Issues. Even if there are there is enough support available online and you are sorted in no time. However with WINE it is altogether a different Case. In case of wine, It requries complete 32 bit support. All required 32 bit libraries have to be installed. In most cases it is done automatically, however some distros have this problem, inspite of including the liraries games won't work. Not that there is a problem with the distro, it is most of the time related to the way wine works and how the libraries were packaged by the distro, some distros don't focus that much on Game play like OpenSuse. I love OpenSuse so much however i was never able to get my WINE games or Steam Games run at all on this distro. On the other hand 90% of the Ubuntu Derivatives have good support for wine and Steam. Games run well for most of the time, Arch and its derivatives also have good support. Gentoo is the ultimate as you compile everything from Scratch. My general experience has been good with ARCH UBUNTU AND GENTOO and their derivatives and worst with rpm based distributions. 32 bit libraries and the packaging of wine are always very Important.

OK the next most Important issue which in my mind might cause users (Gamers)to switch distros. Let m explain. If you need proprietary divers on your GNU/linux box, you need to be within the specified versions of Xorg Server and Linux Kernel. You need to look for a distro which is within the specified versions. This reduces your choice to a limited Options because most of the times, these requirements are available only on the LTS versions of Ubuntu or Cent OS Debian Stable etc. In other scenario, your distro might have to patch the driver to work with latest Kernel and Xorg server. Bleeding Edge distros like Arch have the AUR where people patch the driver and there are third party repos as well where patching of the proprietary driver happens. This works fine if the distro has done it for you.

So In my mind Gamers need to be a bit more cautious with Linux. It is just a few basic things that one needs to take care of and there is no problem. Linux ecosystem is very dynamic in nature. Changes flow from upstream to the distros very quickly. Development has a very fast pace. Distributions like ArchLinux is a great example. One needs to understand one's needs first and then choose the distro. Gaming on Linux is real fun as the platform is very stable and secure. However there are a few problems as well. With a little patience we can overcome all issues. It is very Important to understand this if you are a Gamer. It can greatly reduce your troubles.

My recommendation is to use the LTS versions of Ubuntu if you are a Gamer and need proprietary drivers. Otherwise if you use only Open Source Drivers any other distro should be good enough. It is strictly my personal opinion I am not trying to Imply Ubuntu LTS is your only bet, Any distro is good enough, however setting up Ubuntu LTS is easier and proprietary drivers are easily available and are easy to install.

There is an increasing number of Games being developed for Linux which you can install directly on your Linux Box, Examples are 0.AD and Xonotic. These are some great games we all would appreciate.

Hope you liked the post,

Please do comment and share your feedback.

Wednesday, November 19, 2014

Choosing a GNU/Linux Distribution

Choosing a GNU/Linux Distribution

Choosing GNU/Linux over other Operating Systems is not a difficult decision to make in itself. The merits are endless, especially if you want something for a server. Even on the Desktop side of things choosing Linux can be your ticket to complete freedom and total control of your desktop. The performance, stability and security are the three USPs of Linux. You can keep your machine running for ever and never have to face any slowdown or need to reboot unlike some other proprietary operating systems. Linux is fast, I mean really fast, Your logon does not take as much time as in takes on some other operating systems. Linux is inherently secure so you don't need an antivirus. These are just a few points that any Linux user or Admin can tell you.

The real trouble starts when you take your first step towards Linux. There are various reasons for that. One of the most important reasons is that the as a Computer User, You carry with you the specific knowledge and habits of using your previous operating system. This may not be similar to Linux, and it can be frustrating at first to start using your computer the Linux way. Old habits die hard and one needs to exert a lot sometimes to learn something Like Linux. So the key is to prepare yourself for the learning. Learning is a part of using a computer all Operating Systems have a Learning Curve and so has Linux,this should not be a showstopper at all.

There are only three most important considerations in my mind which are like the must to have in any Linux Distro if you are new to Linux. 

1. Desktop Environment.

2. Package Management/Add-Remove Software
3. Out of the box experience.

1. Desktop Environment. 

This is the single most Important thing that will drive away most of the users from Linux. There is a huge variety of Desktop Environments available in Linux. It is always good to consider the Desktop Environment as the First thing to think about. The Desktop Environment is your single point of Interaction with the GNU/Linux System. The desktop environment you choose has to be something that you can navigate easily. It also must have enough tools to easily customize and personalize the environment. It must be responsive and resource usage should not be too much. In addition to this the workflow must be simple and must not get in the way. So how to choose ?

Go for something which utilizes the navigation techniques of your current OS to the best, don't look for 100% match as it is not possible, Try something that looks and feels familiar.Keyboard shortcuts should work for most part. And Looking for Applications must not be a pain. My recommendation, especially for people coming from Windows Background.

1) Zorin OS (Based on Ubuntu)

2) Linux Mint (Based on Ubuntu)
4) Netrunner (Based on Ubuntu)

1 Zorin OS is on top on my list as it resembles Windows 7 to the best. Menu is neat the  panel is matching and it is perfect for users moving over from Windows as it feels like home. It just feels like Windows, However under the hood this is 100% Linux. Based on Ubuntu. The Zorin Desktop is my first choice for Introducing anyone from Windows to Linux as far as Desktop Environment is concerned. The experience is fluid and matches the existing workflow, Although the Super Key/Windows Key does not launch the menu by default, But everything else resembles windows 7.

2 Linux Mint  is my second choice. (The Cinnamon version of Linux mint). This may not look like Windows exactly, However has the same functionality as far as menu and panel are concerned. Most Windows Keyboard Shortcuts work fine. Super Key /Windows Key launches the menu. Looks and feels like home as far as the panel and the menu is concerned. Low on resources and great functionality.

3) Netrunner is my third choice. It features a customized KDE desktop, Which also is very similar to the windows ways of doing things. It has a panel and Menu like Windows 7. It is very customizable and provides you a lot of features. This distribution is nicely themed and the Super/Windows key launches your Menu which is categorized as you might have expected. Not only this but the choice of fonts used is also great and gels well with the overall theme of the Desktop.

2. Package Management/Add-Remove Software. 

This is one thing that can be intimidating to some users. After overcoming the initial challenge it is the second most important. Users need the freedom to install and remove software from their computers and need that to happen in a very easy in intuitive way. The Linux Distribution for Beginners must have this quality. It must provide easy access to software and even easier ways to add and remove software. This is where the package management capabilities of your Linux Distribution come to play. This is very Important, and for that reason. My choice of GNU Linux Distributions again remains in the same order.

Zorin Linux Mint and Netrunner are based on Ubuntu, They all have almost all major repositories enabled for most software by default. All of them provide a nice Software Center for easy access to software, The software centers with these Linux distributions provide easy ways to remove software as well. Zorin uses the Ubuntu Software center whereas Mint has its own and Netrunner Uses Muon Discover which is also great. In short I would recommend to new users only Derivatives of Ubuntu as far as software management is considered.

3. Out of the box experience. 

Out of the box experience is also very very Important aspect for any GNU/Linux OS as far as adoption by common folk is concerned. Out of the BOX experience is what you get immediately after installing the System.The OS has to be production ready out of the box, It must have all required codecs, flash and all the great software for productivity use. A decent collection of Browsers, Media Players, Chat software, Office Suite, IRC Client. Steam. etc.. Depending upon the needs of an Individual. Flash must work out of the box audio and video playback as to be flawless and on top of it file Sharing must work out of the box to provide highest levels of out of the box experience. File sharing is some Important because it is so easy on Windows, and if we wanted to share something on the network, it must not be a pain in the neck.

Zorin OS only lags in terms of the codecs that it uses, If you did not select install Restricted extras during install, It might prompt you while you play videos or music and you can install easily. Otherwise it has better software selection out of the box.

Linux Mint and Netrunner on the other hand are 100% ready to go out of the box. Everything just works.In addition to above, all three of these are easy to install as well.

If you are new to linux I guess you could use this post to choose a GNU/Linux distribution.

Please do comment and share your feedback.

Monday, November 17, 2014

What s so special about Gentoo?

What is so special about Gentoo ?

Well, Like I have already said I use Gentoo for my own reasons. Today I am going to share with you the reasons because I which I use Gentoo. Gentoo is a GNU/Linux distribution which is not for everyone, reason is simple it is source based and is too difficult to install. I mean if you are new to Linux Gentoo is definitely not for you.

If you have spent some time in Linux world and are comfortable using the Terminal and command, you will find Gentoo a bit less intimidating. In my eyes Gentoo Stands for freedom. Out of all GNU/Linux distributions Gentoo is most flexible. It has some great tools for managing the system. The package manager is very powerful. The documentation is great, Live Chat support is fantastic. Forums have solution to more than 90% of all issues.

In my opinion at the heart of all Linux Distributions is the same Linux Kernel. That would be so true if we all downloaded the kernel directly from the website. That is however not true, each and every distribution does some or other tweak to the Vanilla Kernel to suit their needs. So every distribution ships the kernel with a few tweaks. This is true of Gentoo as well and I must say that after sing Gentoo for a long time now, the kernel they ship for the desktop is great. They also have hardened kernel which has some more tweaks to make it even more secure.Like I said, in my eyes Gentoo stands for the ultimate freedom and choice. Gentoo is the name of the fastest Penguin in the world. This kind of implies the message, Gentoo aims to be fast and responsive which it is indeed.

Gentoo is a source based distribution

Gentoo is a source based distribution. This means that every single program you install and use on a Gentoo system is to be compiled on your on System and you have the freedom to see the source code and not only that you can modify every single feature of the Program, Courtesy of the USE flags. Source code is the default way of distributing Open Source software. If you go to and download the recent version of Linux Kernel from there, you will see that you do not get an executable, you rather get the source code,you could use any text editor to view the source code and understand it if you know C.

Gentoo has a very powerful package management framework called as Portage, Portage tree contains the software packaged by Gentoo Developers. When I mean packaged, i mean arranged in a specific format called a Ebuild which the package manager can understand. This is still source code form not binary.The command used to install a program in Gentoo is EMERGE.

Emerge is Gentoo's way of calling the compiler after downloading the source code in the form of Ebuilds and reading the various configuration files which could be used to alter the program at compile time. For example, I installing PlayonLinux It failed compile and I was not able to find a clue to it. It was failing because gtk-vnc was missing the python USE flag. I tried everything I found on the Internet, nothing worked. So I joined the GENTOO-PYTHON chat room on IRC. The guys over there actually told me what was happening. I enabled the Python USE flag for gtk-vnc and I was able to Install POL fine. This is just an example how Gentoo allows to change package features while compiling.

Since Gentoo compiles everything from source code one need to understand various aspects of compile from source, that is where the Gentoo documentation is really helpful. If one follows the documentation Gentoo can become easy. The freedom is not restricted to packages only, Gentoo does not even provide you with a pre-compiled kernel.

Gentoo makes you compile your kernel.

Gentoo provides you the ultimate freedom to understand the Linux Kernel and its source. You need to compile your kernel by hand and you have the freedom to see the various features of the kernel and select the one's applicable to your hardware. You can also see the support for various hardware in the Kernel. You get to choose according to your Hardware. Choosing selective options make the kernel compile times less. We can how Linux Kernel is adding support for different hardware with every release. You also get to understand how the Kernel actually handles the hardware and the corresponding support module.  In short Gentoo by providing the Kernel in source code literally teaches you about the inner working of the Kernel.
You also have the option of using genkernel tool which actually compiles most of the modules and support for most of the hardware whether or not you have it. It takes more time however you can still still take a look at the source code.

Gentoo has great system tools.

Gentoo not only is the definition of ultimate freedom, it also has a great set of tools called as GENTOOLKIT. Gentoolkit, it provides a set of great tools like "equery" revdep-rebuild etc.. which can make upgrading and manging Gentoo a breeze. It there is any kind of package issues after upgrade these tools can be a life saver.

Another great tool is the ESELECT tool, This tool is very helpful while changing versions among the Gentoo kernels, Or Graphics drivers, Python etc.... Just amazing at the time of making changes to  the import system  components like Python.

Gentoo is a rolling release distribution.

Gentoo is a 100% rolling release distribution. Gentoo has no fixed release schedule as it is a rolling release distribution. Packages are updated to new versions and you get them as updates. Gentoo is not as cutting as as ARCH, consequently it is relatively stable and has less breakages. This comes at a price. Gentoo maintains two branches. 

Stable:- This branch has the software which the Gentoo developers think of as stable. That is why the packages in this branch are not updated too frequently. This branch rolls at a slower rate and most people might run this for stability as it is tried and tested most bugs squashed and things are pretty stable.

Testing:- This branch has the most up to date software. This has all the new software which lands into Gentoo Repositories. This software is new, however still not 100 % following the upstream projects. There is a delay of a few weeks to let the software settle down a little bit. Most software is up to date however it is not as cutting edge as Arch Linux testing branch. However Gentoo is the first receive the Updates to KDE Desktop. I checked today Arch Linux is still at KDE 14.4.2 where as I am compiling 14.4.3 right now. Not sure it is just a first time, however it is my general experience that KDE packages are the most up to date on Gentoo.

One cane easily mix and match the branches as per need however caution is required. i have installed the Base system from the Stable branch however I want latest apps so I have all my Applications and the Desktop environment from the Testing Branch and my System is quite stable overall.

Last but not the least, Gentoo is a time consuming endeavor  and may not be fit for the common folk or new users. However if you can follow instructions and have spend a year at least on some other distribution you may attempt an install even if only in Virtualbox,  It will be a rewarding experience. It will only end up adding to your existing knowledge of Linux. So if you are an advanced Linux user please go ahead and take it for a spin.

Friday, November 14, 2014

Life with GNU/Linux as Main OS

Life with GNU/Linux as Main OS

Life with a GNU/Linux Operating System as my main driver for computing needs is not so hard as people think it is. Choosing a Linux distribution could be a challenge in itself,however there is no problem at all as there are GNU/Linux Distributions like Zorin OS which resembles Windows 7 in look and feel also there is Linux Mint which is 100% ready to go out of the box. We also have Chromebooks and all you need is an Internet connection to get going. All you need is to select one and start using it, there will be issues however there are ways to fix as well.

So what are the general challenges with using GNU/Linux as your main driver?
  1. GNU/Linux has a learning curve.
  2. GNU/Linux is a completely different experience and takes a little getting used to.
  3. Sometimes things don't work as expected but there is a plenty of help available on the internet.
  4. With a little patience and searching the forums things can be fixed.
  5. Hardware compatibility is a hit and miss sometimes.
  6. Graphics Drivers (Proprietary) can be pain at times.
  7. Lack of a productivity suite like MS Office.
Let me explain about the challenges one by one and the best ways to get around them.

1. GNU/Linux has a learning curve

That is true for everyone, Starting to use GNU/Linux is a challenge to begin with, especially if you have a Windows background, if you are a Mac user, some things might  feel easier in comparison with a pure Windows user. Linux has a completely different architecture and is very secure. That is why it has a different way of working around things. There may not be a gui for everything because it was designed to be able to do everything by running commands in a Terminal. Different aspects  of the OS are handled differently.The way Linux handles its devices, hardware and memory is completely different/better than anything else out there. The most difficult thing to digest for a Windows user when coming to Linux is the fact that everything in Linux is a FILE.

Windows presents a different way or visualizing your hardware and managing it using a Management Console. There is nothing like that in Linux, The best way to see you hardware is using the Terminal and the commands dmesg, lspci or lsusb. There are a couple of GUI software like NetworkManager Applet and Disks utility in GNOME Desktop, which could be helpful in managing your networks  and Disks respectively, however for the most part Terminal and the Linux command line is your friend.

You are presented with different tools to manage your hardware and system components depending on the Desktop Environment you are using. There is one universal fact though, Terminal and commands always work.Getting used to using the Terminal and commands to get your job done is the biggest challenge. Today most of the Desktop Environments provide a lot of great GUI tools to manage things, however the Linux Terminal commands are always there in case GUI fails for some reason.I guess it is worth it, learning something for once and using it for the rest of your life. Every Operating System for that matter has a learning curve I took a long time to learn Windows and get used to it. It took me so much time as to why did Windows Freak Out on me with Blue Screen. 

The excuse of saying "Linux is difficult " is total Crap it is the laziness of the user and not the complexity of Linux that prevents most users from switching to Linux.

Linux is not so difficult give it a chance.t is a completely different experience and takes a little getting used to.

2.  GNU/Linux is a completely different Experience and takes a little getting used to.

For a person who has used only one Operating System for his/her whole life, Using Linux can sometimes feel like an alien experience. The problem is all the more visible if you are from a Windows background. You are used to one panel and one menu launcher and a GUI for everything for the most part Excluding Windows 8.1. Using a desktop environment like GNOME 3 or Unity on Linux can be a challenge in the start, however after some time you enjoy the experience. There are Desktop Environments which present windows like experience, like Cinnamon and KDE, however they also need some getting used to.

There are different GUI tools for managing hardware and devices. The process for installing and removing software is not as easy as in windows. There is no double click installs by default, although one could set to launch the package manager gui on double clicking installable files.Moreover it is not so easy to setup, depends on your distro, if you are on a debian/ubuntu based distro then you could use Gdebi. Other distributions might not have that feature.

The way you install software is completely different in Linux. Linux always requires super user rights to install or remove any software.On top of it different Linux distributions have different packaging format, .deb for debian based and .rpm for any RPM based distro. Things are not so simple. However once you choose your Linux Distribution you will learn its ways in no time. There are software centers and other things to install and remove software.

3. Sometimes things don't work as expected but there is a plenty of help available on the internet.

Somethings some times may not work as expected, Just take an example of sharing a folder. In windows world, sharing a folder is very simple. You don't even know what technology it  uses in the backend. However in Linux may be easy or difficult depending on your distribution, If you are on Ubuntu or any distro based on Ubuntu, chances are that File Sharing will work out of the box. If not there is a lot of help available on the Internet, there are plenty of forums, and any problem you face would have already been faced by someone before you and the answer is probably lying around on the internet on some forum. You might need your googling skills to find that and you can fix the issue. If not you can file a bug report so the developer of the Distro fix the issue for you and others.

Another example is from the OpenSuse, After installation on OpenSuse 12.3 and 13.1, You don't have network just after installation, That is a known bug however for a new user it is nothing but frustration. So what to do in that case ? Simple. YOU ARE NOT THE FIRST PERSON TO FACE THE ISSUE. Trust GOOGLE for your issues. Ask google and google will take you to the appropriate page with a fix. Have patience and you will be sorted in short time.I used google and found that many people had faced the same issue however after reboot on OpenSuse 13.1 the network came fine whereas on OpenSuse 12.3 I had to enable the NetworkManager Service as per the instructions.

sudo systemctl enable NetworkManager and sudo systemctl start NetworkManager.And issue was fixed.

My advice :- Have Patience, Ask Google, if nothing comes up, File a bug report, help yourself and others as well.

4 With a little patience and accessing the forums things can be fixed.

Like I said above, Googling and reading the forum can fix most of the issues. Every Distribution has a dedicated forum and the skill of searching through the forums for your issues can be a life saver. I have always found solution for all issues i faced by asking google and by searching forums.

If you find a forum thread that lists the solution to your issue, don't just use the solution to fix your problem, Please take the time to update the thread with your results, even if that does  not work for you, you should update it will save a few others from trying it, or if it works, it will encourage others to use it.

It is a win win for everyone.

Hardware compatibility is a hit and miss sometimes.

Historically Linux has been notorious for lack of hardware compatibility, however with every new release of the Linux Kernel more and more hardware is supported, more and more vendors are making Linux Compatible Hardware. If you plan to start using Linux before formatting your PC/Laptop, Check the Ubuntu Hardware compatibility database.

This has sub sections for different supported hardware under linux, Right from network Cards to Graphic cards to mice and keyboards. You can select from there. if it is not there you could at least find the brands or model numbers which are compatible you could ask google to give you similar hardware. 

I found this very helpful in assembling my Rig and it was not so difficult.

Another useful link to check out is

This is mostly up to date as good as Ubuntu's Hardware Compatibility List.

The second link tells you about Systems Vendors who are certified for Ubuntu and you can find at least a few models which come pre-installed with Ubuntu. There is also SYSTEM76 which only makes Linux Desktops and Laptops. So we have good choice.

The best thing about Linux is that if it works on One Linux Distribution it works on all. So if it works on Arch or Ubuntu it will work on all other Linux Distributions.

So with careful planning you can get yourself a great Linux Computer.

6. Graphics Drivers (Proprietary) can be pain at times.

Linux has good support in built with Open Source Radeon and Nouveau and Intel Drivers. The Open Source drivers are mostly capable of running most Games without a problem, However some games may require you to install proprietary graphics drivers.

There is a thing with the Proprietary Linux Drivers that they may not support the latest Linux Kernel or Xorg Server. The update frequency for Proprietary drivers is slow and you can't run the latest Xorg and Kernel without patching the Driver, Most of the time Community does it Like in case of Arch Linux, most of the times not for every distro.

So if you plan to use the proprietary Graphics Card driver, I suggest you avoid cutting edge rolling release distributions like Arch Linux. For starters you should always use something like Zorn/Linux Mint and only that release which is based on the Long Term support Release of Ubuntu. I would suggest Linux Mint as it will be based only on LTS versions of Ubuntu starting Linux Mint 17.

That is the only catch. For the most part you don't even need the proprietary drivers unless you are a heavy gamer. You won't have to install anything to get started, Zorin and Linux MInt are fully loaded by default. They have all the software you will even need all loaded by default. You install and you are production ready.

7. Lack of Productivity Software like MS Office.

I accept that we do not have a very great productivity software like MS office, however we do have LibreOffice and KingSoft WPS. Both are functional enough to take care of your day to day productivity needs no matter if you are a home user or an Enterprise user. Even in the enterprise most of us do not need all the Advanced Features that MS Office has, We have enough features in Open Source productivity software that it can take care of your most needs. The compatibility with MS Office file formats is being worked on every day on LibreOffice. This is going to improve over time.

In my opinion Open Source Productivity software is more than sufficient for most people. If that does not make you happy, we are living in a Cloud Era, One could use google docs, Like that on Chromebooks. 

Chromebooks are increasing in popularity this clearly certifies that google docs is more than enough for most people.That is exactly what I am saying, We are OK with what we have under linux, and work is underway to improve things for us in future.

Even Microsoft has realized the potential of Open Soure so they have decided to open source their .NET framework so it works on Linux as well. This has been in the news all this week.

I am Confident that very soon Linux will succeed on the Desktop as well. I see 2015 as the year of Linux Desktop.

Thanks for reading.

Please do comment and send your feedback to me

Thursday, November 13, 2014

What do I want from my Operating System ?

What do I want from my Operating System?

This is a fundamental question that every person must ask himself before choosing an Operating System.

It is analogous to W.I.F.M. What is in it for me? Where as this applies to everything, our main topic of discussion is limited to Operating Systems only.

Let us examine this in detail.

In my experience as an IT consultant over the past decade, I have learnt one thing and it applies to everything in our lives. It is the very basis of our own day to day work, or simply put how we live our lives. It is so important to the society that it is very Important to understand it very early in life.

" Everything in this world has a use case where it fits the best" 

What does it this mean?. This means everything in the world has its own quique place.I am not generalizing this, I am just says in the eyes of every person in the world, everything has a place, and it all depends on what choices an individual makes with respect to the entity he is deciding for.

Lets look at it from a Linux user's perspective or for that matter a general computer user's perspective.

There are different types of computer users in this world, based on what they use the computers for.

For example, someone who just uses the computer for simple things, like surfing the net, writing a few documents, or using one or two fixed applications that he needs for his day to day job. Such a user in my mind is a Task Worker.

There are other users who like to install applications on their systems, or want to theme their workspace on the computer, People who know how to work with the computer and how to modify the installed programs. I call them Power Users.  They might also want to Play a few games, Just for fun  very basic though.

Another type of user is the one who knows a computer system in and out, this user can code, write programs, knows how to add/remove programs and how to quickly setup his tools. This user does not really care that much about changing the system configuration just for fun. This type of user will change the configuration to suite his needs and then let it be. I call such users Developers.

There is yet another Class of people who take pride in knowing everything about how the system works. How the different components work together. These people don't hesitate in reinstalling their system and trying out different operating systems, just to gain enough knowledge about the system. They are kind of Impatient and always want to try out new things. They tend to use Virtualization a lot, and they might end up reinstalling their production OS sometimes. They do this out of professional requirement as they might be supporting such systems at work, or they might do this for fun.

These I call SysAdmins. These guys also want a stable Operating system however they have a tendency to  distro-hop.

In addition to the above there is one more class, GAMERS. who don't care that much about the underlying OS. For them whatever gives them best gaming performance  and choice of different games, they tend to stick there.

So like I said in the start it is very important to understand one's use case for a computer system, that is what is the most helpful while choosing an operating system. We need to understand only one thing "We use computers for a purpose, We need have a clear definition of that purpose, Then we can choose an OS that fits the requirement"

We should be able to decide whether we need Windows Mac or Linux based on our requirements. Every operating system as a learning curve, whether it is windows, mac, Linux or for that matter your own android smartphone, we need to learn the ways it works. we need to understand the navigation and management of the platform, how to keep it fit and running so it can serve the purpose it is intended for.

Another major concern while deciding the Operating System of choice is how much is it going to cost?

We don't want to be paying for anything that we are not going to use. Extra features in an OS is great but waste if you have no use for them. You get an OS that can do everything and you pay through your nose. You don't necessarily consume all those features, then why pay for them. It applies both to hardware and software.

We don't mind extra even if we don't use it, Only one condition, it has to be free and we need to have the freedom to keep it or throw it away. This applies to all software and operating systems we use.

There is no way a proprietary OS will let you have this freedom. The reason is simple, they have to make an OS which does everything and then charge you for everything although you really don't need everything. "Your OS is capable of using touch screens and standard key board interface, It can run on Tablets and PC both, so you pay for having both." 

Excuse me !!. I don't give a shit !, I don't have a touch screen device and I use Keyboard and mouse only on my Desktop PC.

Why should i pay for the whole when I only use a part !?  Plus I can't remove the unwanted junk. I can't see the source, I can't change anything about it. This is 100% true about any Proprietary and Closed source OS. I end up paying for the whole package where not all of it fits my use case, it is way more than my use case sometimes.

So we know that the Proprietary Operating Systems are sometimes way more than what our use case dictates. I don't say that it is the case for everyone.These Operating systems are built considering the maximum, they put all the features so that the user's who really need them are happy and they could sell this to the user's who really don't need it. Just an up selling tactic, considering most user's are not that tech savvy.

Anyhow enough of this, lets talk about the solution. The solution is simple, use Free and Open Source Software, User GNU/Linux or BSD etc..

So what do I finally need from my OS in addition to not paying anything.

  1. Freedom.
  2. Choice.
  3. Flexibility.
  4. Stability.
  5. Security.
  6. Support.
  7. Hardware compatibility.
  8. Games.
  9. Virtualization.
  10. Applications.

These are mostly the basis for deciding on an Operating System for your PC, While each item is equally important, however the last item, Applications, is what can make or break your day. A system has to be reliable, secure and stable however you need applications to do your daily job. If you don't have applications and everything else, how are you going to manage your job.

Historically Proprietary software has huge software availability, most of the people want to make money with their software hence they write proprietary software for proprietary systems. There Operating Systems have collaborations with Hardware Vendors for software compatibility and also with Systems Manufacturers which ensures to sell them as pre-installed on their Systems. Hence we see huge software availability for these Operating Systems, they are better supported by hardware vendors and they are very popular as they come pre-installed on systems.

The irony is that despite paying for the OS, We can't use it on any other computer as it does not come with an installation media these days. There is recovery partition which has the code to restore the OS the factory settings.We only get the OS and a very few basic applications. Most productivity applications are chargeable. Like Office suites, email clients, collaboration software etc..

We can overcome all this if we are aware of our use case and what we are going to use the systems for? We can make a choice and not choose the Proprietary OS and go for Free and Open Source OS like Linux.

Can GNU/Linux provide me with what i need? Can it fit into by 10 broad requirements?

Answer is Yes Very well and way better than Proprietary Operating systems all areas Except 8 and 10. Where we still have some work to do and we are trying to make things better.

More and more games are coming to Linux Courtesy of Valve and Steam Client. We have more than 700 Games for Linux at the moment, We are going great, Valve has based their Steam OS on Debian GNU/Linux and not on any Proprietary OS. This is a huge indicator of potential that GNU/Linux has for Gaming and its future.

As far as Applications are concerned, We have a free and Open Source alternative to almost every popular non-free Application. Most of them will get the job done for us. However we definitely need to Improve in the area of Productivity applications like Office Suite and Email clients which still have a huge opportunity for Improvement. They are still not 100% fit to compete with the proprietary office suite and Email clients. We also need to improve out collaboration software.

With that said and done, I can say with 100% confidence that GNU Linux meets all my needs and I am very happy with it. It is also true that GNU/Linux is 100% fine for personal use and gaming at this time and also 100% good for enterprise use for the most part if not the whole segment, Google uses a modified version of Ubuntu that is a sign of acceptance in Enterprise environment. Linux is not there for the Desktop, yet I know but I also know that it will be there soon and I want to see it succeed.

Everything I wrote in this post is about Desktop Use only. We all know that on Server side, Linux has already WON !!

In my next post i will detail how GNU/Linux meets all my 10 requirements.

That is it for today, Please feel free to comment and share your feedback.

Monday, November 10, 2014

What GNU/Linux distribution do I use?

What GNU/Linux distribution do I use?

I am sure after reading my blog, you must be wondering as to what GNU/Linux distribution does Rajat use?.

Before I tell you about the GNU/Linux distribution, I would like to tell you something else. I am going to discuss the use case for a user of Linux like me. I am a Linux power user, I was not a power user around 5 years ago when I first met Linux Mint. I was a noob so to say. I had very little or no Knowledge of Linux.
That is when my journey in Linux began. It was a very fascinating for a person who's main OS for all this time has been windows. I know many of my friends are reading my blog, they know what I am talking about.
I was very much excited by the simple fact that there was an OS which I could use for free. I used Linux Mint for some time. As my knowledge of Linux Increased over the time, I realized that Linux Mint was based on Ubuntu. I started searching about Ubuntu and in no time I was on Ubuntu.

I used Ubuntu for some time and it is a very common fact that too much choice can spoil you, and I was no exception. I was in no time switching from one Linux distribution to another. I kept doing like this for a couple of years. I spent 2 months, sometimes 6 months with a distro and then moved on.

The quest for finding out my perfect Linux distribution was like never ending. I however knew that there was some Linux distribution made just for people like me. Linux has so much freedom and so many distributions to choose from so there must be something for me.

As most of my friends know I always enjoy challenges and I always like to do things differently. So I kept on going through the list of distribuitions available on and I kept on installing them all one by one.

After around 2 years of doing this, I made my list which best matched my requirement, which was simple.

  1. Performance
  2. Games
  3. Elegant Desktop.

The list was small,
  1. Ubuntu
  2. Arch
  3. Gentoo

I enjoyed Ubuntu because of Unity and easy of installing software, software availability and hardware compatibility. I moved on because of something that most people like about, PPAs

The PPAs I used mostly took time to update, sometimes people forgot to update them to match a new release. Also the 6 month release cycle was not something I was happy with, I always wanted latest and greatest software. So I moved to Arch.

I enjoyed the simplicity and freedom arch provided, I learnt a lot from Arch, I got latest and greatest software and I was able to enjoy a lot of different desktop environments. That is where I tried KDE for the first time and I was so happy. I was able to get everything done. Arch has the best documentation in the Linux world. There is a wiki for almost everything, communty is great. However over 6 months my install broke because of updates a couple of time. So my search started again. However by this time, my thoughts about Linux had changed a bit and I had acquired new knowledge.
I had started liking the rolling release model and the flexibility that Arch offers, I wanted something similar. My requirement had changed from latest and greatest to rolling and stable. Most rolling release distributions suffer from the same problems, especially in case of Arch and derivatives. So I tested Debian Testing which I did not like that much, in my eyes Debian is the best Server OS, Using it on Desktop is kind of tricky and requires a lot of tweaking. I also tried Manjaro which I liked a lot, it however had issues installing latest ATI Drivers, mhwd tool is your only way and if there is a beta driver of ATI I can't use it.

So one day I was looking at distrowatch and I came across GENTOO it looked an unusual distribution to me not so popular still not dead. Great history and it is SOURCE BASED. Which means every single program in the OS is compiled from ground up on your system. Which gives great performance. It is very stable and yet rolling and always updated with latest packages. There is only one Caveat using this distro, it can take long time installing and updating if you are running an older hardware with less powerful CPU. Compiling software is a time consuming process and because of this Gentoo can take hours to install or may be days if your system is not a powerhouse.

So I used Gentoo for a while and kept on testing it. Gentoo has some great documentation and great forum. Getting support on Gentoo is not difficult but one has to have patience as the benefits are great.

I am not saying Gentoo is the best. It is best for me, not necessarily for everyone out there. So I have still to find a reason to not use Gentoo, I think after using it for more than a year I can't find any reason to switch to any other distribution.

I use Gentoo, for reasons of my own. It a great GNU/Linux Distribution definitely not for new users. But I use it anyways.

Thanks for reading, I hope you liked my journey in GNU/Linux.

Please do comment and let me know your feedback.

Why so many Linux Distributions

Why so many Linux Distributions

In my previous post I discussed about the different components. It is very Interesting to see that there are many hundred Linux Distributions around at this time. If we look at which is the most widely Linux Distributions ranking website, we find hundreds of different Linux Distributions listed there.

The next question is why do we have so many Linux Distributions?

The answer to this question is kind of complex to understand.We can't understand it completely if we do not know the basic components of the GNU/Linux System. We also need to understand how do we use and manage a GNU/Linux system on a daily basis. We also need to understand the use case of a GNU/Linux system and the intended purpose of the distribution. There are various factors that differentiate different GNU/Linux distributions.

The most important points that differentiate GNU/Linux Distributions from one another are as below

  1. Init System.
  2. Desktop Environment.
  3. Default Software collection.
  4. Intended purpose, Desktop or Server.
  5. Source or Binary Base.
  6. Package Management System.
  7. Included Free/Non Free codecs 
  8. Do it yourself or ready to Install
  9. Rolling release or Fixed release
  10. Moto/Philosophy

Based on one or more of the above mentioned points different GNU/Linux distributions are different from each other.

I would put across a couple of Examples and discuss the differentiating factors. It is however best to install a distribution and start using it in order to understand the differences. The best way to do that however is not to install it on the actual hardware, We could use a virtualization technology like VirtualBox.

Lets take the Case of Debian as a Linux Distribution and go through the 10 points mentioned above.

Debian is probably the oldest Linux Distribution and most forked as well. Debian stands for stability and free software. 

  1. Uses sysV init System which is a bunch of scripts doing the Job.
  2. Provides a selection of desktop environments to choose from with Gnome as default
  3. Provides a decent set of software with almost no non free software by default,depends on the installation media used.
  4. Debian is aimed at Servers but it can be a good desktop as well.
  5. Precompiled binary base.
  6. Uses Aptitude package management system and supports .deb packaging format.
  7. Does not include non-free software/codecs by default.
  8. Debian is installation ready for Servers but requires a lot of tuning for Desktop Use
  9. Debian is Fixed Release and Rolling in case of Testing branch.
  10. Debian moto/philosophy is to provide a universal operating system that is free stable and secure.
There are various different Linux Distributions, each with a specific purpose, some are more geared towards Desktop Use like Linux Mint and some are for server use like RHEL CENTOS and DEBIAN.
Some are ready out of the box like Linux Mint some are intended for user switching over to Linux from Windows like Zorin OS.

Some are utilized for penetration testing like Pentoo and Kali Linux. Some are for audio and video production like AV Linux and Ubuntu Studio.

Some work both for Servers and Desktops like Ubuntu. Some are focused at Enterprise Desktop like Opensuse and Ubuntu.

Some distributions are 100% pure and rolling like Arch and Sabayon, some are completely do it yourself like Arch Gentoo and Slackware.We also have Linux From Scratch which is the hardest to work with.
We also have some distributions like Gentoo which compile from Source and provide ultimate flexibility to you.

We also have a variety of Desktop Environments some are specifically built by their parent distributions with a certain goal, these however being Open Source are available for most Linux Distributions other than their parent distribution.

  1. Cinnamon, developed by Linux Mint Team.
  2. Unity, Developed by Ubuntu, Canonical.
  3. Patheon Shell developed by Elementary OS team.

In addition to these we have GNOME KDE XFCE E17 OPENBOX etc etc.... list is long and freedom and flexibility is endless.

We have endless freedom and flexibility with GNU/Linux, that is why we have so many GNU/Linux distributions. We have new Linux distributions every month, either completely new or based on some existing Linux Distribution.

Debian is so far the most forked Linux Distro, There are other like Ubuntu and Arch. Ubuntu itself is based on Debian, Arch is Independent and is not based on any. OpenSuse is also Independent like Fedora however both have same package format, both use rpm package format.

In short with freedom comes choice and with choice comes the opportunity to create something new, that is so true in Open Source world. That is precisely why we have so many GNU/Linux distributions.

Hope you like it, In my next post I will talk about something different. This article concludes my Introduction to Linux Series.  I will start a new one in Next post which will be of course about Linux only.

Please do comment and let me know your feedback.

Saturday, November 8, 2014

What is a GNU/Linux Distribution

GNU/Linux Distribution

A GNU/Linux distribution is a collection of software containing both GNU and Linux components which together combine to deliver a GNU/Linux System. A Linux Distribution contains an Installer or instructions to install which helps installing the System to computer.

This is the most simple definition of a GNU/Linux Operating System. I will describe more details in following section. With Linux comes freedom, the freedom to modify, use or distribute the Kernel for any purpose with one caveat, One needs to make sure the modifications one makes are also available to others for use and distribute like the original software. Complete information is contained in the GPL-V2 license document. This freedom gave rise to different Distributions of GNU/Linux because different people like to do things differently.

I will detail the deciding factors for a distribution which become distinguishing factors as well for different distributions. However lets take a look how we manage the licenses for the complete system. Then we can dive into the technical pieces.

We all know by now that GNU/Linux is free to use and distribute. The kernel itself is licensed under GPL-V2 and it is going to stay the same. The components of the GNU/Linux System other than the kernel itself are licensed under different licenses. All software contains a license file. However across the GNU/Linux System license compatibility is maintained to avoid license conflicts. Since the Kernel itself is GPL-V2. Most of the software shipped by most distributions are GPL compatible.

For a complete list one could visit this page and read all information.

Important components of a GNU/Linux System

OK it is time to take a look at the components of a GNU/Linux System. This is a high level description sufficient enough to give you a basic understanding  of a GNU/Linux System.

  1. The Boot Loader
  2. The X Windowing System
  3. The Display Manager
  4. The Window Manager
  5. Desktop environment
  6. Most Important Kernel
  7. Init System.

The above structure looks quite modular and easily understandable. The breakdown is basically a high level overview based on the events that happen in a typical Operating System and how GNU/Linux Handles them.

There are various tasks which need to be complete in order to boot into a GNU/Linux System and subsequently use them.

GNU/Linux System Components

The above diagram shows basic components of the GNU/Linux System. You can see kernel is central to all this.

I have not shown Init System because that is kind of too technical to represent in a diagram. I will explain what each of these is for better understanding.
  1. Boot Loader :-

Boot Loader is the first program after BIOS to execute in a computer boot up process. This tells the computer where to look for the operating system, in case of a multi-boot system displays a list and one can select a particular one.
In addition tot his Boot Loader lets you pass custom kernel commands, for example the nomodeset option to boot into a safe graphics mode in case your Graphics Card has issues.
Examples of boot loaders  GRUB, LILO

2. X Windowing System, or  X Server.

The X Windowing System or X Server is a Display Server, whose job is to provide the display service which is utilized by The Display Mangers and then Window Managers. X Server is the heart of the Linux Graphics stack. X is responsible for everything DISPLAY.

X Server has dominated the Display on Linux for three decades and even today X is our only solution, There are alternative solutions like Wayland and Mir being developed at Intel and Canonical respectively. It may take a few more years before X is complete replaced by the alternatives.

3. Display Manager 

Display Manager is a program which helps to swiftly move from the X Windowing System and into the Desktop Environment. It kind of presents a Graphical Login Screen to the end user. The display manager allows us to Select from the installed desktop environments in case we have many installed. It also allows for using different credentials. Hence a very important part as for as usability is concerned.

A few examples.  GNOME display manager,  GDM KDE display Manager KDM, Mint Display manager MDM. SLIM, LIGHTDM etc..

Generally most Desktop Environments have their Own Display Managers while there are many which are completely Independent like SDDM.

4. Window Manager

A Window manager is a program which manages the windows in a desktop environment. It is responsible for window movement and management. It also takes care of any animations in case of KDE KWIN.

Other notable window managers are Mutter, Metacity, twm,fluxbox, openbox,compiz etc..

5. Desktop environment

A desktop environment is a complete software collection which works together to provide a desktop experience to a user. It mostly is based on a single software framework. Applications provided by the software suite work very well together. It has the window manager, file manager etc... All the programs that work well together.

A typical example is the GNOME desktop environment and the GNOME software suite. That is what I am using at the moment, it provides me with everything that I need to work with my computer. 

Other examples are KDE, UNITY, XFCE CINNAMON MATE LXDE etc..... 

One could combine display manager, window manager file manager etc.. to form a custom desktop environment. We could combine Openbox with a display manager  file manager etc.. to form a full desktop environment like CRUNCHBANG GNU/LINUX does.

6. Kernel. 

The Linux Kernel is the heart of the system and does all the hardware management etc. Resource allocation, process scheduling etc... 

7. Init System,

This is something I have not shown in the diagram because it is a little complex to put together in one block.  So Init system is another very Interesting and Important component of any GNU/Linux System.  It job is to make sure whatever is required by the subsequent processes be initialized at boot and then managed later on while the machine is powered on.

I have explained all the system components, However we need to take a look what happens when the machine boots.

When it boots the boot loader calls on the selected OS/Kernel to boot, there is a specific set of processes and services that need to be started in a specific sequence to make sure that the system boots correctly. This is what is managed by an Init system. 

If you have a network card that needs to fetch IP address using dhcp, we need to ensure that the DHCP process is automatically started while the boot happens. Also we need to start the X window System automatically and then start the Display Manager automatically. This what is managed by the Init system. It takes care of starting all required processes and services required to be started to ensure proper functionality. It also provides  way to stop/start enable or disable services at run time.

There is a lot more but this should be sufficient as a basic introductions

This is just an overview. Different init systems use different approaches to provide this functionality.

Examples for Init Systems.  

sysvinit / BSD init OpenRC Systemd etc..

So if we look at  we have so many distributions. WHY ?

Considering the freedom GNU/Linux and open source provides, It is quite evident that people would use the freedom to their best use. That is what has led to the creation if so many GNU/Linux Distribution. There are so many of them because there are so many different people with so many different Ideas for doing things.

That is it for today, In my next post I will address WHY SO MANY DISTRIBUTIONS?

Please do comment and send your feedback to me