[Ubuntu-BD] GNU/Linux খ্যাত কার্নেল এবার কম্পাইল হলো অ্যাপলের Clang কম্পাইলার দিয়ে

Nasimul Haque nasim.haque at gmail.com
Tue Jul 31 10:38:29 UTC 2012


2012/7/30 সাজেদুর রহিম জোয়ারদার <toshazed at gmail.com>:
> সোলারিসের কার্নেলও তো লিনাক্স নয় রে ভাই।

> আমি বারবার বলছি শুধু লিনাক্স কোন একটা পূর্নাঙ্গ ওএস নয়। আর জিএনইউ/লিনাক্স
> হলো পূর্নাঙ্গ্ ওএস এর ধরন/নাম। শুধুমাত্র লিনাক্স কার্নেলটাকে আমি কেন, কখনোই
> কেউ জিএনইউ/লিনাক্স বলার মতো পাগলামো করতে যাবে না।

So you think a Linux OS, no matter how it is built, whether it
includes the 'usable' commands from GNU or not, should be called
GNU/Linux. Just because it is built on top of Linux kernel! Here are
two projects, for example, busybox and Magenta. The first one,
busybox, is a complete rewrite of those small tools + Linux kernel. It
just does not dump the GNU tools on top of it's kernel. It implemented
them completely independently for clean code and small footprint. This
busybox is used widely in several products, including HD TV receiver,
freezer, mobiles, networking devices, etc. It is a popular platform to
build embedded devices. So it does not include GNU tools and replaces
them by their own code. So do you think it is fair to call this
busybox platform GNU/Linux or busybox/Linux?

The Magenta project is a newcomer, it targets to be an iPhoneOS clone
built with Linux kernel and Darwin userspace. Notice that there is no
GNU tools in here. But it is built on top of Linux. So do you want it
to call GNU/Linux?

If you run the GNU uname -o on both of these non-GNU project, you will
be reported that you are running GNU/Linux. That is an absolute lie.

Installing GNU tools on top of Solaris or windows or blah does not
make them automatically GNU/blah. But installing on linux it
automatically makes it GNU/Linux.

> কারন "উইন্ডোজ" একটা পূর্নাঙ্গ ওএস এর গোত্রেরই নাম।
> জিএনইউ ব্যবহার করে যদি উইন্ডোজকে সাধারন ব্যবহারকারীদের জন্য কর্মক্ষম করতে
> হতো তবে ওটার নামেও এইরকম জিএনইউ জুড়তে হতো বৈকি।

Let's see the definition of the Operating System. The textbook
definition of OS is:

"An operating system (OS) is a set of software that manages computer
hardware resources and provides common services for computer programs.
The operating system is a vital component of the system software in a
computer system. Application programs require an operating system to
function."

So it is a piece/collection of software that interface hardware and
application software. That is, how to read/write a file in the hard
disk, how to get the network communication from/to hardware to the
desktop software, how to receive/send audio/video through the actual
hardware and so on.

All of these are done by Linux kernel itself. Linux is a monolithic
kernel. It takes all the responsibilities of any kind of
hardware/software interaction in a computer. That's why the drivers go
directly into the kernel.

Now let's have a look at what those 'useful' GNU tools do. They are
tiny little file manipulation commands: ls, cd, cp, dd, mv, rm, touch,
cat, mkdir; terminal settings commands: tty, stty, dircolors; system
settings commands: uname, chown, chgrp; utility commands: df, du,
base64, sort, tee, cut, grep; and so on. Not a single one of them
talks directly to the hardware. They do not make any interface to the
hardware and software. They are **application** software. Those lie
idle in your /bin, /usr/bin folder forever, unless you run them by
yourself. Just like your OpenOffice or Firefox browser.

Hence by this definition, GNU tools are not part of Operating System.

Let's take the popular belief or today's definition of OS.

"The collection of software that run in background to make your daily
software run, that is, make your computer usable."

The GNU tools fall in this definition of OS. But then there are more
important tools than GNU that are required to satisfy this definition.
The X server. That is the most important piece of software in this
definition, which is not GNU. But surprisingly the X people do not
impose their name to be used on Linux, BSD, Solaris or any other OS
where it is used to build an **Operating System**. Without this you
cannot open your favourite firefox/chrome/libreoffice or even the
gnome terminal will not be available to run the GNU commands. (Yes, to
run GNU commands, you do not need X, I know). Also by this definition
LAMP is an operating system.

Therefore, in general, the distribution is the operating system.

And there is another defintiion, invented by the one and only RMS and
the almighty GNU.

uname -o

In previous post I showed that this option is only available in GNU
uname. It does not exist on any other implementation. It was not there
in the original UNIX uname. And if it exists in any other
implementation that only is synonym to -s.

> ভাই জিএনইউ থেকে যেগুলোর জন্ম সেগুলো কে জিএনইউ লাইন্সেস বা ওপেন লাইন্সেস
> সমূহে যথেষ্টই উল্লেখিত/সম্মানিত করা হয়েছে এবং হয়। আর আবারো বলতে হচ্ছে যে --
>
> উবুন্টু == জিএনইউ থেকে প্রাপ্ত টুলস + সফটওয়্যার + লিনাক্স কার্নেল (মূল
> কার্নেল + ক্যাননিক্যাল কর্তৃক পরিমার্জিত অংশ)

