OLPC Inspires Open Source Projects 75
Don Marti writes "A loose network of developers representing many commonly used open source projects are working to develop a new generation of low-memory, efficient code. This targeted code is being designed for a system, of which only 500 prototype boards now exist:
the 'Children's Machine 1' from the One Laptop Per Child project." From the article: "Gettys says measuring existing performance has to come before trying those changes. 'We've been pulling in every decent performance tool Linux has so we can optimize when and where it really matters,' he says. A key automated testing tool is Tinderbox, a build and test management tool originally developed for Mozilla, that new OLPC developer Chris Ball has installed, to build and test OLPC software. And, after Red Hat kernel developer Dave Jones gave a standing-room-only talk at the 2006 Linux Symposium titled, Why Userspace Sucks (Or, 101 Really Dumb Things Your App Shouldn't Do), his reports of suckiness, which include kernel-based measurements of wasteful behavior, are helpful, Blizzard says."
Mommy, I'm bloated (Score:4, Funny)
Re: (Score:2)
Tiny hands write tiny apps! (Score:4, Funny)
I for one welcome our new prepubescent, code-writing overlords.
Huh. (Score:2, Funny)
Yeah (Score:2)
Just C [wikipedia.org] and dietlibc [wikipedia.org].
Or, for C++ users (Score:2)
Re: (Score:2)
27 clicks later (Score:3, Informative)
"Why user space sucks" is at:
Pages 441-449 of http://www.linuxsymposium.org/2006/linuxsymposium
Re:27 clicks later (Score:5, Informative)
Better download just the paper itself [redhat.com] instead of the full proceedings.
BTW, newsforge has a report about the presentation [newsforge.com] as well.
--
Ademar http://www.ademar.org/ [ademar.org]
I may as well karma whore at this point. (Score:1)
There also appears to be a summary at newsforge [newsforge.com]. A discussion on someone's mailing list. [foss.org.my] Mentioned in the LKML [lkml.org].
Re: (Score:3, Interesting)
Blizzard? (Score:1)
Now, I can't find any mention of a Blizzard in either the linked article or the summary, so exactly who is this quote attributed to?
Re: (Score:1)
Re: (Score:1)
Re: (Score:2, Informative)
Re: (Score:1, Offtopic)
Now, had I noticed I had to click through 5 pages of the stupid story just to generate more ad revenue for linuxworld.com, I might've found it..
It's about Freaking time (Score:3, Insightful)
Re: (Score:2)
I do Hope... (Score:3, Interesting)
Re: (Score:3, Insightful)
This is already happening, in some areas. (Score:4, Insightful)
Agreed. It's obscene to write a simple "Hello, world" and look at the memory usage. I used to fret about a few dozen bytes... now I allocate megs and don't even thing about it. Such is progress. Some people (such as Steve Gibson at GRC.com) are still coding Windows apps in assembly. I know people here aren't too impressed with Gibson (for all his showboating) but I've gotta say it's damned impressive seeing a real honest full-featured Windows app that's smaller than the Slashdot.gif picture in the upper left corner of this page. That's just cool.
Also, look at the Demo world. There are some absolutely stunning apps being written that use procedural rendering to accomplish stunning skeletal character animation with inverse kinematics, with soundtracks and advanced effects, in just a few hundred K bytes. Amazing stuff.
So coding for efficiency is happening, but it's rare -- a case of someone showing off. Or is it?
This brings up an interesting point: due to changes in architecture and hardware, coding for efficiency (usually performance) is already resulting in smaller code size. Let me explain.
In the early days of microcomputers (C64, Apple ][, TRS80), where system resources were extremely limited and cpu power was slight (e.g. 6502/8088, 8bit, 1mhz, 32k RAM, 40k floppies, no HDD or only tape for storage) and programmers had no choice but to code for efficient 1) performance within the boundaries of storage limitations.
Then around the days of the M68000 Macintosh and the 386, with its extended memory addressing, coding for performance meant pre-computing tables and looking up values as needed. Memory was cheaper than CPU.
This trend reversed in the early 90s when storage became cheap and bus speed increased, but couldn't keep pace with CPU speed advances. Suddenly, it was "cheaper" to compute values at the time they were needed b/c bus speeds imposed a huge penalty on looking up values. Breaking the on-chip ram cache could make-or-break a tight graphics rendering loop, so that was priority. (remember, at this point, software rendering was still common).
Introduce the extremely high-power GPU video cards we have today and the situation changes again. Offloading huge computational loads onto a deidcated graphics engine, the system CPU is somewhat of a traffic cop, ensuring subsystems have a steady flow of sound, textures, geometry, and network packets, oh... and occasionally performing game logic.
So it appears we've come full circle.
The bad news is now you guys have to listen to dinosaurs like me who cut their teeth coding in 6502 assembly ramble on about "well, sonny, back in MY day..."
Re: (Score:2)
The 8088 was the cpu of the PC.
The 8-bit cpus where the 6502 family (Apple II, III, Commodore Pet, Vic, C64, C128...) Z80 (TRS-80, Adam, Timex/Sinclairs) 6809 CoCo family.
And my goodness people 128 megs of ram and 500 megs of storage IS A LOT of space.
I know we have gotten spoiled but that is potently a lot of resources. Take
Re: (Score:1)
Just imagine the future: "Well, sonny, back in MY day we coded in VB6 and we didn't complain a whit!"
Ultra-Efficient Demos (Score:2)
Getting rid of caps lock (Score:1, Funny)
Re: (Score:1)
We must think of the children!!
(I think it was run...haven't played it in a few months.)
Re: (Score:1)
Re: (Score:1)
"She's the LADY MARYAM ABACHA, deposed.
These days can't even get her caps-lock key unfroze" -MC Frontalot
Once Again, when can we buy them? (Score:2)
I know that this theme has been beaten to death but I want to keep it fresh in people's minds, perhaps if we ask enough we'll finally get these. I want to be able to buy myself one or more! They could sell them for $200 and put the profits into the program. Save the children, buy a OLPC! It would also be nice if independent schools here in the US that are willing to employ some alternative education resources (like open source textbooks) could buy them.
Consider this a "bump" in the collective unconsciou
Re: (Score:2)
Re: (Score:2)
Yes, but [I think] that answer is stupid. I will quote it here for critique: "The idea is that a commercial subsidiary could manufacture and sell a variation of the OLPC in the developed world. These units would be marked up so that there would be a significant profit which can be plowed into providing more units in countries who cannot afford the full cost of one million machines."
Basically, if they design these devices and mark them up excessively in order to make money, then they will sell few of the
Re: (Score:1)
Re: (Score:2)
Sugar or Poison? (Score:4, Interesting)
On what is basically an embedded computing platform with 128MB RAM, ~500MB permanent storage, and a CPU that doesn't have a L2 cache (last I checked), how much of these performance tuning would actually matter if all of these userspace apps depends on a language with an interpreter that you couldn't even fit 1/10 into the 16K of L1 instruction cache?
Don't get me wrong, me and my fellow students at the university are working on performance tuning, but as I look in to the Geode chip more and more, I believe that Sugar is poison for OLPC.
Bubblepack Computing (Score:2)
In hardware, bubblepack computing is focused on using present technology to create dirt cheap, very low power consumption platforms.
In software, bubblepack computing implements small and elegant code in modern software enviroments.
The software impact extends to use on older machines which run linux, and USB key distros.
One example: the OLPC Children's Dictionary (Score:4, Interesting)
Re: (Score:1)
Just kids? (Score:1)
Why do they emphazise so much, that this laptop is for kids? The machine will be able to read books, communicate, and record writing, and these features are also useful for grown-ups. Also, it will be targetted towards education, but there is no need to wait a generation to have more knowledgeable people? I mean, if a adult farmer can learn about solar power now, then that leads to more solar power in general.
There are some reasons to have mostly kids use the laptops; 1) limited supply/access, if a town on
Its to deflect criticism. (Score:1)
Person with common sense: "Why are you pushing a dependance on undocumented, unmaintainable hardware from user-hostile corporations on these people when you claim to be open?"
One Laptop Per Customer: "Why do you hate the children?"
Person with common sense: "Why are you trying to sell starving people laptops? Maybe selling them wells so they have
Re: (Score:1)
Re: (Score:3, Informative)
I'm not exactly sure where you get that impression from - certainly Forth can be pleasantly efficient when it comes to memory use, but I would suggest "roughly on par with C" is about the best you can claim. Now, while the Debian Computer Language Shootout benchmarks are hardly ideal, particularly since they are all very small
One of the most powerful scenes in nature... (Score:1)
Is this a platform with no apps? (Score:1, Flamebait)
Those platforms were great technology, but users need apps not platforms or great technology. And yes, I know about all the Linux apps, but look at its market share.
I hope someone will cheer me up and explain why this is not an issue with OLPC.
Re: (Score:1, Flamebait)
Hmmm
So far, I'm not yet cheered up.
Re: (Score:2)
Ummm... Not sure how to break it to you, but I'm sure that at least some of the thousands of applications written for Linux might still be able to run on OLPC, which runs on, uh... let me check.... Ah, yes: Linux!
P.S. What the ever-loving heck does market share have to do with the number of apps that run on Linux?
Re: (Score:2)
Low memory efficient code-really? (Score:1)
After recovering my composure from reading the astonishing statement that a 100MB kernel would be considered small rather than ten-to-fifty times too big, I ran into this:
The kernel halfway wakes itself up 20 times a second to see if you've plugged something into your nonexistent PS/2 port.
They poll I/O ports?! Have these people never heard of hardware interrupts? I knew that a lot of lore had been lost in the PC revolution, but I had no idea the situation was this bad.
Re:Low memory efficient code-really? (Score:4, Insightful)
I don't think that the PS/2 Auxiliary Device Port is designed to generate an interrupt when something is hot plugged into it..
BTW -- notwithstanding what your computer science teachers taught you, polling is quite efficient if loads are predictable. Polling is usually much less resource intensive than interrupts ... if the polls have a high hit rate. And it's much less subject to wierd, difficult to reproduce problems and to race conditions. Across the broad spectrum of computing, there are probably far more cases where interrupts are used when polling would work better than vice versa.
That said, 20 polls per second seems excessive for a detecting a new device on a port that is rarely used except for mice. Once every 5 seconds would seem more appropriate.
Re: (Score:1)
I'll have to take it on faith that some idiot designed an I/O port without an interrupt. As to the rest:
What amazing nonsense!
I was designing I/O devices and writing real-time I/O code before there were computer science teachers or courses. Assuming competent code, polling is always more resource-intensive than interrupts (all of the polling code is a net add—there is no interrupt code that it replaces). If race conditions exist in the environment, neither polling nor interrupts will fix them. Po
Re: (Score:2)
Re: (Score:1)
What vtcodger describes is a situation where the whole machine is, at least temporarily, dedicated to processing a single I/O set. This isn't relevant to the topic. In any case, the usual logic in this case is that the polling loop is initiated as a response to the first I/O interrupt and the interrupt is masked until the loop is exhausted—a mixed strategy. I recall having to do that to read satellite telemetry, and to read paper tape from a reader that, at full speed, couldn't stop between characters
Re: (Score:2)
Boot time (Score:4, Insightful)
Every millisecond speed increase a day of software everybody uses every day would save 12 lives!
NOW GO BACK TO WORK! You murderer!
Re: (Score:3, Interesting)
Only if every one of these people are sitting in-front of their computers, doing NOTHING at all while it boots up...
No looking over at the TV. No listening to music, news, etc. No thought processes of any kind... Otherwise, that time isn't really wasted, just deferred to things you would spend that much more time doing later.
Personally, I hit the power button, and walk away, both for boot-up and shutdown, and I suspect MAN
Bloated code has too many features? (Score:3, Interesting)
I would like to see a library that can be linked in like the profiler libraries that will record what functions get called in such a way that the data can be shared with others in a massively distributed profiling system so the data can get back to the developers so they can look at the data say "we have 3 million people using this code and not one of them ever used this feature...time to purge it"
Re: (Score:2)
Re: (Score:2)
Re: (Score:1)
Maybe I'm the only one... (Score:2)
No open documentation, OLPC is NOT open source (Score:1, Insightful)
Without open documentation for the hardware the OLPC is not a truly open source platform.
From a "help the chiiildren" point of view that's ok, except OLPC are trying to bullshit the FOSS community into doing their development for them by claiming the have an open platform.
Interesting OLPC competition made in EU (Score:2)
The solution is on eBay (Score:1)
If you must have a full install of every windows, mac, and linux app known to man, then Travelstar hard disks will work as upgrades to at least 40 gigs.
Add in (2) extra batteries and an external charger for $24 (I've got