Review your favorite Linux distribution.
Go Back > Forums > Linux Forums > Linux - General
User Name
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.


  Search this Thread
Old 09-01-2009, 10:28 PM   #1
Senior Member
Registered: Apr 2006
Distribution: MX (desktop: XFCE 4)
Posts: 2,180

Rep: Reputation: 77
the modular design of Linux

Not being a computer geek anymore (I once was, but long before discovering Linux), I don't care much about the design of Linux software--except for one aspect that interests me. I have seen people on LQ explain that Linux software has a modular design (and as far as I can tell, Microsoft software doesn't).
Can anyone tell me more about that--why our software is modular; and especially, if Microsoft chose not to go that way, why not? I somewhat have it figured out already: Linux is modular because it is made by a very large number of programmers making contributions of varying sizes. And, it just occurs to me, a software company like Microsoft has a far smaller group. Is it no more complicated than that? And has Linux always been modular?

Last edited by newbiesforever; 09-01-2009 at 10:29 PM.
Old 09-01-2009, 11:26 PM   #2
LQ Guru
Registered: Aug 2001
Location: Fargo, ND
Distribution: SuSE AMD64
Posts: 15,733

Rep: Reputation: 677Reputation: 677Reputation: 677Reputation: 677Reputation: 677Reputation: 677
The main difference between the Linux kernel is that Linux has a monolithic kernel while Windows uses a micro-kernel.

Linux kernel drivers are loadable. Windows drivers are in a lower ring and loaded when you boot up.

There once was a famous debate between Linus Torvalds and the author of Minix concerning the relative merits between them.

If you are referring to applications, it may be more fair to say that software in Linux tends to be more modular than MS software, but not that MS software isn't modular. MS uses a dog v dog competitive software design model. Two teams work independently on the same project. They may have limited access to the OS source code. A member of the losing team may end up in the unemployment line. OS software uses a colaborative model. This leads to better communication, and code reuse. For example, the MS home server was written from scratch without access to MS server source code.

Another philosophical difference is that in Linux code, the protocol is king. For MS, it's the API stupid. While the application may be modular, the code behind the API may be decidedly not,

Propriety software is often written with an unreasonable deadline. Being rushed, programmers don't have the luxury to just think about the program, and security issues before designing the software. Having software that works and shipped is what is important. Once released, it may have bug fixes but not be redesigned unless rewritten for a new product version. In Microsoft's defense, they do require all programmers to spend a certain amount of time reading and fixing old code. In open source it can be hard getting programmers to do the boring stuff when they would rather move on to new more exciting pastures.

MS software is written starting on a C++ framework. The design may start off from the point of view of the visual interface and designed down from there. The program inherits a lot of baggage as result. A lot of programs written for Linux start out as a number of small C console programs. Later a GUI wrapper is written using these console apps. This results in a more modular design. Take K3B as an example. K3B is written using the QT C++ framework, but it uses console apps in the background to perform media conversions, and burn the disc.
Old 09-02-2009, 12:40 AM   #3
Registered: Sep 2008
Location: MN
Distribution: Gentoo, Fedora, Suse, Slackware, Debian, CentOS
Posts: 98
Blog Entries: 1

Rep: Reputation: 19
Most Unix software is written to do one thing very well and that a collection of application (or tools) can be grouped (or sequenced) to yield a bigger application. Most older developers never full-screen windows and have one windo for their editor of choice, one window terminal to perform compiles and etc. If debugging the debugger is up as a window also (or a browser). Also X prior to the influx of Microsoft users defaulted to have "focus under mouse" and "auto raise" but I switched to "focus follows mouse" and "auto raise" which is better. I also change the double click on the title bar to be "window shade" rather full screen. I still use xterm as the mouse cut and paste still works as in standard X (left highlights and puts into the past buffer, right extends/reduces the hightlighted (and the paste buffer) and the middle mouse does a paste). The KDE/Gnome fail this as they steel the right click rather than using the "alt and/or control modifiers for the context menu pop-uo.


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
Linux for Graphic Design, web design, and publishing maelstrom209 Linux - Software 8 07-17-2011 11:35 AM
Linux web design software or packages for newbie to Linux studio64 Tarastar Linux - Newbie 2 04-03-2009 10:39 AM
LXer: Tiny, modular Linux system targets embedded apps LXer Syndicated Linux News 0 06-20-2007 06:17 AM
LXer: Modular Linux phone revealed LXer Syndicated Linux News 0 06-30-2006 06:33 AM
problem while running linux 9,it always stops at checking modular dependencies sooraj_menon Linux - Hardware 1 03-02-2004 06:06 AM > Forums > Linux Forums > Linux - General

All times are GMT -5. The time now is 02:04 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration