home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / os / research / 1141 < prev    next >
Encoding:
Internet Message Format  |  1992-12-15  |  4.0 KB

  1. Path: sparky!uunet!olivea!hal.com!darkstar.UCSC.EDU!osr
  2. From: josh@MITL.COM (Joshua A. Tauber)
  3. Newsgroups: comp.os.research
  4. Subject: Re: On debugging (was Re: Microkernel for Real-Time Computing)
  5. Message-ID: <1glftdINNcfl@darkstar.UCSC.EDU>
  6. Date: 15 Dec 92 20:41:17 GMT
  7. References: <1fgqaaINNntl@darkstar.UCSC.EDU> <1g35g7INNfvt@darkstar.UCSC.EDU> <1giuu1INNmp3@darkstar.UCSC.EDU>
  8. Organization: Matsushita Information Technology Laboratory, Princeton, NJ
  9. Lines: 72
  10. Approved: comp-os-research@ftp.cse.ucsc.edu
  11. NNTP-Posting-Host: ftp.cse.ucsc.edu
  12. Originator: osr@ftp
  13.  
  14. In article <1giuu1INNmp3@darkstar.UCSC.EDU>, tage@cs.utwente.nl (Tage Stabell-kuloe) writes:
  15.  
  16. |> 
  17. |>     The original thread was discussing kernel debugging and OS design.  The 
  18. |>     message which I commented stated [quoted from "An Architectural Overview 
  19. |>     of QNX", by Dan Hildebrand, dan@quantum.on.ca]:
  20. |>     "A fundamental problem with the maintenance of a monolithic kernel
  21. |>     operating system is that all of the kernel code runs in a common, 
  22. |>     shared address space.  The danger  that one portion of the kernel 
  23. |>     might corrupt the data space of another is very real, and must
  24. |>     be considered every time new drivers are linked into the kernel.  
  25. |>     The approach taken by QNX is to explicitly define the interface 
  26. |>     between the components that make up the OS, such that each resource 
  27. |>     manager, just like user processes, runs in its own memory-protected 
  28. |>     space, and all communication between the OS modules is through 
  29. |>     standard system IPC services.  As a result, errors introduced by 
  30. |>     one resource manager will be constrained to that subsystem and will 
  31. |>     not corrupt other, unrelated resource managers in the system."
  32. |> 
  33. |>     The fundamental question is:
  34. |>     Why are services moved out of the (monolithic) kernel ?
  35. |>     The answer is usually (as in the quote above)
  36. |>     To avoid errors _in the implementation_ to spread.
  37. |> 
  38. |>     Which (in this context) is a software-engineering solution to a 
  39. |>     debugging problem.
  40. |>     There is no such thing as a free lunch.  It is more expensive for one 
  41. |>     service in the kernel to [insert your favourite IPC mechanism here] in 
  42. |>     order to inform another part of some event, then just jumping to it. 
  43. |>     But note that the cost is measured in time, while in the above quote the 
  44. |>     cost is measured in "debugging".
  45. |> 
  46. |> >yodaiken@chelm.cs.umass.edu
  47. |> 
  48. |> 
  49. |> --
  50. |> ////      Tage Stabell-Kuloe            |e-mail   : tage@cs.utwente.nl   ////
  51.  
  52.  
  53.  
  54. While this is a software engineering method, I would not label the
  55. problems it solves merely "debugging". I would add fault-tolerance,
  56. maintanability, & forward compatibility to name just a few issues.
  57. While the latter two derive from the modular nature of the code, the
  58. first is a fundamental difference.
  59.  
  60. There is a qualitative difference between services sharing one address
  61. space and services acting in protected address spaces.  Note, the code
  62. may be no more correct but when it fails the behavior will be less
  63. catostrophic.  Do not expect a major piece of software to be
  64. completely bug free.  It isn't going to happen.  So when failures do
  65. happen, we would like the best possible behavior from the system
  66. ("graceful degredation" and all that - but that's a different thread).
  67.  
  68. Thus, the measurement here is not just in programmer's time
  69. ("debugging") but robustness.
  70.  
  71. [Can this difference be translated into  "programmer's time" by saying
  72. that with X amount of programmer's time the two pieces of code will be
  73. equally correct and handle failures equally well?  That one I can't answer.]
  74.   
  75.                     -jat42
  76.  
  77. Joshua A. Tauber
  78. Matsushita Information Technology Laboratory  | Email: josh@mitl.com
  79. 182 Nassau Street, Third Floor              | Phone: +1 609 497-4600
  80. Princeton, NJ  08542-7072 USA              | Fax:   +1 609 497-4013
  81. -- 
  82. Joshua A. Tauber
  83. Matsushita Information Technology Laboratory  | Email: josh@mitl.com
  84. 182 Nassau Street, Third Floor              | Phone: +1 609 497-4600
  85. Princeton, NJ  08542-7072 USA              | Fax:   +1 609 497-4013
  86.