Huawei's LiteOS Internet of Things Operating System Is a Minuscule 10KB
Mark Wilson writes: Chinese firm Huawei today announces its IoT OS at an event in Beijing. The company predicts that within a decade there will be 100 billion connected devices and it is keen for its ultra-lightweight operating system to be at the heart of the infrastructure. Based on Linux, LiteOS weighs in at a mere 10KB — smaller than a Word document — but manages to pack in support for zero configuration, auto-discovery, and auto-networking. The operating system will be open for developers to tinker with, and is destined for use in smart homes, wearables, and connected vehicles. LiteOS will run on Huawei's newly announced Agile Network 3.0 Architecture and the company hopes that by promoting a standard infrastructure, it will be able to push the development of internet and IoT applications
That's 3.05e-7 Libraries of Congress for those of us in the civilized world.
security is easier with a small footprint than a large one.
640k was enough after all.
The operating system will be open for developers to tinker with
and suddenly it becomes 10mb.
Buck Feta. You know what to do.
We was lucky if we had 4kb for the OS and the program code and the graphics and the sounds.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
No mention of the license. "Tinker" isn't sufficient.
This is Huawei; the electronics arm of the PLA.
Not touching any of their work without a full open source BSD style license.
Neither will anyone else.
This story seems to confirm my ongoing claim that a minimal Windows install taking 15Gb+ of disk space and using over 1GB of ram just to run is BEYOND crazy. ...but then I'm also old enough to remember when a bootable MsDOS environment used up about 1/3 of a 1.2mb floppy.
Now get off my lawn.
the kernel is > 2mb nowadays. how did they get in into 10K?
-------
1. Enjoy your job
2. Make lots of money
3. Work within the law
Choose any two.
..seems to be forgotten
Old time programmers remember squeezing every bit of performance out of a system
I remember doing image processing on a 4MHz 8088, in 1986, in assembly
Modern processors are INSANELY powerful..yet, most of the power is wasted on layers and layers of crap that incompetent programmers don't even realize is there
We need to re-discover efficiency in programming
the kernel is > 2mb nowadays. how did they get in into 10K?
Lossy compression.
#DeleteChrome
The claims are ludicrous on their face. No Linux-based has ever been as small as 10KiB. Even the earliest distributions of Linux-based operating systems in the early 1990s required a couple of floppies.
Does anyone remember the tear-down of Huawei's router OS, presented at DEFCON 20? Why would you let those people anywhere near your hardware?
It is easier with something simpler, not something smaller. When you start doing extreme optimization for size, as in this case, you are going to do it at the expense of many things, checks being one of them. If you want to have good security, particularly for something that can be hit with completely arbitrary and hostile input like something on the network, you want to do good data checking and sanitization. Well guess what? That takes code, takes memory, takes cycles. You start stripping everything down to basics, stuff like that may go away.
What's more, with really tiny code sizes, particularly for complex items like an OS, what you are often doing is using assembly, or at best C, which means that you'd better be really careful, but there is a lot of room to fuck up. You mess up one pointer and you can have a major vulnerability. Now you go and use a managed language or the like and the size goes up drastically... but of course that management framework can deal with a lot of issues.
10K is huge! Why, I've got a 64-bit operating system!
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
As a former employee of a technology company that did business with Huawei I can tell you the U.S. government banned all purchases of Huawei hardware for a time and prevented Sprint from building a wireless network with their hardware. Also, all of the Huawei software had to be routed directly through a government agency with source code to check it for security holes. Now I wasn't privy to any of the results but I haven't read any news about the government changing their stance on them..
I'm guessing that joke's a lot funnier outside of the United States.
"I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)
Remember that QNX demo disk? Single floppy booting into OS with networking, GUI, terminal emulator, web browser. Alright, so it's a compressed 1440kB image and it took a while to decompress. But still, it gave you a web browser. And really, that's most of what I need and already more than I want. I don't *want* to need a web browser for what I like to do. There should also be a decent text editor, a programming language of choice (C has always been large-ish even without any supporting libraries, certainly compared to, say, turbo pascal--I could fit the latter's compiler and system library plus a text editor and room to spare on a 360kB floppy if I lost the BGI library from the system set, never used that anyway) and of course a little room to work with.
Anyway, there are plenty more examples all with different tradeoffs. The tradeoff with "modern" OSes is very much not space optimisation, nor even memory optimisation or cycle preservation. Disk, RAM, CPU, even GPU these days, are considered "free" resources and are therefore spent with wild abandon, and redmond is far from the only culprit. It is said that developer time is always more precious, but I say it doesn't if you multiply these hidden costs by the number of users. That is before considering that many developers are in fact idiots in disguise. For a widely-used project it really is a good idea to make sure it still runs reasonably well on slower and less resourceful hardware. But "the industry" disagrees.
The approach taken does mean you need to buy more hardware for basically no gain in essential function with depressing regularity. These days even just to update your browser. And you have to update your browser because so many websites have "upgraded" to new, incompatible, ways of doing the same old thing, again with no discernible increase in essential functionality.
Even the bells and whistles gained aren't worth it: Lots of slow javascript requiring superfast javascript interpreters to reinvent basic things that used to work fine, like presenting a bit of text and some pictures, add a couple of hyperlinks. It's just that "everyone" uses the same bloated and slow javascript-laden website kits. So we're in a situation where we're standing on the shoulders of those that came before, but while the result is slow and ponderous, only the amount of resources required counts as giant.
As someone not grey-haired yet, I see a lot of room for improvement here.
I don't buy into this Internal Combustion Engine gimmick. I looked at a self-powered vehicle last time I was in the market. It seemed to add more cost, complexity and potential reliability issues for no real gain. Instead I got a regular stagecoach. Still transports people and goods, and I never have the administration overhead of having to manage it.
Only an idiot would buy a fridge. I build my own.
You're right everything is all about whcih compromises you're prepared to make.
It seems that ease of development and time to market are now the carte-blanche excuses to mercilessly bodge an architecture, consider memory/disk/cpu resources to be infinite, and throw in dependencies on every bloated toolkit and library instead of writing a few lines of well-crafted code.
In fact I'd say that ability to write well-crafted code is now a dying art. Most so-called developers these days are basically just package integrators and any coding they're obliged to do is sloppy and just glue logic between packages, and they're lost if its in a langauge that doesnt have a garbage collector.