/[hurd]/hurd/doc/hurd.texi
ViewVC logotype

Diff of /hurd/doc/hurd.texi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.21 by marcus, Tue Mar 5 01:28:59 2002 UTC revision 1.22 by marcus, Mon Apr 15 19:16:44 2002 UTC
# Line 199  Server Bootstrap Line 199  Server Bootstrap
199  * Invoking serverboot::         Starting a set of interdependent servers.  * Invoking serverboot::         Starting a set of interdependent servers.
200  * Boot Scripts::                Describing server bootstrap relationships.  * Boot Scripts::                Describing server bootstrap relationships.
201  * Recursive Bootstrap::         Running a Hurd under another Hurd.  * Recursive Bootstrap::         Running a Hurd under another Hurd.
202    * Invoking boot::               How to use the boot program.
203    
204  Foundations  Foundations
205    
# Line 666  disk, and directly start a more advanced Line 667  disk, and directly start a more advanced
667  @cindex GRUB  @cindex GRUB
668  @cindex GRand Unified Bootloader  @cindex GRand Unified Bootloader
669  Currently, @dfn{GRUB}@footnote{The GRand Unified Bootloader, available  Currently, @dfn{GRUB}@footnote{The GRand Unified Bootloader, available
670  from @uref{http://www.uruk.org/grub/}.} is the preferred GNU bootloader.  from @uref{http://www.gnu.org/software/grub/}.} is the GNU bootloader.
671  GRUB provides advanced functionality, and is capable of loading several  GNU GRUB provides advanced functionality, and is capable of loading several
672  different kernels (such as Linux, DOS, and the *BSD family).  different kernels (such as Linux, DOS, and the *BSD family).
673    
674  From the standpoint of the Hurd, the bootloader is just a mechanism to  From the standpoint of the Hurd, the bootloader is just a mechanism to
675  get the microkernel running and transfer control to @code{serverboot}.  get the microkernel running and transfer control to the Hurd servers.
676  You will need to refer to your bootloader and microkernel documentation  You will need to refer to your bootloader and microkernel documentation
677  for more information about the details of this process.  for more information about the details of this process.
678    
# Line 680  for more information about the details o Line 681  for more information about the details o
681  @section Server Bootstrap  @section Server Bootstrap
682  @pindex serverboot  @pindex serverboot
683    
684    The @code{serverboot} program has been deprecated.  Newer kernels
685    support processing the bootscript parameters and boot the Hurd
686    directly.
687    
688  The @code{serverboot} program is responsible for loading and executing  The @code{serverboot} program is responsible for loading and executing
689  the rest of the Hurd servers.  Rather than containing specific  the rest of the Hurd servers.  Rather than containing specific
690  instructions for starting the Hurd, it follows general steps given in a  instructions for starting the Hurd, it follows general steps given in a
691  user-supplied boot script.  user-supplied boot script.
692    
693  To boot the Hurd, the microkernel must start @code{serverboot} as its  To boot the Hurd using @code{serverboot}, the microkernel must start
694    @code{serverboot} as its
695  first task, and pass it appropriate arguments.  @code{serverboot} has a  first task, and pass it appropriate arguments.  @code{serverboot} has a
696  counterpart, called @code{boot}, which can be invoked while the Hurd is  counterpart, called @code{boot}, which can be invoked while the Hurd is
697  already running, and allows users to start their own complete sub-Hurds  already running, and allows users to start their own complete sub-Hurds
# Line 695  already running, and allows users to sta Line 701  already running, and allows users to sta
701  * Invoking serverboot::         Starting a set of interdependent servers.  * Invoking serverboot::         Starting a set of interdependent servers.
702  * Boot Scripts::                Describing server bootstrap relationships.  * Boot Scripts::                Describing server bootstrap relationships.
703  * Recursive Bootstrap::         Running a Hurd under another Hurd.  * Recursive Bootstrap::         Running a Hurd under another Hurd.
704    * Invoking boot::               How to use the boot program.
705  @end menu  @end menu
706    
707    
# Line 744  to locate the boot script (described abo Line 751  to locate the boot script (described abo
751  @pindex /boot/servers.boot  @pindex /boot/servers.boot
752  @pindex servers.boot  @pindex servers.boot
753    
754    Boot Scripts are used to boot further Hurd systems in parallel to the
755    first, and are parsed by @code{serverboot} to boot the Hurd.  See
756    @file{/boot/servers.boot} for an example of a Hurd boot script.
757    
758  FIXME: finish  FIXME: finish
759    
760    
# Line 810  $ @kbd{fsysopts ./my-root --writable} Line 821  $ @kbd{fsysopts ./my-root --writable}
821  $ @kbd{cd my-root}  $ @kbd{cd my-root}
822  $ @kbd{tar -zxpf /pub/debian/FIXME/gnu-20000929.tar.gz}  $ @kbd{tar -zxpf /pub/debian/FIXME/gnu-20000929.tar.gz}
823  $ @kbd{cd ..}  $ @kbd{cd ..}
824  $ @kbd{fsysopts ./my-root --read-only}  $ @kbd{fsysopts ./my-root --readonly}
825  $  $
826  @end example  @end example
827    
# Line 824  Run @code{boot}. Line 835  Run @code{boot}.
835  $ @kbd{boot -D ./my-boot ./my-boot/boot/servers.boot ./my-partition}  $ @kbd{boot -D ./my-boot ./my-boot/boot/servers.boot ./my-partition}
836  [...]  [...]
837  @end example  @end example
838    
839    @item
840    Here is an example using a hard drive that already has a GNU/Hurd
841    system installed on an ext2 filesystem on @file{/dev/hd2s1}.
842    
843    @example
844    $ @kbd{settrans /mnt /hurd/ex2fs --readonly /dev/hd2s1}
845    $ @kbd{boot -d -D /mnt -I /mnt/boot/servers.boot /dev/hd2s1}
846    @end example
847    
848    @item
849    See @pxref{boot Options} for help with boot.
850  @end enumerate  @end enumerate
851    
852  Note that it is impossible to share microkernel devices between the two  Note that it is impossible to share microkernel devices between the two
# Line 845  safe place to overwrite your old Hurd wi Line 868  safe place to overwrite your old Hurd wi
868  to your old configuration (with the new Hurd servers).  to your old configuration (with the new Hurd servers).
869    
870    
871    @node Invoking boot
872    @section Invoking boot
873    @menu
874    * boot Options::                Boot program command line options
875    @end menu
876    
877    @node Boot bptions
878    @subsection boot Options
879    
880    Usage: boot [@var{option}@dots{}] @var{boot-script} @var{device}@dots{}
881    
882    @table @code
883    @item --kernel-command-line=@var{command line}
884    @itemx -c
885    Simulated multiboot command line to supply.
886    
887    @item --pause
888    @itemx -d
889    Pause for user confirmation at various times during booting.
890    
891    @item --boot-root=@var{dir}
892    @itemx -D
893    Root of a directory tree in which to find the files specified in
894    @var{boot-script}.
895    
896    @item --interleave=@var{blocks}    
897    Interleave in runs of length @var{blocks}.
898    
899    @item --isig
900    @itemx -I
901    Do not disable terminal signals, so you can suspend and interrupt the
902    boot program itself, rather than the programs running in the booted
903    system.
904    
905    @item --layer
906    @itemx -L                
907    Layer multiple devices for redundancy.
908    
909    @item --single-user
910    @itemx -s          
911    Boot into single user mode.
912    
913    @item --store-type=@var{type}
914    @itemx -T
915    Each @var{device} names a store of type @var{type}.
916    @end table
917    
918    Mandatory or optional arguments to long options are also mandatory or optional
919    for any corresponding short options.
920    
921    If neither @option{--interleave} or @option{--layer} is specified, multiple
922    @var{device}s are concatenated.
923    
924    
925  @node Shutdown  @node Shutdown
926  @section Shutdown  @section Shutdown
927  @scindex halt  @scindex halt
# Line 2136  Only set the translator if there is none Line 2213  Only set the translator if there is none
2213  @end table  @end table
2214    
2215    
 FIXME: finish  
2216  @node Invoking showtrans  @node Invoking showtrans
2217  @subsection Invoking @code{showtrans}  @subsection Invoking @code{showtrans}
2218    
2219    The @code{showtrans} program allows you to show the passive translator
2220    setting on a file system node.
2221    
2222    The @code{showtrans} program has the following synopsis:
2223    
2224    @example
2225    showtrans [@var{option}]@dots{} @var{file}@dots{}
2226    @end example
2227    
2228    @code{showtrans} accepts the following options:
2229    
2230    @table @code
2231    @item -p
2232    @itemx --prefix
2233    Always display @var{filename}: before translators.
2234    
2235    @item -P
2236    @itemx --no-prefix
2237    Never display @var{filename}: before translators.
2238    @item -s
2239    @itemx --silent
2240    No output; useful when checking error status.
2241    @item -t
2242    @itemx --translated
2243    Only display files that have translators.
2244    @end table
2245    
2246    
2247  @node Invoking mount  @node Invoking mount
2248  @subsection Invoking @code{mount}  @subsection Invoking @code{mount}
2249    
2250    
2251  @node Invoking fsysopts  @node Invoking fsysopts
2252  @subsection Invoking @code{fsysopts}  @subsection Invoking @code{fsysopts}
2253    
2254    The @code{fsysopts} program allows you to retrieve or set command line
2255    options for running translator @var{filesys}.
2256    
2257    The @code{fsysopts} program has the following synopsis:
2258    
2259    @example
2260    fsysopts [@var{option}@dots{}] @var{filesys} [@var{fs_option}@dots{}]
2261    @end example
2262    
2263    @code{fsysopts} accepts the following options:
2264    
2265    @table @code
2266    
2267    @item -L
2268    @itemx --dereference
2269    If @var{filesys} is a symbolic link, follow it.
2270    
2271    @item -R
2272    @itemx --recursive
2273    Pass these options to any child translators.
2274    @end table
2275    
2276    The legal values for @var{fs_option} depends on @var{filesys}, but
2277    some common ones are:
2278    
2279    @table @code
2280    @item --readonly
2281    @item --writable
2282    @item --remount
2283    @item --sync[=@var{interval}]
2284    @item --nosync
2285    @end table
2286    
2287    If no options are supplied, @var{filesys}' current options are
2288    printed.
2289    
2290    
2291  @node Trivfs Library  @node Trivfs Library
2292  @section Trivfs Library  @section Trivfs Library
# Line 2329  The functions and variables described in Line 2472  The functions and variables described in
2472  default definitions in @code{libtrivfs}, so you are not forced to define  default definitions in @code{libtrivfs}, so you are not forced to define
2473  them; rather, they may be redefined on a case-by-case basis.  them; rather, they may be redefined on a case-by-case basis.
2474    
2475  @deftypevar {extern struct port_class *} trivfs_protid_portclasses[]  @deftypevar {extern struct port_class *} trivfs_protid_portclasses []
2476  @deftypevarx {extern int} trivfs_protid_nportclasses  @deftypevarx {extern int} trivfs_protid_nportclasses
2477  @deftypevarx {extern struct port_class *} trivfs_cntl_portclasses[]  @deftypevarx {extern struct port_class *} trivfs_cntl_portclasses []
2478  @deftypevarx {extern int} trivfs_cntl_nportclasses  @deftypevarx {extern int} trivfs_cntl_nportclasses
2479  If you define these, they should be vectors (and the associated sizes)  If you define these, they should be vectors (and the associated sizes)
2480  of port classes that will be translated into control and protid pointers  of port classes that will be translated into control and protid pointers
# Line 2839  FIXME: Looking up files in directories Line 2982  FIXME: Looking up files in directories
2982  @node Modifying Directories  @node Modifying Directories
2983  @subsection Modifying Directories  @subsection Modifying Directories
2984    
2985  FIXME: Creating and deleting nodes  @deftypefun kern_return_t dir_mkfile (@w{file_t @var{directory}}, @w{int @var{flags}}, @w{mode_t @var{mode}}, @w{mach_port_t *@var{newnode}})
2986    Create a new file in @var{directory} without linking it into the
2987    filesystem.  You still must have write permission on the specified
2988    directory, even though it will not actually be written.
2989    
2990  @code{dir_mkfile}  The function returns a port to the new file in *@var{newnode}.  Flags
2991    are the same as for @code{dir_lookup}, but @code{O_CREAT} and
2992    @code{O_TRUNC} are assumed even if not specified.
2993    @end deftypefun
2994    
2995  @code{dir_mkdir}  @deftypefun kern_return_t dir_mkdir (@w{file_t @var{directory}}, @w{char *@var{name}}, @w{mode_t @var{mode}})
2996    Create a new directory named @var{name} in @var{directory} with
2997    permission specified by @var{mode}.
2998    @end deftypefun
2999    
3000  @code{dir_rmdir}  @deftypefun kern_return_t dir_rmdir (@w{file_t @var{directory}}, @w{char *@var{name}})
3001    Remove the directory named @var{name} from @var{directory}.
3002    @end deftypefun
3003    
3004  @code{dir_unlink}  @deftypefun kern_return_t dir_unlink (@w{file_t @var{directory}}, @w{char *@var{name}})
3005    Remove the non-directory node @var{name} from @var{directory}.
3006    @end deftypefun
3007    
3008  @code{dir_link}  @deftypefun kern_return_t dir_link (@w{file_t @var{directory}}, @w{file_t @var{file}}, @w{char *@var{name}}, @w{int @var{excl}})
3009    Create a hard link in @var{directory}.  If @var{excl} is set and
3010    @var{name} already exists in @var{directory}, then this function will
3011    fail.  If @var{excl} is not set and @var{name} already exists the old
3012    file named @var{name} will be unlinked.  If @var{directory} and
3013    @var{file} are not on the same filesystem, then @code{dir_link} might
3014    fail with @code{EXDEV}.
3015    @end deftypefun
3016    
3017  @code{dir_rename}  @deftypefun kern_return_t dir_rename (@w{file_t @var{olddirectory}}, @w{char *@var{oldname}}, @w{file_t @var{newdirectory}}, @w{char *@var{newname}}, @w{int @var{excl}})
3018    Move the node @var{oldname} in @var{olddirectory} to the node
3019    @var{newname} in @var{newdirectory}.  If @var{excl} is set and
3020    @var{newname} already exists in @var{newdirectory}, then this function
3021    will fail.  If @var{excl} is not set and @var{newname} already exists,
3022    the old file named @var{newname} will be unlinked.  If
3023    @var{olddirectory} and @var{newdirectory} are not on the same
3024    filesystem, then @code{dir_rename} might fail with @code{EXDEV}.
3025    @end deftypefun
3026    
3027  @node Notifications  @node Notifications
3028  @subsection Notifications  @subsection Notifications
# Line 3137  Returns the amount written in @var{amoun Line 3308  Returns the amount written in @var{amoun
3308  The store library comes with a number of standard store class  The store library comes with a number of standard store class
3309  implementations:  implementations:
3310    
3311  @deftypevar {extern const struct store_class *const} store_std_classes[]  @deftypevar {extern const struct store_class *const} store_std_classes []
3312  This is a null-terminated vector of the standard store classes  This is a null-terminated vector of the standard store classes
3313  implemented by @code{libstore}.  implemented by @code{libstore}.
3314  @end deftypevar  @end deftypevar

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26