Thinking about career in Linux? Part 2

Career in Linux

Photo by Corsanet

Looking for a JobCareer in Linux has flavors too!

In our previous article – Thinking about career in Linux? Part 1, we saw some of the prerequisites which shall help you build a career in Linux, or the Open Source technology. As promised, we move on from where we took a pause, to discuss some more tools/applications which fall under the same category.

Perl

Perl: It is one of the best known scripting languages for system management tasks. It is optimized for scanning arbitrary text files, extracting information from them, and printing reports based on that. Perl is known to be easy to use, efficient, and complete within itself. Several administration tasks can be completed with less pain and trouble with the advent of Perl scripts. Being a Linux admin, you may have to use this feature of Perl to master your network and system upgradation processes.

You may prefer reading the Perl manual, for that matter.

PHP: PHP is a recursive acronym for ‘PHP: Hypertext Preprocessor.‘ This again is a widely-used Open Source general-purpose scripting language with special inclination towards Web development paradigm. It can be easily embedded into HTML and hence widely used. Having a good hands-on over PHP, Apache and MySQL is essential to get your favorite Linux job.

Lookout for the PHP documentation.

PostfixPostfix: It is a mail transfer agent (MTA) used on Linux analogous to Sendmail and Qmail. It is known to handle the routing and delivery of emails. If you’re handling a Linux network, particularly a mail server, you need to have a knowledge about this very MTA. You must master the art of configuring postfix main.cf and master.cf files along with troubleshooting other postfix errors.

Checkout the Postfix official documentation.

rsync: It is a powerful tool to greatly speed up file transfers when the destination file is being updated. Rsync uses uses a remote-update protocol which basically copies only the difference of files that have been changed. It is a great tool for backing up files to another Linux host. An aspirant should atleast be aware of the syntax used with rsync to copy files to another host machine.

A detailed documentation and a tips-and-tricks page shall add to your knowledge.

SambaSamba: I’m sure you would have probably come across this name while working on Linux and reading articles over the web. The Samba software suite is a collection of programs which implement the Server Message Block(SMB) protocol for *NIX systems. This protocol is often referred as the Common Internet File System or CIFS. A lot of companies which run over a Linux based environment use Samba to share files across the network. As Linux career enthusiast, you should master Samba to perfection. The preliminaries include – installing and configuring Samba server, adding and maintaining users, setting up Samba shares, et al.

You shall have a read to this manual on Samba.

SCP: It helps copy files between hosts within a network. It uses ssh for data transfer with same authentication and security as ssh. scp asks for pass-phrases if they are needed for authentication. One needs to know scp if he/she needs to copy files between Linux hosts over a public or private network with security concerns.

A scp manual is here for reference.

This list is however never-ending. I have tried to cover the minuscule number applications which I believe one must be familiar with if he/she is eying on a Linux job. One may not use all of the tools/applications mentioned in this article on daily basis, but these are some of the widely used applications in Linux administration and related Linux jobs.

We shall acknowledge an addition to this list via your comments. Wishing you a great career in Linux!

Thinking about career in Linux? Part 1

Linux Career

Photo by John Vatterli

Career in Linux It’s time now to get into the requisites for building a career in Linux.

The other night, a good question popped out of my head — How many of the geek teenagers wish to work on closed source technology today? It’s been pretty ubiquitous for the computer freaks to turn to Linux/OSS, for that matter. This may not be a good sign for the closed source community and people who love closed source technologies. But that is how the perception is getting transformed amongst the engineering graduates.

However, before changing gears, it’s necessary to know what’s needed off you to build a career in Linux. It’s much more than a mere resistance against Microsoft technology and a hatred for Bill Gates; which I would say is not required at all! Remember, you may excel in one of the domains without criticizing the other one.

We’ve seen how Linux and other Open Source daemons can help us start our business, increase productivity, etc. It’s time now to get into the requisites for building a career in Linux.

Considering a lot of tools which need to be cited for this cause, we’ll complete the entire article in 2 parts.

Here you go;

Apache ServerApache: The world’s most widely used web-server, known for it’s open source architecture. It is often termed as Apache HyperText Transfer Protocol (HTTP) server program. Apache is one of the primal requirements to build a good CMS or likewise, in an Open Source industry. If not much, you need to learn the basics. Most Linux related jobs would ask you to have a hands-on over the apache administration.

Apache’s Documentation.