> উবুন্টুকে উবুন্টু বলতে তো আমি আপত্তি করছি না। কিন্তু যখনই বলা হচ্ছে কোন
> জাতের অপারেটিং সিস্টেম তখন যেনো শুধুই লিনাক্সের নাম উচ্চারিত না হয়। কেননা
> সেক্ষেত্রে উবুন্টু এবং লিনাক্স দুটোই সামনে/পাদপ্রদীপের আলোতে আসে। কিন্তু
> সবারই জানা উচিত যে এই আজকের অবস্থানের পেছনের মহাত্মাগুলো কাঁরা এবং কি সেই
> অবদান। আর তাই বারংবার বলবো উবুন্টু একটা জিএনইউ/লিনাক্স ডিস্ট্রো।

No, Ubuntu is not GNU/Linux. That is why the gNewSense project exists,
precisely. The gNewSense is GNU/Linux which removes the binary
blobs/proprietary software from Ubuntu and markets Ubuntu in a new
label.

> ভুলে গেলেন কেনো দাদা যে, লিনাক্স মিন্টের ডেবিয়ান সংস্করনকে "লিনাক্স মিন্ট
> ডেবিয়ান"ই বলা হয়।

It is named so to distinguish the Ubuntu and Debian derivative. It's
not a naming policy that Debian forces like GNU.

> সেখানে জিএনইউ এর কোন প্যাকেজ বা কিছু ওইরকম চোখে পড়ে না। নিভৃতেই তাঁর কাজ
> চলে এবং সাধারন ব্যবহারকারীরা সুবিধা/মজাটুকু পায়। আর তাই ইদানিং যদি কেউ মজা
> করে "ঘি" খেয়ে "ঘোষ"র গায়ে তেলচিটে গন্ধ বলে বেড়াবার মতো ধৃষ্টতা দেখাতে চায়
> কিংবা "ঘি" খেতে "ঘোষ"র কি দরকার? বলতে চায় তো আমি বিরক্ত হই এবং নিজের জ্ঞান
> থেকে বোঝাতে চেষ্টা করি এবং আগামীতেও করবো।

Every program is identified by itself only. So does GNU tools. All of
them have a command line option -v or --version, that shows the name
and version of it. Web servers like Apache/nginx/mongrel runs silently
in the background. They do not require appending their name to an
operating system to be used. To use a 3d card driver, one is not
required to append their name to the operating system. It is run
silently in the kernel. It does not force you to call it Intel or
nVidia or AMD Linux. There are thousands of other software that run
silently in the background that does not force their name on your OS
to be run. And as I show previously that those GNU tools are not
required to run silently in the background. They run only when user or
other software asks them to run.

> কাউড কম্পিউটিং শুরু হয়ে গেছে। মাইক্রোকার্নেলের শক্তিমত্তা বুঝতে আর বিস্তার
> দেখতে হয়তোবা আমার এ জীবদ্দশায় সম্ভব না। কিন্তু যদি এই মেইলের লগ আরো এক শতক
> পাড়ি দিতে পারে তো নিশ্চিতভাবেই সেদিনকার সেনানীদের সবাই জানবেন যে, এই
> "জিএনইউ হার্ড"ই হবে তখনকার দিনের সবচাইতে শক্তিশালী কম্পিউটিং প্রাণভোমরা।

Cloud computing is not a new thing. It is always there from the very
beginning of the computing history. The file server, web server, etc.
always existed. The clustering is not revolutionary, it is there from
the very beginning of UNIX. The RAID disks system always existed. The
virtual machine concept is not new. This is only a buzzword for a
consumer market. They bring those existing technologies together and
put pretty API on top of it and call it by a new catchy, shiny name.
In tech world, this happens all the time and it is required. General
users do not need to configure their file server. They can just use
one from any vendor. They do not need to know what different/complex
technology is used underneath. They just need a memorable name to use
it. The "Cloud" is a pretty name to remember and use.

Consumer cloud system has arrived in 2002 via Amazon AWS. Azure,
Appengine, iCloud are just catching up. They all have different use
cases but they are all clouds. OpenStack, eucaliptus, juju, etc. are
tools to build open source clouds and those run on Linux happily.

Hence we see that GNU hurd is a little late to join the cloud era.
Linux, BSD, Windows are handling the "Cloud" for a while now.

The success of Linux has not come from GNU. If GNU was not there, BSD
would be used. Linux would still exist. But GNU would not be so
successful if it was not picked by Linux. They had to compete with
Linux, BSD and now OpenSolaris directly with their never-ready hurd,
oh I mean GNU hurd, kernel.

People use or forced to use GNU tools to build software for Linux.
They do not do it for the love of GNU but for the limitation. One who
builds something cross-platform knows the pain of using incompatible
versions of these tools with the UNIX counterparts and curse Linux why
they picked GNU not stick to the BSD.

The GNU people are the most ungrateful, they do not recognise this.
They do not understand that they are successful because of Linux, not
the other way around.

It is exactly the same situation as a Windows developer has no other
choice than using Microsoft build tools or OS X developers has no
choice other than XCode.

-- 
M. Nasimul Haque
Appliansys, Coventry, UK
http://www.nasim.me.uk


More information about the ubuntu-bd mailing list