ããŒã¯ã»ã¹ãã£ãŒã°ã©ãŒã¯ãããã管ç人ãéã£ãŠãã¹ã¿ãŒã¢ã³ããªã³ãªãŒããŒãäžããç¶æ³ãšæ¯èŒããŸãããã¹ã¿ãŒã¢ã³ããªã³ãªãŒããŒã¯ãæé€ããéšå±ãéãã ãã§ãªãã ãããŠéã®é庫ã®ãã¢ã ã€ãŸã ã¯ãªãŒããŒã«éµãæž¡ããªããšãã2ã€ã®éžæè¢ãããããŸãããããããã°ã圌ã¯ä»äºãããããšãã§ããªããªããŸãã
æ©èœããŒã¹ã®ã»ãã¥ãªãã£ã¢ãã«ã¯ããã®åé¡ã®è§£æ±ºçãæäŸããŸãã
ã¢ãã«ã¯ãæå°ç¹æš©ã®ååã«åºã¥ããŠããŸãã ããšãã°ãããã¹ããšãã£ã¿ãŒã§ãã¡ã€ã«ãéããšããšãã£ã¿ãŒããã°ã©ã ã¯ç¹å®ã®1ã€ã®ãã¡ã€ã«ã®ã¿ã«ã¢ã¯ã»ã¹ã§ããŸãã ããã°ã©ã ãæåŸ ã©ããã«ãã¡ã€ã«ãç·šéãããã©ããã¯ãŸã ããããŸãããããã¡ã€ã«ãæå·åããã埩å·åã«ãéãå¿ èŠã«ãªããŸãããã¬ãŒãã¯çŸåšå€§å¹ ã«äœããªã£ãŠããŸãã
æ¢å®ã§ã¯ããã¹ãŠã®ããã°ã©ã ïŒããã³çæ³çã«ã¯ä»»æã®ã³ãŒãïŒã¯çæ³çãªãµã³ãããã¯ã¹ã§å®è¡ãããŸã-ãã¡ã€ã«ã·ã¹ãã ããããã¯ãŒã¯ããŸãã¯ä»ã®ããã°ã©ã ã«ã¢ã¯ã»ã¹ã§ããŸããã äžéšã®å®è£ ã§ã¯ãã¡ã¢ãªãå²ãåœãŠãŠããã»ããµãªãœãŒã¹ãæ¶è²»ããæš©å©ãããããŸããïŒ
ããã°ã©ã ã¯ãå€éšãªãœãŒã¹ãžã®å¿ é ãªã³ã¯ïŒEngãæ©èœãPOSIXæ©èœãšæ··åããªãã§ãã ããïŒã䜿çšããŠããµã³ãããã¯ã¹ãè¶ ããããšãã§ããŸãã
ãããŸã§ã®ãšããããã®äž»é¡ã«é¢ãããã·ã¢èªã®æç®ã¯ãŸã£ãããããŸããããã®ããããã®èšäºãæžãã«ã¯ããèœåããšããçšèªã®ç¿»èš³ãèªåã§çºæããªããã°ãªããŸããã§ããã ã ãããç¥ãåãã«ãªãïŒ
ä¿¡ä»»ç¶ãªã³ã¯ã¯ãæåã«ãªããžã§ã¯ããèå¥ããïŒãããã£ãŠããªã³ã¯ãïŒã次ã«ãã®ãªããžã§ã¯ãã§èš±å¯ãããæäœïŒãããã£ãŠãä¿¡ä»»ç¶ãïŒãå®çŸ©ããç¹å¥ãªåœ¢åŒã®ãªã³ã¯ã§ãã å¿ é ãªã³ã¯ã¯å ±åã§ããåããªããžã§ã¯ããåç §ããŸãããæå¹ãªæäœã®ç°ãªãã»ãããæå®ããŸãã
å¿ é ãªã³ã¯ãææããŠãããŠãŒã¶ãŒã¯ããã®ãªã³ã¯ã§èš±å¯ãããŠãããªããžã§ã¯ãã«å¯ŸããŠåžžã«æäœãå®è¡ã§ããŸããæäœäžã«è¿œå ã®ãã§ãã¯ã¯å®è¡ãããŸããã ãã¹ãŠã®ãã§ãã¯ã¯ããµããžã§ã¯ããå¿ é ãªã³ã¯ãåä¿¡ããåã«è¡ãããŸã-圌ããããåä¿¡ããå Žåãããã¯ãã¹ãŠã®ãã§ãã¯ããµããžã§ã¯ãã«ãã£ãŠæž¡ãããããšã®èšŒæãšããŠæ©èœããŸãã
æ¯èŒã®ããã«ãæåå圢åŒã®ãã¡ã€ã«ãžã®ãã¹ã¯ãªããžã§ã¯ããèå¥ããŸããããã®ãªããžã§ã¯ãã«å¯Ÿããæå¹ãªæäœã決å®ããŸãã-ãããã£ãŠãç¹å®ã®æ¹æ³ã§ãã¡ã€ã«ã«å¯ŸããŠæäœãå®è¡ããããã³ã«ãOSã¯ã¢ã¯ã»ã¹å¶åŸ¡ãã§ãã¯ãå®è¡ããå¿ èŠããããŸãã
äžæ¹ãéããŠãããã¡ã€ã«èšè¿°åã¯å¿ é ãªã³ã¯ãšèŠãªãããå ŽåããããŸãã èšè¿°åãäœæãããåã«ã¢ã¯ã»ã¹å¶åŸ¡ãè¡ããããã¡ã€ã«ãéãããã¢ãŒãã¯èšè¿°åã«é¢é£ä»ããããããŒã¿æ§é ã«æ ŒçŽãããŸãã
å¿ é ã®åç §ã«åºã¥ããã»ãã¥ãªãã£æç®ã§ã¯ãããªãœãŒã¹ãããã³ããµããžã§ã¯ãããšããçšèªïŒ PDF ïŒãèŠã€ããããšãã§ããŸãã ããªãœãŒã¹ãã¯ãåç §ããããªã³ã¯ãæããªããžã§ã¯ããæãã圹å²ã§ãã ããµããžã§ã¯ãããšã¯ãå¿ é ãªã³ã¯ãæã¡ããªãœãŒã¹ã«å¯ŸããŠæäœãå®è¡ã§ãã人ã§ãã ãµããžã§ã¯ããšãªãœãŒã¹ã®éã«ã¯å€å¯Ÿå€ã®é¢ä¿ããããŸããåãµããžã§ã¯ãã¯ç°ãªããªãœãŒã¹ãžã®ä»»æã®æ°ã®å¿ é ãªã³ã¯ãæã€ããšãã§ããä»»æã®æ°ã®ãµããžã§ã¯ãã¯1ã€ã®ãªãœãŒã¹ãåç §ã§ããŸãã
äžéšã®å®è£ ã§ã¯ã ã察象ããšããªãœãŒã¹ãã¯ãã³ã³ããã¹ãã«å¿ããŠåããªããžã§ã¯ããæããããšãã§ãã圹å²ã§ãã ä»ã§ã¯ ããããã¯ç°çš®ãªããžã§ã¯ãã§ãããäžçš®ã®ãªãœãŒã¹ã¯å¥ã®ãµããžã§ã¯ããšã®éä¿¡ãã£ãã«ã§ãã äœããã®æ¹æ³ã§ããªããžã§ã¯ãã¯å¿ é ãªã³ã¯ã䜿çšããŠçžäºã«éä¿¡ã§ããŸãããªã³ã¯ãææãããªããžã§ã¯ãã¯ãOOPã®ããã«ãåç §å ãªããžã§ã¯ãã«ã¡ãã»ãŒãžãéä¿¡ã§ããŸãã å°æ¥çã«ã¯ã衚瀺ã®äŸ¿å®äžããªããžã§ã¯ãã¯åçš®ã§ãããšä»®å®ããŸãã ã察象ããšããªãœãŒã¹ãã¯ãç¶æ³ã«å¿ãã圹å²ã«ãããŸããã
ã¢ãã«ã¯ããªããžã§ã¯ãã®å éšç¶æ ãã«ãã»ã«åãããã¡ãã»ãŒãžãéä¿¡ããªãéãå€æŽã§ããªããšæ³å®ããŠããŸãã
å¿ é ãªã³ã¯ã®åã
ãªããžã§ã¯ãã¯ãéãããæ°ã®æ¹æ³ã§å¿ é ãªã³ã¯ãåä¿¡ã§ããŸãã
- åææ¡ä»¶ã®äžéšãšããŠãã·ã¹ãã ã®åæåïŒããšãã°ãOSã®ã€ã³ã¹ããŒã«ïŒæã«ããªããžã§ã¯ãã®ç¹å®ã®åæã°ã©ããäœæãããŸããããã¯ãããã§èª¬æããèŠåã«åŸã£ãŠããã«éçºãããŸãããåæã°ã©ãã¯ããŒãæ¹æ³ã䜿çšããŠäœæã§ããŸãã
- æ°ãããªããžã§ã¯ããäœæããå Žå - æ°ãããªããžã§ã¯ããäœæããæäœã¯ãå©çšå¯èœãªæš©éã®æ倧éãåããå¿ é ãªã³ã¯ãè¿ããŸãã
- æåé -åãªããžã§ã¯ããäœæããããšã§ã芪ã¯å©çšå¯èœãªæš©éã®äžéšã転éã§ããŸãïŒOOPã®çšèªã§ã³ã³ã¹ãã©ã¯ã¿ãŒåŒæ°ãæž¡ããŸãïŒ
- çžäºã®ç¥ãåããéã㊠-ã¢ãªã¹ããããžã®ãªã³ã¯ãæã£ãŠããªãå Žåããã£ãã«ã¯ïŒåœŒå¥³ãæããªãïŒåœŒå¥³ã«ãã®ãªã³ã¯ãäžããããšãã§ããŸãã ãããè¡ãããã«ãOOPã®çšèªã§ã¯ããã£ãã«ã¯ã¡ãã»ãŒãžãã¢ãªã¹ã«éä¿¡ãããã©ã¡ãŒã¿ãŒãšããŠãããžã®ãªã³ã¯ãæž¡ããŸãã
ããã¯ããã£ãã«ã«ã¢ãªã¹ãšããã®äž¡æ¹ãžã®å¿ é ã®åç §ãããå Žåã«ã®ã¿çºçããŸãã ã¢ãªã¹ãžã®åç §ã¯ããã®ã¡ãã»ãŒãžã®éä¿¡ãèš±å¯ããã¯ãã§ãã ãã£ãã«ã¯ãããã«ã¢ã¯ã»ã¹ããæš©éãã圌女ãæã£ãŠããããã倧ããç¯å²ã«ç§»ãããšã¯ã§ããŸããïŒå€åãå°ãªãç¯å²ã§ãããããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãïŒã
ã¢ãã«ã®èŠ³ç¹ããèŠããšãã°ããŒãã«å€æ°ã®å šäœïŒåŸæ¥ã®ãã¡ã€ã«ã·ã¹ãã ãå«ãä»»æã®åœ¢åŒïŒã¯ã誰ã§ãã¢ã¯ã»ã¹ã§ããåäžã®ãªããžã§ã¯ãã§ãã ãã®ãããªãªããžã§ã¯ãã®ååšã¯ã¢ãã«ãšççŸããŸããããã·ã¹ãã ã®ã»ãã¥ãªãã£ã®ç©Žã§ãã æšæºJavaã©ã€ãã©ãªã§ã®ã·ã³ã°ã«ããŒã³ã®è² è·ãšã°ããŒãã«ãã¡ã€ã«ã·ã¹ãã ã¢ã¯ã»ã¹ã¯ã J-Kernelã·ã¹ãã ã®äœæè ã«ãšã£ãŠæ·±å»ãªåé¡ã«ãªã£ãŠããŸã ã .NETãã©ãããã©ãŒã ã«ãåãåé¡ãååšããŸãã
ã芧ã®ããã«ãäžèšã®ã«ãŒã«ã¯ã·ã¹ãã å šäœã«ã¢ã¯ã»ã¹æš©ãã©ã®ããã«åé ã§ãããã説æããŠããŸããã以åã«ä»äžãããæš©éãã©ã®ããã«èª¿æŽã§ãããã¯èª¬æããŠããŸããã å®éãå¿ é ãªã³ã¯ã«åºã¥ãã»ãã¥ãªãã£ã¢ãã«ã¯ãäžåºŠä»äžãããæš©å©ãéžæã§ããªããªããšããä»®å®ããå§ãŸããŸãã ãã®ããããã£ã¯ã¢ãã«ã«å¯Ÿããæ¹å€ã®åå ã§ãããå®éã«ã¯åé¡ã§ã¯ãããŸããïŒ PDF ïŒã
ããã¡ã€ã«ãèªã¿åããæš©å©ãäžãã代ããã«ãããã°ã©ã ã¯ãã¢ã¯ã»ã¹ãåãæ¶ããããŸã§ãã¡ã€ã«ãèªã¿åããæš©å©ãäžããããŸãã ããã¯ããããã·ãªããžã§ã¯ãã䜿çšããŠå®è£ ãããŸãã 以äžã®ã³ãŒãã¯ããã®ã¡ã«ããºã ãéåžžã«åçŽåããã圢åŒã§ç€ºããŠããŸãã
using System; using System.Collections.Generic; namespace CapRevokeDemo { // , interface IFile { char read(int index); int length { get; } } // , interface IApplication { void openFile(IFile reader); } class FileAlreadyExistsException : Exception { } class FileNotFoundException : Exception { } class AccessRevokedException : Exception { } // , class FileManager { public FileManager() { files_ = new Dictionary<string, IFile>(); openedFiles_ = new Dictionary<string,List<FileProxy>>(); } public void addFile(string fileName, IFile reader) { if (files_.ContainsKey(fileName)) { throw new FileAlreadyExistsException(); } files_.Add(fileName, reader); } public void openFileInApplication(string fileName, IApplication app) { IFile reader; if(!files_.TryGetValue(fileName, out reader)) { throw new FileNotFoundException(); } FileProxy proxy = new FileProxy(reader); List<FileProxy> proxies; if(!openedFiles_.TryGetValue(fileName, out proxies)) { proxies = new List<FileProxy>(); openedFiles_.Add(fileName, proxies); } proxies.Add(proxy); app.openFile(proxy); } public void revokeAccessToFile(string fileName) { List<FileProxy> proxies; if(openedFiles_.TryGetValue(fileName, out proxies)) { foreach(FileProxy proxy in proxies) { proxy.revokeAccess(); } openedFiles_.Remove(fileName); } } // -, . private class FileProxy : IFile { public FileProxy(IFile file) { file_ = file; } public char read(int index) { if(file_ == null) { throw new AccessRevokedException(); } return file_.read(index); } public int length { get { if(file_ == null) { throw new AccessRevokedException(); } return file_.length; } } public void revokeAccess() { file_ = null; } private IFile file_; } private Dictionary<string, IFile> files_; private Dictionary<string, List<FileProxy> > openedFiles_; } // class Program { class DemoFile : IFile { public DemoFile(string data) { data_ = data; } public char read(int index) { return data_[index]; } public int length { get { return data_.Length; } } private string data_; } class DemoApp : IApplication { public void openFile(IFile file) { file_ = file; index_ = 0; } public void closeFile() { file_ = null; index_ = 0; } public void read() { char c = file_.read(index_++); System.Console.WriteLine("c = {0}", c); } private IFile file_ = null; private int index_ = 0; } public static void Main(string[] args) { try { FileManager manager = new FileManager(); manager.addFile("file", new DemoFile("SECRET")); DemoApp app = new DemoApp(); manager.openFileInApplication("file", app); app.read(); app.read(); app.read(); manager.revokeAccessToFile("file"); app.read(); } catch(Exception e) { System.Console.WriteLine("Exception: {0}", e.Message); } } } }
ç§ã¯ãã®ã¢ãããŒãããã¢ã¯ã»ã¹ãåãæ¶ãå¯èœæ§ãåãã£ãŠäžè©±ããããªããã°ãªããªããšããçµæã«æ³šç®ãããã§ãã ããã«å¯ŸããŠå¯Ÿçãè¬ããããŠããªãå ŽåãäºåŸã«ãããè¡ãããšã¯äžå¯èœã§ãïŒ
ãããã·ãªããžã§ã¯ãã¯ãæéã ãã§ãªããä»ã®ãã©ã¡ãŒã¿ãŒã«ãã£ãŠãã¢ã¯ã»ã¹ãå¶éããããã«äœ¿çšã§ããŸãããã¡ã€ã«ã®äžéšã«ã®ã¿ã¢ã¯ã»ã¹ãæäŸããããèªã¿åã/æžã蟌ã¿ã¢ã¯ã»ã¹æš©ãããå Žåã¯ãèªã¿åãå°çšã¢ã¯ã»ã¹ãèš±å¯ãããããã·ãªããžã§ã¯ããäœæã§ããŸãã ãã®ããã«ããŠããµããžã§ã¯ãé åã«åºæã®ã¢ã¯ã»ã¹æš©ãèšå®ã§ããŸããããã¥ã¡ã³ãã«ã³ã¡ã³ããæ®ãããšã¯ã§ããŸãããããã¥ã¡ã³ãèªäœã®å 容ãå€æŽããããšã¯ã§ããŸããã åŸæ¥ã®ã·ã¹ãã ã§ã¯ããããã®æäœãåé¢ããããšã¯ã§ããŸãã-OSã¬ãã«ã§ã¯ãã©ã¡ãããã€ããªãã¡ã€ã«ã®å€æŽã®ããã«èŠããŸãã
ãããã·ãªããžã§ã¯ãã¯ååž°çã«é©çšã§ããŸãã1ã€ã®ãªããžã§ã¯ãã¯ãã®æš©å©ã®äžéšãå¥ã®ãªããžã§ã¯ãã«å§ä»»ãã2çªç®ã¯3çªç®ã«å§ä»»ããŸãã åã¹ãããã§ãæš©å©ã®äžéšã®ã¿ã転éãããæ®ãã¯ãããã·ãªããžã§ã¯ãã䜿çšããŠåæãããŸãã æ¥ç¶ããšã«ã䜿çšã§ããç¹æš©ã®éã¯ãŸããŸãå°ãªããªã£ãŠããŸãã ããã¯ãã¢ã¯ã»ã¹èš±å¯ã®æžè¡°ãšåŒã°ããŸãã
åœé ã»ãã¥ãªãã£
å§ä»»ãªã³ã¯ã«ã¯ãåœé ããã®ä¿è·ãšããéèŠãªããããã£ãå¿ èŠã§ãã äžèšã®èŠåã«åŸã£ãŠæäŸãããªãã£ãå¿ é ãªã³ã¯ããæšæž¬ãããããšã¯äžå¯èœã§ãã
èšè¿°åã®å Žåããã®ããããã£ã¯1ã€ã®ããã»ã¹ã®ãã¬ãŒã ã¯ãŒã¯å ã§ã¯æ£ãããããŸãããèšè¿°åã³ãŒããçæããåçãç¥ã£ãŠããã°ã蚱容å¯èœãªæéå ã«æ£ããèšè¿°åãäœæããããšãã§ããŸãã ã€ãŸã ãã¹ãããã»ã¹ã«èªã¿èŸŒãŸãããã©ã°ã€ã³ã¯ããã¹ããã©ã°ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠã¢ã¯ã»ã¹ã§ããªãã£ãããŒã¿ã«ã¢ã¯ã»ã¹ã§ããŸãã
ãã¡ã€ã«ãã¹ã®å Žåããã®ããããã£ã¯ååãšããŠæºããããŠããŸãã-ã³ãŒãã«ãCïŒ\ Windows \ system32 \ drivers \ etc \ hostsããšèšè¿°ããã ãã§ãéèŠãªã·ã¹ãã ãã¡ã€ã«ãžã®ãªã³ã¯ãæ¢ã«ãããŸãã
å¿ é ãªã³ã¯ãåœç©ããä¿è·ããæ¹æ³ã¯ïŒ ããã確å®ã«ããããã«
- èšè¿°åãšããŠã®è³æ Œ-ããã»ã¹ã¯ãªããžã§ã¯ãã§ãã å¿ é ãªã³ã¯ã䜿çšãããã¹ãŠã®äœæ¥ã¯ãOSã®æ©èœãä»ããŠå®è¡ãããŸãã OSã¯ããã»ã¹ããšã«ãçŸåšå©çšå¯èœãªå¿ é ãªã³ã¯ã®ãªã¹ããä¿åããŸãã ããã»ã¹ã¯ããã®ãªã³ã¯ã察å¿ãããªã¹ãã«ããå Žåã«ã®ã¿ãå¿ é ãªã³ã¯ã§æäœãå®è¡ã§ããŸãã
- æå·åããŒã« -ãã®ã¢ãããŒãã¯ããªã³ã¯ãåœé ã§ããªããšãã絶察çãªä¿èšŒãäžãããã®ã§ã¯ãªãã代ããã«å¿ èŠãªæå°éã®åœé ã®è€éããæäŸããŸãã ãã®ããã°ã©ã ã¯ãOSæ©èœãžã®æå·åãããå¿ é ãªã³ã¯ãæäŸããŸããOSæ©èœã¯ããã®æ£ç¢ºæ§ã確èªãã䜿çšåã«åŸ©å·åããŸãã å¿ é ãªã³ã¯ã®æå·å/埩å·åã®ãªãŒããŒãããã倧ããããããã®æ¹æ³ã¯åããã·ã³å ã§ã»ãã¥ãªãã£ãå®è£ ããããã«äœ¿çšãããã®ã§ã¯ãªãã ãããã¯ãŒã¯ã·ã¹ãã ã§äœ¿çšãããŸã ã
- ãã¹ã¯ãŒãä»ãå¿ é ãªã³ã¯ïŒè±èªã®ãã¹ã¯ãŒãæ©èœïŒ -åã®2ã€ã®æ¹æ³ã®ãã€ããªããïŒè©³çŽ°ã¯ãã¡ããšãã¡ã ïŒã è³æ Œæ å ±ãªã³ã¯ã¯ãèå¥æ å ±ãšãã¹ã¯ãŒãã§æ§æãããŸãã ãã¹ã¯ãŒãã¯ãã·ã¹ãã ã«ãã£ãŠçæããããããã®ã©ã³ãã ãªã·ãŒã±ã³ã¹ã§ãã ãã¹ã¯ãŒããæšæž¬ãã確çã¯2 -kã§ãkã¯ãã¹ã¯ãŒãã®é·ãã§ãã ã·ã¹ãã ã¯ããã¹ã¯ãŒããšèå¥æ å ±ãé¢é£ä»ããèŸæžãä¿åããŸãã è³æ Œæ å ±ãªã³ã¯ã®ãã¹ã¯ãŒããèŸæžã®ãã¹ã¯ãŒããšäžèŽããå Žåãè³æ Œæ å ±ãªã³ã¯ã¯æ£ãããšèŠãªãããŸãã
- ã³ãã³ã/èšèªã·ã¹ãã ã®ã¬ãã«ã§ã®ä¿è· -éåžžãã¿ãŒã²ãããã·ã³ã®ã³ãã³ãã·ã¹ãã ã«ã¯ãä»»æã®ãããã·ãŒã±ã³ã¹ãå¿ é ãªã³ã¯ãšããŠè§£éã§ããã³ãã³ããå«ãŸããŠããªããããã®ãããªã³ãã³ãã¯ç¹æš©ããããã«ãŒãã«ã®ã¿ãã¢ã¯ã»ã¹ã§ããŸãã ãã®å Žåãã¿ãŒã²ãããã·ã³ã¯ãå®ããã€ã¹ïŒ Plessey System 250 ã IBM System / 38 ãRSRE FLEX Computer SystemïŒãŸãã¯ä»®æ³ãã·ã³ïŒ J-Kernelãããžã§ã¯ãã¯JVMã«åºã¥ããŠå®è£ ãããŸãïŒã®ããããã§ãã
é£èŒ
å®çšçãªé©çšæ§ã®ããã«ãå¿ é ãªã³ã¯ã«åºã¥ããŠã»ãã¥ãªãã£ãå®è£ ããã·ã¹ãã ã¯ãåŸè ã®ã·ãªã¢ã«åããµããŒãããå¿ èŠããããããã¯éåžžã«éèŠãªã¿ã¹ã¯ã§ãã ã·ã¹ãã ã¯ãå¿ é ãªã³ã¯ã®ã·ãªã¢ã«åãããã€ã¡ãŒãžãæ¹ãããããŠããªãããšããªã³ã¯ãæããªãœãŒã¹ããŸã ååšããŠããããšãéã·ãªã¢ã«åãå®è¡ããããã»ã¹ãå®éã«ã·ãªã¢ã«åãå®è¡ããããã»ã¹ã®åŸ©æŽ»ã§ããããšã確èªããå¿ èŠããããŸãã
ããããã¹ãŠã®åé¡ã«å¯Ÿããåªãããœãªã¥ãŒã·ã§ã³ãšããŠã ééçãŸãã¯çŽäº€æ°žç¶ æ§ã®ã¡ã«ããºã ã確ç«ãããŠããŸãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯ç¶æ ã®ä¿åãšåŸ©å ããã¹ãŠè¡ããã¢ããªã±ãŒã·ã§ã³ã¯æœè±¡æ°žç¶åäžã¬ãã«ã¡ã¢ãªã§åäœããŸãã ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã¯æã ããã¹ãŠã®ããã»ã¹ã®ç¶æ ã®å®å šãªã¹ãããã·ã§ããããã£ã¹ã¯ã«ä¿åããèµ·åæã«ãæ£åžžã«ä¿åãããææ°ããŒãžã§ã³ãã¡ã¢ãªã«ããŒãããŸãã åæã«ãããã°ã©ã ã¯ãã£ã¹ã¯ã«çŽæ¥ã¢ã¯ã»ã¹ã§ãããããã°ã©ã ã«ãã£ãŠãã£ã¹ã¯äžã®ã·ãªã¢ã«åãããã€ã¡ãŒãžãåœé ããããšã¯ã§ããŸããã
æç
ã¢ãªã¹ãããã«ãã£ãŠäœæãããããã°ã©ã ã䜿çšããŠããŒã¿ãåŠçãããšããŸãã ããã¯ã誰ã圌ã®ããã°ã©ã ã®å éšã«ã¢ã¯ã»ã¹ããããªãã ããã«ãããã¯èªåã®ããã°ã©ã ãããŒã¿ã§ãã©ã¡ãŒã¿ãŒåããããšãã§ããŸãã ããã¯ãå®è¡å¯èœã³ãŒããå«ããã€ãã®é åãšããŠã§ã¯ãªãããªããžã§ã¯ããšããŠããã°ã©ã ãã¢ãªã¹ã«æäŸããæ©äŒã§ãã ããããã¢ãªã¹ã¯ããã®ããã°ã©ã ãæ©å¯ããŒã¿ãéšå€è ã«è»¢éããªãããšã確èªããããšèããŠããŸãã ãŸãããªããžã§ã¯ãã¯ä»ã®ãªããžã§ã¯ããžã®ãªã³ã¯ãä¿åããããä»ã®ãªããžã§ã¯ããèªã¿åããå¯å€ç¶æ ãæã€ããšãã§ããŸãã ãã®å Žåã®ãªããžã§ã¯ãã®äœ¿çšã¯ãã¢ãªââã¹ã®å®å šã«ãšã£ãŠå±éºã§ãã
Aliceã«æž¡ããããªããžã§ã¯ãã«å¶éã課ãããšã¯ããã®ã·ããªãªã§Aliceããã®ãªããžã§ã¯ããå®å šã«äœ¿çšã§ããããã«ããããšãããªããžã§ã¯ãã®å¶éãšåŒã³ãŸãã
äžèšã®ã¢ãã«ã®æ çµã¿å ã«éã蟌ããããšãå¯èœã«ããç¹èš±ååŸæžã¿ã®ãœãªã¥ãŒã·ã§ã³ããããŸãã ãã ãããã®ãœãªã¥ãŒã·ã§ã³ã®äœæè èªèº«ãææããŠããããã«ããããšã¬ã¬ã³ãã§ã·ã³ãã«ãªãœãªã¥ãŒã·ã§ã³ã¯ãæšç§»çäžå€ã®å±æ§ãå°å ¥ããããšã§ããããã®æ£ç¢ºæ§ã¯ã·ã¹ãã ã«ãã£ãŠä¿èšŒãããå¿ èŠããããŸãã ããã«ãããããã°ã©ã ãåã«ã¢ãªã¹ã®æ©å¯ããŒã¿ãæžã蟌ãå Žæãæããªãããšãä¿èšŒãããŸãã ãã®å ŽåãAliceãå¯å€ç¶æ ã®ãªããžã§ã¯ããå¿ èŠãšããå ŽåãAliceã«è»¢éããããªããžã§ã¯ãã¯ãã¡ã¯ããªãŒãšããŠèšèšããããã¡ã¯ããªãŒã«å«ãŸããããŒã¿ãšAliceãæäŸããããŒã¿ããæ°ãããªããžã§ã¯ããäœæããå¿ èŠããããŸãã
ãããã«
å¿ é ã®åç §ã»ãã¥ãªãã£ã¢ãã«ã«ãããçžäºã«çãããã³ã³ããŒãã³ããå®å šã«éä¿¡ã§ããŸãã ãã®ã¢ãã«ã«ãããçµæãæããããšãªããæªç¥ã®ãœãŒã¹ãããã·ã³äžã§ä»»æã®ã³ãŒããå®å šã«å®è¡ã§ããŸããããã¯ãåŸæ¥ã®ã·ã¹ãã ã§ã¯èããããŸããã ãã®ã¢ãã«ã¯ãä»»æã®ç¹æš©ã§ã·ã¹ãã ã®ä»»æã®ã³ã³ããŒãã³ãã§äœ¿çšã§ããŸãããåŸæ¥ã®ã·ã¹ãã ã§ã¯ãæ°ãããŠãŒã¶ãŒãšã°ã«ãŒããäœæããã«ã¯ç®¡çè ç¹æš©ãå¿ èŠã§ãã
ç§ã®æèŠã§ã¯ãå¿ é ãªã³ã¯ã«åºã¥ãã»ãã¥ãªãã£ã¯ãOOPãèšèªããŒã¹ã®ã»ãã¥ãªãã£ãããã³çŽäº€æ°žç¶æ§ãšãšãã«æã䟿å©ãã€ãšã¬ã¬ã³ãã«å®è£ ãããŸãã ããããã¹ãŠã®æŠå¿µãå®è£ ãããã©ãããã©ãŒã ããOSã®é²åã®æ¬¡ã®ç« ãæžããšä¿¡ããŠããŸãã ãããä»ã®ãšãããå¿ é ãªã³ã¯ã«åºã¥ãã»ãã¥ãªãã£ã¯ãå®éšçãªOSã®éåœã®ãŸãŸã§ãã å¿ é ãªã³ã¯ã®ã¢ã€ãã¢ã«èªè ãèå³ãæã£ãŠããã®ãããªãããžã§ã¯ãããã¹OSã«ãªãæ¥ãå°ãã§ãè¿ã¥ããããšãé¡ã£ãŠããŸãã
åç §ïŒ
- ããŒã¯ã»ã¹ãã£ãŒã°ã©ãŒçã æ©èœããŒã¹ã®ã»ãã¥ãªãã£ã®æŠèŠ
- Jã«ãŒãã«
- ããŒã¯ã»Sã»ãã©ãŒä» ç Žå£ãããèœåã®ç¥è©±[PDF]
- N. A.ãªãªãã¡ãŒãVãG.ãªãªãã¡ãŒã ãããã¯ãŒã¯ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã 第6ç« ãã€ã¯ãã«ãŒãã«ããã
- ã¿ãã»ã©ãã¹wiki
- CunninghamïŒCunninghamãInc. wikiã ãã¹ã¯ãŒãæ©èœã¢ãã«
- ããã«ãããŒãºã ãã¹ã¯ãŒãæ©èœïŒãã¹ã¯ãŒãæ©èœã·ã¹ãã ããã¯ã«ã以éãžã®é²å
- ããŒã ã»ããŒãã£ã æ··ä¹±ãã代ç人ïŒãŸãã¯æ©èœãçºæãããçç±ïŒ
- ããŒã¯ã»Sã»ãã©ãŒã KeyKOSãã¡ã¯ããªãŒ