Apt-get tool: It is a command-line tool to handle packages, often known to be a user’s weapon to get hold of other tools using the APT library. Although, used mainly on Debian based systems, apt-get is cross-platform with various front ends built for it. Apt-get is one of the simplest tool to use and one should still be familiar with its working and syntax on command line.

Apt-get tool Manual.

BASH ShellBASH Shell: Bash (Bourne again shell) is a sh-compatible command language interpreter which executes commands from the standard input or a file. It incorporates cool features from the Korn and C shells(ksh and csh) too. It is fairly necessary for you to know how to program in Bash. One can save a lot of time and energy by writing down a little bash script to automate a task on the command line.

The complete BASH manual.

Iptables: If you’re hitting for a Linux administrator, or someone on similar lines, you need to master this. Iptables is used to install, manage and inspect the tables in the IP packet filter rules within the Linux kernel. With iptables you have the ability to create firewall rules on your Linux computer to allow/restrict access through each network interface. You should be capable enough to list the IP rules, filter a range of IPs and add/remove the rules to the table.

More details on Iptables.

MySQLMySQL: If you remember one of our previous articles on LAMP, MySQL should appear to be an obvious entry here too! It is a simple SQL database with GNU readline capabilities which supports interactive and non-interactive use.While it is used interactively, the query results are presented as an ASCII-table. For a non-interactive use, as in a filter, the results are tab-separated. However, the output format can easily be altered using command options.

To work on Linux domain, it would be very possible for you work on Linux-Apache-MySQL-PHP, aka LAMP. Hence, you need to be familiar with a MySQL server.

MySQL Documentation.

SSH and OpenSSH: SSH/OpenSSH client is a tool/program for logging onto a remote machine to executing commands over it. You might have to use a lot of SSH while working on a Linux network. Some of the basic requirements are – connecting to a server using SSH and setting up a key-based authentication for SSH.

Read more about SSH.

We shall come up with the remainder of tools in our next article. Meanwhile, we’ll be happy to see you master these. Stay tuned!

UPDATE: Part 2 of Career in Linux.

The art of Linux

We suck more

Image from Linux Network

WindowsWe suck more.

As discussed in our earlier article — Ready for LAMP, let’s move on to our mainstream theme – The art of (tao) Linux!

The existence of Linux is inevitable in the realm of LAMP based web development. It is more than incomplete to talk about LAMP without the operating system – Linux. Although Apache, mySQL and PHP/Python/Perl are equally capable of running over non-*nix machines too, Linux predominantly holds a larger share in terms of developers’ choice. Hence the acronym – LAMP.

So, where lies the difference? What is that one-great-thing which is tempting the users and developers to talk about Linux? Is it just the low acquisition cost and access to the source code?

NO!

There are a lot more reasons which form the basis for the increasingly high user-base of Linux operating system. We definitely need to know the reason ‘Why’ before we move on to explore every nibble of a technology. You would have come across a lot of them. Let’s key-in some really important ones;

  • The support: Linux has a pretty decent support available for free over the Internet on forums and IRCs. People have claimed that the free online support they get is as good as that provided for proprietary (i.e., commercial) operating systems for a fee. However, the option for a paid commercial support for Linux is always there. The support may be in terms of — customization, assistance in installing new programs, patches to cope with new security threats or to fix newly discovered bugs. Fortunately, the need for the last two is relatively infrequent for Linux!
  • Flexibility of Configuration: Linux systems have flexible configuration capabilities and hence a lot of customization can be accomplished pretty easily, without having to modify the source code. For example, it is pretty simple to configure Linux during installation so that it will be optimized for use as a desktop computer, notebook computer, web server, or even a router. Similarly, the appearance and behavior of the desktop, including icons and menus are configurable in an almost infinite number of ways, depending upon the users’ taste or requirements. Should this not be enough, the ability to freely access, revamp and recompile the source code provides virtually unlimited flexibility of configuration.
  • Great Hardware Support: Although drivers for relatively newer hardwares take a while to come up, but Linux is capable of operating on a wide variety of platforms (processors and architectures). Linux scales well and is well suited for use over a diverse array of equipments ranging from supercomputers to electronic medical equipment to industrial robots to mobile phones (and can even run on a wristwatch!). All this has been made possible due to greater optimization of the source code, including far less code bloat.
  • Open File Formats: Linux uses ‘open format’ file formats for — word processing, spreadsheet and other file types that conform to industry-wide standards and can be used by any developer of software, anywhere in the world to create compatible programs. This is in contrast to the closed formats commonly used by several proprietary software. This eliminates the problem of lock-in to proprietary standards, consequently putting off the expense and difficulty of switching to some other software in the future. It therefore allows the user to have complete control of its data.
  • Security: Linux has great security which results in a very low rate of infection by viruses, worms, trojans, spywares and malwares. This is because *NIX related operating systems have been designed from the scratch with security in mind, rather than having attempts at security tackled on as an afterthought. For example, users do not always use the system as the root (admin) user by default. This protects key system files even in the event of a break-in by a malicious intruder. Most of the viruses are designed keeping Windows based systems in mind. They are generally of the extensions .ini and .exe, which do not affect the linux installations. The best part  is — free availability of the source code allows thousands of people around the globe to search and report the security vulnerabilities in it.
  • Choice and Flavors: Presence of numerous distributions of Linux, each having its own unique set of characteristics but, basically compatible with each other gives users’ a variety. This allows users to select the versions which best meet their requirements. Moreover, if a provider of Linux were to go out of business, there would still be many others from which to choose. This results in fostering a healthy competition amongst them, thereby contributing to the continuous improvements in Linux’s performance and quality.
  • Each Device is a File: Linux considers devices as files — each device has a respective file to mark its presence. *NIX security model is based around the security of a file, thereby making it easier and more robust to control the accessibility of a device. Hence, making the devices more secure.
  • Linux is Stable and Reliable: That is perhaps one of the reasons for a large number of servers running on Linux.

