Version 8.1.0 of FreeRTOS was released a few days ago. Probably the most important feature is support for non contiguous heap space (heap_5.c), needed for allocation of memory (for creation of tasks, queues, semaphores, etc. and also user applications).
RTOS is by a large margin the most relevant and interesting alternative OS out there.
Keep it up.
I have not looked at it in much detail, but it looks like aside of the bare kernel, which is free as in freedom, anything else needs to be licensed for money.
Not only that, but different subsystems will need to be separately licensed from (and paid to) different parties, which looks like a logistics nightmare that could turn to be quite expensive.
Your observation matches mine. Unfortunately some (most) of the silicon vendors promote this mmmm… (can not bring myself to call this an RTOS) scheduler along with the Linux for the customers that can not see past free!
Lobotomik,
I wouldn’t have noticed that if you had not mentioned it.
http://shop.freertos.org/TCP_IP_libraries_for_FreeRTOS_s/1832.htm
http://shop.freertos.org/Add_on_components_for_FreeRTOS_s/1833.htm
To be fair, these are under a dual license (GPL2 and commercial). But I am more than a little surprised that things seem to have been taken out of the base kernel simply so that they could be sold piecemeal:
TCP/IP4 $1200
TCP/IP4+6 $2500
UDP/DNS $600
FAT $400
The other value added products are less surprising to me, because they’re not normally considered integral to a *kernel*.
Webserver $750
Telnet $400
FTP $400
CLI $50
…
The lack of secure SSH/SFTP seems to be a glaring omission, but those would probably run into the thousands at these rates
[begin tangent…]
Alas I can’t blame them for charging, gotta make money somehow. It’s not really fair that others take your code into their commercial products and sell them without giving you anything in return. I’m perpetually torn with regards to the FOSS economy, for me it’s a very deep dilemma. Open source is a fantastic thing, but sometimes I wonder if it’s too hard for most developers to make a living that way.
I benefit from FOSS all the time, I use it to power my client’s websites, etc, and I do so without paying anything in return. Sometimes I contribute code fixes, but that doesn’t really put food on the table.
Arguably it’s really my clients who benefit the most when software is free. I can build them something custom for thousands of dollars, or they can install a FOSS package – I don’t make nearly as much money when they do. In a sense, free software undercuts the need for my development skills. Sure I still customize things and keep it running, but in this scenario there is much less money on the table for both myself and upstream software contributors.
I’d be interested in hearing what anyone else has to say about it.
So a couple of observations:
1. The Free in FreeRTOS is, as I understand it, “Free as in Speech” ^aEUR” as much as I dislike that phase. So the fact that the features in question are dual licensed is compatible with that.
2. Nothing stops you from using other TCP stacks with FreeRTOS, these are just the ones that they offer.
3. Not every embedded device needs TCP/IP, or they may be offloading it to dedicated hardware (like TI’s C3000 Wifi chip with embedded TCP/IP stack).
FreeRTOS isn’t an os like Linux (or even uCLinux for the most part). It is designed to run very close to the hardware in resource constrained environments often with just a few K of RAM. All the things you mentioned in your post are highly optional or unneeded.
Not every embedded app that needs TCP/IP needs DNS, so separating these modules out is not uncommon so that you only use/pay for the parts you need.
4. A CLI is integral to the Kernel? Says who? It and the other things you mentioned are normally considered part of the userspace. All of which are optional for what I suspect is the majority of embedded applications.
jockm,
I suspect the FreeRTOS devs themselves believe that features like TCP/IP are useful for their target demographic, otherwise they wouldn’t be trying to sell it.
I hope you realize I never said otherwise. I was only pointing out the fact that they do charge for commercial use of certain features, which I listed. It’s easy to overlook – at least I did before Lobotomik’s post.
Go back and read my post again, we are in agreement on almost everything you are saying
Edited 2014-09-03 01:28 UTC
You said:
For some of their target demographic sure, but not necessarily most of it. When I look at the majority of the embedded projects I and my peers have done; the vast majority didn’t involve any networking (or CLIs for that matter).
Now personally if I were doing an embedded project that needed networking I would be more inclined to either use Contiki than FreeRTOS. But obviously other devs have other needs. I have a friend who uses FreeRTOS but borrows the uIP stack from Contiki for TCP/IP
jockm,
Actually this was part of my O/T tangent, but no matter
This makes me wonder, are you and your friend avoiding FreeRTOS TCP/IP for technical reasons or due to the costs of commercial licensing?
Contiki’s all inclusive 3 clause license looks far more favorable for corporate use by comparison:
http://contiki-os.org/license.html
Edited 2014-09-03 03:55 UTC
So I asked him, and his response was:
Regarding Linux scalability:
There are two different kinds of scalability. Horizontal scaling (scale out) or vertical scaling (scale up). Horizontal scaling is just a huge cluster, a bunch of nodes on a fast switch. Just add a new node and you have increased performance of the cluster. Supercomputers are typically built as clusters with 10.000s of cores and 100s of TB of RAM. They are priced basically like this: a cluster with X nodes will cost X * cost for one node. So if you have 100 nodes, it will cost you 100x more than one node. These clusters serve only one user at a time; who specifies which computation will be done next.
Vertical scaling is one huge server. Examples are IBM Mainframes, IBM P795, HP Integrity, Oracle M6-32, Fujitsu M4-10s. One large server are exponentially more difficult to build than a cluster. They might have 16 sockets or 32 sockets. One server even has 64 sockets (the fujitsu SPARC server). These servers typically run huge business enterprise ERP workloads, serving thousands of users. The cost is exponentially larger. If you have 16 or 32 sockets, you will pay 1000x more. For instance, IBM P595 Unix server 32 sockets used for the old TPC-C record, costed 35 million USD. Yes, 35 million USD for a 32 socket server is quite expensive, dont you think? Why not replace it with a cheap Linux cluster?
Well, you will never see a cluster running business workloads, because the latency will be too bad on a cluster. Nodes far away will take longer time to reach, making a database grind to a halt (because of data integrity must be maintained among all nodes, etc etc).
Linux scales excellent on clusters, almost all supercomputers use Linux in one form. For instance, IBM Blue Gene use Linux to distribute the workload to each node, then each node runs a minimalistic OS tailored to only do computations and nothing else, its I/O capabilities are rudimentary. Nevertheless, IBM Blue Gene was listed as running Linux – which is not really true.
OTOH, you will never see Linux on a large SMP server with as many as 16 or 32 sockets. In fact, no one has ever sold such a huge Linux server with 32 sockets. Never ever. Of course, people have compiled Linux to IBM P795 server which is a Unix 32 socket server – but it is a Unix server. No one has ever built a Linux server with 32 sockets. All attempts have been to recompile Linux on a 32 socket Unix server – with horrible results. For instance, HPs “Big Tux” which is a Unix server with Linux compiled, showed a cpu utilization of 40% or so. This means that under full load, every other cpu is idle when running Linux. Linux does not scale on huge SMP servers. The reason is that all Linux kernel devs are using desktops, no one has access to a 32 socket server to optimize the Linux kernel to. How could they, there has never ever been such a huge Linux server offered on the market. If you know of one, please post the link here. I dont count a 32 socket Unix server with Linux slapped on top, as a genuine Linux server.
Forgive me, but I am failing to see how this connects to the rest of the conversation. Would you be so kind as to explain the link?
Looking at the first page of his comments, that’s all he seems to do – bashing Linux in one way or another (and this comment previously: http://www.osnews.com/permalink?589351 and I’m sure there are previous instances). Must be just his obsession.
BTW, thanks for the explanation the other day ( http://www.osnews.com/thread?594778 …but I’m probably too stupid to understand it)
PS. What do you think of the http://en.wikipedia.org/wiki/TRON_project ?
You are most welcome. Pullups/pulldowns are easy to understand… if I could sit down with a breadboard and show you. The abstract definition is hard to grok unless you actually play with electronics
TRON is interesting. Like the 5th generation project (hands up if you remember thinking that was going to be a thing), TRON seemed like one of those technologies that was going to just take over everywhere…
…Only it didn’t. In fact IIRC of the various xTRONs only ITRON ended up having legs. And while it is in the heart of a lot of industrial systems, most people will never encounter it, or realize they are encountering it.
It is an interesting OS, it came out just when I was starting college, and I remember reading about it in Byte at the time. I liked the ideas behind it, but I have never worked on an ITRON system, nor have I ever felt compelled to put it on the short list of operating systems I might use.
Never say never though. I mean even the transputer has a new life (sort of) in the form of XMOS…
I do have a vague idea (as good as a computing layman can have, without checking Wikipedia – which I won’t do, I’m afraid of Wiki Effect ) what 5th gen was, but I’m too young to remember when it was a thing
And from that Wiki link I posted, it seems TRON/ITRON really got somewhere, “ITRON) derivative was one of the world’s most used operating systems in 2003,[2]”