Morbid:
adj.
characterized by an abnormal and unhealthy interest in disturbing and unpleasant subjects, especially death and disease.

Now, what processes am I talking about? These are not your everyday processes that you go through in life, trudging along, slowly, waiting for something exciting to happen. And yet, these are processes that happen all around you, without you even paying attention.

I am talking about the processes (and the things that keep them in line) that do all the actual (at least a lot of) heavy-lifting in our digital devices. Whenever you write programs, all you do is list out some instructions that the computer (I’m sure it’s something more specific) would read and execute. Now, the execution stage is done using this wonderful thing called a process.

Processes aren’t bad things, no, they are actually brilliant. I’m sure that if you ever get around to reading about them you’ll find out how they are so necessary for the working of the world. But a piece of fair warning to all who think themselves brave enough to go down that road. You’ll soon find yourself reading about this pretty dysfunctional family. Dysfunctional might even be a kind word for it. The jargon related to processes is the result of the human need to humanize everything they deal with on a daily basis (and of course programmers tend to do things rather more weirdly than common people).

So, let’s start with this original process. Everything else that happens is a child process. That is, a child of the original process. Till now it is just a normal happy family of a single parent and a simple child trying to get their work done. Now, this was just the start. When you want to really get some work done, that is when the real weird stuff starts, you’ll soon be seeing orphaned children, zombies and of course, parents killing their own children.

Now the reason for the existence of processes is pretty simple to understand, unlike that of beings made of flesh. Processes exist to do their job. That’s it, nothing else. Do your job and then die. Or maybe you’ll be killed by your own parent because your purpose in life has been fulfilled. Of course it isn’t always that your parent outlives you. Parents sometimes finish their work (read: die) faster than their children. These orphaned children are then adopted by the special process called ‘init’. This is the original process. The starting point.

Don’t get too happy for these adopted children yet, they don’t get the most happy endings. When a child dies, the parent generally (the good parents (actually I’m talking about a particular kind)) tend to at least write an epitaph for their children. You know, this process was stopped, he quit (no, not necessarily suicide, although that’s possible too), he was killed, etc. At least there is something that tells you (the user, not the dead child) that something happened, that someone noticed when you (not you, the dead child) died. In the case of the orphaned children, nothing like that happens, they just die.

Init doesn’t care for such petty social norms. If init has adopted you then you can be assured that you won’t make it to the zombie stage. You’ll be reaped. Yeah, that’s another jargon. When you’ve done what you were supposed to do but your parent didn’t reap you, you’re a zombie. And, of course, it is a truth universally acknowledged, that a process in the zombie stage, must be in want of a reaping.

Well, enough about these morbid family of program instances (that’s what processes are actually, particular instances of programs that are being executed). Let’s have a quick look at some of the “functions” that are used in this particular world. Of course you can imagine that all of these are just misunderstood or that another of their many meanings is the one that was in the mind of the makers. But let me assure you that you would be fooling yourself, deceiving yourself just like Mal Cobb or Dom Cobb depending on which dream you want to believe in.

These “functions” (these being functions is a debatable topic in itself) like fork, kill and exec are there to make sure that people don’t miss the zombie apocalypse references filled in the matrix surrounding us. Now, fork on its face seems just a little harmless function that does nothing but help in concurrency by making child processes. But when you hear them used near other functions like kill and exec (that for some reason seems to remind me of executions (the fatal kind) every time), it is at those times that I am reassured that the way I see these things is the truth. Oh, wait. Exec actually does destroy the original process that was running, takes away all of its memory for itself. So I’m not too far away from the truth after all.

All this is fine, but what truly convinced me that these all are meant in a morbid sense was ‘kill’. It doesn’t kill, it is there just so that you are reminded of the nature of these events, so that the truth, the reality, doesn’t escape our fickle find-the-happiest-explanation minds. Kill, just sends signals (I’m not going to bother explaining these, they’re just weirder, take my word for it) to processes; not necessarily kill signals, or quit, or stop or anything morbid. But of course the weird programmers (the ones who named all of these) that I talked about earlier needed to make it morbid-sounding.

Having said all this, processes are wonderful, it’s really fun what one can do with them.

PS: Fun fact, I actually Googled “Killing in C”; but I suppose the ends justify the means.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s