Did I forget to mention that linux is FREE!

Let’s hope these reasons do some good in our quest to master the-art-of-linux. We’ll see more about Linux in subsequent articles. Stay tuned!

The Open Source Revolution – all you need to know!

Enjoy Free Beer

Photo by SurfStyle

Free BeerWe love free beer as much as we love free softwares.

Most of us admire free beer and free softwares? The former might not be true for all, but I’m sure you all would agree to the software thing! Has it not been true, more than 60% of the internet users would have not been hitting the websites offering cracks and serials (and they would have not mushroomed to an such an extent. Thanks to Google’s Adsense!)

But what if you are a proud owner of a software — be it an application software, a system software or a game that’s free, and may even be registered to you? This was the idea which created the first impression about Free and Open Source Softwares (FOSS) into the minds of the developers around the world who were busy working great, but under the slavery of softwares which were of closed source and high acquisition cost.

FOSS has risen to great prominence. Briefly, Open Source Softwares and Free Softwares are programs whose licenses give users the freedom to run the program for an indefinite time period, to study and modify the program, and to redistribute copies of either the original or modified program (without having to pay royalties to previous developers).

Open source is inevitable as it gives control to the customer. Bugs are more quickly discovered and fixed. And when a customer doesn’t like how a vendor is serving him, he can choose another without overhauling his infrastructure. No more monopolies. No more
technology lock-in.

What exactly happens with the closed source softwares?

In the proprietary closed source model, the entire development cycle evolves within a single company. Programmers write code, hide it behind binaries and charge the customers to use the software. Thereafter, they add fee for the after-sales support — to fix the software if and when it breaks. No one ever gets to know how bad the software really is!

Taking about Open source, we talk about a large, Internet-connected, worldwide community which backs up the entire project. It involves geeks, students, working-from-home engineers and entrepreneurs, tech savvy moms, and anyone you can think of!

To have an idea of how has the fan following for FOSS increased, look at the graph below. Apache’s Tomcat leads the way. Yes, it’s yet another FOSS!

WebServer Usage Graph

Why Open Source?

This is what RedHat has to say on this;
All software is written with source code. With open source software, the code is protected by a special license that ensures everyone has access to that code. That means no one company can fully own it. Freedom means choice. Choice means power.
The entrepreneurs may still rely on paid products and services but the geeks, students and dare-to-do computer professionals are definitely eying on FOSS. It is like a revolution in the field of computing that people have started to believe in sharing information rather than conserving it or hiding it from the world. This concept has led to a movement — to attain new heights and achieve new goals, which were previously overshadowed due to the reign of closed source softwares.

Talking about the developers and would-be-developers, the platform and support for tools and framework is a key concern guiding them to decide an Operating System. Now-a-days, A new web server infrastructure — LAMP is the cynosure of all eyes.

The acronym LAMP (Linux, Apache, MySQl, PHP/Perl/Python) refers to a solution stack of software, usually FOSS, which is used to run dynamic websites or servers. The well-defined tools of LAMP web development exist in nearly every Linux distribution. They include:

  • Linux operating system
  • Apache web server
  • MySQL database application
  • PHP scripting language
  • Perl programming language
  • Python programming language