<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.3.3" --><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Whitix.org &gt; Development blog</title>
	<link>http://www.whitix.org/blog</link>
	<description>Just another WordPress weblog</description>
	<pubDate>Sat, 20 Mar 2010 13:21:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/WhitixDevelopment" /><feedburner:info uri="whitixdevelopment" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Busy times</title>
		<link>http://feedproxy.google.com/~r/WhitixDevelopment/~3/YZAxUA9u0EY/</link>
		<comments>http://www.whitix.org/blog/?p=40#comments</comments>
		<pubDate>Fri, 26 Jun 2009 19:03:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.whitix.org/blog/?p=40</guid>
		<description><![CDATA[Just to let you, the reader, know that I&#8217;m currently preoccupied at the moment with work. However, I&#8217;m still working on the netchannels design, and all signs indicate that I&#8217;ll be able to ping any host on the Internet by some time next week.
]]></description>
		<wfw:commentRss>http://www.whitix.org/blog/?feed=rss2&amp;p=40</wfw:commentRss>
		<feedburner:origLink>http://www.whitix.org/blog/?p=40</feedburner:origLink></item>
		<item>
		<title>Metadata as data</title>
		<link>http://feedproxy.google.com/~r/WhitixDevelopment/~3/BFc3hauw_E8/</link>
		<comments>http://www.whitix.org/blog/?p=39#comments</comments>
		<pubDate>Thu, 18 Jun 2009 20:05:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.whitix.org/blog/?p=39</guid>
		<description><![CDATA[I&#8217;ve been away from my development laptop recently, and it&#8217;s actually given me the opportunity to come up with several new ideas. One of them is the netchannels design (which is the core of the userspace network stack), which I&#8217;ll detail on the Whitix wiki and some blog posts to come. The other is how filesystem metadata should be exposed in the virtual filesystem. Let me explain.
First of all, metadata is &#8220;data about data&#8221;.  For a filesystem, it mainly relates to data about files. We&#8217;ve had standard attributes about files for over 40 years now; information like the file&#8217;s size, its permissions, and which user and group own it. We&#8217;ve got a set of standard system calls that cover all these different attributes, and they are well established. However, thinking about them more abstractly, they turn out to be (special kinds of) key value pairs. So why not extend the concept, and allow custom key value pairs (say, director for a movie file) to be stored along with the file itself?
Well, it&#8217;s possible! Filesystems, like ext3, support &#8220;extended attributes&#8221;. You can store a key and a value ( currently the size limit is the block size). Usually, you have to prefix the name of your attribute with a namespace, like &#8220;user&#8221; or &#8220;system&#8221;. Great! That surely means we can store a lot more information outside the file, where it isn&#8217;t locked into one of the many ten of thousands of file formats out there?
Well, problem is, nobody really uses it much.
Why? First of all, they&#8217;re relatively new to most people. In a lot of operating systems and filesystems, support was only recently introduced or made public. This means a lot of userspace programs can&#8217;t rely on them, since a lot of users don&#8217;t have extended attributes enabled (or are hardly [...]]]></description>
		<wfw:commentRss>http://www.whitix.org/blog/?feed=rss2&amp;p=39</wfw:commentRss>
		<feedburner:origLink>http://www.whitix.org/blog/?p=39</feedburner:origLink></item>
		<item>
		<title>Linux driver layer: helping out</title>
		<link>http://feedproxy.google.com/~r/WhitixDevelopment/~3/H0s1A6zPEzA/</link>
		<comments>http://www.whitix.org/blog/?p=38#comments</comments>
		<pubDate>Mon, 15 Jun 2009 14:32:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.whitix.org/blog/?p=38</guid>
		<description><![CDATA[So in the previous blog post, I&#8217;ve told you about what aims of the Linux driver layer are, as well as the advantages and disadvantages. Now I&#8217;ll let you know how you can join in and help provide Whitix with support for thousands of different devices. We&#8217;ll need help testing, writing functions and designing the layer. Let&#8217;s get started.
Download the code
Check out the source code by typing svn co svn://www.whitix.org/svn/projects/Whitix/branches/netchannel . Build it (make) and test that the built ISO works on your computer or emulator before testing Linux drivers.
Test with different drivers
You can download the Linux drivers that you need from the linux_drivers directory on whitix.org. Find the Linux driver that supports your (PCI ethernet) hardware, and copy it to CdRoot/System/Modules/Network. Edit user/system/startup.c to load the driver (replace the Network/pcnet32 line), and type make to rebuild.
What now?
A lot of drivers will not be loaded because of undefined symbols. Get a list of imported symbols by typing nm CdRoot/System/Modules/Network/&#60;driver name&#62;.koLook up the definitions in the LXR, and add a stub defintion (print out the name of the function with KePrint) to the appropriate file in devices/linux. Don&#8217;t forget to add SYMBOL_EXPORT after the function.
Type make to build the code again, and keep repeating the process until the driver loads correctly. Then you can start implementing the functions as you see fit. Once you&#8217;ve got the driver to load, test it out by typing dhcp at the Burn command line, and if you get a IP, you&#8217;re successful! Although it&#8217;s an unusual development process, it&#8217;ll be made easier in future.
I&#8217;ve got a question
Ask us any questions by visting us at #whitix on irc.freenode.net. Enjoy!
]]></description>
		<wfw:commentRss>http://www.whitix.org/blog/?feed=rss2&amp;p=38</wfw:commentRss>
		<feedburner:origLink>http://www.whitix.org/blog/?p=38</feedburner:origLink></item>
		<item>
		<title>The Linux driver layer</title>
		<link>http://feedproxy.google.com/~r/WhitixDevelopment/~3/M2Pq9yUgYkc/</link>
		<comments>http://www.whitix.org/blog/?p=36#comments</comments>
		<pubDate>Sun, 14 Jun 2009 12:07:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.whitix.org/blog/?p=36</guid>
		<description><![CDATA[So what is this Linux driver layer? It&#8217;s a new module in the Whitix kernel that aims to support a multitude of devices using their Linux drivers. The first class of drivers that the layer aims to support are PCI Ethernet drivers (which actually comprise most PC network devices), and slowly expanding to other PCI and USB devices.
One of the advantages of supporting Linux drivers follows from the fact that most operating system drivers are actually fairly OS-agnostic; that, is they do roughly the same set of functions. Network drivers across all operating systems, for example, register themselves, probe for any devices on the system&#8217;s buses, transmit and receive packets, and keep statistics about the card.
Using Linux drivers is this way means that a lot of development time is saved. We don&#8217;t have to reinvent the wheel by writing a Whitix driver for every device (that would end up working almost identically to the Linux equivalent). This also happily avoids the &#8220;there&#8217;s no drivers!&#8221; issue that many young operating systems have; Whitix&#8217;s driver support will be very similar to that of Linux.
One major issue about using the Linux drivers is that the Linux driver API is generally not stable. There&#8217;s an easy way to solve this; only allow drivers to be loaded from one particular kernel version. However, another problem arises. How about the different kernel configurations? There are thousands of possible configurations for each kernel versions. Another simple solution: use drivers from a particular distribution. In this case, we&#8217;ve chosen the Ubuntu drivers for 2.6.28-11-generic (to be precise). Any driver from that particular kernel build will work perfectly fine.
Of course, there&#8217;s the small disadvantage there that the newest devices won&#8217;t be supported unless we choose a new kernel version to support (then we&#8217;ve got the problem of testing the [...]]]></description>
		<wfw:commentRss>http://www.whitix.org/blog/?feed=rss2&amp;p=36</wfw:commentRss>
		<feedburner:origLink>http://www.whitix.org/blog/?p=36</feedburner:origLink></item>
		<item>
		<title>A short note</title>
		<link>http://feedproxy.google.com/~r/WhitixDevelopment/~3/yAXmvJLp2LI/</link>
		<comments>http://www.whitix.org/blog/?p=35#comments</comments>
		<pubDate>Mon, 08 Jun 2009 13:16:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.whitix.org/blog/?p=35</guid>
		<description><![CDATA[I&#8217;ll be busy until Friday, which means this blog won&#8217;t receive too many new posts until then. In the meantime, here&#8217;s a link about how sqllite is tested; it&#8217;s inspiration when you think something can&#8217;t be tested or that unit tests aren&#8217;t possible for a module of code.
In the meantime, if you want to jump into another language, try writing a web server in Haskell or a blog in Common Lisp. Both links are actually quite interesting reads, although they are quite advanced.
]]></description>
		<wfw:commentRss>http://www.whitix.org/blog/?feed=rss2&amp;p=35</wfw:commentRss>
		<feedburner:origLink>http://www.whitix.org/blog/?p=35</feedburner:origLink></item>
	</channel>
</rss>

