COMPILATION LISTING OF SEGMENT gtss_mcfc_defunct Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/10/84 1354.7 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * * 6* * * 7* *********************************************************** */ 8 9 gtss_mcfc_defunct: proc; 10 11 /* Examine the gtss mcfc data base and 12* display callers whose process no longer 13* exist. 14* 15* Author: Dave Ward 11/09/79 16**/ 17 call gtss_mcfc_init_ (rs); 18 if rs = "false" then return; 19 dcl rs char(5)var; 20 do i = lbound (mcfc.start_list, 1) to hbound (mcfc.start_list, 1); 21 if files (i).first ^= 0 then do; /* Next chain of files. */ 22 if lock_chain (i, c) then do; /* Chain locked during examination. */ 23 call examine_chain (files (i).first); 24 call unlock_chain (i); 25 end; 26 else /* Could not lock the chain. */ 27 call com_err_ ( 28 c 29 , "gtss_mcfc_defunct" 30 , "Chain ^i." 31 , i 32 ); 33 end; 34 end; 35 dcl c fixed bin(35); 36 return; 37 38 lock_chain: proc (i, c)returns (bit (1)); 39 40 /* Lock start_list file entry i. 41* Return code c (0=>OK | ^0=>failure). 42**/ 43 dcl i fixed bin(24) parm; 44 dcl c fixed bin(35)parm; 45 call set_lock_$lock ( 46 start_list (i).files.lock 47 , 60 /* Wait up to 60 (realtime) seconds. */ 48 , c 49 ); 50 if c = 0 then return ("1"b); /* Successful. */ 51 if c = error_table_$invalid_lock_reset then return ("1"b); 52 return ("0"b); /* Failure. */ 53 end /* lock_chain. */; 54 55 unlock_chain: proc (i); 56 57 /* Unlock start_list file entry i. 58**/ 59 dcl i fixed bin(24) parm; 60 call set_lock_$unlock ( 61 start_list (i).files.lock 62 , c 63 ); 64 if c = 0 then return; 65 call com_err_ ( 66 c 67 , "gtss_mcfc_defunct" 68 , "Could not unlock start list (^i) files lock." 69 , i 70 ); 71 return; 72 73 dcl c fixed bin(35); 74 end /* unlock_chain. */; 75 76 examine_chain: proc (i); 77 78 /* Examine each file on the start list 79* chain i, for callers that have defunct 80* processes. 81**/ 82 dcl i fixed bin(24) parm; 83 n = i; 84 do while (n>0); 85 call examine_file (n); 86 n = file_entry (n).link; 87 end; 88 return; 89 90 dcl n fixed bin(24); 91 end /* examine_chain. */; 92 93 examine_file: proc (f); 94 95 /* Display callers of file f that have 96* defunct processes. 97**/ 98 dcl f fixed bin(24) parm; 99 c = 0; /* Count of defunct processes for f. */ 100 call get_caller_index (f, caller_ptr, k); 101 do i = 1 to number_callers (f); 102 if defunct_process (f, caller (k).lock_id (i)) then c = c+1; 103 end; 104 105 if c = 0 then return; 106 if c Multics directory, E => entry, 2 12* U => Multics unique file id) 2 13* h=mod(U,size(start_list)) 2 14* start_list(h) => start of chain for list of files 2 15* (file_entry's) and a lock word to 2 16* regulate use of the chain, corresponding 2 17* values for list of available entries. 2 18**/ 2 19 2 20 dcl 1 mcfc aligned based(gtss_ext_$mcfc.files_ptr) 2 21 , 2 version fixed bin 2 22 2 23 , 2 start_list (0:1020) 2 24 , 3 files 2 25 , 4 lock bit(36) 2 26 , 4 first fixed bin(24) 2 27 , 3 avail like mcfc.start_list.files 2 28 2 29 , 2 file_entry (8000) 2 30 , 3 link fixed bin(24) 2 31 , 3 nameo offset(names) 2 32 , 3 namel fixed bin 2 33 , 3 unique_id bit(36) 2 34 , 3 file_lock bit(36) 2 35 , 3 number_callers fixed bin(24) 2 36 , 3 delete bit unal 2 37 , 3 fill bit (17) unal 2 38 , 3 number_who_could_not_call fixed bin (18) unsigned unal 2 39 ; 2 40 2 41 dcl caller_ptr ptr; 2 42 dcl 1 caller (0:1999)aligned based(caller_ptr) 2 43 , 2 lock_id (0:99)bit(36) 2 44 , 2 gcos_access (0:99)bit(6)unal 2 45 ; 2 46 2 47 dcl 1 mcfc_names aligned based (gtss_ext_$mcfc.names_ptr), 2 48 2 names_lock bit (36), 2 49 2 pad bit (36), 2 50 2 names area (261118); 2 51 2 52 /* END INCLUDE FILE gtss_mcfc.incl.pl1 */ 181 182 3 1 /* BEGIN INCLUDE FILE gtss_ext_.incl.pl1 */ 3 2 /* 3 3* Created: (Wardd Multics) 05/20/78 1307.6 mst Sat 3 4* Modified: Ward 1981 add suspended_process dcl 3 5* Modified: Ron Barstad 83-07-21 Fixed level number on mcfc to 3 3 6* Modified: Ron Barstad 83-07-25 Fixed derail range in statistics to 4js3 number 3 7**/ 3 8 dcl gtss_ext_$aem fixed bin static ext /* >0 Print "additional" error information. */; 3 9 dcl gtss_ext_$bad_drl_rtrn static ext label /* Default for drl_rtrn. */; 3 10 dcl gtss_ext_$db (72)bit(1)unal static ext; 3 11 dcl gtss_ext_$deferred_catalogs_ptr ptr ext; 3 12 dcl gtss_ext_$dispose_of_drl static ext label /* quit handlers for some derails use this label to abort */; 3 13 dcl gtss_ext_$drl_rtrn (4)static ext label /* where to return at subsystem end */; 3 14 dcl gtss_ext_$drm_path char(168)static ext /* gtss_expand_pathname_stores drm_path */; 3 15 dcl gtss_ext_$drun_jid char (5) static ext /* valid only for DRUN executing under absentee */; 3 16 dcl gtss_ext_$event_channel fixed bin (71) static ext /* used for DABT signals */; 3 17 dcl gtss_ext_$finished static ext label /* Return to gtss for normal conclusion. */; 3 18 dcl gtss_ext_$gdb_name char(8)ext /* Name H* module to debug. */; 3 19 dcl gtss_ext_$get_line entry(ptr,ptr,fixed bin(21),fixed bin(21),fixed bin(35))variable ext /* Build mode input procedure. */; 3 20 dcl gtss_ext_$gtss_slave_area_seg (4) ext static ptr /* pointer to gtss slave area segment */; 3 21 dcl gtss_ext_$hcs_work_area_ptr ptr ext static /* Temp seg for acl lists. */; 3 22 dcl gtss_ext_$homedir char (64) static ext /* user's home dir */; 3 23 dcl gtss_ext_$last_k_was_out bit (1)aligned ext static /* "1"b => last tty output was output. */; 3 24 dcl gtss_ext_$pdir char (168) varying ext static /* pathname of process directory */; 3 25 dcl gtss_ext_$popup_from_pi static ext label /* transfer to this label after pi simulates popup primitive */; 3 26 dcl gtss_ext_$process_type fixed bin (17) static ext; 3 27 dcl gtss_ext_$put_chars entry(ptr,ptr,fixed bin(24),fixed bin(35)) variable ext /* Terminal output procedure. */; 3 28 dcl gtss_ext_$restart_from_pi static ext label /* transfer to this label after pi restores machine conditions */; 3 29 dcl gtss_ext_$restart_seg_ptr ptr static ext /* points to DRUN restart file when exec under absentee */; 3 30 dcl gtss_ext_$sig_ptr ext static ptr /* saved ptr to signal_ */; 3 31 dcl gtss_ext_$stack_level_ fixed bin ext static; 3 32 dcl gtss_ext_$suspended_process bit(1) ext static; 3 33 dcl gtss_ext_$SYstarstar_file_no fixed bin (24) static ext; 3 34 dcl gtss_ext_$user_id char (26)var ext; 3 35 dcl gtss_ext_$work_area_ptr ptr ext; 3 36 3 37 dcl 1 gtss_ext_$CFP_bits aligned static external 3 38 , 3 no_input_yet bit (1) unaligned /* used in gtss_CFP_input_, gtss_read_starCFP_ */ 3 39 , 3 rtn_bits bit (4) unaligned /* used in gtss_CFP_input_, gtss_CFP_output_ */ 3 40 , 3 cpos_called bit (1) unaligned /* used in gtss_CFP_input_, gtss_drl_t_cfio_, gtss_abandon_CFP_ */ 3 41 , 3 cout_called bit (1) unaligned /* used in gtss_read_starCFP_, gtss_abandon_CFP_ */ 3 42 , 3 build_mode bit (1) unaligned /* used in gtss_build_, gtss_dsd_process_ */ 3 43 ; 3 44 3 45 dcl 1 gtss_ext_$com_reg aligned static ext, 3 46 3 tsdmx, 3 47 4 dst fixed bin (18) unsigned unaligned, 3 48 4 dit fixed bin (18) unsigned unaligned, 3 49 3 tsdpt fixed bin (36) unsigned unaligned, 3 50 3 tsddt fixed bin (36) unsigned unaligned, 3 51 3 tsdid bit (72) unaligned, 3 52 3 tsdsd bit (36) unaligned, 3 53 3 tsdst fixed bin (36) unsigned unaligned, 3 54 3 tsdjb fixed bin (35) unaligned, 3 55 3 tsdgt, 3 56 4 ust_loc fixed bin (18) unsigned unaligned, 3 57 4 gating_ctl fixed bin (18) unsigned unaligned, 3 58 3 tcdfr bit (36) unaligned; 3 59 3 60 dcl 1 gtss_ext_$flags aligned static ext 3 61 , 3 dispose_of_drl_on_pi bit (01) unal /* 1 => drl that should be aborted after quit-pi sequence */ 3 62 , 3 drl_in_progress bit (01) unal /* 1 => drl handler executing; 0 => gcos code executing */ 3 63 , 3 popup_from_pi bit (01) unal /* 1 => derail processor will simulate Gcos break instead of returning */ 3 64 , 3 unfinished_drl bit (01) unal /* 1 => subsystem is handling breaks and quit was raised during a drl */ 3 65 , 3 ss_time_limit_set bit (01) unal /* 1 => exec time limit set for subsystem */ 3 66 , 3 timer_ranout bit (01) unal /* 1 => user is executing timer runout code */ 3 67 , 3 gtss_com_err_sw bit (01) unal /* 1 => stop com_err_ string from going to terminal */ 3 68 , 3 available bit (65) unal 3 69 ; 3 70 3 71 3 72 dcl 1 gtss_ext_$statistics aligned static ext, /* Derail usage statistics */ 3 73 3 total_time (-10:71)fixed bin (71), 3 74 3 count (-10:71)fixed bin (17); 3 75 3 76 /* Declaration of Available File Table 3 77* */ 3 78 dcl 1 gtss_ext_$aft aligned ext, /* aft structure */ 3 79 3 80 3 start_list (0:102) fixed bin (24), /* >0 => 1st aft_entry row to start of next entry chain. */ 3 81 3 82 3 aft_entry (20), 3 83 4 altname char (8), /* altname name for attaching this file */ 3 84 4 next_entry fixed bin (24), /* Next aft_entry in hash chain. */ 3 85 4 previous_add fixed bin (24), /* Previously added entry. */ 3 86 4 next_add fixed bin (24), /* Entry added after this one. */ 3 87 4 used bit (1) unal, /* "1"b => aft_entry contains AFT value. */ 3 88 4 forced bit(1) unal, /* "1"b => gtss_verify_access_ forced access on this file. */ 3 89 3 90 3 free_space fixed bin (24), /* Index of start of free space list for aft entries. */ 3 91 3 first_added fixed bin (24), /* >0 => start of chain in add order. */ 3 92 3 last_added fixed bin (24) /* >0 => end of chain in added order. */; 3 93 3 94 dcl gtss_ext_$ppt ptr ext /* switch name for tapein drl */; 3 95 /** Data structure to provide access to installed 3 96* subsystems fast library load. 3 97* **/ 3 98 dcl 1 gtss_ext_$fast_lib aligned ext 3 99 , 3 fast_lib_fcb ptr /* Pointer to msf fcb. */ 3 100 , 3 fast_lib_ncp fixed bin (24) /* Number of components. */ 3 101 , 3 comp_ptr (0:9)ptr /* Pointer to component. */ 3 102 , 3 comp_wds (0:9)fixed bin (24) /* Component length (words). */ 3 103 ; 3 104 3 105 /* Pointers to segments to regulate multipler 3 106* callers to files. Same segments are used to regulate 3 107* all simulator callers. 3 108**/ 3 109 dcl 1 gtss_ext_$mcfc aligned ext, 3 110 3 multics_lock_id bit(36), 3 111 3 wait_time fixed bin, 3 112 3 files_ptr ptr, 3 113 3 names_ptr ptr, 3 114 3 callers_ptr (0:3)ptr 3 115 ; 3 116 3 117 /* END INCLUDE FILE gtss_ext_.incl.pl1 */ 183 184 end /* gtss_mcfc_defunct */; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/10/84 1044.3 gtss_mcfc_defunct.pl1 >spec>on>7105>gtss_mcfc_defunct.pl1 179 1 09/09/83 1714.0 gtss_mcfc_gci.incl.pl1 >ldd>include>gtss_mcfc_gci.incl.pl1 181 2 09/09/83 1714.0 gtss_mcfc.incl.pl1 >ldd>include>gtss_mcfc.incl.pl1 183 3 09/09/83 1713.8 gtss_ext_.incl.pl1 >ldd>include>gtss_ext_.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. c 000124 automatic fixed bin(35,0) dcl 73 in procedure "unlock_chain" set ref 60* 64 65* c 000103 automatic fixed bin(35,0) dcl 35 in procedure "gtss_mcfc_defunct" set ref 22* 26* c parameter fixed bin(35,0) dcl 44 in procedure "lock_chain" set ref 38 45* 50 51 c 000156 automatic fixed bin(35,0) dcl 143 in procedure "defunct_process" set ref 138* 144 c 000144 automatic fixed bin(24,0) dcl 125 in procedure "examine_file" set ref 99* 102* 102 105 106 106* 115* caller based structure array level 1 dcl 2-42 set ref 1-15 1-17 caller_ptr 000106 automatic pointer dcl 2-41 set ref 100* 102 1-15 1-17 callers_ptr 6 000024 external static pointer array level 2 dcl 3-109 ref 1-16 com_err_ 000010 constant entry external dcl 166 ref 26 65 106 115 cp parameter pointer dcl 1-13 set ref 1-5 1-16* cx parameter fixed bin(24,0) dcl 1-14 set ref 1-5 1-17* error_table_$invalid_lock_reset 000012 external static fixed bin(35,0) dcl 167 ref 51 error_table_$locked_by_other_process 000014 external static fixed bin(35,0) dcl 168 ref 144 f parameter fixed bin(24,0) dcl 98 in procedure "examine_file" set ref 93 100* 101 102* 106 106 106* 115* f parameter fixed bin(24,0) dcl 135 in procedure "defunct_process" ref 130 f parameter fixed bin(24,0) dcl 159 in procedure "file_name" ref 155 161 161 f parameter fixed bin(24,0) dcl 1-12 in procedure "get_caller_index" ref 1-5 1-15 1-17 file_entry 7765 based structure array level 2 dcl 2-20 files 1 based structure array level 3 dcl 2-20 files_ptr 2 000024 external static pointer level 2 dcl 3-109 ref 20 20 21 23 45 60 86 101 106 106 161 161 first 2 based fixed bin(24,0) array level 4 dcl 2-20 set ref 21 23* gtss_ext_$mcfc 000024 external static structure level 1 dcl 3-109 gtss_mcfc_init_ 000016 constant entry external dcl 173 ref 17 i parameter fixed bin(24,0) dcl 59 in procedure "unlock_chain" set ref 55 60 65* i 000145 automatic fixed bin(24,0) dcl 126 in procedure "examine_file" set ref 101* 102* i parameter fixed bin(24,0) dcl 82 in procedure "examine_chain" ref 76 83 i parameter fixed bin(24,0) dcl 43 in procedure "lock_chain" ref 38 45 i 000104 automatic fixed bin(24,0) dcl 174 in procedure "gtss_mcfc_defunct" set ref 20* 21 22* 23 24* 26* j 000166 automatic fixed bin(24,0) dcl 1-19 set ref 1-15* 1-16 k 000146 automatic fixed bin(24,0) dcl 127 set ref 100* 102 link 7765 based fixed bin(24,0) array level 3 dcl 2-20 ref 86 lock 1 based bit(36) array level 4 dcl 2-20 set ref 45* 60* lock_id based bit(36) array level 2 dcl 2-42 set ref 102* lw parameter bit(36) dcl 136 set ref 130 137 138* 149* mcfc based structure level 1 dcl 2-20 mcfc_names based structure level 1 dcl 2-47 n 000134 automatic fixed bin(24,0) dcl 90 set ref 83* 84 85* 86* 86 namel 7767 based fixed bin(17,0) array level 3 dcl 2-20 ref 161 nameo 7766 based offset array level 3 dcl 2-20 ref 161 names 2 based area(261118) level 2 dcl 2-47 ref 161 names_ptr 4 000024 external static pointer level 2 dcl 3-109 ref 161 ns based char unaligned dcl 160 ref 161 number_callers 7772 based fixed bin(24,0) array level 3 dcl 2-20 set ref 101 106 106* rs 000100 automatic varying char(5) dcl 19 set ref 17* 18 set_lock_$lock 000020 constant entry external dcl 176 ref 45 138 set_lock_$unlock 000022 constant entry external dcl 177 ref 60 slw 000157 automatic bit(36) unaligned dcl 152 set ref 137* 149 start_list 1 based structure array level 2 dcl 2-20 set ref 20 20 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. error_table_$lock_not_locked external static fixed bin(35,0) dcl 170 error_table_$lock_wait_time_exceeded external static fixed bin(35,0) dcl 171 error_table_$locked_by_this_process external static fixed bin(35,0) dcl 169 get_lock_id_ 000000 constant entry external dcl 172 gtss_ext_$CFP_bits external static structure level 1 dcl 3-37 gtss_ext_$SYstarstar_file_no external static fixed bin(24,0) dcl 3-33 gtss_ext_$aem external static fixed bin(17,0) dcl 3-8 gtss_ext_$aft external static structure level 1 dcl 3-78 gtss_ext_$bad_drl_rtrn external static label variable dcl 3-9 gtss_ext_$com_reg external static structure level 1 dcl 3-45 gtss_ext_$db external static bit(1) array unaligned dcl 3-10 gtss_ext_$deferred_catalogs_ptr external static pointer dcl 3-11 gtss_ext_$dispose_of_drl external static label variable dcl 3-12 gtss_ext_$drl_rtrn external static label variable array dcl 3-13 gtss_ext_$drm_path external static char(168) unaligned dcl 3-14 gtss_ext_$drun_jid external static char(5) unaligned dcl 3-15 gtss_ext_$event_channel external static fixed bin(71,0) dcl 3-16 gtss_ext_$fast_lib external static structure level 1 dcl 3-98 gtss_ext_$finished external static label variable dcl 3-17 gtss_ext_$flags external static structure level 1 dcl 3-60 gtss_ext_$gdb_name external static char(8) unaligned dcl 3-18 gtss_ext_$get_line external static entry variable dcl 3-19 gtss_ext_$gtss_slave_area_seg external static pointer array dcl 3-20 gtss_ext_$hcs_work_area_ptr external static pointer dcl 3-21 gtss_ext_$homedir external static char(64) unaligned dcl 3-22 gtss_ext_$last_k_was_out external static bit(1) dcl 3-23 gtss_ext_$pdir external static varying char(168) dcl 3-24 gtss_ext_$popup_from_pi external static label variable dcl 3-25 gtss_ext_$ppt external static pointer dcl 3-94 gtss_ext_$process_type external static fixed bin(17,0) dcl 3-26 gtss_ext_$put_chars external static entry variable dcl 3-27 gtss_ext_$restart_from_pi external static label variable dcl 3-28 gtss_ext_$restart_seg_ptr external static pointer dcl 3-29 gtss_ext_$sig_ptr external static pointer dcl 3-30 gtss_ext_$stack_level_ external static fixed bin(17,0) dcl 3-31 gtss_ext_$statistics external static structure level 1 dcl 3-72 gtss_ext_$suspended_process external static bit(1) unaligned dcl 3-32 gtss_ext_$user_id external static varying char(26) dcl 3-34 gtss_ext_$work_area_ptr external static pointer dcl 3-35 null builtin function dcl 175 NAMES DECLARED BY EXPLICIT CONTEXT. defunct_process 000614 constant entry internal dcl 130 ref 102 examine_chain 000334 constant entry internal dcl 76 ref 23 examine_file 000355 constant entry internal dcl 93 ref 85 file_name 000657 constant entry internal dcl 155 ref 106 115 get_caller_index 000706 constant entry internal dcl 1-5 ref 100 gtss_mcfc_defunct 000064 constant entry external dcl 9 lock_chain 000203 constant entry internal dcl 38 ref 22 unlock_chain 000255 constant entry internal dcl 55 ref 24 NAMES DECLARED BY CONTEXT OR IMPLICATION. divide builtin function ref 1-15 hbound builtin function ref 20 1-15 1-17 lbound builtin function ref 20 mod builtin function ref 1-17 pointer builtin function ref 161 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1076 1124 752 1106 Length 1356 752 26 216 123 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gtss_mcfc_defunct 258 external procedure is an external procedure. lock_chain internal procedure shares stack frame of external procedure gtss_mcfc_defunct. unlock_chain internal procedure shares stack frame of external procedure gtss_mcfc_defunct. examine_chain internal procedure shares stack frame of external procedure gtss_mcfc_defunct. examine_file internal procedure shares stack frame of external procedure gtss_mcfc_defunct. defunct_process internal procedure shares stack frame of external procedure gtss_mcfc_defunct. file_name 68 internal procedure uses returns(char(*)) or returns(bit(*)). get_caller_index internal procedure shares stack frame of external procedure gtss_mcfc_defunct. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gtss_mcfc_defunct 000100 rs gtss_mcfc_defunct 000103 c gtss_mcfc_defunct 000104 i gtss_mcfc_defunct 000106 caller_ptr gtss_mcfc_defunct 000124 c unlock_chain 000134 n examine_chain 000144 c examine_file 000145 i examine_file 000146 k examine_file 000156 c defunct_process 000157 slw defunct_process 000166 j get_caller_index THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this_desc return mod_fx1 shorten_stack ext_entry int_entry_desc pointer_hard return_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ gtss_mcfc_init_ set_lock_$lock set_lock_$unlock THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$invalid_lock_reset error_table_$locked_by_other_process gtss_ext_$mcfc LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000063 17 000071 18 000101 20 000106 21 000113 22 000121 23 000126 24 000141 25 000143 26 000144 34 000200 36 000202 38 000203 45 000205 50 000230 51 000240 52 000250 55 000255 60 000257 64 000274 65 000277 71 000333 76 000334 83 000336 84 000340 85 000342 86 000344 87 000353 88 000354 93 000355 99 000357 100 000360 101 000372 102 000407 103 000431 105 000433 106 000436 115 000535 123 000612 130 000614 137 000616 138 000620 144 000634 149 000646 150 000651 155 000656 161 000664 1 5 000706 1 15 000710 1 16 000717 1 17 000724 1 18 000731 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved