Thursday, July 12, 2012

Arch Linux-X-Windows and Window Managers


This is a Chapter in my new book soon published. I am reproducing it here for larger audience to share this knowledge about window mangers.
What is summarized here goes into almost 100 of pages in content elsewhere.
Many do not have the time read volumes of Linux information. 
Tiny Linux Distributions and Their Utility Value 
(Teeny Weeny Linux)


Arch Linux-X-Windows and Window Mangers
The Arch Linux project was started by Judd Vinet in his attempt to create his own distribution. He wanted to make a lightweight and simple system aimed at power users.
Note that "simple" does not mean "newbie friendly".  
The system is structured in such a way that the user has to customize according his or her needs.
It is not a distribution for a newbie.
One needs to know how Linux works and how to configure from ¨bottom up menu¨, like in Gentoo Linux.
There is no out of the box Linux experience.
One can easily configure by changing simple configuration files and installing just what he/she needs.
No place for automatic configuration.
There are no GUI tools in Arch to help a newbie.
That means the system is highly configurable and the config files are simple in structure and easy to find in contrast to many of the other distributions which uses a graphical installer.
This is one reason I never liked it myself as a distribution to work with my busy schedule.

Concept-The Arch Way

Having said that I like the concept very much, ¨I get what I need¨.
Linux is not a toy to play but a toy to build and Arch fills in that need.
I do not like the idea that the vendor knows what´s best for the customer.
In actual fact, Linux came into existence because of this need for freedom and flexibility and lately it has moved into ¨You get what we dish out¨-we know it all; the inside the box experience.
Same old  Microsoft and Apple propaganda.

Simplicity

Arch Linux defines simplicity as without unnecessary additions, modifications, or complications, and provides a lightweight UNIX-like base structure that allows an individual users to shape the system according to their own needs.
In short: an elegant, minimalist approach.

Code-correctness

The Arch Linux system places precedence upon elegance of design as well as clean, correct, simple code, rather than unnecessary patching, automation, eye candy or "newbie-friendliness."
Simplicity of implementation, code-elegance, and minimalism shall always remain the reigning priorities of Arch development.

User-centric

Whereas many GNU/Linux distributions attempt to be more user-friendly, Arch Linux has always been, and shall always remain user-centric.
Arch Linux targets and accommodates competent GNU/Linux users by giving them complete control and responsibility over the system.

Openness

Openness goes hand in hand with simplicity, and is also one of the guiding principles of Arch Linux development.
Arch Linux uses simple tools, that are selected or built with openness of the sources and their output in mind.

Freedom

Another guiding principle of Arch Linux development is freedom. Users are not only permitted to make all decisions concerning system configuration, but also choose what their system will be.
By keeping the system simple, Arch Linux provides the freedom to make any choice about the system.

Arch Linux base system.

Note that the Base System does not include a GUI.
It is mainly comprised of the GNU toolchain (compiler, assembler, linker, libraries, shell, and utilities), the Linux kernel, pacman (Arch's Package Manager), and a few extra libraries and modules.

Features

Arch installs a base Linux system, and then the user can configure it and expand it depending on his or her needs. It uses the pacman package management system written by Judd Vinet himself and has -like the most distribution out there- its own repositories filled with many useful programs.
Unlike rolling distribution like Ubuntu where one has to install the new version every time a new version is released, it has its own unique feature of rolling update system of its core and software system.
When a program is updated upstream, after some testing it is immediately made available to the users in the Arch repository. The ISO images are just a snapshot of what is in the repository at a given time. The rolling update system means a user never has to do any kind of "upgrade of the entire system" to get the latest and greatest software.
In fact, after the first Arch installation a simple "pacman -Syu" command will always keeps one up to date.

Installation

1. Downloaded the latest ISO.
2. Then boot the CD into an installation / recovery system.
3. To install Arch, one just types /arch/setup and the installer will be activated one step at a time.
4, Install the base system which include partitioning the hard disk
5. Configured the kernel and
6. Finally install the Grub.
All this can be done in 10 to 15 minutes.

My Comments

Arch installer simple and straightforward, but one has to be pretty experienced with Linux to figure out what to do and when to do it.
Linux is a text based operating system and every operation is written on a simple configuration file at a specific hierarchic point in the file system.
There parent and child processes that follow a logical pattern.
Because of this reason it can be configured with pinpoint accuracy if one knows what one is doing.
The learning curve is steep but when one has mastered the basics, one can even start writing, changing, modifying the software that one needs to do a particular job.
The reason for me writing this is to go step by step order, so that one can have a Graphical Environment or Desktop, on top of the core system at the end of the exercise.
Every distribution has its own finicky ways of doing things, which another distribution might implement differently.
Gentoo is difficult and it does not have an official installer of it own unlike the robust Arch installer.
One needs check with the official installation guide that will help one to go through the first past the post or the process.
One has to do it many a times, may be hundred times to master all the intricacies and then one knows the process by heart.
The difference between a user, vendor and a developer is that the developer has clear understanding of all the stumbling blocks.
The user and the vendor has no idea to change the script to overcome the difficulty.
This is where the community come into play and help an individual developer to make improvement to a system already running.

Configuration

After installation all one will have is a Linux prompt.
Using the excellent wiki,
1. Configure the Network,
2, Installed X.org, nVidia drivers (or whatever the driver necessary for the hardware one has in the installing system).
3. Configure  Alsa to get the sounds and decide on the graphic front to install .

Graphic Front End and Back End

I must tell a few words about how graphic architecture works in Linux.
As I have already stated Linux is a text based operating system and that is how servers work.
Servers do work or services but do not need to be visible or transparent to the human eye, a monitor is a dumb terminal for a server.
The graphic in Linux also works in a similar fashion.
There is a graphic server called X-window system which is the back end and do the configuration of the hardware (Screen includes, both the graphic RAM/Driver and the monitor) and a client or the front end called Window Manger.
What the window manger does is to organize the behavior of the windows, add menus and panels and the likes. It is a software that run on top of X-Window system and X-Windows have no say except providing the service requested by the Window Manager.
There are over 35 window mangers and one of it name is named Window Maker.

Desktop Environment

The Desktop Environment is an integrated system and has its own Window Manager. The desktop is what one sees in the monitor glaring at you when the distribution is up and running.
The X-Windows system and Window (behavior) Manager sit behind the monitor and does the donkey work that the user requests.

What to Chose?

A Window Manager or a Desktop Environment?
The choice depends on the needs.
It is better to chose the Desktop Environment and in that also to chose LXDE.

Why LXDE?

It is not resource hungry and works on laptops with low battery charge time for long hours and on old computers.
Yes it uses Openbox window manger which consume little RAM.
Both KDE and Gnome and especially Unity take up lot of resources and slow down the computer.

Window Manager?

If you want to cut down on resources and play and see which one fits your needs, there are 30 odd window mangers to choose.
Above is the nuts and bolts about graphic front of Linux.
The beauty is one can configure it the way one wants it to be.
There is lot of work involved in customizing a distribution and one needs lot of patience, understanding of the hardware, the software and the operating system running on the platform.