<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2523" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Nice explanation Dr. D. Unfortunately, I am still 
sweeping floors and not painting ceiling as you are. </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I have the game all loaded on the same 
partition.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Main game is loaded at 
<STRONG>/games/cod-server/uo</STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>USER's are loctaed at 
<STRONG>/home/user/cod-server/uo</STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I only have a single server.cfg in the 
<STRONG>/home/user/cod-server/uo/server.cfg</STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I point to <STRONG>/games/cod-server</STRONG> as my 
executable directory because this is where the <FONT color=#808080>coduo_lnxded 
</FONT><FONT color=#000000>resides:</FONT></FONT></DIV>
<DIV><FONT face=Arial size=2>example: <STRONG>/games/cod-server/<FONT 
color=#808080>coduo_lnxded</FONT></STRONG></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Now I make the <STRONG>games/cod-server</STRONG> 
owned by admincliffy</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I get that far...But still unsure about this 
linking process you are trying to explain. You say </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>"<FONT face="Times New Roman" size=3> You should 
make the executable<BR>mode 0x750, and owned by the admin, group GID, so it is 
RWX by you the admin, <BR>while it is only readable and executable, but not 
writable by the Group of users with<BR>group GID. There is no need for it to 
be."</FONT></FONT></DIV>
<DIV><FONT face=Arial size=2><FONT face="Times New Roman" 
size=3></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><FONT face="Times New Roman" size=3>I say headache 
and start hitting the books. Can you demonstrate how you would link the user to 
:</FONT></FONT></DIV>
<DIV><FONT face=Arial size=2><FONT face="Times New Roman" 
size=3><STRONG>/games/cod-server</STRONG> using this "<STRONG>mode 
0x750</STRONG>" you refer to? </FONT></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I would appreciate this. </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT><FONT face=Arial size=2>=o)</FONT></DIV>
<DIV><FONT face=Arial><BR><FONT size=2></FONT></FONT></DIV></FONT>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=ltr 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=defilm@acm.org href="mailto:defilm@acm.org">Mark J. DeFilippis</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=cod@icculus.org 
  href="mailto:cod@icculus.org">cod@icculus.org</A> ; <A title=cod@icculus.org 
  href="mailto:cod@icculus.org">cod@icculus.org</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Saturday, December 18, 2004 3:58 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [cod] Dr. D - This ones for 
  you.</DIV>
  <DIV><BR></DIV><BR>Recently some updates were brought to my attention 
  with<BR>regards to the sticky bit, and memory utilization (mbuf 
  allocation),<BR>and I did a little research...<BR><BR>The current writing 
  referenced by many on this forum, is more semantics<BR>than anything 
  else.&nbsp; Dating back prior to Unix V.3, Memory was very<BR>expensive. 
  Hence, there was not often enough memory to keep all executable<BR>(text) 
  pages in memory, and in severe cases, entire programs were swapped in<BR>and 
  out, text pages were more often paged in and out as the CPU ran out of<BR>text 
  to execute on behalf of a program.&nbsp; The CPU would request text code 
  be<BR>read from swap, halt the program, put it on the I/O stack (waiting I/O), 
  and move<BR>on to the next program for a set period of time, for CPU 
  allocation.&nbsp; When the<BR>I/O was performed asynchronously, and the text 
  copied in to memory, the program<BR>put in Wait I/O state" was put in 
  "Runnable state".&nbsp; Cpu would then continue execution.<BR><BR>As memory 
  became cheaper, Unix systems were able to store more text pages<BR>in RAM, and 
  in fact, you based your memory purchase on how large the applications<BR>were 
  going to be for the user base. This way you could assure that all code could 
  fit<BR>in memory, and hence Page swapping and Text page swapin, swapout was a 
  No-No, and<BR>a execution killer. (Today, these swap variables still exist in 
  vmstat, as it is not<BR>impossible to begin swapping text pages, and full page 
  swapping is just not done.<BR><BR>Today, with cheap ram, and faster disks, 
  executable text is not even copied to SWAP<BR>anymore, since the executable 
  code is made of two parts.. The local text portion of the<BR>code, and the 
  shared link libraries reference.&nbsp; Between memory size, and buffer 
  sizes<BR>entire application text pages are loaded.&nbsp; No more swapping, no 
  more paging text pages,<BR>no more load from swap, so the sticky bit is 
  irrelevant.<BR><BR>In reality, this was really the case under systems as old 
  as Unix V.3.2 as Unix moved<BR>to the Intel platform.&nbsp; When we designed 
  applications, we made sure there was always<BR>enough ram. A paging program is 
  a "slow program".&nbsp; Gaming is much more sensitive<BR>as you 
  know.<BR><BR>Today, shared link libraries are loaded once. Your text code (The 
  portion that is not<BR>global link library based) is loaded in to ram. 
  However, please note, thing have not<BR>changed in relation to the memory 
  usage for multiple copies of a program!<BR><BR>If you load 7 copies of the 
  executable, and the executables all have different<BR>inodes, Linux has no way 
  of knowing any two executables are the same,<BR>hence it WILL load multiple 
  copies in to ram. This can be seen.<BR><BR>If you link them, they will all 
  have the same inode value. Linux will load<BR>the code once using the same 
  text pointers when executing. So there is<BR>still value in using links to the 
  same inode when invoking the same program<BR>multiple times!<BR><BR><BR>In 
  your specific case, I am assuming from the alternate path, that the 
  executables<BR>are on one partition, and the users homes on another.&nbsp; If 
  you link across file<BR>systems, of course Linux will make a copy, and all 
  will have separate inode<BR>values, and you are SOL.&nbsp; This of course 
  consumes more memory, and more disk.<BR>Likely no big deal on disk, but memory 
  is still expensive to lease on servers!<BR>($50/mo from 1-2GB upgrade is a 
  lot).<BR><BR>If I were in your shoes, I would make a local copy of the 
  executable owned by<BR>the admin name whatever it is (not hopefully root), and 
  link it to each users<BR>directory.&nbsp; The users would be in the same 
  GID.&nbsp; You should make the executable<BR>mode 0x750, and owned by the 
  admin, group GID, so it is RWX by you the admin, <BR>while it is only readable 
  and executable, but not writable by the Group of users with<BR>group GID. 
  There is no need for it to be.<BR><BR>You get to take advantage of the same 
  inode value which is still more efficient in<BR>virtual machine based OS's 
  today in it's memory utilization.. such as Linux.<BR><BR>If you think about 
  it, it really makes sense.&nbsp; Linux knows nothing from filenames.<BR>It 
  knows Inode numbers (or index hash values in to the file descriptor 
  block.<BR>Same inode, it knows is same file, same code text.&nbsp; Different 
  inode, it knows<BR>nothing that the two programs running in memory are the 
  same code...<BR><BR>This is what I would do. I would expect largely many of 
  the server admins do indeed<BR>have their virtual server hosting set up 
  similarly when it comes to the COD executable...<BR><BR>I hope this 
  help.&nbsp; My thanks to those that pointed at the recent updates to 
  mbuf()<BR>allocation via malloc(), and kernel references.<BR><BR>Dr. 
  D<BR><BR><BR>At 10:45 AM 12/17/2004, Jay Vasallo wrote:<BR>
  <BLOCKQUOTE class=cite cite="" type="cite">OK, How do I do this usuing your 
    method?<BR><BR><BR>----- Original Message ----- From: "Jay Vasallo" 
    &lt;jayco1@charter.net&gt;<BR>To: &lt;cod@icculus.org&gt;<BR>Sent: Friday, 
    December 17, 2004 9:30 AM<BR>Subject: [cod] Dr. D - This ones for 
    you.<BR><BR><BR>
    <BLOCKQUOTE class=cite cite="" type="cite">Dr. D Wrote:<BR><BR>"Because 10 
      servers your way will load 10 copies in to swap, 10<BR>copies in to 
      memory, etc.&nbsp; Using the method of symlinks, which<BR>is really 
      nothing more than a link in the super block.&nbsp; The super 
      block<BR>maintains all information about which disk blocks belong tio 
      which<BR>files.&nbsp; For your simlink the new file entry simply gets the 
      same<BR>inode id copied to the table.&nbsp; Same inode, same code... 
      With<BR>shared libraries in memory,&nbsp; for the 10 servers only 1 
      copy<BR>exists in swap. Only 1 copy exists in memory.<BR><BR>I hope this 
      is more clear."<BR><BR>Dr. D<BR><BR><BR>Can you please explain this a 
      little further:<BR>Lets say I have my games 
      in:<BR>/games/cod-server/coduo_lxded<BR>and the useres 
      at:<BR>/home/user/cod-server/uo<BR><BR><BR>How does help this help this 
      situation.<BR><BR>Thanks 
      =o)<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>----- Original 
      Message ----- From: "Luke Antins (Firestorm Games)" 
      &lt;luke@firestorm-games.net&gt;<BR>To: &lt;cod@icculus.org&gt;<BR>Sent: 
      Friday, December 17, 2004 12:15 AM<BR>Subject: Re: [cod] COD 1.5 Patch is 
      out! (any news on the linux server?)<BR><BR><BR>Hi Ryan.<BR><BR>Thanks for 
      the update! Its much appreciated.<BR>When you say Friday, do you mean this 
      Friday? (ie today for us in Europe) 17/12/2004 or do you mean 
      24/12/2004.<BR><BR>Just want to make sure because of the timezones 
      ;¬)<BR><BR>Kind Regards<BR>Luke Antins<BR>--<BR>[Firestorm Games]<BR><A 
      href="http://www.firestorm-games.net/" 
      eudora="autourl">http://www.firestorm-games.net/</A><BR><BR>On Fri, 17 Dec 
      2004, Ryan C. Gordon wrote:<BR><BR>
      <BLOCKQUOTE class=cite cite="" type="cite"><BR>
        <BLOCKQUOTE class=cite cite="" type="cite">Anyone have any idea when 
          the Linux server will be out?</BLOCKQUOTE><BR>As early as Friday, I 
        hope. It was supposed to be simultaneous, but we ran<BR>into a 
        last-minute snag with a pure-server issue and the Windows version 
        got<BR>shipped anyhow...mostly we're just juggling data files around to 
        get the<BR>packages to match up at this 
      point.<BR><BR>--ryan.<BR><BR></BLOCKQUOTE><BR><BR></BLOCKQUOTE><BR></BLOCKQUOTE><X-SIGSEP>
  <P></X-SIGSEP><TT>S1-------------------------------------------------------------------------------<BR>Mark 
  J. DeFilippis, Ph. D EE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  defilm@acm.org<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  defilm@ieee.org<BR><BR><BR></TT></P></BLOCKQUOTE></BODY></HTML>