From mboxrd@z Thu Jan 1 00:00:00 1970 To: 9fans@cse.psu.edu Date: Tue, 5 Feb 2008 09:56:10 +0000 From: Siddhant Message-ID: <1b7f448f-8a38-4283-944b-07a9a08aa255@q39g2000hsf.googlegroups.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: [9fans] 9P, procedure calls, kernel, confusion. :( Topicbox-Message-UUID: 46847944-ead3-11e9-9d60-3106f5b1d025 Greetings! I have started reading this documentation of plan9, the main paper. And I am stuck at one point. It would be really kind if someone could answer these questions, however silly they might look. :) >>>" for each fid, the kernel maintains a local representation in a data structure called a channel, so all operations on files performed by the kernel involve a channel connected to that fid" Q. Can I visualise it like a fid connected to channels which define operations within them? How exactly can I visualise this 'channel'? >>>"9P has two forms: RPC messages sent on a pipe or network connection and a procedural interface within the kernel. Since kernel device drivers are directly addressable, there is no need to pass messages to communicate with them; instead each 9P transaction is implemented by a direct procedure call." Q. Does it mean that every RPC message essentially has to end up being implemented via that procedural interface? >>>"A table in the kernel provides a list of entry points corresponding one to one with the 9P messages for each device." Q. Can I relate this 'table in the kernel' to the 'representation in a data structure called a channel'? And does 'for each device' refer to individual fids? Moreover, I am totally confused between the 'conversions' between 9P messages, procedure calls, system calls and operations on fids. What is being converted to what, and when, and how. I'd really appreciate if someone could take time out and reply. Thanks. Regards, Siddhant