home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / unix / bsd / 4687 < prev    next >
Encoding:
Text File  |  1992-08-25  |  9.2 KB  |  180 lines

  1. Newsgroups: comp.unix.bsd
  2. Path: sparky!uunet!haven.umd.edu!darwin.sura.net!zaphod.mps.ohio-state.edu!caen!hellgate.utah.edu!fcom.cc.utah.edu!park.uvcc.edu!ns.novell.com!gateway.novell.com!thisbe!terry
  3. From: terry@thisbe.npd.Novell.COM (Terry Lambert)
  4. Subject: Re: WD Ethernet Card not found on warmboot
  5. Message-ID: <1992Aug25.165542.5689@gateway.novell.com>
  6. Sender: terry@thisbe (Terry Lambert)
  7. Nntp-Posting-Host: thisbe.eng.sandy.novell.com
  8. Organization: Novell NPD -- Sandy, UT
  9. References: <1992Aug21.171828.14323@doug.cae.wisc.edu> <1992Aug24.085511.21092@autelca.ascom.ch> <veit.714671205@du9ds3> <1992Aug25.035924.29631@fcom.cc.utah.edu> <veit.714724604@du9ds3>
  10. Date: Tue, 25 Aug 1992 16:55:42 GMT
  11. Lines: 167
  12.  
  13. In article <veit.714724604@du9ds3>, veit@du9ds3.uni-duisburg.de (Holger Veit) writes:
  14. |> In <1992Aug25.035924.29631@fcom.cc.utah.edu> terry@cs.weber.edu (A Wizard of Earth C) writes:
  15. |> 
  16. |> >In article <veit.714671205@du9ds3> veit@du9ds3.uni-duisburg.de writes:
  17. |> >>DO YOU REALLY NEED THIS? 
  18. |> >>Do you modify you hardware once a week, once a
  19. |> >>day or so? UNIX is not that memory restricted like MessDos such that you
  20. |> >>have to unload mouse drivers to get 3 bytes more in the lower 640K if you
  21. |> >>have a large program to run. This loading and unloading considerably 
  22. |> >>decreased when I loaded a full featured OS/2, i.e. once the "best" configuration
  23. |> >>was found, I modified CONFIG.SYS only for alteration of paths and 
  24. |> >>inclusion of enviroment variables (which has nothing to do with loadable 
  25. |> >>device drivers). 
  26. |> 
  27. |> >This would be a good mechanism for bipartite SCSI drivers.  This would let
  28. |> >you have a single small kernel that would load a driver for a SCSI board
  29. |> >based on the results of a probe.
  30. |> 
  31. |> You seem to carry your OS around, don't you? During installation I can
  32. |> live with a large "GENERIC" kernel which has support for all possible devices.
  33. |> After it has been relocated to the disk (IDE,SCSI or whatever) you can
  34. |> eliminate the unnecessary devices, and get this "small" kernel.
  35.  
  36. Yes, but the idea is to have a generic kernel that has a piece of each SCSI
  37. driver in it (the probe), and loads the rest based on the results of the probe.
  38. This lets me have an apparently large kernel which is actually a small kernel.
  39. Thus, like a stripped kernel, we can run in 640K, for instance.  This is important
  40. for systems like the Amiga, where I have a limited amount of "fast" vs. "chip"
  41. ram.  It would also allow me to load 100% into the cache on some systems if I
  42. could get the kernel small enough.  Then I could really haul.
  43.  
  44. The main advantage of loadable kernel modules is the ability to reconfigure
  45. without rebuilding the kernel.  Many people are having problems in that they
  46. can not install enough to, for instance, recompile the kernel to get a new
  47. ethernet driver in so thay can remote mount /usr so they can recompile the kernel
  48. to get a new ethernet driver [ ... reminds me of the anti-cocaine commercial ...].
  49.  
  50. |> >Another use would be loadable file systems, also with an initially small
  51. |> >kernel.
  52. |> 
  53. |> Loadable filesystems is a good idea, if you frequently reconfigure your
  54. |> disk layout. You may certainly have a UFS system, NFS, MFS, CDFS, and 
  55. |> DOS/FAT FS (the last to be written yet). I would call these the basic 
  56. |> facilities of the kernel. If you have no network card, not much RAM, no CDROM, 
  57. |> and/or no DOS partitions, you can live with the UFS only. Do you want to load
  58. |> them whenever you need them, for instance if you want to run mtools the DOS FS
  59. |> driver (server?) is loaded on line? Sounds like microkernel stuff such as
  60. |> MACH.
  61.  
  62. First off, I've got the DOS/FAT FS I wrote for 0.0 basically up.  8-). 8-).
  63. Give me 2-3 weeks to clean it up (I have a very specific rewrite of the VFS
  64. layer in mind, and I want it to be easily convertable to the new interface)
  65. before I release it.
  66.  
  67. Second, there's no reason to have the ISOFS (what you called the CDFS) loaded
  68. in the kernel unless you have a CD ROM mounted.  Generally, one can only mount
  69. one CDROM at a time, and it usually isn't mounted.  Why have the overhead if
  70. you get only marginal benefit from it?
  71.  
  72. Third, I'd like to get RFS working on 386BSD.  I know, I know, it's an AT&T
  73. standard, but it's something I want to play with.  With respect to RFS and NFS,
  74. why have them in the kernel unless they are being used?  This is especially true
  75. of network file systems, since there are basically seperate client and server
  76. pieces, and one is generally a client or a server, but not necessarily both.
  77.  
  78. Fourth, I'd like to make diskless 386BSD clients (fact is, I'd like to use
  79. remote reset off a NetWare server to load the boot image, but could actually
  80. care less where it really boots from).  The easiest way to do this would be to
  81. have a RAM file system that looks like the root file system until the root FS
  82. has been NFS mounted.  Certainly, I'd like to not only have the memory back,
  83. but I'd also like to avoid confusing the poor kernel about which root FS is it's
  84. root.  If I unload the ram FS, I can do this.
  85.  
  86. Fifth, I'd like to support mounting of Sun 4.1.2 SCSI disks with automatic byte
  87. order compensation without eating the compare overhead in the normal file system;
  88. besides which, the current vnode brain damage doesn't support reserved volume
  89. flags so that I can mark a volumes "byte order bit" to coerce sharing the code.
  90. This would be a nice interim soloution.
  91.  
  92. Sixth, I'd like to support attributed files, such as file marked "read only"
  93. with jpeg, mpeg, or some other form of stream compression on the.  I'd like to
  94. be able to add compression modules in the future.
  95.  
  96.  
  97. No, generally, with the exception of ISOFS and possibly DOSFS, I *don't* want to
  98. "load as needed".  But I do want the ability to run a bunch of machines off the
  99. same base kernel, with only the applicable device drivers for that hardware
  100. loaded.
  101.  
  102.  
  103. Yes, this sounds like microkernel, but I draw one important distinction:  In most
  104. cases, the kernel will actually *be* small as opposed to just providing a subset
  105. of kernel services.  This is much more to my liking, given the meaning of "micro"
  106. I was taught in my Latin classes.
  107.  
  108. |> >The ability to load system calls buys you, again, a standard kernel with,
  109. |> >as an example, a kernel implementation of variable granularity locks (with
  110. |> >intention modes).
  111. |> 
  112. |> >There are lots of things which it would be nice to be able to put in the
  113. |> >kernel, use, and remove.
  114. |> 
  115. |> Which system calls do you want to make "loadable"? It is an interesting idea
  116. |> to add features but it makes the software that rely on it unportable.
  117.  
  118. The only thing that is "unportable" about it are any device drivers you load.
  119. Given a uniform underlying interface, everything else would have no problem
  120. running.  My major peeve with VFS is that it doesn't have a uniform underlying
  121. interface; only the top side is well defined.
  122.  
  123. As to system call candidates for being "loadable":
  124.  
  125. o    Auditing (auditsys)
  126. o    Quotas (oldquota, quotactl)
  127. o    Accounting (sysacct)
  128. o    Async I/O for a threads library (aioread, aiowrite, aiowait, aiocancel)
  129. o    Real time scheduling (rtschedule)
  130. o    SysV compatable semaphores (semsys)
  131. o    SysV compatable message queues (msgsys)
  132. o    SysV compatable shared memory (shmsys)
  133. o    386 debug register access (???)
  134. o    Backward compatability calls (otime, ostime, oalarm, outime, opause,
  135.     onice, oftime, osetpgrp, otimes, ossig, ovlimit, ovtimes, osetuid,
  136.     osetgid, ostat, ofstat)
  137. o    SysV compatable calls (omount, oumount)
  138. o    Tracing (vtrace)
  139. o    Grandfathering of wait3
  140. o    Debugging (debug)
  141. o    NFS client (async_daemon)
  142. o    NFS server (nfs_svc, nfs_getfh, exportfs)
  143. o    RFS (rfssys)
  144. o    VPIX or a clone thereof (vpixsys)
  145. o    Vax Unibus (resuba)
  146.  
  147. |> I might be persuaded that e.g. X11 needs some kernel optimizations to access
  148. |> the I/O efficiently, this may or may not be a system call, and software that
  149. |> needs to do fast I/O to a measurement device (who does realtime processing
  150. |> with plain UNIX, however?), but this is not necessary for the general 
  151. |> purpose application.
  152.  
  153. Actually, X is one area where loadable kernel modules aren't very useful(unless
  154. you count mouse drivers).  Mapping video adapter ram into a user processes
  155. address space is actually the job of the video driver.  This defeats the need to
  156. cross the kernel boundry.
  157.  
  158. It is arguable that one would want to implement the X engine in the kernel and
  159. so avoid the off-the wire/keyboard/mouse crossings as well, but then you are in
  160. the province of kernel processes.  Admittedly, we will probably eventually go
  161. this was anyway, since a user space threads package is, almost by definition,
  162. non-preemptive... and it has the advantage of forcing us to pre-think out any
  163. mutex points, since it implies kernel preemption.  This is probably needed if
  164. we are ever to add SMP support (this is yet another reason VFS needs it's brains
  165. rewired).  Personally, I vote for kernel mapping of user streams buffers to
  166. avoid the majority of the boundry crossing, and would argue that mouse and
  167. keyboard I/O are insignificant in comparison.
  168.  
  169. All this from code that is already written plus some slight compiler and linker
  170. changes that are going to be needed to support shared libraries anyway.
  171.  
  172.  
  173.                     Terry Lambert
  174.                     terry_lambert@gateway.novell.com
  175.                     terry@icarus.weber.edu
  176.  
  177. ---
  178. Disclaimer:  Any opinions in this posting are my own and not those of
  179. my present or previous employers.
  180.