<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Processes on Ou David | Systems Engineer</title><link>https://vvivid.dev/tags/processes/</link><description>Recent content in Processes on Ou David | Systems Engineer</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 15 Jun 2026 13:31:48 +0700</lastBuildDate><atom:link href="https://vvivid.dev/tags/processes/index.xml" rel="self" type="application/rss+xml"/><item><title>The Process API Behind Every Shell Command</title><link>https://vvivid.dev/posts/process_api_behind_every_shell_command/</link><pubDate>Mon, 15 Jun 2026 13:31:48 +0700</pubDate><guid>https://vvivid.dev/posts/process_api_behind_every_shell_command/</guid><description>&lt;p&gt;I&amp;rsquo;ve been reading &lt;a href="https://pages.cs.wisc.edu/~remzi/OSTEP/"&gt;Operating Systems: Three Easy Pieces&lt;/a&gt;, and today I went through chapter 05, the interlude on the Process API. It is a short chapter, but it clarified something important about how processes actually work.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grep &lt;span class="s2"&gt;&amp;#34;error&amp;#34;&lt;/span&gt; app.log &lt;span class="p"&gt;|&lt;/span&gt; wc -l
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is a simple shell command. One program reads a file, another program counts the matching lines, and the shell connects them together. Underneath that simple line is one of the most important UNIX ideas: process creation, process replacement, and process coordination.&lt;/p&gt;</description></item></channel></rss>