<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Inside Out</title>
	<atom:link href="http://belhob.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://belhob.wordpress.com</link>
	<description>Dare to Dream. If u can Dream, U can make the Dreams come true.</description>
	<lastBuildDate>Fri, 05 Nov 2010 10:00:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='belhob.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Inside Out</title>
		<link>http://belhob.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://belhob.wordpress.com/osd.xml" title="Inside Out" />
	<atom:link rel='hub' href='http://belhob.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Optimization</title>
		<link>http://belhob.wordpress.com/2010/11/05/optimization/</link>
		<comments>http://belhob.wordpress.com/2010/11/05/optimization/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 10:00:19 +0000</pubDate>
		<dc:creator>Bipin Gautam Taksande</dc:creator>
				<category><![CDATA[C/C++ Programming]]></category>
		<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Embedded Systems]]></category>
		<category><![CDATA[MCS51]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[C Programming]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[Data declarations]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[optimizer]]></category>
		<category><![CDATA[Preprocessor]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://belhob.wordpress.com/?p=181</guid>
		<description><![CDATA[Although the word &#8220;optimization&#8221; shares the same root as &#8220;optimal,&#8221; it is rare for the process of optimization to produce a truly optimal system. The optimized system will typically only be optimal in one application or for one audience. One might reduce the amount of time that a program takes to perform some task at [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=181&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 308px"><a href="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/COptimizingCompiler_A0AD/IL.jpg"><img class="  " title="Optimization" src="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/COptimizingCompiler_A0AD/IL.jpg" alt="Optimization" width="298" height="269" /></a><p class="wp-caption-text">Optimization</p></div>
<p>Although the word &#8220;optimization&#8221; shares the same root as &#8220;optimal,&#8221; it is rare for the process of optimization to produce a truly optimal system. The optimized system will typically only be optimal in one application or for one audience. One might reduce the amount of time that a program takes to perform some task at the price of making it consume more memory. In an application where memory space is at a premium, one might deliberately choose a slower algorithm in order to use less memory. Often there is no “one size fits all” design which works well in all cases, so engineers make trade-offs to optimize the attributes of greatest interest. Additionally, the effort required to make a piece of software completely optimal—incapable of any further improvement— is almost always more than is reasonable for the benefits that would be accrued; so the process of optimization may be halted before a completely optimal solution has been reached. Fortunately, it is often the case that the greatest improvements come early in the process.</p>
<p>&nbsp;</p>
<p>Links:</p>
<p><a href="http://en.wikipedia.org/wiki/Program_optimization">http://en.wikipedia.org/wiki/Program_optimization</a></p>
<p><a href="http://www.tantalon.com/pete/cppopt/main.htm">http://www.tantalon.com/pete/cppopt/main.htm</a></p>
<p><a href="http://en.wikipedia.org/wiki/Compiler_optimization">http://en.wikipedia.org/wiki/Compiler_optimization</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belhob.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belhob.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belhob.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belhob.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belhob.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belhob.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belhob.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belhob.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belhob.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belhob.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belhob.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belhob.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belhob.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belhob.wordpress.com/181/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=181&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belhob.wordpress.com/2010/11/05/optimization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67813aa08830bd31722c3ab9736fa66a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bipin Gautam Taksande</media:title>
		</media:content>

		<media:content url="http://blogs.msdn.com/blogfiles/securitytools/WindowsLiveWriter/COptimizingCompiler_A0AD/IL.jpg" medium="image">
			<media:title type="html">Optimization</media:title>
		</media:content>
	</item>
		<item>
		<title>Stack</title>
		<link>http://belhob.wordpress.com/2010/10/17/stack/</link>
		<comments>http://belhob.wordpress.com/2010/10/17/stack/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 09:38:17 +0000</pubDate>
		<dc:creator>Bipin Gautam Taksande</dc:creator>
				<category><![CDATA[C/C++ Programming]]></category>
		<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[Embedded Systems]]></category>
		<category><![CDATA[MCS51]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C code optimization]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[cstack]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[optimizer]]></category>
		<category><![CDATA[rstack]]></category>
		<category><![CDATA[stack]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://belhob.wordpress.com/?p=176</guid>
		<description><![CDATA[LIFO stack Stacks are a type of container adaptors, specifically designed to operate in a LIFO context (last-in first-out), where elements are inserted and extracted only from the end of the container. stacks are implemented as containers adaptors, which are classes that use an encapsulated object of a specific container class as its underlying container, providing a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=176&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div>
<p><strong></p>
<div class="wp-caption alignleft" style="width: 339px"><a href="http://www.staff.ncl.ac.uk/hermann.moisl/ell236/lecture10.htm"><img title="Stack" src="http://www.staff.ncl.ac.uk/hermann.moisl/ell236/stack3.gif" alt="Stack" width="329.2" height="384" /></a><p class="wp-caption-text">Stack - PUSH/POP</p></div>
<p>LIFO stack</strong></p>
</div>
<div id="content">Stacks are a type of container adaptors, specifically designed to operate in a LIFO context (last-in first-out), where elements are inserted and extracted only from the end of the container.</p>
<p><strong>stack</strong>s are implemented as <em>containers adaptors</em>, which are classes that use an encapsulated object of a specific container class as its <em>underlying container</em>, providing a specific set of member functions to access its elements. Elements are <em>pushed</em>/<em>popped</em> from the <em>&#8220;back&#8221;</em> of the specific container, which is known as the <em>top</em> of the stack.</p>
<p>The underlying container may be any of the standard container class templates or some other specifically designed container class. The only requirement is that it supports the following operations:</p>
<ul>
<li><tt>back()</tt></li>
<li><tt>push_back()</tt></li>
<li><tt>pop_back()</tt></li>
</ul>
</div>
<p><strong>Link:</strong></p>
<p><strong><a href="http://www.cplusplus.com/reference/stl/stack/">http://www.cplusplus.com/reference/stl/stack/</a></strong></p>
<p><strong><a href="http://en.wikipedia.org/wiki/Stack_(data_structure)">http://en.wikipedia.org/wiki/Stack_(data_structure)</a><br />
</strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belhob.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belhob.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belhob.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belhob.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belhob.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belhob.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belhob.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belhob.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belhob.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belhob.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belhob.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belhob.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belhob.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belhob.wordpress.com/176/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=176&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belhob.wordpress.com/2010/10/17/stack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67813aa08830bd31722c3ab9736fa66a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bipin Gautam Taksande</media:title>
		</media:content>

		<media:content url="http://www.staff.ncl.ac.uk/hermann.moisl/ell236/stack3.gif" medium="image">
			<media:title type="html">Stack</media:title>
		</media:content>
	</item>
		<item>
		<title>Asserts</title>
		<link>http://belhob.wordpress.com/2010/10/10/asserts/</link>
		<comments>http://belhob.wordpress.com/2010/10/10/asserts/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 19:00:28 +0000</pubDate>
		<dc:creator>Bipin Gautam Taksande</dc:creator>
				<category><![CDATA[C/C++ Programming]]></category>
		<category><![CDATA[Embedded Systems]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[#error]]></category>
		<category><![CDATA[codes]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[cstack]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[microprocessors]]></category>
		<category><![CDATA[optimizer]]></category>
		<category><![CDATA[Real time]]></category>
		<category><![CDATA[rstack]]></category>
		<category><![CDATA[stack]]></category>

		<guid isPermaLink="false">http://belhob.wordpress.com/?p=170</guid>
		<description><![CDATA[&#160; &#160; Expert programmers use the assert() macro to seed their code with debugging statements. So should we all. The macro must have no effect on the system &#8211; it shouldn&#8217;t change memory, interrupt state, or I/O, and it should make no function calls. The user must feel free to sprinkle these at will throughout [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=170&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<div class="wp-caption alignright" style="width: 461px"><a href="http://palisade.plynt.com/issues/2006Feb/assert-safely/"><img class=" " title="Assert Safely" src="http://palisade.plynt.com/images/asserts.png" alt="Assert Safely" width="451" height="304" /></a><p class="wp-caption-text">Assert Safely</p></div>
<p>&nbsp;</p>
<p>Expert programmers use the assert() macro to seed their code with debugging statements. So should we all.</p>
<p>The macro must have no effect on the system &#8211; it shouldn&#8217;t change memory, interrupt state, or I/O, and it should make no function calls. The user must feel free to sprinkle these at will throughout the program. Disabling the asserts in released code must never change the way the program operates.</p>
<p>The macro generally looks something like:</p>
<pre>#define
assert(s)
if (s)
{}else (printf("Error at %s %d: ", __FILE__, __LINE__)</pre>
<p>It&#8217;s sort of an odd way to write code &#8211; if the condition is true (in which case assert() takes no action) there&#8217;s a null pair of braces. Why not test the negation of the statement &#8220;s&#8221;?</p>
<p><strong>Links: </strong><a href="http://www.ganssle.com/articles/adifasts.htm">http://www.ganssle.com/articles/adifasts.htm</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belhob.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belhob.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belhob.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belhob.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belhob.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belhob.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belhob.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belhob.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belhob.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belhob.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belhob.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belhob.wordpress.com/170/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belhob.wordpress.com/170/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belhob.wordpress.com/170/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=170&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belhob.wordpress.com/2010/10/10/asserts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67813aa08830bd31722c3ab9736fa66a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bipin Gautam Taksande</media:title>
		</media:content>

		<media:content url="http://palisade.plynt.com/images/asserts.png" medium="image">
			<media:title type="html">Assert Safely</media:title>
		</media:content>
	</item>
		<item>
		<title>Efficient CRC calculation with minimal memory footprint</title>
		<link>http://belhob.wordpress.com/2008/03/18/efficient-crc-calculation-with-minimal-memory-footprint/</link>
		<comments>http://belhob.wordpress.com/2008/03/18/efficient-crc-calculation-with-minimal-memory-footprint/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 04:50:37 +0000</pubDate>
		<dc:creator>Bipin Gautam Taksande</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[binary polynomial division]]></category>
		<category><![CDATA[communication errors]]></category>
		<category><![CDATA[CRC]]></category>
		<category><![CDATA[digital information exchange]]></category>
		<category><![CDATA[Efficient CRC calculation]]></category>
		<category><![CDATA[Embedded Systems]]></category>
		<category><![CDATA[error detection and correction]]></category>
		<category><![CDATA[LFSRs]]></category>
		<category><![CDATA[minimal memory footprint]]></category>

		<guid isPermaLink="false">http://belhob.wordpress.com/?p=168</guid>
		<description><![CDATA[Almost every form of digital information exchange can introduce communication errors. Sometimes, these errors can be ignored (for example, an erroneous pixel in a high-resolution video is merely unnoticeable). However, most of the time, they cannot be ignored, and we want to ensure that the receiver gets an absolutely correct stream of information. In order [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=168&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a HREF="http://www.relisoft.com/Science/images/crc.gif"><img SRC="http://www.relisoft.com/Science/images/crc.gif" BORDER="0" HSPACE="15" VSPACE="15" WIDTH="306" HEIGHT="246" ALIGN="left" /></a>Almost every form of digital information exchange can introduce communication errors. Sometimes, these errors can be ignored (for example, an erroneous pixel in a high-resolution video is merely unnoticeable). However, most of the time, they cannot be ignored, and we want to ensure that the receiver gets an absolutely correct stream of information.</p>
<p>In order to overcome the inherent inaccuracy of information transmission, a few methods for error detection and correction have been developed. Generally speaking, these methods introduce some redundancy to the actual message, which in turn can be used to detect errors and in some cases to recover the original data.</p>
<p>One of the most common methods is the use of the CRC (cyclic redundancy check) function, a family of codes commonly used to ensure data integrity in digital data streams by detecting errors due to noise or dropouts of bits in the message stream. The CRC calculates a series of bits (also commonly referred to as a CRC) that is appended to the data stream and transmitted along with the message. The receiver performs a CRC function on the message and compares the result with the received CRC code to verify the integrity of the message. CRC is commonly used in a number of applications such as digital communications and computer data storage systems.</p>
<p>The CRC is performed through binary polynomial division between the transmitted message and a polynomial divisor and is usually implemented using a linear feedback shift register (LFSR). An LFSR is a shift register where its next state is a linear combination of its previous state and input bits. In our context, the linear operators are Logical XOR and Logical AND. Since the operation of an LFSR circuit is deterministic, and the CRC is shorter than the message, typically few messages are mapped to each CRC value. A well-chosen polynomial ensures an evenly distributed mapping of messages to CRC values (for example, if all messages were mapped to the same CRC, detection of an error in a message bit would be impossible).</p>
<p>The trick in an embedded systems design is to implement this technique in the most efficient way possible and in the smallest possible footprint. In this article, we discuss aspects of the theory and implementation of LFSRs and CRCs, illustrated using a family of instructions on Analog Devices&#8217; Blackfin processor specifically defined for addressing the task of efficient LFSR implementation. We also provide a method for converting an implementation from an Internal LFSR form to an External LFSR form.</p>
<p><strong>Links:</strong> <a HREF="http://embedded.com/design/206901030">http://embedded.com/design/206901030</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belhob.wordpress.com/168/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belhob.wordpress.com/168/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belhob.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belhob.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belhob.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belhob.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belhob.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belhob.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belhob.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belhob.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belhob.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belhob.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belhob.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belhob.wordpress.com/168/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belhob.wordpress.com/168/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belhob.wordpress.com/168/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=168&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belhob.wordpress.com/2008/03/18/efficient-crc-calculation-with-minimal-memory-footprint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67813aa08830bd31722c3ab9736fa66a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bipin Gautam Taksande</media:title>
		</media:content>
	</item>
		<item>
		<title>The Rule of Fifty</title>
		<link>http://belhob.wordpress.com/2008/03/17/the-rule-of-fifty/</link>
		<comments>http://belhob.wordpress.com/2008/03/17/the-rule-of-fifty/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 04:50:46 +0000</pubDate>
		<dc:creator>Bipin Gautam Taksande</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Circadian Technologies Shiftware Practices]]></category>
		<category><![CDATA[Fred Brooks]]></category>
		<category><![CDATA[German Embassy]]></category>
		<category><![CDATA[hour week]]></category>
		<category><![CDATA[John Nevison]]></category>
		<category><![CDATA[overtime]]></category>
		<category><![CDATA[Overtime Hours]]></category>
		<category><![CDATA[productive hours]]></category>
		<category><![CDATA[Rule of Fifty]]></category>
		<category><![CDATA[working too many hours]]></category>

		<guid isPermaLink="false">http://belhob.wordpress.com/?p=167</guid>
		<description><![CDATA[Though we all have a gut-sense that working too many hours is counterproductive, a very short paper by John Nevison called &#8220;Overtime Hours: The Rule of Fifty&#8221; at Project Solutions (where you need to register) cites data from four studies conducted over a half century to show how productivity either drops, or at best maxes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=167&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a HREF="http://suttonplace.mlblogs.com/photos/uncategorized/working_overtime.jpg"><img SRC="http://suttonplace.mlblogs.com/photos/uncategorized/working_overtime.jpg" BORDER="0" HSPACE="15" VSPACE="15" WIDTH="302" HEIGHT="413" ALIGN="right" /></a>Though we all have a gut-sense that working too many hours is counterproductive, a very short paper by John Nevison called &#8220;Overtime Hours: The Rule of Fifty&#8221; at Project Solutions (where you need to register) cites data from four studies conducted over a half century to show how productivity either drops, or at best maxes out, as overtime increases.</p>
<p>The studies&#8217; results vary quite a bit. One shows that at 50 hours/week workers do about 37 hours work, dropping to just over 30 once the workweek increases to 55. The &#8220;best,&#8221; if you can call it that, results were from a 1997 survey showed wielding the whip can have ever-increasing productive rewards, edging up to about 52 productive hours for a 70 hour week. But they all show a nearly-impenetrable barrier of around 50 useful hours or less, regardless of overtime.</p>
<p>Unsurprisingly the data shows a sharp drop in results for those working excessive OT for weeks on end, averaging around a 20% drop after 12 weeks of servitude. That means, as the author concludes, the Rule of Fifty is a best case estimate.</p>
<p>The 2005 Circadian Technologies Shiftware Practices survey showed that productivity can decrease by as much as 25% for a 60 hour workweek, which jibes pretty well with Nevison&#8217;s data. Circadian&#8217;s results also demonstrate that turnover is nearly three times higher among workers putting in a lot of OT, and absenteeism is twice the national average. I&#8217;m not sure what that result means, since it&#8217;s awfully hard for an absent worker to be putting in overtime.</p>
<p>Fred Brooks claims that the average software engineer devotes about 55% of his week to project work. The rest goes to overhead activities, responding to HR, meetings about the health insurance plan, and supporting other activities.</p>
<p>The German Embassy&#8217;s Washington  web site claims on its web  site that the nominal workweek in Germany is 37.5 hours because &#8220;The original reason for introducing this system was to combat rush-hour traffic congestion, but among the more direct gains are an improvement in employee morale, greater productivity, significant decreases in absenteeism, greater flexibility for women who juggle the demands of work, home and children, and the increased sense of individual dignity that the employees get from having a greater say in organizing their own time.&#8221;</p>
<p><strong>Links:</strong>  <a HREF="http://embedded.com/columns/breakpoint/206902869">http://embedded.com/columns/breakpoint/206902869</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belhob.wordpress.com/167/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belhob.wordpress.com/167/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belhob.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belhob.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belhob.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belhob.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belhob.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belhob.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belhob.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belhob.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belhob.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belhob.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belhob.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belhob.wordpress.com/167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belhob.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belhob.wordpress.com/167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=167&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belhob.wordpress.com/2008/03/17/the-rule-of-fifty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67813aa08830bd31722c3ab9736fa66a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bipin Gautam Taksande</media:title>
		</media:content>
	</item>
		<item>
		<title>Taming software complexity</title>
		<link>http://belhob.wordpress.com/2008/03/14/taming-software-complexity/</link>
		<comments>http://belhob.wordpress.com/2008/03/14/taming-software-complexity/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 04:42:51 +0000</pubDate>
		<dc:creator>Bipin Gautam Taksande</dc:creator>
				<category><![CDATA[C/C++ Programming]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[cyclomatic complexity]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[measure the complexity of your code]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Taming software complexity]]></category>
		<category><![CDATA[Thomas McCabe]]></category>
		<category><![CDATA[tragedies]]></category>

		<guid isPermaLink="false">http://belhob.wordpress.com/?p=166</guid>
		<description><![CDATA[&#8220;Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.&#8221; Folk wisdom, as reflected in Brian Kernighan&#8217;s clever riff on clever code, is that insight we all know but generally ignore. But [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=166&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a HREF="http://www.spinellis.gr/blog/20031003/iexplore2.gif"><img ALIGN="left" HEIGHT="274" WIDTH="302" VSPACE="15" HSPACE="15" BORDER="0" SRC="http://www.spinellis.gr/blog/20031003/iexplore2.gif" /></a>&#8220;Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.&#8221;</p>
<p>Folk wisdom, as reflected in Brian Kernighan&#8217;s clever riff on clever code, is that insight we all know but generally ignore. But how can we measure &#8220;cleverness?&#8221; Supreme Court Justice Potter Stewart, trying to characterize pornography, memorably lamented that it somewhat defies definition, but &#8220;I know it when I see it.&#8221; Likewise, most of us can sense excessively clever code but may disagree when examining specific code chunks.</p>
<p>We do know complicated functions are tough to understand, an agony to debug, and usually require excessive amounts of maintenance.</p>
<p>One of the tragedies of software engineering is that, in industry at least, we&#8217;ve successfully avoided the metrics-based quality revolution that transformed manufacturing. Few companies know their pretest bug rates in, say, defects per line of code. Or productivity in lines of code per hour. Or which are the worst functions in a project. In an experiment I conducted surreptitiously last year, only a third of correspondents could answer the seemingly simple question &#8220;how big is your code&#8221; in any metric they wanted to use (MB, lines of code, lines they developed, value in dollars, or, heck, the weight of the listings).</p>
<p>A management mantra states &#8220;if you can&#8217;t measure it, you can&#8217;t manage it.&#8221; Though surely true for building widgets, it&#8217;s a lot harder to apply to engineering. But some objective measures provide valuable insight into the art of developing firmware. Since we know complex functions are problematic, it seems logical that we measure and control complexity in functions.</p>
<p>And it turns out that&#8217;s pretty easy to do.</p>
<p>But first, there are two kinds of complexity: essential, which is a quality about the problem being solved, and incidental, which is the complexity introduced by our engineering approaches. Here we&#8217;re talking about incidental complexity, as that&#8217;s the only kind we as developers can manage.</p>
<p>Thirty-one years ago, Thomas McCabe proposed a metric called &#8220;cyclomatic complexity&#8221; to attach a quantitative measure to a function&#8217;s complexity. It&#8217;s one of many such measures but is by far the one most used. It measures the number of &#8220;edges&#8221; and &#8220;nodes&#8221; in a function, where a node is a computational statement and an edge represents the transfer of control between nodes. Cyclomatic complexity is then:</p>
<p><strong><i>v(G)=edges–nodes+2</i></strong></p>
<p><strong>Links:</strong>  <a HREF="http://embedded.com/columns/technicalinsights/206901032">http://embedded.com/columns/technicalinsights/206901032</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belhob.wordpress.com/166/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belhob.wordpress.com/166/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belhob.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belhob.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belhob.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belhob.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belhob.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belhob.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belhob.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belhob.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belhob.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belhob.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belhob.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belhob.wordpress.com/166/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belhob.wordpress.com/166/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belhob.wordpress.com/166/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=166&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belhob.wordpress.com/2008/03/14/taming-software-complexity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67813aa08830bd31722c3ab9736fa66a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bipin Gautam Taksande</media:title>
		</media:content>
	</item>
		<item>
		<title>How to write secure C/C++ application code</title>
		<link>http://belhob.wordpress.com/2008/03/13/how-to-write-secure-cc-application-code/</link>
		<comments>http://belhob.wordpress.com/2008/03/13/how-to-write-secure-cc-application-code/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 04:28:42 +0000</pubDate>
		<dc:creator>Bipin Gautam Taksande</dc:creator>
				<category><![CDATA[C/C++ Programming]]></category>
		<category><![CDATA[Embedded Systems]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[address space]]></category>
		<category><![CDATA[buffer overflow]]></category>
		<category><![CDATA[flaws]]></category>
		<category><![CDATA[GOT]]></category>
		<category><![CDATA[heap memory space]]></category>
		<category><![CDATA[How to write secure C/C++ application code]]></category>
		<category><![CDATA[OpenBSD]]></category>
		<category><![CDATA[PLT]]></category>
		<category><![CDATA[shared libraries]]></category>
		<category><![CDATA[vulnerable program]]></category>
		<category><![CDATA[WAX policy]]></category>

		<guid isPermaLink="false">http://belhob.wordpress.com/?p=165</guid>
		<description><![CDATA[Many flaws are exploitable because the address space of the vulnerable program has memory that is both writable and executable. As a result, an attacker can write to memory using a buffer overflow, for example, and then transfer control to the address of the injected code. This problem can be addressed by ensuring that memory [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=165&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a HREF="http://www.scapackaging.com/upload/About%20us/BE-SECURE-icon-72dpi.jpg"><img SRC="http://www.scapackaging.com/upload/About%20us/BE-SECURE-icon-72dpi.jpg" BORDER="0" HSPACE="15" VSPACE="15" WIDTH="295" HEIGHT="276" ALIGN="right" /></a>Many flaws are exploitable because the address space of the vulnerable program has memory that is both writable and executable. As a result, an attacker can write to memory using a buffer overflow, for example, and then transfer control to the address of the injected code.</p>
<p>This problem can be addressed by ensuring that memory pages have the minimal permissions required for proper operation (an application of the principle of least privilege). This is not a comprehensive defense against all exploits, but simply a mechanism designed to extend your defense-in-depth strategy by increasing the difficulty for an attacker to exploit a vulnerability.</p>
<p>Several existing systems enforce reduced privileges in the kernel so that no part of the process address space is both writable and executable. This policy has been named &#8220;W xor X&#8221; or more concisely WAX. Enforcement of this policy results, for example, in a nonexecutable stack.</p>
<p>OpenBSD is an example of a system that implements a WAX policy. In OpenBSD, an application can still request explicit permissions with mprotect() to override the default.</p>
<p>The implementation of a WnX policy depends on the central processing unit (CPU) and memory management unit (MMU) architecture. For processors that feature an execute bit for each page of memory; OpenBSD implements two changes to make this possible:</p>
<p>1. The signal trampoline is removed from the stack. The signal trampoline page is given read and execute permissions, while the stack segment is given read and write permissions. By doing this, the stack becomes nonexecutable.</p>
<p>2. The mapping of shared libraries and heap memory space is changed so that the data segments do not contain objects which are read, write, and executable. This entails moving the shared library global offset table (GOT), the shared library procedure linkage table (PLT), C++ constructors (.ctors), and C++ destructors (.dtors).</p>
<p>The GOT and PLT are mapped onto their own pages, which are made nonwritable. Minor changes to the dynamic linker are needed to accommodate this change. The . dtors and . ctors sections are moved in with the GOT and consequently become nonwritable as well. Making these changes eliminates executable objects from the data segment.</p>
<p>The implementation for architectures that do not support a per-page execute bit (such as IA-32) is more involved but achieves a similar result.</p>
<p>To supplement this scheme, OpenBSD also reduces permissions on readonly strings and pointers stored as constant data. Historically, these objects were stored in the text segment and had permissions of PROT READ IPROT EXEC. This meant that constant data could potentially be executed as shell code.</p>
<p>Because OpenBSD uses the ELF object file format, a new segment, aptly named . rodata, was created to store this data. As a result, this behavior was changed so that now these objects only have PROT READ and they lose PROT EXEC.</p>
<p><strong>Links:</strong> <a HREF="http://embedded.com/columns/technicalinsights/202802744">http://embedded.com/columns/technicalinsights/202802744</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belhob.wordpress.com/165/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belhob.wordpress.com/165/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belhob.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belhob.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belhob.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belhob.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belhob.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belhob.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belhob.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belhob.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belhob.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belhob.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belhob.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belhob.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belhob.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belhob.wordpress.com/165/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=165&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belhob.wordpress.com/2008/03/13/how-to-write-secure-cc-application-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67813aa08830bd31722c3ab9736fa66a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bipin Gautam Taksande</media:title>
		</media:content>
	</item>
		<item>
		<title>Lilo</title>
		<link>http://belhob.wordpress.com/2008/03/08/lilo/</link>
		<comments>http://belhob.wordpress.com/2008/03/08/lilo/#comments</comments>
		<pubDate>Sat, 08 Mar 2008 04:26:42 +0000</pubDate>
		<dc:creator>Bipin Gautam Taksande</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Alessandro Rubini]]></category>
		<category><![CDATA[BootLoaders]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[bootstrap loader]]></category>
		<category><![CDATA[Cameron Spitzer]]></category>
		<category><![CDATA[disk drive]]></category>
		<category><![CDATA[Grub]]></category>
		<category><![CDATA[Lilo]]></category>
		<category><![CDATA[Lilo installations]]></category>
		<category><![CDATA[Lilo User's Guide]]></category>
		<category><![CDATA[linux Boot Loaders]]></category>
		<category><![CDATA[LiveCDs]]></category>
		<category><![CDATA[paper tape]]></category>
		<category><![CDATA[punched card]]></category>
		<category><![CDATA[RAM]]></category>
		<category><![CDATA[ROM]]></category>
		<category><![CDATA[USB flash drives]]></category>
		<category><![CDATA[x86]]></category>

		<guid isPermaLink="false">http://belhob.wordpress.com/?p=164</guid>
		<description><![CDATA[LILO is the most used Linux Loader for the x86 flavor of Linux; I&#8217;ll call it Lilo rather than LILO here because I don&#8217;t appreciate uppercase. This file describes some typical Lilo installations. It&#8217;s intended as a supplement to the Lilo User&#8217;s Guide. I think examples are informative even if your setup isn&#8217;t much like [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=164&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a HREF="http://www.slackbook.org/html/booting/setup-lilo-w.png"><img SRC="http://www.slackbook.org/html/booting/setup-lilo-w.png" BORDER="0" HSPACE="15" VSPACE="15" WIDTH="301" HEIGHT="188" ALIGN="left" /></a>LILO is the most used Linux Loader for the x86 flavor of Linux; I&#8217;ll call it Lilo rather than LILO here because I don&#8217;t appreciate uppercase. This file describes some typical Lilo installations. It&#8217;s intended as a supplement to the Lilo User&#8217;s Guide. I think examples are informative even if your setup isn&#8217;t much like mine. I hope this saves you trouble. Since Lilo&#8217;s own documentation is very good, who&#8217;s interested in the details is referred to /usr/doc/lilo* (once upon a time said gentlemen like Cameron Spitzer and Alessandro Rubini who have made early versions of this document)</p>
<p>LILO (LInux LOader) is a generic boot loader for Linux.</p>
<p>LILO was originally developed by Werner Almesberger, while its current developer is John Coffman.</p>
<p>LILO does not depend on a specific file system, and can boot an operating system (e.g., Linux kernel images) from floppy disks and hard disks. One of up to sixteen different images can be selected at boot time. Various parameters, such as the root device, can be set independently for each kernel. LILO can be placed either in the master boot record (MBR) or the boot sector of a partition. In the latter case something else must be placed in the MBR to load LILO.</p>
<p>At system start, only the BIOS drivers are available for LILO to access hard disks. For this reason, with very old BIOSes, the accessible area is limited to cylinders 0 to 1023 of the first two hard disks. For later BIOSes, LILO can use 32-bit &#8220;logical block addressing&#8221; (LBA) to access practically the entire storage of all the harddisks that the BIOS allows access to.</p>
<p>LILO was the default bootloader for most Linux distributions in the years after the popularity of loadlin. Today, most distributions use GRUB as the default bootloader.</p>
<p><strong>Links:</strong></p>
<p><a HREF="http://tldp.org/HOWTO/LILO.html">http://tldp.org/HOWTO/LILO.html</a></p>
<p><a HREF="http://en.wikipedia.org/wiki/LILO_(boot_loader)">http://en.wikipedia.org/wiki/LILO_(boot_loader) </a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belhob.wordpress.com/164/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belhob.wordpress.com/164/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belhob.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belhob.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belhob.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belhob.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belhob.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belhob.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belhob.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belhob.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belhob.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belhob.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belhob.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belhob.wordpress.com/164/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belhob.wordpress.com/164/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belhob.wordpress.com/164/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=164&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belhob.wordpress.com/2008/03/08/lilo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67813aa08830bd31722c3ab9736fa66a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bipin Gautam Taksande</media:title>
		</media:content>
	</item>
		<item>
		<title>GRUB</title>
		<link>http://belhob.wordpress.com/2008/03/07/grub/</link>
		<comments>http://belhob.wordpress.com/2008/03/07/grub/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 11:58:38 +0000</pubDate>
		<dc:creator>Bipin Gautam Taksande</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux Devices]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[BootLoaders]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[bootstrap loader]]></category>
		<category><![CDATA[disk drive]]></category>
		<category><![CDATA[Grub]]></category>
		<category><![CDATA[LiveCDs]]></category>
		<category><![CDATA[paper tape]]></category>
		<category><![CDATA[punched card]]></category>
		<category><![CDATA[RAM]]></category>
		<category><![CDATA[ROM]]></category>
		<category><![CDATA[USB flash drives]]></category>

		<guid isPermaLink="false">http://belhob.wordpress.com/?p=163</guid>
		<description><![CDATA[ GRUB is independent of any particular operating system and may be thought of as a tiny, function-specific OS. The purpose of the GRUB kernel is to recognize filesystems and load boot images, and it provides both menu-driven and command-line interfaces to perform these functions. The command-line interface in particular is quite flexible and powerful, with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=163&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a HREF="http://www.cyberciti.biz/tips/wp-content/uploads/2006/10/super-grub-disk-linux-options.png"><img ALIGN="right" HEIGHT="175" WIDTH="291" VSPACE="15" HSPACE="15" BORDER="0" SRC="http://www.cyberciti.biz/tips/wp-content/uploads/2006/10/super-grub-disk-linux-options.png" /></a> GRUB is independent of any particular operating system and may be thought of as a tiny, function-specific OS. The purpose of the GRUB kernel is to recognize filesystems and load boot images, and it provides both menu-driven and command-line interfaces to perform these functions. The command-line interface in particular is quite flexible and powerful, with command history and completion features familiar to users of the bash shell.</p>
<p>GRUB is in its element with the multiboot, multidisk systems typical of Linux and open-source adventurers who may simultaneously test or track several Linux distributions, the BSDs, GNU/Hurd, BeOS and perhaps that vestigial partition for Mr. Bill. Even if you stick with LILO as your system&#8217;s primary boot loader, it&#8217;s smart to keep a GRUB boot floppy handy as the best and fastest way to get your system back if you otherwise cream your master boot record (MBR). If you have done any number of multiboot installations, you know exactly what I&#8217;m talking about. Should you need any more reasons for considering GRUB, check out the sidebar, “Why GRUB”. Let&#8217;s get started!</p>
<p><strong> Links:</strong></p>
<p><a HREF="http://www.linuxjournal.com/article/4622">http://www.linuxjournal.com/article/4622</a></p>
<p><a HREF="http://www.gnu.org/software/grub/">http://www.gnu.org/software/grub/</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belhob.wordpress.com/163/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belhob.wordpress.com/163/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belhob.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belhob.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belhob.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belhob.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belhob.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belhob.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belhob.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belhob.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belhob.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belhob.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belhob.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belhob.wordpress.com/163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belhob.wordpress.com/163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belhob.wordpress.com/163/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=163&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belhob.wordpress.com/2008/03/07/grub/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67813aa08830bd31722c3ab9736fa66a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bipin Gautam Taksande</media:title>
		</media:content>
	</item>
		<item>
		<title>Boot Loaders</title>
		<link>http://belhob.wordpress.com/2008/03/06/boot-loaders/</link>
		<comments>http://belhob.wordpress.com/2008/03/06/boot-loaders/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 04:35:02 +0000</pubDate>
		<dc:creator>Bipin Gautam Taksande</dc:creator>
				<category><![CDATA[Embedded Systems]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[boot loader]]></category>
		<category><![CDATA[Boot Loaders]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[bootstrap loader]]></category>
		<category><![CDATA[disk drive]]></category>
		<category><![CDATA[LiveCDs]]></category>
		<category><![CDATA[paper tape]]></category>
		<category><![CDATA[punched card]]></category>
		<category><![CDATA[RAM]]></category>
		<category><![CDATA[ROM]]></category>
		<category><![CDATA[USB flash drives]]></category>

		<guid isPermaLink="false">http://belhob.wordpress.com/?p=162</guid>
		<description><![CDATA[Most computer systems can only execute code found in the memory (ROM or RAM). Modern operating systems are stored on hard disks, or occasionally on LiveCDs, USB flash drives, or other non-volatile storage devices. When a computer is first powered on, it does not have an operating system in memory. The computer&#8217;s hardware alone cannot [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=162&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a HREF="http://www.windowsfordevices.com/files/misc/oneNANDboot_1.jpg"><img SRC="http://www.windowsfordevices.com/files/misc/oneNANDboot_1.jpg" BORDER="0" HSPACE="15" VSPACE="15" WIDTH="300" HEIGHT="283" ALIGN="left" /></a>Most computer systems can only execute code found in the memory (ROM or RAM). Modern operating systems are stored on hard disks, or occasionally on LiveCDs, USB flash drives, or other non-volatile storage devices. When a computer is first powered on, it does not have an operating system in memory. The computer&#8217;s hardware alone cannot perform complex actions such as loading a program from disk, so an apparent paradox exists: to load the operating system into memory, one appears to need to have an operating system already loaded.</p>
<p>The solution is to use a special small program, called a bootstrap loader, bootstrap or boot loader. This program&#8217;s only job is to load other software for the operating system to start. Often, multiple-stage boot loaders are used, in which several small programs of increasing complexity sequentially summon one after the other, until the last of them loads the operating system. The name bootstrap loader comes from the image of one pulling oneself up by one&#8217;s bootstraps. It derives from the very earliest days of computers and is possibly one of the oldest pieces of computer terminology in common use.</p>
<p>Early computers had a row of toggle switches on the front panel to allow the operator to manually enter the binary boot instructions into memory before transferring control to the CPU. The boot loader would then read the operating system in from an outside storage medium such as paper tape, punched card, or a disk drive.</p>
<p><strong>A boot loader typically consists of three programs:</strong></p>
<ul>
<li>The boot sector program is directly loaded by the BIOS at boot time and is only 512 bytes in size.</li>
<li></li>
<li>The second stage program is loaded by the boot sector program and it does everything you expect the boot loader to do.</li>
<li></li>
<li>The boot loader installer is not run when the system is booted, but it is used to install the boot loader and the second stage program onto the boot disk. These have to be stored in special locations, so they cannot be copied with cp.</li>
</ul>
<p><strong>Links:</strong></p>
<p><a HREF="http://en.wikipedia.org/wiki/Booting">http://en.wikipedia.org/wiki/Booting </a></p>
<p><a HREF="http://www.xs4all.nl/~lennartb/bootloaders/node3.html">http://www.xs4all.nl/~lennartb/bootloaders/node3.html</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/belhob.wordpress.com/162/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/belhob.wordpress.com/162/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/belhob.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/belhob.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/belhob.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/belhob.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/belhob.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/belhob.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/belhob.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/belhob.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/belhob.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/belhob.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/belhob.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/belhob.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/belhob.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/belhob.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=belhob.wordpress.com&amp;blog=1054595&amp;post=162&amp;subd=belhob&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://belhob.wordpress.com/2008/03/06/boot-loaders/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/67813aa08830bd31722c3ab9736fa66a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Bipin Gautam Taksande</media:title>
		</media:content>
	</item>
	</channel>
</rss>
