diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2013-07-21 15:35:02 -0400 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2013-07-21 15:35:02 -0400 |
commit | 9933cec0a18ae2a3d752f269d1bb12c19f51199d (patch) | |
tree | cc30f2d56b87d3896e460a58b76e964231c0d578 /open_issues/anatomy_of_a_hurd_system.mdwn | |
parent | 65efe654a9cb0b682efa9bf21065469a2e9147f4 (diff) | |
download | web-9933cec0a18ae2a3d752f269d1bb12c19f51199d.tar.gz web-9933cec0a18ae2a3d752f269d1bb12c19f51199d.tar.bz2 web-9933cec0a18ae2a3d752f269d1bb12c19f51199d.zip |
IRC.
Diffstat (limited to 'open_issues/anatomy_of_a_hurd_system.mdwn')
-rw-r--r-- | open_issues/anatomy_of_a_hurd_system.mdwn | 189 |
1 files changed, 126 insertions, 63 deletions
diff --git a/open_issues/anatomy_of_a_hurd_system.mdwn b/open_issues/anatomy_of_a_hurd_system.mdwn index 11a1f754..75a62535 100644 --- a/open_issues/anatomy_of_a_hurd_system.mdwn +++ b/open_issues/anatomy_of_a_hurd_system.mdwn @@ -323,7 +323,9 @@ Actually, the Hurd has never used an M:N model. Both libthreads (cthreads) and l <braunr> etc.. -# IRC, freenode, #hurd, 2012-12-06 +# Service Directory + +## IRC, freenode, #hurd, 2012-12-06 <spiderweb> what is the #1 feature that distinguished hurd from other operating systems. the concept of translators. (will read more when I get @@ -333,56 +335,7 @@ Actually, the Hurd has never used an M:N model. Both libthreads (cthreads) and l <braunr> and the VFS permissions to control access to those services -# IRC, freenode, #hurd, 2012-12-10 - - <spiderweb> I want to work on hurd, but I think I'm going to start with - minix, I own the minix book 3rd ed. it seems like a good intro to - operating systems in general. like I don't even know what a semaphore is - yet. - <braunr> well, enjoy learning :) - <spiderweb> once I finish that book, what reading do you guys recommend? - <spiderweb> other than the wiki - <braunr> i wouldn't recommend starting with a book that focuses on one - operating system anyway - <braunr> you tend to think in terms of what is done in that specific - implementation and compare everything else to that - <braunr> tannenbaum is not only the main author or minix, but also the one - of the book http://en.wikipedia.org/wiki/Modern_Operating_Systems - <braunr> - http://en.wikipedia.org/wiki/List_of_important_publications_in_computer_science#Operating_systems - should be a pretty good list :) - - -# IRC, freenode, #hurd, 2013-03-12 - - <mjjc> i have a question regarding ipc in hurd. if a task is created, does - it contain any default port rights in its space? i am trying to deduce - how one calls dir_lookup() on the root translator in glibc's open(). - <kilobug> mjjc: yes, there are some default port rights, but I don't - remember the details :/ - <mjjc> kilobug: do you know where i should search for details? - <kilobug> mjjc: hum either in the Hurd's hacking guide - https://www.gnu.org/software/hurd/hacking-guide/ or directly in the - source code of exec server/libc I would say, or just ask again the - question here later on to see if someone else has more information - <mjjc> ok, thanks - <pinotree> there's also rpctrace to, as the name says, trace all the rpc's - executed - <braunr> some ports are introduced in new tasks, yes - <braunr> see - http://www.gnu.org/software/hurd/hacking-guide/hhg.html#The-main-function - <braunr> and - <braunr> - http://www.gnu.org/software/hurd/gnumach-doc/Task-Special-Ports.html#Task-Special-Ports - <mjjc> yes, the second link was just what i was looking for, thanks - <braunr> the second is very general - <braunr> also, the first applies to translators only - <braunr> if you're looking for how to do it for a non-translator - application, the answer is probably somewhere in glibc - <braunr> _hurd_startup i'd guess - - -# IRC, freenode, #hurd, 2013-05-23 +## IRC, freenode, #hurd, 2013-05-23 <gnu_srs> Hi, is there any efficient way to control which backed translators are called via RPC with a user space program? @@ -409,18 +362,7 @@ Actually, the Hurd has never used an M:N model. Both libthreads (cthreads) and l same as for regular files <braunr> gnu_srs: this *must* be obvious for you to do any tricky work on the hurd - <gnu_srs> fsysopts /servers/socket/2 works by /1 gives Operation not - supported. - -[[!taglink open_issue_hurd]]. - - <braunr> ah right, some servers don't implement that - <braunr> work around this by using showtrans - <braunr> fsysopts asks the server itself how it's running, usually giving - its command name and options - <braunr> showtrans asks the parent how it starts a passive translator - attached to the node - <gnu_srs> Yes showtrans works :), thanks. + <gnu_srs> Anyway, if I create a test program calling io_stat I assume S_io_stat in pflocal is called. <gnu_srs> How to make the program call S_io_stat in pfinet instead? @@ -447,6 +389,127 @@ Actually, the Hurd has never used an M:N model. Both libthreads (cthreads) and l implementation +## IRC, freenode, #hurd, 2013-06-30 + + <hacklu> hi, what is the replacer of netname_check_in? + + <hacklu> I want to ask another question. in my opinion, the rpc is the + mach's way, and the translator is the hurd's way. so somebody want to + lookup a service, it should not need to ask the mach kernel know about + this query. the hurd will take the control. + <hacklu> am I right? + <braunr> no + <braunr> that's nonsense + <braunr> service lookups has never been in mach + <braunr> first mach based systems used a service directory, whereas the + hurd uses the file system for that + <braunr> you still need mach to communicate with either of those + <hacklu> how to understand the term of service directory here? + <braunr> a server everyone knows + <braunr> which gives references to other servers + <braunr> usually, depending on the name + <braunr> e.g. name_lookup("net") -> port right to network server + <hacklu> is that people use netname_check_in to register service in the + past? now used libtrivfs? + <braunr> i don't know about netname_check_in + <braunr> old mach (not gnumach) documentation might mention this service + directory + <braunr> libtrivfs doesn't have much to do with that + <braunr> on the hurd, the equivalent is the file system + <hacklu> maybe that is outdate, I just found that exist old doc, and old + code which can't be build. + <braunr> every process knows / + <braunr> the file system is the service directory + <braunr> nodes refer to services + <hacklu> so the file system is the nameserver, any new service should + register in it before other can use + <braunr> and the file system is distributed, so looking up a service may + require several queries + <braunr> setting a translator is exactly that, registering a program to + service requests on a node + <braunr> the file system isn't one server though + <braunr> programs all know about /, but then, lookups are recursive + <braunr> e.g. if you have / and /home, and are looking for + /home/hacklu/.profile, you ask / which tells you about /home, and /home + will give you a right to /home/hacklu/.profile + <hacklu> even in the past, the mach don't provide name register service, + there must be an other server to provide this service? + <braunr> yes + <braunr> what's nonsense in your sentence is comparing RPCs and translators + <braunr> translators are merely servers attached to the file system, using + RPCs to communicate with the rest of the system + <hacklu> I know yet, the two just one thing. + <braunr> no + <braunr> two things :p + <braunr> completely different and unrelated except for one using the other + <hacklu> ah, just one used aonther one. + <hacklu> is exist anyway to anounce service except settrans with file node? + <braunr> more or less + <braunr> tasks can have special ports + <braunr> that's how one task knows about / for example + <braunr> at task creation, a right to / is inserted in the new task + <hacklu> I think this is also a file node way. + <braunr> no + <braunr> if i'm right, auth is referenced the same way + <braunr> and there is no node for auth + <hacklu> how the user get the port of auth with node? + <braunr> it's given when a task is created + <hacklu> pre-set in the creation of one task? + <braunr> i'm unconfortable with "pre-set" + <braunr> inserted at creation time + <braunr> auth is started very early + <braunr> then tasks are given a reference to it + + +# IRC, freenode, #hurd, 2012-12-10 + + <spiderweb> I want to work on hurd, but I think I'm going to start with + minix, I own the minix book 3rd ed. it seems like a good intro to + operating systems in general. like I don't even know what a semaphore is + yet. + <braunr> well, enjoy learning :) + <spiderweb> once I finish that book, what reading do you guys recommend? + <spiderweb> other than the wiki + <braunr> i wouldn't recommend starting with a book that focuses on one + operating system anyway + <braunr> you tend to think in terms of what is done in that specific + implementation and compare everything else to that + <braunr> tannenbaum is not only the main author or minix, but also the one + of the book http://en.wikipedia.org/wiki/Modern_Operating_Systems + <braunr> + http://en.wikipedia.org/wiki/List_of_important_publications_in_computer_science#Operating_systems + should be a pretty good list :) + + +# IRC, freenode, #hurd, 2013-03-12 + + <mjjc> i have a question regarding ipc in hurd. if a task is created, does + it contain any default port rights in its space? i am trying to deduce + how one calls dir_lookup() on the root translator in glibc's open(). + <kilobug> mjjc: yes, there are some default port rights, but I don't + remember the details :/ + <mjjc> kilobug: do you know where i should search for details? + <kilobug> mjjc: hum either in the Hurd's hacking guide + https://www.gnu.org/software/hurd/hacking-guide/ or directly in the + source code of exec server/libc I would say, or just ask again the + question here later on to see if someone else has more information + <mjjc> ok, thanks + <pinotree> there's also rpctrace to, as the name says, trace all the rpc's + executed + <braunr> some ports are introduced in new tasks, yes + <braunr> see + http://www.gnu.org/software/hurd/hacking-guide/hhg.html#The-main-function + <braunr> and + <braunr> + http://www.gnu.org/software/hurd/gnumach-doc/Task-Special-Ports.html#Task-Special-Ports + <mjjc> yes, the second link was just what i was looking for, thanks + <braunr> the second is very general + <braunr> also, the first applies to translators only + <braunr> if you're looking for how to do it for a non-translator + application, the answer is probably somewhere in glibc + <braunr> _hurd_startup i'd guess + + # IRC, freenode, #hurd, 2013-06-15 <damo22> ive been reading a little about exokernels or unikernels, and i |