<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-6952446304140363640</atom:id><lastBuildDate>Mon, 09 Sep 2024 04:32:12 +0000</lastBuildDate><category>modules</category><category>C Programming</category><category>C tricks</category><category>INIT_RLIMITS</category><category>RLIM_NLIMITS</category><category>container_of</category><category>current process</category><category>current_thread_info()</category><category>getpid()</category><category>getrlimit</category><category>init</category><category>init_task</category><category>kernel</category><category>kernel stack</category><category>limits.conf</category><category>linked list</category><category>linux</category><category>linux kernel 2.6</category><category>list_entry</category><category>microkernel</category><category>monolithic</category><category>new module</category><category>offset_of</category><category>pid</category><category>printk()</category><category>process</category><category>resource limits</category><category>resource.h</category><category>rlim</category><category>rlimit</category><category>setrlimit</category><category>struct list_head</category><category>structof</category><category>swapper</category><category>syslog</category><category>task_struct</category><category>tgid</category><category>thread_info</category><category>thread_union</category><category>ulimit</category><title>Inside Linux Kernel</title><description>Peeping into working of Linux kernel: its design, data structures, functions, architecture, and approach.</description><link>http://insidelinuxkernel.blogspot.com/</link><managingEditor>noreply@blogger.com (NeverMind)</managingEditor><generator>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6952446304140363640.post-2288349532641871868</guid><pubDate>Thu, 30 Apr 2009 14:20:00 +0000</pubDate><atom:updated>2009-05-03T18:48:48.441+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">C Programming</category><category domain="http://www.blogger.com/atom/ns#">C tricks</category><category domain="http://www.blogger.com/atom/ns#">container_of</category><category domain="http://www.blogger.com/atom/ns#">linked list</category><category domain="http://www.blogger.com/atom/ns#">linux kernel 2.6</category><category domain="http://www.blogger.com/atom/ns#">list_entry</category><category domain="http://www.blogger.com/atom/ns#">offset_of</category><category domain="http://www.blogger.com/atom/ns#">struct list_head</category><category domain="http://www.blogger.com/atom/ns#">structof</category><title>The Linux Kernel Linked List</title><atom:summary type="text">Prescript:In addition to explaining yet another ingredient of Linux kernel, this post implicitly covers some useful C programming techniques. A reader with the thought “...perhaps I can use this in my xyz program...” can apply these techniques to everyday programming.---Now that we’ve seen an important data structure of the Linux kernel, it’s best to visit one of the most fundamental building </atom:summary><link>http://insidelinuxkernel.blogspot.com/2009/04/linux-kernel-linked-list.html</link><author>noreply@blogger.com (NeverMind)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq8Hp3YCUItCd_erVUwntd0wBPjUayKizreur70I5xS2PLAh78ECCTAAKcqbY82pTamhJMSOI99GeuB_f_AdjmcioaDxl_kG9O_8KcjZ-HGWE4DPkgL5w6E1RrAkqPHE4s68Nf-UlOvr4/s72-c/example-list_head.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6952446304140363640.post-1056667537160296134</guid><pubDate>Tue, 09 Dec 2008 09:44:00 +0000</pubDate><atom:updated>2009-04-15T18:01:23.336+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">init</category><category domain="http://www.blogger.com/atom/ns#">INIT_RLIMITS</category><category domain="http://www.blogger.com/atom/ns#">init_task</category><category domain="http://www.blogger.com/atom/ns#">limits.conf</category><category domain="http://www.blogger.com/atom/ns#">swapper</category><category domain="http://www.blogger.com/atom/ns#">ulimit</category><title>Do You Know Your Limits!?</title><atom:summary type="text">To continue further our discussion of what are process resource limits, let’s see some real figures. Try putting following two printk() statements in FirstModuleSource.c posted here.printk (KERN_INFO &quot;Process Name: %s&quot;, current -&gt; comm); printk(KERN_INFO &quot;current limit- # processes: %ul\n&quot;, current -&gt; rlim[RLIMIT_NOFILE].rlim_cur);printk(KERN_INFO &quot;maximum limit- # processes: %ul\n&quot;, current -&gt; </atom:summary><link>http://insidelinuxkernel.blogspot.com/2008/12/do-you-know-your-limits.html</link><author>noreply@blogger.com (NeverMind)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8NhFA1WH9h-xirVW_xLImNkFSDkyi79i46-zYjudnZZZJ2ya9hoFMMYjolTHAA0L47cZU8Kzsa_XT97yxkzIFRXLtIvUZjYP7QifMOmEdFAcXqQAFkkPYs99z9EQHzeQ6puZAY17Vlag/s72-c/shwetaimage.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6952446304140363640.post-7851849499104324287</guid><pubDate>Sat, 22 Nov 2008 10:54:00 +0000</pubDate><atom:updated>2008-11-22T17:28:45.621+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">getrlimit</category><category domain="http://www.blogger.com/atom/ns#">resource limits</category><category domain="http://www.blogger.com/atom/ns#">resource.h</category><category domain="http://www.blogger.com/atom/ns#">rlim</category><category domain="http://www.blogger.com/atom/ns#">RLIM_NLIMITS</category><category domain="http://www.blogger.com/atom/ns#">rlimit</category><category domain="http://www.blogger.com/atom/ns#">setrlimit</category><title>Process Resource Limits</title><atom:summary type="text">Having seen the task_struct structure representing a process in kernel, in this post we shall discuss one very important field of task_struct, named rlim (#line 460 in the snapshot of sched.h in last post). A process can never access the system resources how much ever it wants. Linux kernel imposes limits on the amount of resources a process is allowed to use, so that a single process cannot </atom:summary><link>http://insidelinuxkernel.blogspot.com/2008/11/process-resource-limits.html</link><author>noreply@blogger.com (NeverMind)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzRFL3GcKCYF1GdTaOPf9x_fsIphwOaYapFr_kTxfqh64Ltg8m95HhnX0BBWLCuz3tD8OyxLXK0mGsq3wE9Bk8q5YHDdeyL8cu-Qq8BXQspKs9RTPe3g3e67vTdnjBXXUFQDgmsknr0zg/s72-c/resource_h_i386.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6952446304140363640.post-8984283638925675301</guid><pubDate>Tue, 29 Jul 2008 05:18:00 +0000</pubDate><atom:updated>2008-08-13T11:08:37.186+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">current process</category><category domain="http://www.blogger.com/atom/ns#">current_thread_info()</category><category domain="http://www.blogger.com/atom/ns#">getpid()</category><category domain="http://www.blogger.com/atom/ns#">kernel stack</category><category domain="http://www.blogger.com/atom/ns#">pid</category><category domain="http://www.blogger.com/atom/ns#">process</category><category domain="http://www.blogger.com/atom/ns#">task_struct</category><category domain="http://www.blogger.com/atom/ns#">tgid</category><category domain="http://www.blogger.com/atom/ns#">thread_info</category><category domain="http://www.blogger.com/atom/ns#">thread_union</category><title>Kernel Process Data-Structures</title><atom:summary type="text">&lt;!--[if gte mso 9]&gt;     Normal   0         false   false   false                             MicrosoftInternetExplorer4   &lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;     &lt;![endif]--&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Georgia; 	panose-1:2 4 5 2 5 4 5 2 3 3; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:647 0 0 0 159 0;}  /* Style </atom:summary><link>http://insidelinuxkernel.blogspot.com/2008/08/kernel-process-data-structures.html</link><author>noreply@blogger.com (NeverMind)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzIs4UcGycjzbHsFHc86etUco4HrCHRQMeomumhYsoud206OIp093Kf_0ZJZbbDvcU1FN_VNupMFKdnmYH8NnhNuHS_30e8JPBAf-IMVuz0JMk98Rwf-hg37r6UJXHZqvO7wma7BaNGkQ/s72-c/task_struct.png" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6952446304140363640.post-9098446128928893055</guid><pubDate>Mon, 21 Jul 2008 08:32:00 +0000</pubDate><atom:updated>2009-04-15T17:57:03.996+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">printk()</category><category domain="http://www.blogger.com/atom/ns#">syslog</category><title>There is Something About printk()</title><atom:summary type="text">In the example myFirstModuleSource.c of Writing the First Kernel Module, I used printk() just as another name of printf(). In this post I note the differences between the two, and the way Linux kernel uses it.&lt;?xml:namespace prefix = o /&gt;At the first glance, the only difference between printk() and printf() is the way the two functions are called. However, this single difference causes all the </atom:summary><link>http://insidelinuxkernel.blogspot.com/2008/07/there-is-something-about-printk.html</link><author>noreply@blogger.com (NeverMind)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg-rjEUHD4sq5bpWwTnQeffznQCudBHLb23NCEHdN6z3J2wv7hLMXM-LGhNLDx26jp2BhEk6uHJOUdI8cGQUiifAxWAgK0kiDAAwRKz8qyWrq7IpAcUBXMbJOPEgFdPjQuS-jnXKdgQZo/s72-c/kernel.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6952446304140363640.post-1630886272861879733</guid><pubDate>Sat, 19 Jul 2008 10:33:00 +0000</pubDate><atom:updated>2008-08-13T14:28:32.282+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">modules</category><title>Compiling and Inserting the First Kernel Module</title><atom:summary type="text">   	 	 	 	 	 	 	&lt;!-- 		@page { size: 8.27in 11.69in; margin: 0.79in } 		P { margin-bottom: 0.08in } 	--&gt; 	  Let’s now see how to compile the module program shown in previous post. We shall write a Makefile to make the procedure of compilation simpler. Below is a ‘template’ of a Makefile, which I use to compile my modules. The description follows.  #################################################</atom:summary><link>http://insidelinuxkernel.blogspot.com/2008/07/compiling-and-inserting-first-kernel.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6952446304140363640.post-2723266573774289361</guid><pubDate>Tue, 15 Jul 2008 16:30:00 +0000</pubDate><atom:updated>2008-08-12T14:00:13.586+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">new module</category><title>Writing the First Kernel Module</title><atom:summary type="text">&lt;!--[if gte mso 9]&gt;     Normal   0         false   false   false                             MicrosoftInternetExplorer4   &lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;     &lt;![endif]--&gt;&lt;!--[if !mso]&gt;  st1\:*{behavior:url(#ieooui) }  &lt;![endif]--&gt; &lt;!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:&quot;&quot;; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	</atom:summary><link>http://insidelinuxkernel.blogspot.com/2008/07/how-to-write-module.html</link><author>noreply@blogger.com (Unknown)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6952446304140363640.post-308398997160029951</guid><pubDate>Wed, 25 Jun 2008 07:21:00 +0000</pubDate><atom:updated>2008-07-30T11:30:20.375+05:30</atom:updated><category domain="http://www.blogger.com/atom/ns#">kernel</category><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">microkernel</category><category domain="http://www.blogger.com/atom/ns#">modules</category><category domain="http://www.blogger.com/atom/ns#">monolithic</category><title>The OS, The Kernel and The Modules</title><atom:summary type="text">Typically kernel literature start with the words like modules, microkernels etc. Lets quickly run over these to set the context right for reading.Often the terms operating system and kernel are confused because the two terms are used interchangeably in many books. But actually there is a difference: kernel is just one part of operating system, other parts being device drivers, user interface etc.</atom:summary><link>http://insidelinuxkernel.blogspot.com/2008/06/os-kernel-and-modules.html</link><author>noreply@blogger.com (NeverMind)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6952446304140363640.post-7685849140218863941</guid><pubDate>Thu, 19 Jun 2008 14:05:00 +0000</pubDate><atom:updated>2008-07-28T12:20:31.504+05:30</atom:updated><title>Wish Me Luck...</title><atom:summary type="text">The Linux kernel is such a nice example of a well defined, cleanly interfaced, layered, modular designed system software. One may look at the kernel code to see how object oriented-ness is realized in C programming, a language which does not directly support this feature.The subject of linux kernel is so deep and vast but equally interesting. For a beginner like me, it opens  windows of </atom:summary><link>http://insidelinuxkernel.blogspot.com/2008/06/wish-me-luck.html</link><author>noreply@blogger.com (NeverMind)</author><thr:total>0</thr:total></item></channel></rss>