Charles.Forsyth20070320-0955b28828319 years agoHistory
80 lines · 5.0 KB · Text
RawDownload
Installing hosted Inferno from source First change mkconfig to reflect your host environment,specifically ROOT (which must be an absolute path name), SYSHOST and OBJTYPE.      Like the native kernels  _eeee_mmmm_uuuu relies on  several  auxil-iary libraries (the source of which it often shares with thenative kernels).  Emu itself is built by the  _mmmm_kkkk_ffff_iiii_llll_eeee in the_eeee_mmmm_uuuu  platform  directory  for  the host, as described above.Each library has its own  _mmmm_kkkk_ffff_iiii_llll_eeee; the various components aremade  in  the  right order by the  _mmmm_kkkk_ffff_iiii_llll_eeee at the root of theInferno tree.  The   _mmmm_kkkk_ffff_iiii_llll_eeee  for  each  platform  will  alsoinvoke  _mmmm_kkkk recursively to make the appropriate libraries fora given configuration.      The Unix emu variant generally is  covered  by  `POSIX'(with  common  extensions)  but  each Unix port has one filethat   differs   considerably   for   each   port,    namelyemu/platform/os.c, the differences corresponding to the dif-ferent ways  under  Unix  of  implementing  kernel-scheduledthreads efficiently.      There  are  working  emu  versions   for   FreeBSD/386,Irix/mips,  Linux/386,  MacOSX/power, Plan 9, Solaris/sparc,and Windows (NT, 2000 and Explorer plug-in).  Each  platformtypically  uses  mechanisms  specific  to the host operatingsystem to implement Inferno's internal thread/process struc-ture.   POSIX  threads  have often been found to be insuffi-cient (poorly implemented) on some platforms, and if so  areavoided.  See  _kkkk_pppp_rrrr_oooo_cccc in  _eeee_mmmm_uuuu/*/_oooo_ssss._cccc.      Source is included for ports to HP/UX  (S800  architec-ture),  Solaris/386, and Unixware, in case someone wishes totake them up now, but we have not determined their fitness.      The Plan 9 hosted implementation is unusual in that  itsupports several processor types:  _3333_8888_6666,  _mmmm_iiii_pppp_ssss,  _pppp_oooo_wwww_eeee_rrrr (PowerPC) and  _ssss_pppp_aaaa_rrrr_cccc.  Furthermore, all versions of   _eeee_mmmm_uuuu  can  bebuilt on any processor type, in the usual way for Plan 9.      Otherwise, as distributed,  _eeee_mmmm_uuuu for a platform can onlybe built when running on that platform.      One unusual variant makes the whole of Inferno a  plug-in  for Microsoft's Internet Explorer, giving the same envi-ronment for Inferno applications running in an HTML page  asis  provided by hosted or native Inferno.  That is, there isnot a distinct `applet' environment with special programminginterfaces.   The  source for the various plug-in componentsis found in  /_tttt_oooo_oooo_llll_ssss/_pppp_llll_uuuu_gggg_iiii_nnnn and    /_uuuu_ssss_rrrr/_iiii_nnnn_tttt_eeee_rrrr_nnnn_eeee_tttt  within  theInferno  tree;  they  use the version of  _eeee_mmmm_uuuu defined by theconfiguration file  /_eeee_mmmm_uuuu/_NNNN_tttt/_iiii_eeee.      All the libraries an executables can be built in a treecontaining only the source code.  To do that for a supportedvariant of hosted Inferno, on Unix or Plan 9, do the follow-ing in the root of the Inferno tree: 1.   Run  _mmmm_aaaa_kkkk_eeee_mmmm_kkkk._ssss_hhhh to rebuild the   _mmmm_kkkk  command,  which  is     used to build everything else. 2.   Set  _PPPP_AAAA_TTTT_HHHH (or  _pppp_aaaa_tttt_hhhh on Plan 9)  to  include  the    _bbbb_iiii_nnnn     directory for the platform, which will now contain the     _mmmm_kkkk binary just built.  On Unix, export  _PPPP_AAAA_TTTT_HHHH. 3.   Then  _mmmm_kkkk _nnnn_uuuu_kkkk_eeee to remove any extraneous object files. 4.   Finally,    _mmmm_kkkk  _iiii_nnnn_ssss_tttt_aaaa_llll_llll  to  create  and  install   the     libraries,    _llll_iiii_mmmm_bbbb_oooo  compiler,  _eeee_mmmm_uuuu for hosted Inferno,     and auxiliary commands.  The rules do that in an  order     that ensures that the commands or libraries needed by a     later stage are built and installed first.  (Note  that     a  plain   _mmmm_kkkk will not suffice, because it does not put     the results in the search path.) Doing something similar  on  Windows  or  Plan  9  currentlyrequires  the  executable  for    _mmmm_kkkk  to be available in thesearch path, since there is no  equivalent  of    _mmmm_aaaa_kkkk_eeee_mmmm_kkkk._ssss_hhhh.Otherwise  the procedure is the same.  On Plan 9, of course,the host system's normal version of  _mmmm_kkkk should be adequate.