Hello Sub Hackers. I thought i should put a post on Linux. This post is intended for newbies like me. Others who already use linux can also post in replies why you love Linux and why you use it.
In this post >
- What is Linux
- Strange misconceptions among people
- Desktop environments and Window managers
- Package management
- How do i startup?
- Gaming options and emulation.
1. Introduction >
We all see Microsoft windows every where. Yes a lot of people use Windows. But “Awesome” people use Linux!. So what is linux. Linux means “Unix-like”. Unix is an operating system which has its own proprietary license. Linux is yet not a operating system it is a “kernel”, the main central part of an operating system. Linux is made on the principle of liberty and simplicity. What we all basically do in windows? Do we know what is happening in the back-ground of an installation, What the software you we going to install will do to to your computer? In Linux we can know everything, if we want. Linux is completely free and anyone can use it. It is also open source and anyone can obtain the source code, modify it for his own needs and one can also compile his own kernel from source adding required support for new hardware etc. You can customize it to infinite levels. So what is the main reason to use linux? Where it is being used?Well It is used every where from corporate companies to home workstations, from servers to the mobile systems (android also runs on linux kernel) and small embedded systems such as raspberry pi. So why should i learn linux and what it really is?
2. What is Linux >
Linux is “not” an operating system. It is a kernel. It was made by Linus Torvalds in 1991 when he was a student of University of Helsinki in Finland. He was making a new open source operating system which was going to be available for free to all . Back then people used operating systems which were non free. The free software project was already led by Richard Stallman in 1983 which was called GNU GNU’s not unix. So Linux system was combined with GNU and some people call it GNU/Linux. Linux use GNU General public license and is free to use. What is a kernel then? A kernel is the main central part of an operating system which handles memory allocation, cpu cycles and interrupts and everything. It works like a bridge between your hardware and software. A linux kernel packed with useful utilities make a linux distribution. A typical linux distribution has> a linux kernel + useful tools such as boot loader which manages your computer’s boot process and find the OS on your computer, a shell which is used to communicate with kernel, and a x server used to handle display and it has window manager or desktop environment which provide many useful applications of its own and provide Graphical user interface for using your programs and operating system. And it is fast and robust. There are thousands of linux distributions out there. Some of the best and most common are :
a. Arch Linux:
Arch linux is based on the principle of KISS = Keep it simple stupid. It has a very good development and a very big community support. It is a rolling release distribution that is, it provides latest updates to the software and keep them stable and updated. Some people says it is Bleeding edge, which means that the system can become unstable with newer updates and become unusable. But the arch community does not believe this. Newer patched releases are made ready very soon as they come out. Arch has its own package manager named pacman which is very powerful and has many options for package management. What is package manager? A package manager can be used to install new software packages and its dependencies(other softwares its depends upon). Hey there is a guide android app for arch linux too, named arch wiki manual . Arch do not come with a desktop environment predefault so you need to install a desktop environment on your own. There is also Arch User Repository (AUR) from which you can download source of desired software package and install it from source. Or you can become a little lazy and use AUR helpers such as youart to install it for you from AUR automatically.
There are some cool distributions based on Arch linux. These are::
Manjaro linux: I have used it personally. There are two variants one with XFCE4 desktop environment (The best one) and other variant with KDE desktop environment. I will recommend new people use this distribution.
Antergos: is also based on arch linux. It ships with GNOME desktop environment which is very modern and polished. Why not try it on your own? The main difference b/w manjaro and Antergos is that antergos waits for stable release and provide updates later, while manjaro’s updates are most recent as compared to antergos. Antergos
Black arch: This is also based on arch. It is a distribution which has pre installed penetration and hacking tools for helping penetration testers. I have never used it though. But it looks good.
Yes they also use same package management as arch.There are others distributions too based on arch too.
Debian is a very robust and cool linux distribution. It is very powerful and it is the oldest one. It has a vast community and is very popular also. It runs on corporate servers and has a very nice package manager of its own named aptitude. It provides latest releases to the software packages. It is called the “daddy” of all the linux distributions. You can use synaptic also for package management which makes it easy to install packages and comes with gui. Also you can download software packages manually which are in the format of *.deb and use dpkg to install the required software. You can actually download a hybrid iso which already ships with a desktop environment such as XFCE or GNOME or KDE , lxde, cinnamon, mate etc. You can either download the i386 (32 bit version) or amd64 (64 bit version). Debian live cd << from here you can download the dvd iso of required 32 bit or 64 bit debian live iso with desired desktop environment.
Many distributions are based on debian also :-
Kali: Kali linux is based on debian. It is the os used by penetration testers and hackers. It comes with preinstalled set of tools for wireless hacking, social engineering, etc. It is a project by offensive security. Furthermore you can make a persistent usb of kali which can be used to boot from and can also save the contents in a persistent storage.
kali linux making a persistent usb
tails : This is also a distribution based on debian. It is used for anonymity and is used as live environment such as live usb. People use it to keep anonymous while using internet or browsing deep web. It comes with tor browser preinstalled. Tails
Ubuntu Ubuntu is also based on debian. It is owned by cononical and is used by a lot lot of people. It has its own Desktop Environment named unity. Its easy to use but i will recommend you to use manjaro or salix(salix is coming in later in the post). It also has a large community. Well people have their own choice, you can check out ubuntu Ubuntu
Many distributions are based on ubuntu also such as linux mint, etc.
There are many distributions based on debian.
Slackware is also a old distribution. Its very stable and very good for learning. It has many Window manager/ Desktop environment preinstalled such as KDE, XFCE, Blackbox, Windowmaker, fluxbox etc. It has a utility named xwmconfig which can be used to select the desktop environment. Well i don’t even need to explain how to install software in slackware. When you will install it on your system you will get a mail. So if you install slackware just login in as root/ account. and type :
This contains all the information to set you up and also package management. Slackware also has slackpkg as package manager. Also you can download source of packages from Slack builds and then can install the package like with slackbuild script like this .
This is the most stable distribution. I personally use Slackware and debian.
Well there are many cool distros based on slackware:
Salix linux:: Salix. This is also a great distribution. It is good and i have used it for several months. It has a gui tool for package management also. It is simple and comes with XFCE. The logo says: Salix for the lazy slacker.
Slax linux :Slax . This is also a great distribution. It is also based on slackware which is light weight and very simple by design. Minimalism BITCH
There are still many other distributions based on slackware.
d. Gentoo :
As the official website says: What is Gentoo?
Gentoo is a free operating system based on either Linux or FreeBSD(A unix system) that can be automatically optimized and customized for just about any application or need.
Extreme configurability, performance, and a top-notch user and developer community are all hallmarks of the Gentoo experience.
Thanks to a technology called Portage, Gentoo can become an ideal secure server, development workstation, professional desktop, gaming system, embedded solution, or something else—whatever you need it to be. Because of its near-unlimited adaptability, we call Gentoo a metadistribution.
It is also a great distribution used by many people. Some say it is unstable. But for me unstable means more cool. Hey powerful things are always unstable! The more you break and fix things the more you learn at the first place. It has portage for package management and much more cool things.
e. Red Hat Enterprise Linux:
This is also called RHEL. Red hat is an enterprise linux which runs on servers and big workstations. Its packages are in form of .rpm (red hat package manager). Fedora is based on red hat. First RHEL had yum package manager but now it has dnf package manager. It is used widely and you can find it at many places.
f. OpenSuse Linux :
OpenSuse is also a cool linux distribution which is also used in workstations and servers. Many people love opensuse because of its completeness and good design. It also comes with gnome or Kde desktop environment. It comes with YaST a graphical package manager and zypper which can be used to install packages from command line. (In later section i will give a brief of Desktop environments and package managers too)
Well you may be thinking why there are so many distributions, why? Its because of the freedom the linux gives. Everyone likes something different. So which one you should use? I will personally recommend going with Manjaro xfce or Manjaro kde. or with Salix. As you learn more you can move for slackware arch or debian.
3. Strange misconception between people >
Well some of my friends say that linux is hard. Many of us think like this. One of my friend said that it is just for advance users. But believe me it is more easy. It is just a new experience, a new lifestyle in which you learn new things everyday, break things, fix things, find how things work. And then you start praising linux. Some people says you can not play games on linux which is plain lie!
4. Desktop environments and Window managers >
Well what is a desktop environment. A desktop environment provides a environment which gives a graphical user interface to your applications and it also comes with its own set of tools such as window manager, file manager, browser, email client, ftp client, torrent client, editor etc. Common Desktop environments are:
GNOME: Gnome is a desktop environment which is very polished and good looking. It comes with many tools such as file manager nautilus, a terminal emulator, and many other handy tools. You can use gnome-tweak-tool to further customize your gnome desktop and use custom icons, themes etc. You can find themes and other customizations for gnome here. You can add other cool shell themes too.
XFCE4: XFCE4 is a light weight desktop environment and it can also be customised with custom gtk themes and xfwm (window manager) themes. You can find customizations for xfce here . and here or you can simply google.
Personally i use XFCE4. Well you will need murrine engine for some gtk2 themes to work properly and it will make feel a lot more happy! Remember some themes require engines like murrine or cairo to work properly.
KDE : KDE is a feature rich and powerful Desktop environment which has a lot of tools like konsole, konquerer, kate(an editor), dophin(a file manager [a good one] ) and many many more. It looks really great and is really feature rich. And This is FREE!!! But it is a little bit resource heavy, it needs more RAM than XFCE and GNOME. This looks real awesome!
Other desktop environments are lxde, cinnammon, etc.
Well some people do not use Desktop environments and prefer window manager. Window manager are not a complete environment such as Desktop environment and it just handles the windows and its placement over the screen.Why people use them? They use less resources and are faster to work on Common Window managers are:
Awesome window manager: Awesome. As its name tells, It is really awesome.
The about page says it all :
awesome is a highly configurable, next generation framework window
manager for X. It is very fast, extensible and licensed under the
GNU GPLv2 license.
It is primarily targeted at power users, developers and any people dealing with
every day computing tasks and who want to have fine-grained control on their
graphical environment. There is guide for using awesome is here .
i3wm : i3wm is a dynamic tiling window manager. As they say on their official page i3wm is a tiling window manager, completely written from scratch. The target platforms are GNU/Linux and BSD operating systems, As they say its code is Free and Open Source Software (FOSS) under the BSD license. i3 is primarily targeted at advanced users and developers. You will find it easy to configure and setup.
blackbox: Blackbox is a lightweight stacking window manager. It was last updated November 3, 2005 with no plans for future releases, however its design has inspired many forks and spiritual successors. Its minimalistic window manager and very simple in design. blackbox
fluxbox Fluxbox is based on blackbox with some extended features and it is lightweight and extensible and fast.
other window manager are also available such as ratpoison etc. You can configure linux to extreme. You may also find conky, which has many themes and plank which is a dock for linux (such as in mac osx).
5. Package management >
So how do you install software in linux? You can either download source of the software build it and install it. As i said earlier many distributions have package managers. Such as Debian has aptitude. So what they do? They can be used to download software package and install them on your system from official repository (official repository is a fine and maintained collection of packages. Arch has pacman and redhat and redhat based distros has dnf package manager. What you should do is> search on google " How to install “required software” in “your distro name here”. e.g. as i am using debian i may search "how to install wicd on debian. I think you got an idea. You will get guides over official community website of your distribution. If you know which package manager you have you can simply open a terminal emulator and type man “your package manager” e.g. if you have apt package manager then you will type man apt, and if you have pacman as package manager then you will type man pacman:
$ man apt
$ man pacman
Here man command will show manual page of your package manager. You can use man command for anything, such as
$ man x
( in KDE its called konsole, a terminal is used to communicate with shell which sends your commands to kernel or do what you say it to do in normal words) . The $ signs here indicates that you are a normal user, # sign indicates you are a root user, the most powerful user in *nix (Unix/Linux) system. It is the user responsible for maintenance of the system and is responsible for everything. Only root can install software so you need to be root for installing something. You should always use a normal account and not a root account and should only use root account for troubleshooting/maintenance etc. You can become root by su command also, and typing password for root. Or you can use sudo. See man page of sudo .
6. How do i start up? >
So, you want to use linux. How can you use it? You have many options. You can either use virtual box or vm ware for creating a virtual machine and install your linux distribution there, or you can create a live USB/dvd you can boot from. Or you can do dual boot and you will be prompted on startup which OS you want to use, as i do b/w windows 7, debian, and slackware. There are plenty of dual boot guides over internet. Just google and you will find many good guides.
When you have started try using as much command line tools as possible, everything can be done by command line. You can learn from here and you can also buy a good book such as : The Linux Command Line by William Shotts which is a really good book for beginners.
7. Gaming options and emulation. >
Now the cool part. Some people say you can not play games on linux. They lied to you! You can easily play games on linux. How? well you can use emulators such as
desmume to play nintendo DS games such as contra 4 etc. You can download the games from here.
Wine to play microsoft windows based games, Well WINE is not an emulator, its like a subsystem. Many of the games have been ported from windows for wine. Here are the games/apps which you can run with Wine: Available ports
Higan to play games of gameboy, gameboy advance, famicon,famicon advance etc. . Games like super mario bros can be played with higan. You can download almost all emulator games from here
ZSNES: ZSNES is also a cool emulator for playing super nintendo games.
Use your package manager to install these emulators.
EPSXE: epsxe You can play psp games with it. Download the file for linux and unzip it and directly launch it. You can play games like tekken 3. You can download the games from emuparadise.
or you can play games with steam, Also there are many native games for linux too!
I hope you learned something from this post. Best of luck for your Linux journey!
This is my desktop:
Now with conky customisation>