LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (http://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   Opensouce .. Confusion ..Please clarify.. (http://www.linuxquestions.org/questions/linux-newbie-8/opensouce-confusion-please-clarify-657410/)

protocoder 07-22-2008 07:12 AM

Opensouce .. Confusion ..Please clarify..
 
I am new to development and Linux.. I need the following answers..

1. If Linux is Opensource, why each company is developing their own APIs, Took Kit and Development Platform? I feel real Opensource is the base code and these companies use to make their own propreitary applications.

2. In Android Mobile, is Linux does Linux replaces the traditional RTOS like Nucleus etc to develop Stack? Is Linux capable of giving the performance and scheduling of RTOS?

3. Please tell me how to start developing the applications, compiler, tool kit to download and software, IDE etc needed to develop the software? Debugging tools etc? If i use Linux, how to get BSP, Drivers etc in Linux compatible to linux code?

4. If Linux is opensource, why each company came with their own APIs etc and ganged as Android,Meomo, Neo, Qtopia etc? Along with community based Linux like CE, GNOME, LIMO etc..

Thanks in Advance.

pixellany 07-22-2008 07:23 AM

welcome to LQ!! In general, you are going to get better answers by asking one question at a time.

First, "OpenSource" means that the source code of something has to be kept open (available). It does not matter if the code is for a printer driver or a complete operating system. You can combine OpenSource and Proprietary code in a product (and sell it), but you have to keep the OpenSource portions open. For details, read the various licenses.

Linux distros typically come with a free (open-source) compiler and development tools (gcc, etc.) or you can buy commercial tools.

"Linux" typically means a Linux Distribution, which could include both opensource and proprietary code. You have to look at the licenses for each piece.

Many of your detailed questions will be covered in an excellent book: "Beginning Linux Programming" from Wrox.

pinniped 07-22-2008 08:11 AM

1. API doesn't mean anything - "Application Programming Interface" - so what? So a desktop publishing software, database server, and word processor will always have different APIs. Different word processors will have different APIs - so what? People develop things independently, and also they don't like using someone else's code for some reason or other. What is absolutely ridiculous is suggesting that everyone should work on the same thing - this is the world, not Microsoft head office.

2. No idea if Linux stands alone or runs alongside another OS. There are at least two RTOS solutions for Linux.

3. The compiler for most code out there is 'gcc' along with 'glibc' (GNU C library) and its header files. I don't actually know many people who use IDEs - I just use a text editor. Some people use 'KDevelop', others use 'Eclipse', emacs users will laugh if you admit you're not using emacs. What sort of coding do you want to do? What programming languages do you have experience with?

4. Different people want to do things different ways. Just look at Apple - they took a variant of BSD, but they wrote their own display code rather than use the reference implementation of X11. You'll never get all large companies to agree on anything, so you have many alliances each with their own 'mobile phone platform'.

[KIA]aze 07-22-2008 09:37 AM

Quote:

Originally Posted by protocoder (Post 3222505)
3. Please tell me how to start developing the applications, compiler, tool kit to download and software, IDE etc needed to develop the software? Debugging tools etc? If i use Linux, how to get BSP, Drivers etc in Linux compatible to linux code?

IDEs:
List of Free Software and Freeware IDEs

compilers:
-gcc
-g++

debugging tools:
-gdb
-valgrind

Your title is ambiguous and lead me to believe you wanted clarification on this:
http://www.gnu.org/philosophy/free-sw.html
http://www.opensource.org/docs/definition.php

^^

salasi 07-22-2008 11:05 AM

Quote:

Originally Posted by protocoder (Post 3222505)
I am new to development and Linux.. I need the following answers..

No, you don't. You really don't need the answer to these questions. To a certain extent, they may help, but overstating your requirements won't win you any friends and remember that you are relying on the generosity of others to get help here.

Quote:

1. If Linux is Opensource, why each company is developing their own APIs, Took Kit and Development Platform? I feel real Opensource is the base code and these companies use to make their own propreitary applications.
I don't see what the problem is, and how any answer you will get will help in any real way. There are various programs that are Open Source and a user can choose to only use programs that are Open Source or they can choose to be more 'liberal' in their requirements. This doesn't seem to be a problem to me, although it probably is to purists.

There are many APIs. OK, in an ideal world, maybe there would be fewer. But, if by 'company' you mean to include loose collections of individuals who have an informal arrangement to create software and applications, it certainly is not true that every Open Source company has their own API - many don't.

Your use of the word 'proprietary' is a little controversial here; in normal circumstances this is used to describe interfaces and code which is in some way closed. By definition, this is not what you are discussing. Remember, you have the choice of not using anything which has license conditions that you don't like. If enough people do that, the proprietary applications will disappear and everything will be freedom and light. Looking at Oracle, though, I'm not holding my breath.

Maybe you are complaining that APIs take some time to learn and that there are many of them. there may be something in this, but it has little or nothing to do with whether something is Open Source or not, and has something to do with your ability to learn APIs.

Quote:

2. In Android Mobile, is Linux does Linux replaces the traditional RTOS like Nucleus etc to develop Stack? Is Linux capable of giving the performance and scheduling of RTOS?
There are many RTOSs, some simpler, some 'faster', some with more features than others. Linux would certainly be towards the more complex, more feature-ful end of things, but even then, different implimentations of a real time variant of Linux have different compromises between being feature rich and being simple. Probably the simplest, least feature-rich are the 'fastest' but a lot depends on what you measure to judge speed.

For something like a mobile 'phone, which is at least in part, deeply embedded, it is quite often the case that some of the fastest real time stuff isn't really managed by the OS. In this case, the 'speed' of the OS can become a moot point for the real time element of the function. Your point was?

Quote:

3. Please tell me how to start developing the applications, compiler, tool kit to download and software, IDE etc needed to develop the software? Debugging tools etc? If i use Linux, how to get BSP, Drivers etc in Linux compatible to linux code?
If there is a BSP, use that. Almost by definition, board support packages are specific to the board (actually the interface to the hardware) and there is little point in telling you what to use for a different board. So, in choosing a board you'll have taken into account the availabilty of a BSP with the feature set, including licensing, that you want.

You want help developing a compiler? Why would that be sensible?

You are being almost rude - I'm being polite here - in expecting this much help of people without helping them by telling them the first thing of the requirements which shape what you could and could not use for your application.

Quote:

4. If Linux is opensource, why each company came with their own APIs etc and ganged as Android,Meomo, Neo, Qtopia etc? Along with community based Linux like CE, GNOME, LIMO etc..
Why do you doubt that Linux is open Source? What do you mean by 'ganged'? Bundled, maybe? http://www.meomo.com/ doesn't really seem relevant; maybe you mean http://maemo.org/?

If by CE, you mean Windows CE, that really, really isn't Linux. GNOME isn't Linux either, its a GUI that runs on top of the Linux/GNU combo and is really irrelevant to the real time/embedded theme, but has some relevance to the API theme. LIMO is more relevant to real time, but they haven't really done much, so far, so again, it is unclear what your point might be, particularly as none of the items in this little list are community based Linux, which you seem to think that they are. And NEO isn't an API, either.

If your suggestion is really that Linux shouldn't allow proprietary code to be run on it as a platform, you should take into account that a part of Linux's success so far has been the flexibility which allows to the end user to run programs like Oracle and other specialised applications like CAD programs. So, you would sacrifice that part of the success for purity, which would be, at least, a questionable decision.

protocoder 07-23-2008 03:31 AM

Thank you Pixellany, Pinniped, [KIA]aze, Salasi.
I have read your comments in detail and learnt a lot. Hmm my title is out of place to the whole question. I started with 1 question and somewhere i just wrote my thoughts, not questions. I am from typically programming in C on Nucleus, PSOS etc in the software cycle of Protocol, GSM/GPRS (class-B), hmm my new job is in Linux application development on mobile.

I am not sure, if this is a right thread but its my opinion(point of view) that when we use opensource and develop a feature, please give it back to the linux forum not own it though you buy license and sell and make profit. That's how opensource grows. But i may have missed some other point of view.. In that context, i was thinking if Linux has platform independent code of BSP, Drivers, Applications etc where i can write a shim layer to integrate with specific hardware.
I would read the licences as advised to know the thin line between Opensource and Product Specific(if i can use this term).
Also i apologize for the blunders like CE, GNOME etc which even i feel i shouldn't have asked. OK .. what i do.. I am making a plan for a team and to understand the timelines and resource planning to do Multimedia, LBS applications on Linux based phones. I am yet to get hold of hardware as all this is planning stage and could all change,cancel or continue as per the wish of capitalists.

chrism01 07-23-2008 09:32 AM

Try reading this, its a bit long but explains Open Source/GPL: http://perens.com/OSD.html

protocoder 07-24-2008 06:18 AM

Dear Chrism01: Thanks .. good document. I will read in full.


All times are GMT -5. The time now is 04:29 AM.