<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Christopher Blizzard &#187; 2006 &#187; September</title>
	<atom:link href="http://www.0xdeadbeef.com/weblog/2006/09/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.0xdeadbeef.com/weblog</link>
	<description>I love you.</description>
	<lastBuildDate>Thu, 26 May 2011 20:29:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>One Laptop Update</title>
		<link>http://www.0xdeadbeef.com/weblog/2006/09/one-laptop-update/</link>
		<comments>http://www.0xdeadbeef.com/weblog/2006/09/one-laptop-update/#comments</comments>
		<pubDate>Tue, 26 Sep 2006 20:35:04 +0000</pubDate>
		<dc:creator>Christopher Blizzard</dc:creator>
				<category><![CDATA[OLPC]]></category>

		<guid isPermaLink="false">http://www.0xdeadbeef.com/weblog/?p=222</guid>
		<description><![CDATA[I wrote up a long update on where we are in the software and hardware for the One Laptop per Child project. We&#8217;ve gotten a lot done, but I don&#8217;t think that&#8217;s been communicated to the outside world very well. &#8230; <a href="http://www.0xdeadbeef.com/weblog/2006/09/one-laptop-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I wrote up a long update on where we are in the software and hardware for the One Laptop per Child project.  We&#8217;ve gotten a lot done, but I don&#8217;t think that&#8217;s been communicated to the outside world very well.  So, for the first time, here&#8217;s an update of where we are.  Hopefully I&#8217;ll be able to do this on a regular basis.</p>
<p><strong>Kernel</strong></p>
<p>In the One Laptop project we actually have two kernels.  The first  kernel, found in the BIOS, is based on LinuxBIOS.  The second is a  kernel that&#8217;s built from Red Hat&#8217;s sources, and aside from a few patches  and a different configuration, is a pretty standard OS kernel.</p>
<p>Over the last few weeks, we&#8217;ve been pretty successful in getting  LinuxBIOS working on the test-A boards that we have in hand.  This has  been largely due to work from AMD and from the LB project itself.  We&#8217;ve  managed to get the LB image down to under 1 megabyte to fit into the  onboard SPI flash that&#8217;s found on the boards.  The BIOS itself is  supposed to handle operating system re-installs as well as finding and  booting from the internal NAND flash that contains the main OS.  We  haven&#8217;t got all of these pieces together yet, but we&#8217;re making a lot  progress.  The BIOS is able to boot from two sources right now:</p>
<p>1. Internal NAND flash.  This requires that the BIOS is able to find the  NAND flash, read the filesystem and find the boot kernel, load the boot  kernel and jump to it.</p>
<p>2. External USB media.  This requires being able to find a USB key and  boot from it.</p>
<p>We plan on adding two more targets, space allowing.  These would allow  you to boot and re-install over a USB ethernet device and the other,  more interesting one, is to boot off the on-board USB wireless.  Re-installs without wires are a big requirement for the places that  we&#8217;re going to be deploying these laptops.</p>
<p>The main kernel itself is working pretty well.  It has a different  configuration than our mainline kernels, and includes a driver for the  on-board wireless chip.  It&#8217;s built separately from our mainline  kernels, both because we have a different config, but also because we  have to have some level of stability while Fedora development has been  happening.</p>
<p>Over the upcoming couple of months we&#8217;ll be adding support to our  kernels for the various hardware components in the machine.  These  include the new controller to access the onboard flash, the display  controller, the camera in the machine and the SD reader that&#8217;s also  included.</p>
<p><strong>Power Management </strong></p>
<p>One of the main areas that we need to focus on is power usage on the  laptop.  The ability to use power efficiently and use human power to run  the laptops is an important part of the story that we need to be able to  tell.  A large part of our design work has been in this area.  From the  innovative display to the display controller, to the choice in using our  own BIOS, all of these things have set us up to be able to really  control how much power we&#8217;re using.</p>
<p>In the BIOS and OS side we haven&#8217;t done a lot of work because the  hardware has only just now started to come alive, and the BIOS has only  now started to run well on the machine.  But just as a baseline we have  a few measurements.  Dave Jones recently measured the baseline power  usage of the machine in an idle state (which is what most computers  spend most of their time doing) and the board itself was only pulling  about 3 watts.  This is without the recent tickless patches that were  posted to linux kernel and without a lot of the userspace work that also  needs to happen to prevent userspace from waking up the kernel on a  regular basis.</p>
<p>Additionally, Jim has done some measurements on his iPaq and discovered  that the kernel itself &#8211; once the hardware and BIOS have gone through  their wakeup process &#8211; only requires about 10ms of time to start  scheduling processes.  Once that happens, there are some processes that  might need work.  In particular, his experience was that cardmgr was  doing something that added a huge amount of time after the initial  wakeup probably probing ports and whatnot.  That will need some  examination and work.  Our goal is to try and go from suspend to full  operation in 100-150ms of time, enough so that a user won&#8217;t notice the  wakeup.  A bold goal, but one that doesn&#8217;t seem so out of reach given  our current measurements.</p>
<p>In terms of what needs to be done, there are a few areas of work that  are currently underway:</p>
<p>In the kernel there are two main areas that will probably have the  largest impact.  The recent tickless patches and the DCON changes that  need to be made to enable the DCON to take over the display and let the  kernel sleep.  The kernel changes for the DCON are well underway thanks  to both David Woodhouse and Jordan Crouse.  The tickless patches have  been submitted upstream and are under consideration.  There&#8217;s a lot of  interest in those patches from various members of the community so we&#8217;re  hopeful they will be accepted and have full community support.</p>
<p>In userspace there&#8217;s a lot of work that still needs to be done.  On the  Red Hat side there&#8217;s a bug that&#8217;s tracking a lot of the user space  issues that was created by Arjan at Intel.  Some of the patches that  he&#8217;s submitted to keep userland programs from waking up the kernel have  already made their way into the distribution.  One change that will  probably be of most interest to us is to change the way that python and  the glib mainloop interact.  Apparently there is a wakeup that happens  every 100ms or so.  Even with that, Dave Jones also reports that while a  normal workstation usually wakes up the kernel about 200 times a second,  our current OLPC runtime only wakes it up about 10-15 times a second.  Lots of work left to be done, of course, but we&#8217;re well on our way already.</p>
<p>The BIOS still needs a lot of work in order to support proper  susupend/resume.  In normal machines, the BIOS handles the  suspend/resume via ACPI interfaces.  Our BIOS doesn&#8217;t use ACPI and we  want something faster than the traditional methods of handling  suspend/resume, which are designed around the idea of long-term,  non-interactive suspends.  The work to identify the various power  domains for the kernel is underway now, but the work to actually  implement suspend/resume inside the BIOS and the kernel hasn&#8217;t been done  yet.</p>
<p><strong>X Window System </strong></p>
<p>For the X Window System we have a couple of important software components.</p>
<p>These include a new input driver for the touchpad we&#8217;re including in the  hardware.  This dual mode sensor both is a standard touchpad and also  will allow you to use a stylus as a separate input.  The input driver  for this hardware is underway by a contractor who is working for OLPC.  It should land in the x.org tree some time in the 7.2 time frame and  we&#8217;ll have to carry both 7.2 and those drivers as separate packages.</p>
<p>The display in the hardware is based off of the Geode GX2.  One of the  folks at AMD has written an EXA driver for the hardware.  It hasn&#8217;t been  wildly optimized, but it&#8217;s working pretty well today.  Coming up, we  have to add support for the &#8220;DCON&#8221; chip that&#8217;s included in the machine.   This is the chip that will allow the display to continue to refresh  even as the machine is suspended.  This work is just getting started  today as we are just now getting hardware samples of the DCON chips as  well as the LCD displays for the laptop.</p>
<p><strong>Python and related libraries </strong></p>
<p>Most of the UI components we&#8217;re building are written in Python, gtk and  cairo.  Python and the bindings are pretty stable, but we&#8217;re interested  in some of the features that are included in 2.5.  These include some  memory management patches (which might not actually make a difference  because of the way that memory management works in Linux) and  performance increases.  Some people have reported some minor problems  with Python 2.5, but for the most part the people who have been running  the pre-releases have had really good things to say about it.  So we&#8217;re  strongly considering carrying the weight of moving to 2.5 earlier rather  than later.  To do so, we would also have to drag along a lot of the  support libraries that link to python.  This includes at the very least  glib, gtk and cairo.</p>
<p><strong>Sugar and the UI </strong></p>
<p>One of the largest areas of work that we have underway right now is to  put together the user interface and the framework for the laptop.  The  design work is being headed up by a combination of Walter Bender, a  design firm in New York named Pentagram, myself, Bryan Clark and Marco  Gritti.  We&#8217;ve got most of the basic concepts nailed down and much of  the basic feel, and now we&#8217;re moving on to a lot of the details.</p>
<p>Marco has already started the work to get much of the &#8220;home view&#8221; in  place.  This is a screen that both handles activity launching as well as  system status.  Activities themselves will be all full screen, and  switching between them will be done from the home view.  Interactions  include a framework for sharing and working together that&#8217;s available to  every program that is running on the machine, including pre-built UI.  We also include a context sensitive &#8220;frame&#8221; that give status and  notification information as well as information about who you are  working with in a particular activity.</p>
<p>The keyboard on the laptop also reflects the UI that we&#8217;re designing.  There are special keys on the laptop keyboard that allow you to access  functions in the UI.  Some of these include a button for the camera, a  button to show and hide the frame and a pair of keys to handle scrolling  in the UI.  (i.e. instead of using scrollbars you can hold down one of  these keys and roll across the touchpad and the frame you&#8217;re on will  scroll.)</p>
<p>Of the work that needs to be done on the laptop, the UI is probably the  area that&#8217;s still in the most flux, isn&#8217;t far along and is the highest  risk.  The look is different that what people are used to even though we  think that it will be pretty intuitive.  This is a political and  acceptance problem, more than anything else.</p>
<p>Over the next couple of weeks we&#8217;ll be putting together a set of design  documents and a style guide for building activities for the laptop.  This will enable programmers and integrators to know what they have to  do to make applications work in the environment and feel of the laptop.</p>
<p>There&#8217;s also a strong disconnect between the wiki work that&#8217;s going on  and the rest of the UI.  Discussions over whether or not the wiki should  be web based or not are still up for discussion and a lot of the backend  database work is being done without an eye towards the visual design &#8211;  something that risks wasting effort on the backend with features that we  don&#8217;t intend to use or something that&#8217;s implemented in such a way that  we can&#8217;t do something on the front end we care about.</p>
<p><strong>Crypto and Security </strong></p>
<p>One of the areas that&#8217;s under heavy discussion right now is around the  use of crypto on the laptop.  This includes the use of signing for  messages between the laptops and signing of software itself.  We have  neither made choices about what libraries we want or what the exact role  will be for all these bits, but we are exploring the goals for which  crypto plays a role.</p>
<p>Also up for review is the use of SELinux or some other related  technology.  There are technical problems that make it a little bit  harder to set up an selinux-enabled system onto jffs2 inside of a chroot  envionment (as opposed to using the installer) but we have work arounds  for some of those problems.</p>
<p>There&#8217;s a security consultant working with One Laptop to identify a set  of threats and issues that we need to think about.  We&#8217;ll have a report  from him soon as he&#8217;s been talking to everyone and trying to gather  their thoughts.</p>
<p><strong>Base Operating System </strong></p>
<p>In the base operating system there&#8217;s still a lot of low hanging fruit  that needs to be worked out.  For example, in order to hit our targets  for operating system footprint (100MB of flash used) we need to remove a  lot of unused bits from the set of packages we&#8217;re including.  These  include things like the X font server, bitmap-fonts, perl, and lots of  other random low-hanging fruit.  100MB might sound like a pretty low  number but we&#8217;re pretty sure we can make that.  We don&#8217;t need that much  infrastructure in order to support the programs that are on the machine.</p>
<p>Overall performance is good in some areas, poor in others.  We haven&#8217;t  done enough measurement to know about the performance of the UI, nor is  there enough code in place to be able to know what the overall  performance of the UI will look like.  The web browser (gecko) is pokey,  but quite usable.</p>
<p>Startup performance is poor because we still serialize startup and there  are a lot of services still on the machine that we need to not include.   In the end we will probably just fire up the few programs that we need  by hand and not use the initscripts infrastructure.  It just makes  things wildly more complex than they need to be.</p>
<p>The way that Red Hat has udev set up is another problem during startup.   We know from the new initrd setup that udev itself will start up very  fast &#8211; certainly in less than a second &#8211; but we have a huge number of  udev rules set up in our startup scripts which make this a many-second  affair on this hardware.</p>
<p><strong>Networking </strong></p>
<p>Networking is one area where we have both good and bad news.  The  wireless driver has been under development by Marcelo and Marvell.  The  driver hasn&#8217;t been submitted for upstream because it&#8217;s not ready yet,  but it does appear to work reasonably well.  Also, we have working  firmware from Marvell that seems to work well but we don&#8217;t have the  source code to that firmware yet.</p>
<p>We haven&#8217;t spent much time working on network scaling nor the various  ways that we will be configuring networking on the laptop.  The driver  hasn&#8217;t been fixed to work with NetworkManager (although Dan says that  the work would take &#8220;just a day&#8221;), nor has NM itself even been ported  over to what we have on the laptop.  In addition, we will need a new  front end to NM or change nm-applet to support the environment on the  laptop.</p>
<p>Our strategy for scaling through the use of services (backed by jabber)  hasn&#8217;t been fleshed out yet, either.  Although we can wait to do this  work later in the schedule, design and resource work for this needs to  happen at some point.</p>
<p>One of the key points for our plans also include working with IPv6.  Although we know that the support in the OS that we&#8217;re using is pretty  good, we haven&#8217;t spent a lot of time trying to get the code that we have  working on top of IPv6 yet.  Nor have we actually converted our internal  development networks to support it.</p>
<p><strong>Internationalization and Translations </strong></p>
<p>Our strategy for creating builds for various countries is pretty simple:  we want to make sure that translations and code are as centralized as  possible, but we want to be able to make per-country builds to enable  localized builds possible.  We have much of the latter part of the  infrastructure in place &#8211; it should be possible to make localized builds  &#8211; but we have yet to have a country to try it with.</p>
<p>The first part &#8211; centralized code and translations &#8211; is just a goal, and  it will stay that way.  We know that a lot of people will maintain their  own translations and we will encourage them to submit them for  inclusion, but our infrastructure is such that it will be able to  translate activities on the laptop and install translations after the fact.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0xdeadbeef.com/weblog/2006/09/one-laptop-update/feed/</wfw:commentRss>
		<slash:comments>65</slash:comments>
		</item>
		<item>
		<title>fast and faster access to the intertron</title>
		<link>http://www.0xdeadbeef.com/weblog/2006/09/fast-and-faster-access-to-the-intertron/</link>
		<comments>http://www.0xdeadbeef.com/weblog/2006/09/fast-and-faster-access-to-the-intertron/#comments</comments>
		<pubDate>Wed, 06 Sep 2006 15:20:16 +0000</pubDate>
		<dc:creator>Christopher Blizzard</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.0xdeadbeef.com/weblog/?p=221</guid>
		<description><![CDATA[I&#8217;m staying at a Marriott in Santa Clara this week.  One of the options in the room is, of course, Internet Access.  One thing I haven&#8217;t seen before is that they have two levels of service: Option 1: High-speed Internet &#8230; <a href="http://www.0xdeadbeef.com/weblog/2006/09/fast-and-faster-access-to-the-intertron/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m staying at a Marriott in Santa Clara this week.  One of the options in the room is, of course, Internet Access.  One thing I haven&#8217;t seen before is that they have two levels of service:</p>
<p>Option 1: High-speed Internet for $3.95/day</p>
<blockquote><p>Greate for casual Web browsing, checking e-mails from home or office, using VPN, online chats, and downloading files</p></blockquote>
<p>Option 2: Premium high-speed Internet access for $9.95/day</p>
<blockquote><p>Up to 4x faster upload and download speeds and ideal for online applications and streaming video and audio</p></blockquote>
<p>I thought that was kind of odd until I thought about it for a while.  I suspect it&#8217;s a porn tax.  Hotels reap a huge amount of revenue from people ordering adult movies in their rooms and having high speed internet access competes with that.  It was the <em>streaming video and audio</em> that triggered it.</p>
<p>But considering that it&#8217;s taken 45 minutes for my mail to resync, maybe I should have paid the tax.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0xdeadbeef.com/weblog/2006/09/fast-and-faster-access-to-the-intertron/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>sidekick</title>
		<link>http://www.0xdeadbeef.com/weblog/2006/09/sidekick/</link>
		<comments>http://www.0xdeadbeef.com/weblog/2006/09/sidekick/#comments</comments>
		<pubDate>Mon, 04 Sep 2006 01:40:46 +0000</pubDate>
		<dc:creator>Christopher Blizzard</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.0xdeadbeef.com/weblog/?p=220</guid>
		<description><![CDATA[I decided to go to an extreme when getting a new phone and got a sidekick. So far I have identified three uses for this thing: 1. To be able to totally ignore friends you are hanging out with. 2. &#8230; <a href="http://www.0xdeadbeef.com/weblog/2006/09/sidekick/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I decided to go to an extreme when getting a new phone and got a sidekick.  So far I have identified three uses for this thing:</p>
<p>1. To be able to totally ignore friends you are hanging out with.</p>
<p>2. To make your wife jealous when you travel.</p>
<p>3. To be able to post a weblog entry while sitting on the beach looking out at the pacific.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.0xdeadbeef.com/weblog/2006/09/sidekick/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

