<?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>EmbLogic &#187; ramandeep.singh</title>
	<atom:link href="https://www.emblogic.com/blog/author/ramandeep-singh/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.emblogic.com/blog</link>
	<description>Embedded System and ARM Training</description>
	<lastBuildDate>Tue, 03 Mar 2020 13:00:06 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.1</generator>
	<item>
		<title>Linux /proc File System</title>
		<link>https://www.emblogic.com/blog/03/linux-proc-file-system/</link>
		<comments>https://www.emblogic.com/blog/03/linux-proc-file-system/#comments</comments>
		<pubDate>Tue, 25 Mar 2014 10:13:15 +0000</pubDate>
		<dc:creator><![CDATA[ramandeep.singh]]></dc:creator>
				<category><![CDATA[Character Driver]]></category>
		<category><![CDATA[Device Drivers]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=9426</guid>
		<description><![CDATA[&#160; /proc is very special in that it is a virtual filesystem. It&#8217;s sometimes referred to as a process information pseudo-file system. It doesn&#8217;t contain &#8216;real&#8217; files but runtime system information (e.g. system memory, devices mounted, hardware configuration, etc).Inside the &#8230; <a href="https://www.emblogic.com/blog/03/linux-proc-file-system/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p>/proc is very special in that it is a virtual filesystem. It&#8217;s sometimes referred to as a process information pseudo-file system. It doesn&#8217;t contain &#8216;real&#8217; files but runtime system information (e.g. system memory, devices mounted, hardware configuration, etc).Inside the /proc directory, you’ll see two types of content — numbered directories, and system information files. /proc is not a real file system, it is a virtual file system. For example, if you do ls -l /proc/stat, you’ll notice that it has a size of 0 bytes, but if you do “cat /proc/stat”, you’ll see some content inside the file.For this reason it can be regarded as a control and information centre for the kernel. In fact, quite a lot of system utilities are simply calls to files in this directory. For example, &#8216;lsmod&#8217; is the same as &#8216;cat /proc/modules&#8217; while &#8216;lspci&#8217; is a synonym for &#8216;cat /proc/pci&#8217;. By altering files located in this directory you can even read/change kernel parameters (sysctl) while the system is running.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/03/linux-proc-file-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MODULE FIRST PROGRAM DEVICE DRIVER</title>
		<link>https://www.emblogic.com/blog/02/module-first-program-device-driver/</link>
		<comments>https://www.emblogic.com/blog/02/module-first-program-device-driver/#comments</comments>
		<pubDate>Tue, 04 Feb 2014 10:24:35 +0000</pubDate>
		<dc:creator><![CDATA[ramandeep.singh]]></dc:creator>
				<category><![CDATA[Project 11: A Character Device Drivers Based Project]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=8247</guid>
		<description><![CDATA[head    1.1; 2 access; 3 symbols; 4 locks 5         emblogic:1.1; strict; 6 comment @ * @; 7 8 9 1.1 10 date    2014.02.04.04.44.59;    author emblogic;        state Exp; 11 branches; 12 next    ; 13 14 15 desc 16 @this is the &#8230; <a href="https://www.emblogic.com/blog/02/module-first-program-device-driver/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>head    1.1;<br />
2 access;<br />
3 symbols;<br />
4 locks<br />
5         emblogic:1.1; strict;<br />
6 comment @ * @;<br />
7<br />
8<br />
9 1.1<br />
10 date    2014.02.04.04.44.59;    author emblogic;        state Exp;<br />
11 branches;<br />
12 next    ;<br />
13<br />
14<br />
15 desc<br />
16 @this is the header file of first module driver program<br />
17 @<br />
18<br />
19<br />
20 1.1<br />
21 log<br />
22 @Initial revision<br />
23 @<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>head    1.1;<br />
2 access;<br />
3 symbols;<br />
4 locks<br />
5         emblogic:1.1; strict;<br />
6 comment @ * @;<br />
7<br />
8<br />
9 1.1<br />
10 date    2014.02.04.04.44.21;    author emblogic;        state Exp;<br />
11 branches;<br />
12 next    ;<br />
13<br />
14<br />
15 desc<br />
16 @this is the exit.c to remove the module<br />
17 @<br />
18<br />
19<br />
20 1.1<br />
21 log<br />
22 @Initial revision<br />
23 @<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;head    1.1;<br />
2 access;<br />
3 symbols;<br />
4 locks<br />
5         emblogic:1.1; strict;<br />
6 comment @ * @;<br />
7<br />
8<br />
9 1.1<br />
10 date    2014.02.04.04.41.13;    author emblogic;        state Exp;<br />
11 branches;<br />
12 next    ;<br />
13<br />
14<br />
15 desc<br />
16 @this is the initialization file init.c<br />
17 @<br />
18<br />
19<br />
20 1.1<br />
21 log<br />
22 @Initial revision<br />
23 @</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/02/module-first-program-device-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Client Server Communication using AF_INET Sockets [RCS Log]</title>
		<link>https://www.emblogic.com/blog/12/client-server-communication-using-af_inet-sockets-rcs-log/</link>
		<comments>https://www.emblogic.com/blog/12/client-server-communication-using-af_inet-sockets-rcs-log/#comments</comments>
		<pubDate>Mon, 30 Dec 2013 09:23:32 +0000</pubDate>
		<dc:creator><![CDATA[ramandeep.singh]]></dc:creator>
				<category><![CDATA[Project 04: FTP based Client Server using Threads and Sockets]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7955</guid>
		<description><![CDATA[HEADER RCS head    1.1; access; symbols; locks; strict; comment @ * @; 1.1 date    2013.12.30.09.22.36;    author raman;   state Exp; branches; next    ; desc @this is header file CLIENT RCS head    1.1; access; symbols; locks; strict; comment @ * @; 1.1 &#8230; <a href="https://www.emblogic.com/blog/12/client-server-communication-using-af_inet-sockets-rcs-log/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>HEADER RCS</strong></p>
<p><strong></strong>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment @ * @;</p>
<p>1.1<br />
date    2013.12.30.09.22.36;    author raman;   state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@this is header file</p>
<p><strong>CLIENT RCS</strong><strong></strong></p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment @ * @;</p>
<p>1.1<br />
date    2013.12.30.09.10.15;    author raman;   state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@This is a client</p>
<p><strong>SERVER RCS</strong></p>
<p>head    1.1;<br />
access;<br />
symbols;<br />
locks; strict;<br />
comment @ * @;</p>
<p>1.1<br />
date    2013.12.30.09.21.44;    author raman;   state Exp;<br />
branches;<br />
next    ;</p>
<p>desc<br />
@This is a server</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/client-server-communication-using-af_inet-sockets-rcs-log/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SOCKETS</title>
		<link>https://www.emblogic.com/blog/12/sockets-9/</link>
		<comments>https://www.emblogic.com/blog/12/sockets-9/#comments</comments>
		<pubDate>Mon, 30 Dec 2013 07:45:53 +0000</pubDate>
		<dc:creator><![CDATA[ramandeep.singh]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7907</guid>
		<description><![CDATA[Sockets are an inter-process network communication implementation using a Internet Protocol (IP) stack on an Ethernet transport. Sockets are language and protocol independent and available to &#8220;C&#8221;, Perl, Python, Ruby and Java (and more) programmers. The &#8220;C&#8221; language BSD API &#8230; <a href="https://www.emblogic.com/blog/12/sockets-9/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Sockets are an inter-process network communication implementation using a Internet Protocol (IP) stack on an Ethernet transport. Sockets are language and protocol independent and available to &#8220;C&#8221;, Perl, Python, Ruby and Java (and more) programmers. The &#8220;C&#8221; language BSD API is used on Linux, all popular variants of Unix, Microsoft Windows (NT,2000,XP,&#8230; and later) and even embedded OSs like VxWorks. It is by far the most popular implementation of inter-process network communication.</p>
<p>Sockets allow one process to communicate with another whether it is local on the same computer system or remote over the network. Many other higher level protocols are built upon sockets technology.</p>
<p>The sockets API provides many configuration options so we will try and cover the socket API components and then give examples of a few implementations. It would be very difficult to cover all variations of its use.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/sockets-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inter process communication using named pipes(FIFO)</title>
		<link>https://www.emblogic.com/blog/12/inter-process-communication-using-named-pipesfifo/</link>
		<comments>https://www.emblogic.com/blog/12/inter-process-communication-using-named-pipesfifo/#comments</comments>
		<pubDate>Fri, 20 Dec 2013 08:15:15 +0000</pubDate>
		<dc:creator><![CDATA[ramandeep.singh]]></dc:creator>
				<category><![CDATA[Project 03: Client Server Communication using Linux and IPC]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7764</guid>
		<description><![CDATA[Inter process communication using named pipes(FIFO) Earlier we saw the how to create pipes for communication between processes in linux. One of the major disadvantage of pipes is that the they can not be accesed using their names by any &#8230; <a href="https://www.emblogic.com/blog/12/inter-process-communication-using-named-pipesfifo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<h3 align="CENTER">Inter process communication using named pipes(FIFO)</h3>
<div dir="LTR">
<p>Earlier we saw the how to create <a href="http://tuxthink.blogspot.in/2012/02/inter-process-communication-using-pipes.html">pipes</a> for communication between processes in linux.</p>
<p>One of the major disadvantage of pipes is that the they can not be accesed using their names by any other process other than child and the parent as they do not get listed in the directory tree.</p>
<p>The work around for this porblem is to create a named pipe which is also called as a FIFO, which stands for First in First out, meaning the data that is written into the pipe first will be read out first always.</p>
<p>The fifos get listed in the directory tree and any process can access it using its name by providing the approproiate path.</p>
<p>fifo are created using the function mkfifo() which takes as arguments</p>
<p>1. The name of the fifo that has to be created<br />
2. The permissions for the file.</p>
<p>Once the file is created, it needs to be opened using the system call open() and the data can be read and written from the file using read() and write system calls.</p>
<p>One of the examples you can think of using a named pipe is communication between a server and a client. If ther are two fifos one of the server and the other of the client, then the client can send request to the server on the server fifo which the server will read and respond back with the reply on the client&#8217;s fifo.</p>
<p>Another advantage of a fifo over the pipes is that fifo are bidirectoinal, that is the same fifo can be read from as well and written into.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/inter-process-communication-using-named-pipesfifo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Article on Linux Kernel</title>
		<link>https://www.emblogic.com/blog/12/article-on-linux-kernel/</link>
		<comments>https://www.emblogic.com/blog/12/article-on-linux-kernel/#comments</comments>
		<pubDate>Thu, 05 Dec 2013 10:58:52 +0000</pubDate>
		<dc:creator><![CDATA[ramandeep.singh]]></dc:creator>
				<category><![CDATA[Project 00: Linux System / Network Administration]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.emblogic.com/blog/?p=7623</guid>
		<description><![CDATA[The Linux Kernel  In 1991, a Finnish student named Linus Benedict Torvalds made the kernel of a now popular operating system. He released Linux version 0.01 on September 1991, and on February 1992, he licensed the kernel under the GPL &#8230; <a href="https://www.emblogic.com/blog/12/article-on-linux-kernel/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p style="text-align: center" align="LEFT"><strong><span style="font-size: large">The Linux Kernel</span></strong></p>
<p> In 1991, a Finnish student named Linus Benedict Torvalds made the kernel of a now popular operating system. He released Linux version 0.01 on September 1991, and on February 1992, he licensed the kernel under the GPL license. The GNU General Public License (GPL) allows people to use, own, modify, and distribute the source code legally and free of charge. This permits the kernel to become very popular because anyone may download it for free. Now that anyone can make their own kernel, it may be helpful to know how to obtain, edit, configure, compile, and install the Linux kernel.</p>
<p>A kernel is the core of an operating system. The operating system is all of the programs that manages the hardware and allows users to run applications on a computer. The kernel controls the hardware and applications. Applications do not communicate with the hardware directly, instead they go to the kernel. In summary, software runs on the kernel and the kernel operates the hardware. Without a kernel, a computer is a useless object.</p>
<p>There are many reasons for a user to want to make their own kernel. Many users may want to make a kernel that only contains the code needed to run on their system. For instance, my kernel contains drivers for FireWire devices, but my computer lacks these ports. When the system boots up, time and RAM space is wasted on drivers for devices that my system does not have installed. If I wanted to streamline my kernel, I could make my own kernel that does not have FireWire drivers. As for another reason, a user may own a device with a special piece of hardware, but the kernel that came with their latest version of Ubuntu lacks the needed driver. This user could download the latest kernel (which is a few versions ahead of Ubuntu&#8217;s Linux kernels) and make their own kernel that has the needed driver. However, these are two of the most common reasons for users wanting to make their own Linux kernels.</p>
<p>Before we download a kernel, we should discuss some important definitions and facts. The Linux kernel is a monolithic kernel. This means that the whole operating system is on the RAM reserved as kernel space. To clarify, the kernel is put on the RAM. The space used by the kernel is reserved for the kernel. Only the kernel may use the reserved kernel space. The kernel owns that space on the RAM until the system is shutdown. In contrast to kernel space, there is user space. User space is the space on the RAM that the user&#8217;s programs own. Applications like web browsers, video games, word processors, media players, the wallpaper, themes, etc. are all on the user space of the RAM. When an application is closed, any program may use the newly freed space. With kernel space, once the RAM space is taken, nothing else can have that space.</p>
<p>The Linux kernel is also a preemptive multitasking kernel. This means that the kernel will pause some tasks to ensure that every application gets a chance to use the CPU. For instance, if an application is running but is waiting for some data, the kernel will put that application on hold and allow another program to use the newly freed CPU resources until the data arrives. Otherwise, the system would be wasting resources for tasks that are waiting for data or another program to execute. The kernel will force programs to wait for the CPU or stop using the CPU. Applications cannot unpause or use the CPU without the kernel allowing them to do so.</p>
]]></content:encoded>
			<wfw:commentRss>https://www.emblogic.com/blog/12/article-on-linux-kernel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
