The main goal of the OLPC, and thus, of the whole computer industry at this point, is to lower the cost of laptops by lowering the power consumption. The best way to achieve that, is to limit the way applications get full native access to the deep internals of the computer system.
Intel's X86 standard and Microsoft's Windows OS were designed only for that multi-purpose backwards compatibility where the same unoptimized bloated software would work across thousands of hardware configurations with often full root access to the deepest internals of a computer system.
For most of the applications that most people need, you do not need full native code support in third party applications. By limiting full native access for third party applications, you take care in one swoop of all the security problems that one has on Intel and Microsoft based PC and laptops. You basically make spyware, viruses, hacking and all of those problems impossible by design.
That is how Android is made. Android provides a totally sandboxed JAVA-based software layer, which only interacts with the hardware features through totally controllable software-to-hardware APIs. With Android on ARM, you have a complete shift in the way third party applications are run compared to X86 Windows XP/7, MacOSX and even most of those X86 Desktop Linux distributions that have been going around, including Ubuntu and Fedora.
The open source native Android Linux code hacking happens exclusively at the manufacturer stage. Which means, you want to have a manufacturer in control of everything, you want the manufacturer to customize Android for the very specific mass produced hardware in question, providing all the standard and non-standard software-to-hardware APIs for third party software developers to gain access to the all of the devices standard or special hardware features.
What you have backing Android is the worlds absolute best company in Google, comprised of the worlds largest concentration of PHDs and Engineers with the most experience in Web and computer technology. The role of Google with Android is to make sure that the native Android code works in the most optimal fashion with the most optimal hardware configurations that manufacturers are making for it.
Google helps manufacturers prepare that Android native code customization for each different System On Chip, for each different variation on the ARM Cortex processor profiles by each of the industry leading ARM processor manufacturers among Texas Instruments, Qualcomm, Broadcom, Freescale, Samsung, Nvidia, Marvell and others.
If you want to change the default Android user interface layer and make it look more like the Sugar User Interface layer (which for XO-1 was built on top of an optimized X86 Fedora Linux installation), you definitely can do those changes and customizations. Those would come from the manufacturers, thus in the case of OLPC from the whole OLPC organization, in cooperation with Google or anyone else helping to create a more education-laptop friendly user interface.
But Android applications remain the same, and apart from slight porting that can be required, all Android applications are designed to work in full screen mode, and management of multi-tasking, notifications, memory and processing power consumption, all those are managed the same way across all implementations of the Android OS.
HP has just announced that they are working to support Android in future HP Laptops. Asus has announced to be working on Android laptops.
Look forward to Android ruling over all ARM Laptop implementations, at least for these where the lowest cost and the lowest power consumption levels have been achieved. Look forward to $100 Android ARM laptops. Look forward to the empire of Intel and Microsoft crumbling under the inevitable hardware and software revolution that comes with the XO-2 and with the whole industry's shift to lower cost, lower power consumption using ARM and Android in all laptops.
The way Android works with Java "sandboxes" on top of a linux kernel is like Sugar inside LKM images on top of a linux VM.
Bitfrost security would be qualitatively like that of the Java interpreter.
Remains the question of what is more economical, developing in Java or Python?
I would guess Python. But that may be just my personal aversion against Java.
Winter
What are the chances OLPC will use Android for its OS and build applications within it?
I suspected Android would find wider use than cell/smart phones months ago.
The future is near.
The largest hurdle with Android-on-laptop, to my mind, is the inability to modify or create applications on an device running Android itself. If someone can come up with a simple compiler that can run on-device, or even a runtime translation from a language like Python into the Dalvik VM's code, I'd become much more excited about it.
(The second largest hurdle is that it can't run any pre-existing apps, which reminds me too much of Windows CE. Perhaps that's also solvable with an app in the style of Apple's "X11 app" that takes you out of the VM environment.)
This is just my personal opinion, etc.
Yeah... because Java is known for great performance unlike that "unoptimized bloat" coming out of Microsoft.
In other news Open Office uses 8 times as much RAM and takes 8 times as long to start compared to Microsoft Office, Softmaker office, or any other feature competitive office suite.
In other news still, this can't even be blamed on Java, because although Sun owns Open Office and Java, Open office isn't coded in Java. Instead it's this bloated cruftware dating back to the '80s that's mostly C++.
Also every desktop operating system is guilty of some amount of bloat and legacy "costs". Look at the weld on cruft known as X11, the enormous size of the Linux kernel, or the *NIX boot process. Apple includes 2GB of useless printer drivers and languages on a default OS installation.
Also the main goal of most of the computer industry is to in fact maximize profit, not to lower power consumption.
The best way to achieve that, is to limit the way applications get full native access to the deep internals of the computer system.
Flat out false. Java or any other type of multi-platform compatibility layer has a major performance penalty because it can't be fully optimized to the architecture, and compiled to machine code. Same as any multiplatform scripting language is slow compared to compiled bytecode. In fact programs coded for modern operating systems don't interact directly with hardware like soundcards / videocards, and there's a performance penalty changing standard API calls to hardware instructions via drivers.
One only needs to look at the history of home operating systems. Early Home computers (C64, Apple IIs) essentially had no operating system and every application had complete control over the whole system. MS-DOS machines aren't really much better.
Then look at early multi-tasking systems. There is a performance penalty because of overhead required in scheduling and switching tasks. As the multi-tasking systems became more sophisticated, so too did the overhead required. However all along the performance of the computer had gone up exponentially. To put in another Java sandbox layer adds another layer of overhead.
This overhead can be worthwhile, as in the case of Java it allows greater platform independence, and in the case of protected memory, preemptive operating systems it allows the user to multitask while maintaining system stability. Personally I do a lot of coding in the scripting language AutoIT. Not as efficient as a compiled language, but it is fairly powerful, and easy to use, so for non-computationally intensive uses it's worthwhile. But don't call it something its not.
Also looking at my old Palm Pilot, I'd love to see a Java sandbox running on linux run on this hardware more power efficiently than the PalmOS.
For most of the applications that most people need, you do not need full native code support in third party applications. By limiting full native access for third party applications, you take care in one swoop of all the security problems that one has on Intel and Microsoft based PC and laptops
Which is true. That's why I run Microsoft Windows as a limited access user except when performing system maintenance tasks. The vast majority of common programs run as limited access just fine. While perhaps not completely airtight (as nothing is) it certainly does reduce the risk. But why do that when you can spread FUD about how Windows MUST run as root all the time.
You basically make spyware, viruses, hacking and all of those problems impossible by design.
No. A lot of "malware" problems is because people are idiots and open "coolpic.jpg.exe" or download XPantivirus2008 because a popup tells them to, or send a money order for $10 000 to Nigeria to get their share of an inheritance. While a sandbox could reduce the risk, or limit the damage, never underestimate the stupidity of people. Also, unless each application is run in a different sandbox, with completely inaccessible file systems, don't rule out malicious code gaining access to other processes. Also look at browser exploits. Code that's "supposed" to be inside a sandbox can take advantage of a coding mistake and gain access to the host operating system. And this is not just limited to Internet Explorer. Firefox has these exploits, and Java has these exploits. Underlying operating systems may also have exploits allowing privilege escalation.
Look forward to the empire of Intel and Microsoft crumbling under the inevitable hardware and software revolution that comes with the XO-2 and with the whole industry's shift to lower cost, lower power consumption using ARM and Android in all laptops.
This is an example of what I was referring to in a previous article: http://www.olpcnews.com/software/applications/javascript_html5_educational_software.html#comment-269470
When I talked about people being more concerned about it being great that Microsoft won't be able to compete.
WHAT ABOUT THE GOD DAMN EDUCATIONAL CONTENT? XO-1 and XO-2 are completely useless if they don't have educational applications and informational libraries.
Something the author left out? Well if the thing is coded in Java, then that means there's already coders out there who are knowledgeable with Java and could be recruited to work on applications as compared with the number of people capable of working on the rickety thing known as Sugar.
Also these applications could be easily ported to other systems, so if you have existing PPC or X86 or other systems, you can run the same applications. Some districts might have donated or purchased PCs. This means this content would be accessible to a larger userbase, which means it might get more attention. It can also be used as a marketing tool. "Hey, see this software that works on this costly Windows system? Instead of buying more of those, you can buy these cheap XO laptops and it can run the exact same applications. It also means it could be used in the developed world where OLPC has absolutely no interest in selling machines.
But why worry about education when you can be more concerned with an OS war.
@John Smith:
"No. A lot of "malware" problems is because people are idiots and open "coolpic.jpg.exe" or download XPantivirus2008 because a popup tells them to, or send a money order for $10 000 to Nigeria to get their share of an inheritance."
These are the peoples (relatives, friends, etc) we have. I do not want to exchange them for other, more convenient people.
In other words, blaming the victim won't make our world a better place to live.
@John Smith:
"Well if the thing is coded in Java, then that means there's already coders out there who are knowledgeable with Java and could be recruited to work on applications as compared with the number of people capable of working on the rickety thing known as Sugar."
An awful lot of people have learned to code in Java. You can also do wonderful things in Java. And the barrier to entry is LARGE. Python is popular for a reason.
Btw, Sugar is a windowing environment, Java is a language+libraries. Java is comparable to python, not Sugar.
@John Smith:
"Also these applications could be easily ported to other systems, so if you have existing PPC or X86 or other systems, you can run the same applications."
Same holds for python. Even Linux runs on all these platforms. Sugar has its problems for development, but Java is not a panacee.
Winter
> the main goal of most of the computer
> industry is to in fact maximize
> profit, not to lower power consumption.
The way to maximize profit (if to have any profit at all) is to lower the cost and be competitive on the cost.
Thus to maximize profits you have to lower power consumption.
Since to lower cost you need to lower power consumption.
Before OLPC, the computer industry was maximizing profit margins per laptop sold. Now they are increasing volume, lowering profit margins to the minimum per laptop sold to get any profit at all. At this point, some of them might prefer having large revenue and larger market share than to have profits.
> Java is known for great performance
Java might not perform very well on Windows/Intel based machines running processor intensive tasks. But that is not at all the type of software to be designed for use on Android devices.
The reason Google chose JAVA for the software layer of Android is probably cause it's easier to use and has more people knowing how to program in it.
Anyways, what you use the JAVA for is only the very basics of the interface features of your applications. Once you want to use processor intensive tasks such as playing back a video, recording a video, launching 3D animations what you do is you pull those features in using the hardware APIs of Android and of that specific hardware that you are using. Then the DSP and other powerful multimedia chips kick in and do the processor intensive tasks.
Even for such things as Word processing, emailing and also for more advanced things as photo editing, video editing, video encoding, all those things can be done on the cloud and the only thing you would need to code in JAVA for the Android softwares would be some interface for using the cloud to run all your processor intensive or cloud-managed and cloud-synchronized applications.
> WHAT ABOUT THE GOD DAMN EDUCATIONAL CONTENT?
That is mostly text, video, pictures and sounds. Those can be played on an Android device just as well if not better than on any other device.
I am not so sure those child-friendly user interfaces like in Sugar and that all those education-specific applications are even useful at all. Sure you can have educational games, and educational applications, but then just run them as roms on an emulator built (by the manufacturer) for Android and the specific hardware, or run those educational activities as some sort of interactive Flash animations or some other such vector graphics engine which could be built and which could support most types of educational activities.
What I believe that the students need the most is just basic access to content in the form of text, pictures, videos and audio contents to download and stream on-demand. That can also include an easy to use one-click functionality to upload videos from the device to the Internet, to review videos of past classes, to find the best videos in the form of filmed presentations, documentaries even cartoons about any educational topic.
Basically you want a good integration of Youtube, Google Book Search, Google Blog Search, Google News, Google Reader and some more child oriented teacher controlled or curriculum adapted versions of these types of content sites.
Charbax,
Large project, like Eclipse, have been written in Java. But anything requiring a lot of computatioanl power should rather be coded in C.
Especially if it is to run on an arm.
Winter
2 small points:
1 - "The way to maximize profit (if to have any profit at all) is to lower the cost and be competitive on the cost.... At this point, some of them might prefer having large revenue and larger market share than to have profits." This is pretty thin speculation on which to hang an argument that basically states that OEMs are about to start behaving in ways that they haven't behaved historically.
As important, people in bottom-billion countries aren't going to buy laptops in quantity, as the manufacturers are finding out. In countries that are actually developing (like, say, Chile or Thailand) and in which consumers are making individual purchases of netbooks in anything approaching significant numbers, manufacturers are already opting to add features and boost price because they need to realize profit (less linked to revenue, less linked to market share) across a global market that isn't turning out to be all that big at this point. Sure, they can drop the price and market their machines to people in really poor countries, but they don't have channels in those countries, for the most part, and they can't sell their higher-end netbooks there in quantity, so they basically don't give a shˆˆ. Unless you're talking about schools, which brings us to a second quibble...
2 - "I am not so sure those child-friendly user interfaces like in Sugar and that all those education-specific applications are even useful at all.... What I believe that the students need the most is just basic access to content in the form of text, pictures, videos and audio contents to download and stream on-demand."
Well this might be true (probably is), but it flies against the entire initial justification for the xo--that it was going to be an effective learning tool with kids with minimal teacher intervention. Among the reasons for wanting to minimize teacher intervention is the desire to minimize... costs! Notably teacher development, but also content development, curriculum development and other costs included in the TCO of educational computers. Once you add those costs back in, savings resulting from lower power consumption are, for the largest potential buyers, essentially nothing.
Note that nothing in what I'm saying suggests that Android on ARM _isn't_ going to make microsoft crumble. While it seems unlikely to me, it's way outside my ken.
"As important, people in bottom-billion countries aren't going to buy laptops in quantity, as the manufacturers are finding out."
But in between the bottem billion and the top 1 1/2 billion who all aready have computers is about 4 billion in the middle. These people buy bicycles, motorbikes, televisions, and cell phones. And soon we will be seeing sub-$200, low power usage computers that a great many of them will be able to afford. This is going to be a gigantic market.
Ed Gaible, yes it is pretty funny to see how Acer, Asus, Gigabyte, MSI and the others seem to be trying to add features such as adding more cells in batteries, making some sort of hybrid SSD/Hard Disk designs, designing them thinner and lighter (to make them look like thin higher end Apple Air/Samsung X300 competitors), they all seem to be adding stuff in tight cooperation with Intel and Microsoft to somehow try to keep the prices of the netbooks over $400 even towards the $600 now.
Though if you look at the bulk of those 20+ million netbooks sold last year and the expected 50+ million netbooks to be sold this year, most of these are of the cheapest kind (so far though because of the Intel/Microsoft tacticts, mostly cheapest Windows XP versions). So if you want volume on those expected 50 million shipped netbooks this year, you simply have to be at the cheapest end of the available models.
Thus when the ARM with Android powered laptops start arriving below $200, they should obviously very quickly take huge shares of the laptop and netbook markets all the while still provide even better opportunities for manufacturers and resellers to make their profits on them even though the price ranges are much lower.
> be an effective learning tool with kids with minimal
> teacher intervention. Among the reasons for wanting
> to minimize teacher intervention is the desire to
> minimize... costs! Notably teacher development, but
> also content development, curriculum development and
> other costs included in the TCO of educational computers.
Well, I do believe that giving children an easy online access to all books, all documentary videos, all educational cartoons, all educational/fun games and basically access to a customized version of the news that makes sense even to the youngest children, well I do believe that exactly provides an effective learning tool for kids with minimal required teacher intervention.
The feeds with up-to-date video lessons, up-to-date games and fun learning exercises, up-to-date picture books, cartoons, documentaries, episodes, up-to-date books and learning material, all those feeds can be managed over the Internet, even centrally by task forces setup by the central education ministries or globally. Or some customized versions of Google Reader can provide those feeds and filters to search among all the contents ever made and that all should be available for free legally on the Internet.
"The open source native Android Linux code hacking happens exclusively at the manufacturer stage. Which means, you want to have a manufacturer in control of everything, you want the manufacturer to customize Android for the very specific mass produced hardware in question, providing all the standard and non-standard software-to-hardware APIs for third party software developers to gain access to the all of the devices standard or special hardware features."
the point of free software is that the enduser on the machine can hack the code. if only the manufacturer can do that then it is not free software.
i do not want the manufacturer to be in control of the software on my machine.
for olpc the control needs to be first of all with the teachers (since this is a teaching tool) and with the children (who are the end users, who should have an opportunity to learn something by hacking their own machine).
putting the manufacturer in control of the software on the xo completely defeats the purpose of the project in my opinion.
greetings, eMBee.
> the point of free software is that the enduser on the machine
> can hack the code. if only the manufacturer can do that
> then it is not free software.
You can hack the code all you want, and play it back in emulators or in some kinds of superuser mode (you'd need a developer key for that, or something like that)
Just like with the XO1, the firmwares are basically locked until they are upgraded through a secure mechanism requiring an encrypted upgrade key to be gotten centrally.
The Android firmware on the XO2 will basically be locked until OLPC or the manufacturers release firmware upgrades. Sure the firmwares can and should be totally open source and available on the internet, but they will have to be encrypted by OLPC or the manufacturers centrally before they can be installed on the millions of student XO2 laptops.
What you can hack at in a peer-to-peer fashion is some of the JAVA code of the third party applications. Do you want to hack at the native Android code, you'd have to submit your suggestions for code changes online and wait for the central system to add your stuff to the main super optimized compact firmware file (perhaps that the whole customized Android OS has to fit within a firmware file of 64 Megabytes or something like that).
You're still treating the educational content as an after thought. If there's content sitting around, ready to be properly organized: Youtube, Google Book Search, Google Blog Search, Google News, Google Reader are examples you cite. How about we organize this first and then see how we can apply it to different hardware platforms, what platforms are better, etc.
Also there are some issues with this: Someone will have to organize the content appropriate for a given class. That takes People + time = money. What if the content isn't available in the native language. Who will take care of translation?
Internet connectivity isn't universal. This is supposed to be something that Mesh deals with, but you'll need some means of offline content delivery. Even something like a server at the school that can serve the data out. What then if the child goes home and is out of range of the school's Wifi?
Some of what you say flies in the face of OLPC's goals on a collaborative educational system.
Have you ever heard educators argue at length over what process is used for printing books? Whether Softcover books should be used over Hardcover boots? Or whether BIC or Papermate pens are better? No. They are more concerned, rightfully so, with the educational content, and how these tools are applied, not about whether buying Papermate pens will crush the stranglehold BIC has on the pen market.
Things are very basic. All the knowledge is or can be on the Internet in the form of content downloads, .txt/.pdf/whatever for books, .avi/.flv/.ogg/whatever for videos, .ogg/.mp3/whatever for audio.
What you have then is somebody hired or volunteering centrally to construct RSS feeds with those contents among all contents ever made by humans on this planet, to make RSS feeds with the most optimal, interesting contents that fit with curriculums which can either be existing curriculums or whole new types of curriculums.
Then what you got is children checking out the contents of those RSS feeds which they then can download or stream directly from the Internet, and which of course you can cache store on School servers and trade among childrens internal storage using Meshing as well.
What the teacher does, is keep up to date with those RSS feeds as well and reads all kinds of suggested class plans that relate to all those contents from the customized RSS feeds so that the teacher can in an optimal way guide the students through understanding all those contents.
Then optimally, you can have RSS feeds that are national, you can have slightly customized RSS feeds per class, and you can even have personalized RSS feeds per student. Cause each student has his own interests, has his own dreams, has his own ambitions. And it makes no sense to force children to go against their own interests, dreams and ambitions.
Just as with XO1, all of the students activities should be automatically or very easilly logged in student bloggin systems which teachers, parents, other students and even central education ministries task forces can monitor, which basically amounts to the same as testing the actual capabilities of each student in realtime and from that adjusting those RSS feeds to have a totally optimal content stream being recommended to each student so that they can get the most out of each second that they are using the laptops.
Of course the students are browsing the whole Internet as they wish, they click around on all they want, they download and stream any content they want and also based on that the students interests are measured as well and the contents of those content feeds are constantly being upgraded as well.