Linked by Thom Holwerda on Tue 22nd Sep 2009 15:34 UTC, submitted by google_ninja
Linux During the roundtable discussion at LinuxCon this year, Linus Torvalds made some pretty harsh remarks about the current state of the Linux kernel, calling it "huge and bloated", and that there is no plan in sight to solve the problem. At the same time, he also explained that he is very happy with the current development process of the kernel, and that his job has become much easier.
E-mail Print r 7   · Read More · 84 Comment(s)
Permalink for comment 385591
To read all comments associated with this story, please click here.
Fri13
Member since:
2009-09-22

"Theo didn't wrote a kernel, he forked an OS"

Isn't a kernel an OS? I thought he forked a platform which included a kernel.


If we want to talk about operating systems, we need to first understand what we're about to talk.

People calls Linux only as kernel and operating system being Linux + something. They are totally lost from technology how operating systems work. So what ever they then try to explain about OS, are wrong because they do not know basics.

First, in history. There were not operating systems. Programs ran on bare hardware. All programs included all the hardware control codes, how to move disk drive head, how to read from memory, how to execute code on CPU, how to print data to printer and monitor and so on. All programs became bloated and very difficult to ran on other computer (updated, older, different) because programs did not have correct control codes to those devices.

So, engineers invented the kernel. It got other fancy names as well. like operating system, supervisor, core, master program, controller and so on.

The OS came between hardware and program. Later you could have multiple programs running on "same time" because the OS operated the hardware resources for the programs. The programs came easier to code because you did not need anymore care about device controlling codes. The operating system (kernel) toke care of that for the programs. Then when more programs started to be ran on same hardware, got great idea to share code between them. Came software libraries. So you had libraries what could be multiple programs use and get more advanced programs by this way, save some storage space and lots of programming time. Because you did not need to invent everything by youself, just use already existing libraries.

On that time, almost all software was free (as beer and speech). And no, GNU did not exist at all on then, early 60's. RMS started GNU after the big companies had stepped on the arena and started to close the software source codes, trying to control them and demanding lots of money to use computer time on different places.

Time did fly and all were happy because the OS (kernel, supervisor, core so on) could have only very limited amount of memory where to run. But memory got cheaper and you got more of it. So OS's started to grown bigger and bigger, until they broke the limit of hundred of thousands lines of code. They became very hard to program and maintain.

Then became totally new idea of building operating system. They sliced up the operating system for every wanted slice what was protected from each other. Most important part was left to control all of them. So born the idea of the microkernel. There is possibility to build with microkernel a server-client or layered architecture operating systems. Plus the older monolithic structure.

Soon on 90's the microkernel architecture was most popular, seemed to be that all OS's were build with that. All were taunting how monolithic OS structure is bad, unstable, unsecure and even it was faster, it was obsolete. So they told.

On that time, we had over 95% of operating systems on markets, having a microkernel structure. Only big servers were running old UNIX OS, the monolithic kernel.

Then Linus started own OS, he designed it in first place to use monolithic structure, instead microkernel what Minix was. He got lots of critic from it from Andrew S.Tanenbaum.

After few years, RMS, the founder of GNU project, started to demand fame from Linux. Because Linux got all the attention of the free open source operating system, and not GNU. So RMS needed to start own propaganda and started to demand that all people calls Linux as GNU/Linux, because you can not do with computer anything with just Linux. You would need GNU tools to compile Linux and your programs. Fact just stays, you do not need GNU tools at all to run them. All GNU tools needs an operating system to work.

So GNU continued developing their own operating system called Hurd. To protected their propaganda, they called it as GNU/Hurd.

Many believes that Hurd is kernel like Linux. Well, they are wrong. Because Hurd is not kernel, it is operating system like Linux. Hurd is microkernel structured operating system. Hurd's microkernel is GNU Mach. Mach was most popular microkernel used on server-client arcitechtured operating systems. It was almost 99% of them.

It was normal to speak about operating systems how kernel was most important part of them.

Linux was monolithic kernel, the old structure to build a whole operating system alone in kernel space, supervisor mode and binary (until 2.2 release).

So, RMS and GNU started to speak about Hurd as it would be just the kernel. Even it was microkernel + operating system servers/modules.

That it is still even on these days. Linux kernel is the operating system called Linux. Linux does not mean anything else than monolithic kernel == operating system. It does not mean distribution, what is totally different term. It does not mean software system (Ubuntu, Fedora so on) or development platform (GNU/Linux). Linux only means operating system.

Problem comes on that people do not understand the monolithic and microkernel structures. They believe they are just different ways to build a kernel. But they are different way to build a operating system. The software what operates the hardware and software and shares data between them, offering nice interface for each other and to user by I/O devices. OS is not fancy software what you see on screen. Those are different softwares. OS does not include C-lib or compiler, those needs the operating system itself to work on the computer. Without operating system, software libraries, compilers, text editors and so on has no way working on computer, unless you code them to control the device. What would be stepping back to long time the history to position when operating systems did not work.

So when we are talking about operating system, we need to understand what kind structure it has. If it is monolithic, it is the whole operating system.

If it has microkernel, the kernel is not the operating system but part of it. The operating system is then microkernel + operating system servers/modules. (do not mistake them to daemons or services, they are totally different software again).

There are few famous microkernel based operating systems. Today most used is NT. Microsoft own operating system what has microkernel structure. Todays newest NT release is 6.1. What runs in the Windows 7. And do not fall to marketing lies about "Hybrid kernels" how they are operating systems what has all the good sides of monolithics and microkernels. They are pure microkernel structured operating systems, but implented just littlebit different. The modularity and structure is still same as on pure microkernel based operating system. Even MS does not call NT anymore as hybrid, only as microkernel based operating system. Same thing is for XNU what some people knows as "Darwin" (Darwin is XNU operating system + development tools. What makes Darwin as development platform, not kernel or operating system. XNU's microkernel is Mach.)

Then there is Minix, the famous OS what Linus used first before started to build Linux OS.
And then GNU's own operating system, the Hurd. What has GNU Mach microkernel on it.

Then on other hand, there is monolithic OS's like Linux, SunOS (operating system of Solaris/OpenSolaris), FreeBSD, NetBSD, OpenBSD, DragonBSD and many others.

On these days, monolithic operating systems are more used on supercomputers, servers and embedded systems than microkernel-structured operating systems. But microkernel structured operating systems ran all the desktops, Mac OSX Snow Leopard and Windows 7.

Reply Parent Score: 2