Linux turns 30

By abhisheknagar

It was 25th August 1991, when Linux Torvalds while studying computer science in University of Helsinki, announced a system in Usenet  newsgroup "comp.os.minix"

 

Hello everybody out there using minix - 

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) 

Linus (torvalds@kruuna.helsinki.fi

PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.

 — Linus Torvalds

 

Linus never thought that this hobby will change the way people think in future. The name Linux was given to he project Code Base by Ari Lemmke at the University of Helsinki, the name was given without consulting Linus, later however Linus Torvalds consented to "Linux".

TuxThe current mascot "penguin" was announced by Torvalds in 1996, Torvalds mentioned that he was bitten by a penguin when he visited a Zoo in Australia. Larry Ewing drafted the wellknown mascot, the name Tux was suggested by James Hughes as short of tuxedo.

Super ComputersIn 1992, Andrew Tanenbaum a well recognized computer science scientist wrote on the same newsgroup with title "Lixux is obsolete". which started the great debate about the Linux Kernal and today Linux runs 100% of all Top 500 Super Computers.

My Story

My first interaction with Personal Computers dates back to 1993, when i used to use Disk Less Systems in and around 1997-98 i was using 286, 386 Systems in our labs. The fear of Y2K delayed our first purchase of Personal Computer and finally in the year 2000 we bought a Celeron 633 Mhz, 32 Mb RAM, 2 Gb HDD based Personal Computer, those days there were Magazines like CHIP, DiGiT, PC Magazine which started supplying Software Utilities Compact Disks along with them, and some where in 2000-2001 one of these magazines supplied Mandriva Linux Compact Disks.

First PresentationAs usual the habit was of trying all the software available with the magazines, i tried installing Mandriva Linux without any past experience of non FAT filesystems and Oh HO resulted in wiping out of all my existing data, none of the software i had in Floppies or Compact Disks worked as they were all DOS/Windows compliant software. The situation was fearsome as without any knowledge a school going kid had lost his running software.

It took me whole day to bring back Windows 98 mostly at that time which ended by First Journey to Linux :)

 

 

Well once i completed my schooling in Kashipur, i went to Banaras Hindu University and then to Symbiosis Institute of Computer Studies & Research Pune in 2007 where the never ending journey to the Linux World restarted.

I am very lucky to have some of the great teachers behind me always that the journey which restarted is still continuing and today i not only use Linux based Operating Systems but also contribute back to the community in various forms code, translations, teaching and many more.

In the college days we used various flavors of Linux some of them have now even reached end of life, which taught me resolution of issues ,writing Howtos and referring various guides to explore and innovate things.

I generally don't speak much but the Open Source / Linux World taught me to be open and now i am able to speak up my views openly.

In present day i continue to be a loyal user, contributor, teacher. On my linux journey i have built servers, radio stations, AI Applications, Bots and much more...

 

30 Yrs

PXE : making your admins life easier

By abhishek

Need to setup a lab/office with 200+ computers, very tiring job but look if you have machines identical in configuration why are you installing each of them why not install one and replicate it to others this will save a lot of time, But how will i do this?????????? Its very very simple you can do a dd of the source to all destination but this would be even difficult and a bit geeky, hey dont worry we have a solution for it use PXE. 

Now what is this PXE??

Wikipedia "The Preboot eXecution Environment (PXE, also known as Pre-Execution Environment, or 'pixie') is an environment to boot computers using a network interface independently of available data storage devices (like hard disks) or installed operating systems."

But how does it help?? :)

there can be different situations of installation for eg u only need to install one operating system on a machine this can be easily dome by using an image which is already stored on PXE server as i call it. or u might have a whole list of OS and other softwares which are  required to be installed/configured on every machine in the environment now how do i achieve this. The solution is configure once machine with all the required softwares into it and replicate this using pxe. its very simple just setup a PXE server which provides a sender-receiver mechanism i.e which can make once machine as sender and others receiver once its done you can relax and have your whole environment setup within 30mins or so, time would very on various issues including Network and Disk Size.

But how to design a PXE Server??

I would not write a how to as its already available on Internet i just don't want to duplicate things so you can now move to http://udpcast.linux.lu (this is really a gr8 open-source project) or https://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install and configure your own PXE server just for an hint u need to install the following on services 1) tftp-hpa 2) dhcp3-server (u can use another machine as a dhcp server as well) 3) netkit-inetd 4) You might need to recompile the kernel to suit your requirements in case of any problems you can write to me :) this PXE system has helped me a lot many times, i have configured one such system today which worked on fine so i strongly recommend this but use it on your own risk a single mistake can wipe out your entire data or do something which you have never expected so it on your own risk

Task Scheduling in Linux

By abhishek

In recent past i use to do certain tasks at some scheduled time on the day which also included shutting down one of my machine at 8 PM. Then I came to know that this could be effectively done automatically using cron and so I am discussing cron in this post. Cron is a daemon which schedules recurring tasks to be executed at a predefined time and date . It is very easy to schedule a job to be run at a particular time using cron. Cron daemon is typically started at boot time and runs continuously in the background. Cron maintains a table of tasks in a file named crontab which is usually in /etc directory. Each user can have separate cron file In order to access the current cron table, the crontab command is used as follows :

$ crontab -e

The above command will load the user's crontab in an editor - usually 'vi '- for editing by the user.

The crontab file contains 6 fields which are as follows :

Min Hours day-of-month month day-of-week command-to-run

And the values of these fields can take the following form:

Min - 0-59 Hours - 0-23 day of month - 1-31 month - 1-12 or Jan-Dec day of week - 0-7 or Sun-Sat

Fields in a crontab may be separated by any number of tabs or spaces. And a '*' symbol in a field represent all valid values. Suppose I am logged in as root and want to modify a crontab file of a particular user. Then I use the '-u' switch : # crontab -u username -e And to list the crontab,

$ crontab -l

You can remove the crontab using the -r switch:

$ crontab -r

Restrict or allow user access to cron

Using the two files, /etc/cron.allow and /etc/cron.deny, root can allow or restrict a user from using cron.

System crontab files

/etc/crontab - Master crontab file /etc/cron.d/ - directory containing additional system crontab files.

The syntax of the system crontab file is slightly different from the user crontab file explained above. In the system crontab file, the sixth field is a username which will be used to execute the command in the seventh field.

Below is the listing of my system crontab file - /etc/crontab

# File: /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 00 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly

As seen above, run-parts is a shell script which takes one argument, a directory name, and invokes all of the programs in that directory. The directories cron.hourly, cron.daily, cron.weekly and cron.monthly contain executables which are run by the master crontab file /etc/crontab . Thus at 4:00 every morning, all of the executables in the /etc/cron.daily directory will be run as root.

If you view the /etc/cron.daily directory, you can see a lot of executables which are run daily at a predefined time as specified in the /etc/crontab file.

In my case I added the following lines

00 20 * * * root /sbin/halt (To shut down system @ 8 PM daily)

00 13 * * 0 root /sbin/halt (To shut down system @ 1 PM on sundays)

using this I was able to automatically shutdown machines once the clocked said its time to close.

Thunderbird Signatures/Buttons