Welcome to the most active Linux Forum on the web.
Go Back > Forums > Linux Forums > Linux - Software
User Name
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.


  Search this Thread
Old 06-29-2009, 01:46 PM   #1
Senior Member
Registered: Feb 2004
Location: Middle of nowhere
Distribution: Debian Squeeze
Posts: 1,249

Rep: Reputation: 49
Linux SDK?

I know this is a stupid question and pardon me for my ignorance.

Let's say if somebody asks, if your Linux distribution (say Debian) comes with SDK installed?

AFAIK, there is no such thing as SDK in Linux right? All I know is that you should have library/kernel headers and gcc devel headers files installed to start compiling simple C programs or may be even drivers?

Can anyone share their experience on this whole SDK thing?
Old 06-29-2009, 01:56 PM   #2
LQ Guru
Registered: Dec 2008
Location: Westgate-on-Sea, Kent, UK
Distribution: Debian Testing Amd64
Posts: 5,465

Rep: Reputation: Disabled
I think what you're saying is true in general. I don't believe the kernel head files nor the kernel source are provided by default but they're easy enough to obtain if you need them. I've never hear of a linux sdk either.
Old 06-29-2009, 02:01 PM   #3
Registered: Dec 2007
Location: Charleston WV, USA
Distribution: Slackware 12.2, Arch Linux Amd64
Posts: 896

Rep: Reputation: 71
Most distribution include gcc (the compiler family), the kernel source and headers, libraries and everything else you need to develop software under Linux. Even those that don't include them by default, usually have a quick way of installing the entire development environments, like the "build-essential" package in Ubuntu. So, you might say, for historical reasons, Linux is just one giant SDK...
Old 06-29-2009, 05:28 PM   #4
Senior Member
Registered: Jul 2007
Location: Directly above centre of the earth, UK
Distribution: SuSE, plus some hopping
Posts: 4,070

Rep: Reputation: 897Reputation: 897Reputation: 897Reputation: 897Reputation: 897Reputation: 897Reputation: 897
You could think of a package like "build essentials" as being vaguely equivalent, but that may not take you forward much. AFAIK, build essentials is a meta-package bundling up various things that you need for building software and you could quite happily get all of the stuff package-by-package.

If in the situation of another OS you tried to do this, including getting all of the tools to work together, it would be more of a struggle. Gnu utils are built with more of a 'here is a box full of tools, you are intelligent/experienced/knowledgeable enough to make them work together'* mentality, so there is less of a gain to be made from making the tools work together.

* It was not my intention to imply that in every case, that the assumption that the end user of the toolset actually achieves this optimally without difficulty. Well, not in my case, anyway.
Old 06-29-2009, 05:48 PM   #5
Senior Member
Registered: Feb 2004
Location: Middle of nowhere
Distribution: Debian Squeeze
Posts: 1,249

Original Poster
Rep: Reputation: 49
Yes, my thoughts were almost the same - one can install packages as and when required in order to get the necessary tools installed for developing applications. I guess it really depends on the type of application that the end-user is trying to develop and depending upon the type they can install different set of development tools.

Thank you all for your inputs.
Old 06-30-2009, 05:02 AM   #6
Senior Member
Registered: Apr 2004
Location: Potchefstroom, South Africa
Distribution: Fedora 17 - 3.3.4-5.fc17.x86_64
Posts: 1,552

Rep: Reputation: 103Reputation: 103
Linux is very general, you cannot really say that something like a Linux "SDK" exists. The basic gcc build environment and GNU binutils "ships" (quotes, since Linux is not really sold to anyone, usually just copied or distributed, since it is free) with almost every distro.

Based on that though, you -can- get SDKs like the Qt SDK (if you want to call it that), KDE's SDK (again, your milage may vary), GNOME's SDK, etc. although these tend to be many separate executables and applications, that can be used seperately in many instances. IMO the "SDK" concept is a Microsoftism, and a reflection of the monolithic approach evident in Windows design philosophy.

I. e. in Windows you effectively get a few, huge black boxes that you poke with a stick and it (hopefully, this being Windows) does something (on a programming level). In Linux you get many, many little transparent boxes that does stuff. If you want to do some kind of task in Linux, the philosophy is usually to build a small transparent box of your own, and have this talk via well defined ways ("pipes", mostly) with another little transparent box.

I. e. the M$ SDK approach is to give you a huge black box that helps you use the other huge black boxes. But, because Linux is a whole bagful of transparent boxes, you can often pick and choose what you want to use, or how to connect them up. It also makes it more flexible, easier to debug, and much more reliable - if one box fails, you can usually just restart it, and mostly if it is a smaller box, the system itself will still stay up and work.

For example, I develop PHP websites in Linux. There is no "PHP SDK" for Linux, as you might get for Windows, if someone decides to build one. I use several discrete components to make my "own" PHP SDK - I chose to use MySQLCC for interacting with the database, and EMACS as my code editor. I could just as well have used Kate and MySQL Query Browser. But since this is Linux, the choice is mine. So I went "SDK like" with my own little bag of transparent boxes, instead of using the huge, large, complex and unreliable one provided by a vendor, like M$ does with Visual C++ or C/Sharp, for example. IDE and compiler, profiler, debugger all basically rolled into one.

For example, if something goes wrong in the IDE code editor for C/Sharp for example, it can take down the ENTIRE environment - the compiler, profiler, debugger, all crash at once. But if, for example, EMACS crashes while I'm editing my PHP source code, MySQL itself, MySQLCC, and Apache all keep running as if nothing has happened.

SDK's are a manifestation of a monolithic (Windows) approach, while Linux uses a much more modular, seperated approach to just about anything outside the actual operating system kernel.

Last edited by rylan76; 06-30-2009 at 05:11 AM.


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 Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
How do I extract the Doom 3 SDK in linux? jspenguin Linux - Games 4 11-09-2004 10:13 PM
free sdk“s in linux for biometric“s gsm Linux - Software 1 06-03-2004 04:20 PM
Does Linux has a speech SDK? Error1312 Programming 2 05-31-2004 02:02 PM
fingerprint sensors with sdk in linux gsm Linux - Hardware 1 05-14-2004 02:46 AM > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 04:44 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
Open Source Consulting | Domain Registration