<story><title>How Not to Write a Signal Handler</title><url>http://741mhz.com/signal-handler/</url></story><parent_chain><item><author>lkrubner</author><text>They write:&lt;p&gt;&amp;quot;It is the 2013th year in the Common Era at the moment of this writing and you might think that people should have came up with something better in terms of signal handling at this time. The truth is that they did. It is just not that well known yet due to a huge momentum of outdated information still overflowing the Internet.&amp;quot;&lt;p&gt;Then they talk about kqueue.&lt;p&gt;The above paragraph emphasizes how much Unix programming still relies on old ideas.&lt;p&gt;Likewise, sockets are an old idea, and newer libraries, such as ZeroMQ, do a lot to fix the old problems. ZeroMQ is often described as &amp;quot;Sockets on steroids&amp;quot;. It implements a lot of patterns that Unix itself does not give us:&lt;p&gt;&amp;quot;It gives you sockets that carry atomic messages across various transports like in-process, inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fan-out, pub-sub, task distribution, and request-reply. &amp;quot;&lt;p&gt;But I am left wondering, what would the world of programming be like if we had a new operating system that incorporated some of the new ideas and patterns that have developed over the last 25 years? Instead of depending on libraries, would we not be better off if we had an OS built around these newer ideas?</text></item></parent_chain><comment><author>lmm</author><text>It&amp;#x27;s been tried. Look at plan 9, or MS Singularity, or heck even BeOS was a clean break in many respects, with certain things implemented at low level and used throughout the OS.&lt;p&gt;Turns out compatibility and understandability is really useful, and it&amp;#x27;s good to define your complex systems in terms of simple systems. Worse is better.</text></comment>
<story><title>How Not to Write a Signal Handler</title><url>http://741mhz.com/signal-handler/</url></story><parent_chain><item><author>lkrubner</author><text>They write:&lt;p&gt;&amp;quot;It is the 2013th year in the Common Era at the moment of this writing and you might think that people should have came up with something better in terms of signal handling at this time. The truth is that they did. It is just not that well known yet due to a huge momentum of outdated information still overflowing the Internet.&amp;quot;&lt;p&gt;Then they talk about kqueue.&lt;p&gt;The above paragraph emphasizes how much Unix programming still relies on old ideas.&lt;p&gt;Likewise, sockets are an old idea, and newer libraries, such as ZeroMQ, do a lot to fix the old problems. ZeroMQ is often described as &amp;quot;Sockets on steroids&amp;quot;. It implements a lot of patterns that Unix itself does not give us:&lt;p&gt;&amp;quot;It gives you sockets that carry atomic messages across various transports like in-process, inter-process, TCP, and multicast. You can connect sockets N-to-N with patterns like fan-out, pub-sub, task distribution, and request-reply. &amp;quot;&lt;p&gt;But I am left wondering, what would the world of programming be like if we had a new operating system that incorporated some of the new ideas and patterns that have developed over the last 25 years? Instead of depending on libraries, would we not be better off if we had an OS built around these newer ideas?</text></item></parent_chain><comment><author>sillysaurus3</author><text>We wouldn&amp;#x27;t be better off, no. The newer OS would likely be less secure, less reliable, and probably less performant. It would also require all of the tools we take for granted to be ported to the new OS, which would be difficult since the above proposal is to change the API of the new OS.&lt;p&gt;It doesn&amp;#x27;t seem like there&amp;#x27;s anything wrong with libraries.</text></comment>