Maker Pro
Maker Pro

Kernel or Off the shelf OS?

Hello,

I am facing a crutial decision. If you are an experienced programmer or a project manager for a big IT/Electronics firm, your feedback would be very appreciated.

Let's say your firm is developping a product with a *similar potential* of sales as the Iphone. However, the product I am talking about is not a phone, its a device which requires a GUI with inputs and outputs and requires RF communications.

That being said, which platform would you pick:

1) Use an off the shelf OS like Windows mobile or Android which would legally bind you to certain contractual conditions such as obligatory open source, royalties ect...

OR

2) Build your own kernel and GUI where no obligatory contractual constraints exist

Bear in mind, in either condition, money and man power is not an object!

Your insight is appreciated!

regards
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
I would go the open source route.

Bear in mind that other than modifications that you make to the open source software itself, nothing else will typically have to be open source.

Apple pretty much did that with their latest OS. They took a BSD licensed product (which doesn't demand your changes be revealed) and built on that.
 
I would go the open source route.

Bear in mind that other than modifications that you make to the open source software itself, nothing else will typically have to be open source.

Apple pretty much did that with their latest OS. They took a BSD licensed product (which doesn't demand your changes be revealed) and built on that.

I agree with steve, to re-invent the wheel is non-sense when you can just build on top of a preexisting platform while still maintaining property rights of the stuff you create.

Not to mention, if in the process you can help make the open source project you are using better, then it is a win-win for everyone.
 
Hi guys,

Bear in mind that other than modifications that you make to the open source software >itself, nothing else will typically have to be open source.

I see.

And you are 1000% sure there are no other contractual constraints with Android and Win Mob ?


to re-invent the wheel is non-sense when you can just build on top of a preexisting platform

In all due respect, in a small embedded system how many things do we really need. In my small kernel I have created the following:

- several commands to display pics and I cons
- a small selection of controls (List boxes etc..)
- a small rtos (which mimics windows messaging method)
- a basic file system to store and retrieve records from flash with queries
- simple touch screen

and
- Soon I will embbed functionality for a camera and sound

Honestly, yes it took a lot of work, but its my own ! whatever I choose to implement in the future will only be features we really need. An off the shelf OS comes with alot of stuff that I may not need. And which MCU or Processor has the capability to load one of these OSes and what is the processor's cost? And what is does the learning curve entail?

Thanks for your feedback guys
 
Last edited by a moderator:
Honestly, yes it took a lot of work, but its my own ! whatever I choose to implement in the future will only be features we really need. An off the shelf OS comes with alot of stuff that I may not need. And which MCU or Processor has the capability to load one of these OSes and what is the processor's cost? And what is does the learning curve entail?

Well if you already have a kernel, then by all means use it. But a kernel is only as big as you need it. Monolithic kernels like the linux kernel can be stripped down to the bare essentials and then you can build on top of that. It is like peeling an onion. You peel off a layer till you get what you need and then dress it up to suit you. The one advantage has to be the guarantee of some stability. How robust has your version been tested in the field?

Just a thought, I am sure if you had all the answers you wouldn't feel the need to ask a few. :)
 
How robust has your version been tested in the field?
It has not been tested on the field yet. But it has undergone thousands of in-lab tests.

Monolithic kernels like the linux kernel can be stripped down to the bare essentials and >then you can build on top of that. It is like peeling an onion. You peel off a layer till you get >what you need and then dress it up to suit you.

So let me ask you something. If I am using one of em off-the-shelf OSes (let's take Linux as an example) and I need to make a specific algorithm for some sort of sensor and the algorithm I come up with doesn't exist out there and the functionality produced by this very algorithm starts to become super *popular*.... would I be obligated to share that code ?

For example, if the algorithm I create controls a sensor in a very specific way that its functionality becomes a very popular feature in the technological field so much so that Linux decides that the algorithm must be made part of the open source medium. So now, others can simply buy the sensor and demand my code to get the sensor to work.

Is the latter scenario possible?

Just a thought, I am sure if you had all the answers you wouldn't feel the need to ask a few.
You are right! which reminds me, I am curious... I was just wondering if you can give me a ball park figure of how much an MCU or Processor which the capability to load one of these OSes would cost?

Thanks
r
 
Last edited by a moderator:
would I be obligated to share that code ?

Under the GNU, I believe you would. But that is just one license. Steve pointed out that the BSD license would allow you to do it. You will have to do more research on that subject because I am not very versed in it.
 
You know what jackorocko !!!!

I don't trust anyone! And I mean no one.

http://wiki.osdev.org/Licensing

After having read this, now I am even more confused. I am not a lawyer, I don't understand all the legalities but one thing is for sure, if I do it myself it's mine. If I use OSes that are governed by all this legal mumbo jumbo... I can face surprises that I didn't expect. I rather be safe than sorry. It's just me!

At the begining of that link I posted, it says:

"Probably the scariest thing about software licenses are the endless paragraphs of legalese; we try to keep this text as crisp and short as possible. "

Makes me wonder what other leagal paragraphs are behind this crisp and short licensing document that we don't know about. You know.... it might be fine for these mega corps to use such OSes for their products but they have lawyers looking into all of this to the bitter crumb of the legal spectrum. Even though I said money or man power is not an object, I feel I can do without any legal surprises in the long run.

I thank you guys for your input, I am sure it was all in good intentions.
Regards
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Makes me wonder what other leagal paragraphs are behind this crisp and short licensing document that we don't know about. You know.... it might be fine for these mega corps to use such OSes for their products but they have lawyers looking into all of this to the bitter crumb of the legal spectrum. Even though I said money or man power is not an object, I feel I can do without any legal surprises in the long run.

The whole point is that there isn't. Most open source licences are short and relatively easy to understand by a normal person.

If you don't understand them there are plenty of people who will explain it to you and in most cases a foundation (or some other organisation) that exists, at least partially, for the purpose of helping people use the licence.

Most commercial organisations seem to get tripped up on the requirement in the GPL to publish the source of the GPL code they're using. Since 99% (maybe 100%) of this is what you got for free, it's not hard.

The only real discipline you need to have is to prevent yourself from making changes to the GPL code that you don't want to make public.

If you're using some other licenses you can keep your changes secret as long as you don't falsely claim ownership of the original code.

Look up the FSF, they will be able to help you. If you make a mistake they tend to negotiate with you first to get you to set things right. If that fails they sue you, and you get forced to set things right -- other than your legal costs they typically extract no damages. Compare that to most commercial software...

If you have the resources, sure you can go it alone. But consider that Apple's software is built on BSD and Microsoft's is on their own secret code. Apple is still able to indirectly use the resources of the community of BSD developers, whilst Microsoft is on their own. I know which position I'd prefer to be in.
 
Please Steve, don't feel obligated to read the following articles! O don't want you to waste your time on my account !

It's just that it makes me wonder.... what happens if Linux decides to go closed platform one day!

http://lowendmac.com/musings/10mm/open-vs-closed-platforms.html

http://www.dailytech.com/Google+Refuses+to+Release+Android+Honeycomb+Source+For+Now/article21222.htm

http://www.scientificamerican.com/article.cfm?id=an-open-question

But FSF... what are they an organization that controls software licensing???

Anyway... this is so stressfull... I am done for today!

Thanks for your insight ,.... much appreciated!
r
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
The first point is that Linux *can't* go closed source.

Many, many, many people have copyright over many, many, many small and large sections of code and *all* would have to agree to close the source.

And regardless of this, past versions would still continue to be open. It would just get forked. This sort of thing has happened in the past in projects where one person has the entire copyright and has decided to release all future versions as closed source. I am not sure of any open source license that permits once open versions to be retrospectively closed -- certainly none of the major ones.

The first article basically points out that the two major smartphone OSs are from Apple and Google. Both have open source roots, and it seems to point to the power of open source rather than the opposite.

The second article about Google and the Honeycomb version of Android is simply an example of a situation where one body holds the copyright. They are perfectly within their rights to release it with whatever license they want to. However, once they've released previous versions as open source, those versions remain open. If you need to make changes, you can. You just may not be able to rely on one particular developer making them for you. It's still no worse than it being your own code where you'd have to make the changes anyway.

The third article boils down to asking "Is choice and freedom to tinker a good or bad thing?" The answer is "it depends". And that's where you need to make a decision. Personally, I think the ability to tinker is better than an absolute denial of any right to tinker, but I don't deny that it opens you up for other problems.

Who are the FSF? Look here.

Also see here. "The Software Freedom Law Center provides pro-bono legal services to developers of Free, Libre, and Open Source Software."

This is worth a read. And I was actually thinking of the SFLC when I said FSF previously. There is some overlap between them.

Primarily, I'd suggest you speak to your developers who should understand the basic concepts and who may be able to point out specific advantages and drawbacks as they relate to you. However don't assume that your developers are completely familiar with what is required for commercial use of open source software use and distribution (lots of people make silly mistakes here)
 
Hi Steve,

Thanks for helping me out with this.

Another issue though is if I go with one of these off-the-shelf OE'es:

1- What MCU/CPU is requirements to run a minimal version of the OS? Also what would be the typical cost of the MCU/CPU?
2- How much ram/rom do these OS's require to run the minimal version? And what would these chips cost?
3- Can theses OE's give me access to the MCU's digital and analogue I/O's, PWM pinouts, USB, RS232, I2C?

I was wondering if there is a kit out there that I can evaluate?

Thanks
regards
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
For an example at a low price point, have a look at the Raspberry Pi. I believe this is an open design (I may be wrong) and it runs a pretty stock Linux.

There are also plenty of routers etc that run Linux in a couple of meg of memory.

The Raspberry Pi is probably cheaper than any kit and you'll almost certainly find more help using it that someone's kit. The disadvantage is that most of its interfaces are those of a regular PC
 
Yes but I don't think RPI will hand out the schematics and BOM.... I need bare bones integrity. I have to build from the ground up since there will be other circuitry added onto my board
r
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Maybe, maybe not. But get your point.

Look here for a list of open source hardware (many of those which run Linux). They will also give you an idea of the hardware requirements and should have schematics and BOMs (or should that be BsOM).
 
>Look here for a list of open source hardware (many of those which run Linux). They will >also give you an idea of the hardware requirements and should have schematics and >BOMs (or should that be BsOM).

Sorry Steve, unfortunately I don't see your link !

Perhaps I would go with an ARM MCU!

I don't know.. I found this:
http://www.rowley.co.uk/arm/index.htm

Confused
 
Top