ä½ã¬ã¤ã¤ã¼ã®æ©ãæ¹
ãã®è¨äºã¯ Kobe University Advent Calendar25æ¥ç®ã®è¨äºã§ãã
ä½ã¬ã¤ã¤ã¼æè¡(å¾è¿°)ãããããå¦ã³ãã人åãã®å
¥éè¨äºã§ãã èªèº«ã®çµé¨ãè¸ã¾ããããå¤ãã®äººéã«ãã®ã¬ã¤ã¤ã¼ã«èå³ãæã£ã¦ã»ããã¦æ¸ãã¾ããã
決ãã¦åè«ããã°ãã¦Advent calendarã®ãã¿ãä½ããªãã£ãããã§ã¯(ry
ãªããããªè¨äºãæ¸ããã
ããããã·ã¹ãã ããã°ã©ãã³ã°ã®ãããªä½ã¬ã¤ã¤ã¼(ã¨è¨ã£ã¦å·®ãæ¯ããªã)ã¸ã£ã³ã«ã£ã¦ä¸ä½ä½ããå§ããã°è¯ãã®ããã¾ãã¡ãã³ã¨æ¥ãªãããä½ãé¢ç½ãã®ããåãããªãã¨æããã¦ããäºãå¤ãã¨æãã¾ãã
ã«ããããããä½ã¬ã¤ã¤ã¼ã®é
åãå¦ã³æ¹ã®æéã¿ãããªç©ã示ãããããããå
¥éè¨äºã£ã¦ããªãå°ãªããã§ãããã
æ¬è¨äºã¯ããããã·ã¹ãã ããã°ã©ãã³ã°ãå§ãããæ¹ããæ¢ã«ããã£ã¦ã¿ããä¸ã
å
ãè¦ãã¦ããªããå°æ¥ä½ã®å½¹ã«ç«ã¤ã®ãä¸å®ã¨ããæ¹éã«èªãã§ããã ããã¨å¹¸ãã§ãã
ã¨ã¯è¨ãç§èªèº«ãçé¢ç®ã«åå¼·ãå§ãã¦ã¾ã 2å¹´ç¨ã®è¥é ã§ããããããè¨äºãæ¸ãã«ã¯ææå°æ©ããªã¨ãæãã¾ãããã
ã¾ãããã¨ã ã£ã¦ãã®æ°ã«ãªã£ãæããæ¸ããªããã§ã...
ç·©ãç®ã§ãããããå¦ç¿æ¹æ³ãããã®ããç¨åº¦ã§è¦ã¦ããã ããã°ã¨ã
1. ç®æ¬¡
æ¬è¨äºã§ã¯ä»¥ä¸ã®ãããªãã¼ãã«ã¤ãã¦ãåèè³æãªã©ãæ²ç¤ºããªããå¦ç¿æ¹æ³(ã®ä¸ä¾)ã示ãã¦ããã¾ãã
(ã©ãããã"ä½"ã¬ã¤ã¤ã¼ãªã®ãã«ã¤ãã¦ã¯äººããããéã£ãæè¦ãããã¨æãã¾ãããã¨ããããä»åã¯ä»¥ä¸ã«ç¤ºããããªã¸ã£ã³ã«ãä½ã¬ã¤ã¤ã¼ã¨å¼ã¶ãã¨ã«ãã¾ã)
æè¡çãªå
¥éè¨äºã§ã¯ãªãäºã«æ³¨æãã¦ãã ããã
â»ç®æ¬¡ã®æ¬ãã¯ãªãã¯ããã¨åç« ã«é£ã¶ãã¨ãã§ãã¾ãã
2. ããããããããã£ããã¯
ã·ã¹ãã ã½ããã¦ã§ã¢ãåããä½ã¬ã¤ã¤ã¼æè¡ã¨ããã®ã¯ããããç¸ã®ä¸ã®åæã¡çåå¨ã§ããéç«ã£ã¦ç®ç«ã¤ãããªã·ã¹ãã ã§ã¯ããã¾ããã
ã¾ãæåã¯èª°ãOSã¨ãã³ã³ãã¤ã©ãªãã¦èªåã§ä½ããç©ãªãã¦æã£ã¦ãããªãããLinuxã¨ãgccã¿ãããªãã«ã§ããè¤éããã¸ã§ã¯ããªãã¦æºãããã¨ã
æããªãããã§ãããã©ããããã£ããã§ãã®éã«å¼ãããè¾¼ã¾ãããã¨ããã¨ãå¤ãã®å ´åã¯æ¢ã«å¼ãããè¾¼ã¾ãã人éã
ä½ã£ãç©ããæ¸ããæ¸ç±ããã¼ã¸ãªã©ãè¦ã¦ã¤ããã¦ãããã±ã¼ã¹ãå¤ãã®ããªãã¨æãã¾ãã(ããç°¡åãªOSããããªãæ¡å¤ãµã¯ãã¨ä½ãã¡ããã®ãã¨æåæããããã¨ã)
ç§ã®å ´åã¯2å¹´åã«ã»ãã¥ãªãã£ãã£ã³ãã¨ããæã«è¡ã£ã¦ãOSããVMããä½ã£ã¦ãã人éãè¦ã¦ãããã¾ããã彿ã¯è¾ããã¦Cè¨èªãæ¸ããç¨åº¦ã§intelã®Core i7ã¨ã第4ä¸ä»£ã¨ãèãã¦ãä½ããç¶æ
ã ã£ãã®ã§ã
ã¾ãä½ããã£ã¦ãã®ãã¯ãã£ã±ãåããã¾ããã§ããããè¡æã¯å¤§ããã£ãã§ãããããããæå³ã§ã¯ãã®è¨äºãå¦ç¿ã®æ¹é決ãã®åèã«ãã¦é ãã¦ãè¯ãã§ããã
èµ·çå¤ã¨ãã¦ä½ããã®åºæ¿ã«ãªã£ã¦é ãã ãã§ãå¬ããã§ã
ãã¨ãã®è¨äºã¯ãã¼ããããçãªç©ã§ã¯ãªããè¾æ¸çã«å¼ãã¦é ããã¨ãæ³å®ãã¦ãã¾ãã
ã¤ã¾ãããããæ¸ãã¦ããåèæç®ããè³æããã¯ãèªåãããããäºã«å¿
è¦ã«ãªã£ããã®æã«é©æåèã«ãã¦ããã ããã°ã¨æãã¾ãã
(æç´ã«é ããé çªã«ãã£ã¦ããã®ã¯ãã¾ããããªãã¦ããã®è¨äºã¯ç§ããã®æã
ã§ãä½ã¨ãªãããããã¨æã£ããç ç©¶ã§å¿
è¦ã«ãªã£ããããéã«èªã¿ããã è³æãæ²ç¤ºãã¦ããã ãã§ãã)
3. 大éæãªå¦ç¿æ¹æ³
å¦ç¿æ¹æ³ã¨ãã£ã¦ã人ãããããªã®ã§èªåã«åãããæ¹ã§è¯ãã¨æããã§ãããã¾ãã©ã®ã¸ã£ã³ã«ãããã«ããã¨ã«ããæãåããã¦èªåã§ä½ã£ã¦ã¿ãã®ãä¸çªè¯ãã¨æãã¾ãã
ã·ã¹ãã ã½ããã¦ã§ã¢ã£ã¦ãä¾ãã°OSã¨ãä»®æ³ãã·ã³ãã©ãããä»çµã¿ã§åãã¦ãã¦...ã¨ããåºç¤ç¥èãå¿
è¦ã§ããããã以ä¸ã«"å®éã«ãããèªåã§ä½ããã"ã"æ¢åæè¡ã«æãå
¥ãã¦ããã¯ã§ããã"
ã¨ããé¨åãæè½ã¨ãã¦ã¯ä¸çªéè¦ãããã¨æãã¾ããè¨ãã¯æããè¡ãã¯é£ã ã¨è¨ãã¾ãããä½ã¬ã¤ã¤ã¼ã®ä¸çã¯ã¾ãã«ãã®è¨èãçæããã¸ã£ã³ã«ã§ãçå±ã®ä¸ã§ã¯ããã§ãããã¯ãã ã¨è¨ãã®ã¯ç°¡åã§ããã
å®éã«å®è£
ãã¦ç©ã«ããã¾ã§ãé常ã«å¤§å¤ã§ãããã ãããªãæãåããã¦ã¬ãªã¬ãªä½ãå§ããã®ãé£ããã®ã§ãåºæ¬çã«ã¯
æ¢åã®ããã¸ã§ã¯ããè§£æãã¦ã¿ã -> (æ¹é ãã¦éãã§è¦ã) -> èªåã§æ¸ãã¦ã¿ã
ã®ç¹°ãè¿ãã«ãªãã¨æãã¾ãã
ãã ãä¸ã®ä¸ã«ã¯æ¢åããã¸ã§ã¯ããªãã¦è§£æããªãã¦ããæä½éã®ãã¼ãã¦ã§ã¢ã®ä»æ§æ¸ã ãã§ãããªãå¤§è¦æ¨¡ãªã³ã¼ãã鬿ã§ãã人ãããã®ã§ããããã人éã¯æå¾ã®ã¹ãããã ãã§è¯ãã®ããªãã
4. OS(Operating System)
æ¬ç¯ã¯OSã®èªä½ãããã¯ææ³ã«ã¤ãã¦è¿°ã¹ã¾ãã
OSã¨ããã¨é常ã¯å人ç¨ã®ãã¹ã¯ãããããµã¼ãã¼ãªã©ã«ã¤ã³ã¹ãã¼ã«ãããç©ãæãæµ®ãã¹ã¾ãããçµã¿è¾¼ã¿ã®ä¸çã ã¨ä¾ãã°ã²ã¼ã æ©ã ã£ããã¹ãã¼ããã©ã³ãå§ãã¨ããå種端æ«ã§ãã£ãã
ã«ã¼ã¿ã¼ã§ãã£ãããçµæ§æ´»èºã®å ´ã¯åºãã¸ã£ã³ã«ã§ãã
ããå°ãå
·ä½ä¾ã¨ãã¦ãä¾ãã°Playstation4ã¯Orbis OSã¨ããFreeBSDãã¼ã¹ã®ç¬èªOSãSony Computer Entertainment(ä»ã¯SIE)ã®æã«ãã£ã¦éçºããã¦ããã
Googleã®Androidã¯Linuxããã¼ã¹(ã¨è¨ãã¨ã¡ãã£ã¨æããããã§ãã)ã«ãã¦ãããã¨ãã¾ãå®å
¨ã«ç¬èªãªç©ããforkã¾ã§ããããã¨ããã¾ãã
ãã ãããªããæ¢åã®OSãããã¯ããã®ã¯å°ãé£ãããããããªãã§ããããã俺ã¯èªåã§OSãä½ããããã ã¨ãã人ãããã§ãããã
ãããã«ããæåã¯å·åå çã®30æ¥OSæ¬ãèªãã§ãå°ããªOSãä½ã£ã¦ã¿ããã¨ããããããã¾ãã
â 4-1.ã30æ¥ã§ã§ããï¼ãOSèªä½å ¥éã
30æ¥OSæ¬ã¯intelã®CPUã§ã»ã°ã¡ã³ããTSSãæ´»ç¨ãã¦OSãä½ã£ã¦ããã¾ãã
intelã ããããªããä»ã®ã¢ã¼ããã¯ãã£ã§ãOSãä½ã£ã¦ã¿ããæ¹ã«ã¯ä»¥ä¸ãããããã§ãã
â 4-2. ã12ã¹ãããã§ä½ã çµè¾¼ã¿OSèªä½å ¥éã
ããã§OSã®åºæ¬æ§é ã¿ãããªã®ã¯ä½ã¨ãªãåããã¨æããã§ãããä¾ãã°MMUã«ãããã¼ã¸ã³ã°æ©æ§ã ã£ããAPICã ã£ããACPIã ã£ããã¨éè¦ãªãã¼ãã¦ã§ã¢æ©æ§ã¯
ã¾ã ã¾ã ããã¾ããç¾å®ä¸çã®OSãæ¢æ¤ãã¦è¡ã段éã§ãããã¯ã»ã¼å¿
é ã¨ãªã£ã¦ããã®ã§ã仿§ãå¦ãã§åããã¦ã¿ãäºããããããã¾ãã
ã¾ãintelã®ããã¥ã¢ã«ãè¦ãã°å
¨ã¦è¼ã£ã¦ããã®ã§ããããããªã1ããèªãã®ã¯ããã©ããããããªãã®ã§ã¾ãã¯ä»¥ä¸ã®ãµã¤ããªã©ã§ãããã®ãã¼ãã¦ã§ã¢ã®è¨å®æ¹æ³ãåããæ¹ãå¦ãã§ã¿ãã®ãããããã§ãã
â 4-3. ãï¼ããä½ãOSéçºã
â 4-4. ãOSDev\.orgã
Expanded Main Page - OSDev Wiki
ã§ãOSã®éçºã«ã ãã ãæ
£ãã¦ããã¨ãä»åº¦ã¯æ¢åã®OSã®å®è£
ãçä¼¼ãã¦ã¿ããããã¯ãã¦ã¿ãããªãããããã¾ããã
ãããªãLinuxã*BSDãèªãã§ã¿ã¦ãè¯ãã¨ã¯æãã¾ãããã¯ã³ã¯ãã·ã§ã³ç½®ãç®çã§ä»¥ä¸ã®æ¸ç±ããããããã¾ãã
â 4-5. ãã¯ããã¦ã®OSã³ã¼ããªã¼ãã£ã³ã° ââUNIX V6ã§å¦ã¶ã«ã¼ãã«ã®ããã¿ã
UNIX V6ã¨ããé常ã«ç°¡åãªã«ã¼ãã«ãè§£èªãã¦ã¿ããã¨ããç©ã§ãUNIXã¨è¨ãã©æå¤ã¨åç´ã«å®è£
ããã¦ããäºã宿ã§ãã¾ãã(ã¾ãåæãã¼ã¸ã§ã³ã ããã§ãã)ã
ããããããªãèªåã§ä½ããããã¨OSã«å¯¾ããè¦æ¹ãããã£ã¨å¤ãã£ã¦ããæ¸ç±ã§ãããããè¯ãæ¬ã ã¨æãã¾ãã
ãªãã¨ãªãOSã«ãæ
£ãããããªã¨æã£ããããããLinuxã*BSDãããã¯ãã¦ã¿ãããã©ã¤ããæ¸ãããããã®ãé¢ç½ãã§ãããã
Linuxã®è§£èªã ã¨ä»¥ä¸ãããããã§ãã
â 4-6. ãLinuxã«ã¼ãã«2.6è§£èªå®¤ã
â 4-7. ã詳解Linuxã«ã¼ãã«ã
â 4-8. ãLinux Kernel Hack Japan (LKH-jp)ã
LKH-jpの概要 - LinuxKernelHackJapan
ã ããããã®3ã¤ã§Linux2.6ã¯èªããã¨ãã§ãã¾ãã(ãã¨Linuxã«ã¼ãã«è§£æå
¥éã¨ããæ¸ç±ãããããã§ãããç§ã¯èªãã ãã¨ããã¾ãã)
2.6ã£ã¦ããªãå¤ãã§ãããæè¿ã®ãã¼ã¸ã§ã³ã«ãé©å¿å¯è½ãªåºæ¬çãªè¨è¨ææ³ãã¢ã¼ããã¯ãã£ãå¤ãè¼ã£ã¦ãããé常ã«å½¹ã«ç«ã¡ã¾ãã
ã¾ãããå°ãæ°ãããã¼ã¸ã§ã³ã®Linuxãè§£æããè³æãããã¾ãã
â 4-9. ãæ°è£ æ¹è¨ç Linuxã®ãã¼ãããã»ã¹ãã¿ãã
tatsu-zine.com
ãã®æ¬ã¯Linux3.3.4ã®64bitãã¼ã¸ã§ã³ã®ã³ã¼ãã®ãã¡ã主ã«grubããã«ã¼ãã«ãã¼ãã¼ãéãã¦Linuxããã¼ãããåæåãè¡ãæã¾ã§ã
追ã£ã¦ããç©ã§ãã
grubã®ã³ã¼ã解説ã¾ã§è¼ã£ã¦ãã¦ãã¼ãããã»ã¹ãäºç´°ãã«è¿½ããã¨ãã§ãã¾ãã
â 4-10. ãLinuxã«ã¼ãã«ãã½ã¼ã¹ã³ã¼ãããèªã¿è§£ãã(æªçºå£²)
æ¸ç±ãLinuxã«ã¼ãã«ãã½ã¼ã¹ã³ã¼ãããèªã¿è§£ãã(å·¥å¦ç¤¾)ã®è¦æ¬èªãå±ãã¾ãããåºç䏿³ã®ãæä¸ã«ãé¢ããããç´ã§ã®æ¬ã«ãªãã¾ãããã²æ¸åºã§æã«åã£ã¦ã¿ã¦ãä¸èº«ãè¦ã¦ããããã¨ããããªã¨æãã¾ããè³¼å ¥ç¹å ¸ã¨ãã¦ãã¦ã³ãã¼ããµã¼ãã¹ãããã¾ãã#å·¥å¦ç¤¾ #io40th pic.twitter.com/tiGVKaD2HB
— Yutaka Hirata (@yutakakn) December 16, 2016
帯ãè¦ãã°åããã®ã§ããããªãã¨ãã®æ¸ç±4.xç³»ã«å¯¾å¿ãã¦ãããã§ããã
ç¾æ®µéã§ã¯ã¾ã çºå£²ãã¦ããªãã®ã§å 容ã«é¢ãã¦ã¯åããã¾ããããææ°ã®4.xç³»ã®è³æã¯ãããè²´éã§ãã
ãã¨ã¯Linuxã«æ
£ãã¦ããã¨çµã¿è¾¼ã¿ãã¼ãã¨ãèªä½ã®ãã¼ããªããã«ç§»æ¤ãããããã¨é¢ç½ããããããªãã§ãã
ããããæã¯ãããã©æ¬ãå½¹ã«ç«ã¡ã¾ãã
â 4-11. ãLinuxããã¤ã¹ãã©ã¤ãã
Linuxã*BSDã®ã«ã¼ãã«ããã°ã©ãã³ã°ã«æ
£ãã¦ããããããã«èå³ã®ãã人ã¯ã¢ããªã·ãã¯ã«ã¼ãã«ã§ãªãã¢ã¼ããã¯ãã£ã®ã«ã¼ãã«ãããã¯ãã¦ã¿ãã®ãé¢ç½ãããããã¾ããã
ã¢ããªã·ãã¯ä»¥å¤ã«ã©ããªè¨è¨ãããã®ããOSã®çè«ãå®è£
æ¹æ³ããã£ãã俯ç°ãã¦ã¿ããæ¹ã«ã¯ã馴æã¿ã¿ãã³ãã¦ã æ¬ããããããã¾ãã
â 4-12. Modern Operating Systems (4th Edition)
Tanenbaum & Bos, Modern Operating Systems, 4th Edition
é¦è¨³ã¯3çã¾ã§ããç¡ãã®ã§ããã忏ã ã¨4çãããä»®æ³åãã»ãã¥ãªãã£ãªã©çµæ§ãã¦ããã¼ãã¾ã§è§¦ãã¦ããããã§ãã
(ç§ã¯ã¾ã 4çã¯èªãã¦ãªãã®ã§å
容ã®è©³ç´°ã¯åããã¾ããã...)
5. ä»®æ³ãã·ã³ã¢ãã¿ã¼(Hypervisor)
æ¬ç¯ã§ã¯ä»®æ³åæè¡ããã¤ãã¼ãã¤ã¶ãã¨ãã¥ã¬ã¼ã¿ã¨ãã£ãã·ã¹ãã ã®èªä½ãããã¯æ¹æ³ã«ã¤ãã¦è¿°ã¹ã¾ãã
ä»®æ³åæè¡ã¨ããã°ã¾ãã¯ã©ã¦ãã忣ã·ã¹ãã ã®è©±ããå§ããã®ãå®ç³ãªã®ããããã¾ãããããããã¯ã©ã¦ãã®ãããªãã«ã§ããã³ã³ãã¥ã¼ã¿ãªã½ã¼ã¹ãåæã¨ããã·ã¹ãã ã
å人ã§ããã¯ããã®ã¯ç¾å®å³ããªãããã¾ããããã§ã¯ãªãããã£ã¨æè»½ã«æ¥½ãããä»®æ³åæè¡ã®ä½¿ãæ¹ãä¾ã«æãã¦ã¿ã¾ãã
ã¾ãä¸ã¤ã¯ã¨ãã¥ã¬ã¼ã¿éçºã§ããæ±ç¨PCã¢ã¼ããã¯ãã£åãã®èªä½ã¨ãã¥ã¬ã¼ã¿ãä½ã£ã¦LinuxãªãWindowsãåããã¦ã¿ã¦ãé¢ç½ãã§ããããã
ä¸ã®ä¸ã«ã¯ã²ã¼ã æ©ã端æ«ã®ã¨ãã¥ã¬ã¼ã¿ãå¤ãåå¨ãã¾ãããã£ããã¨ãã¥ã¬ã¼ã¿ãä½ããªãæ®æ®µä½¿ãæ
£ããintelãããã»ãã,PCI,ISA,IDEã¿ãããªã¢ã¼ããã¯ãã£ã§ãªã(ã¡ãã£ã¨å¤ãï¼)ã
ãã£ã¨å¤ãã£ãã¢ã¼ããã¯ãã£ã®ç©ãä½ã£ã¦è¦ãã¨è¯ããããããªãã§ãã
ãã«ã¹ã¯ã©ããã§èªä½ããã®ãè¯ãã§ãããQEMUãBochsã«æãå
¥ãã¦ãè¯ãã§ãããã
ä¾ãã°xqemuã¨ããããã¸ã§ã¯ãã¯QEMUããã¼ã¹ã«éçºãããXBoxã¨ãã¥ã¬ã¼ã¿ã§ãã
XQEMU An experimental emulator for the original Xbox
http://xqemu.com/
å¾ã¯libretroã¨ããè¦ã¦ã¿ãã¨ãã¾ãã®åãã«è¡æãåããã¯ãã§ãã(ã²ã¼ã ã¨ãã¥çéã¯å®è£
ã¢ã³ã¹ã¿ã¼ã¿ãããªäººéããããããã¦æ¯åº¦è
°ãæããã¾ã)
Libretro – A crossplatform application API, powering the crossplatform gaming platform RetroArch
(ãã ãå½ç¶ã§ããæ³å¾ã«ã¯è§¦ããªãããã«æ°ãã¤ãã¦ãã ãããã¨ãã¥ã¬ã¼ã¿éçºèªä½ã¯åºæ¬çã«åæ³ã§ãããä»ã®ããã»ã¹ã§æ³ã«ã²ã£ãããå ´åãããã¾ã)
å¾ã¯ãKVMãXenã¨ãã£ããã¤ãã¼ãã¤ã¶ã®ããã¯ãèªä½ã§ããããã«ã¤ãã¦ã¯è¶£å³ãéãè¶ãã¦å°ãå¦è¡å¯ããªç®çã«ãªããã¨ãå¤ãããããã§ã¯è©³ããã¯è¿°ã¹ã¾ããã
ã¾ãæè¿é¢ä¿ãã話é¡ã ã¨Bash on Windowsããã¤ãã¼ãã¤ã¶æè¡ã使ã£ã¦å®ç¾ããã¦ããããä»å¹´ã®æªè¸ããã¸ã§ã¯ãã«æ¡æããã¦ããNoah(Bash on Ubuntu on Mac OS X)ã¨ããç©ãåãããã¤ãã¼ãã¤ã¶æè¡ã§
ELFãã¤ããªãOS Xä¸ã§åããã¦ããã¿ããã§ããèå³ã®ããæ¹ã¯ãã²èª¿ã¹ã¦ã¿ã¦ãã ããã
ãã¦ãã§ã¯ã¨ãã¥ã¬ã¼ã¿ããã¤ãã¼ãã¤ã¶ã®ããã¯ãèªä½ã®å§ãæ¹ã§ãããã¾ãã¯ä»¥ä¸ã®è³æãèªããã¨ãå¼·ããããããã¾ãã
â 5-1. ããã¤ãã¼ãã¤ã¶ã®ä½ãæ¹ã
VT-xã®ä»æ§ãããå®éã®ãã¤ãã¼ãã¤ã¶(bhyve)ã®å®è£
ã¾ã§ç¶²ç¾
çã«è§¦ãããã¦ãããä»®æ³åæè¡ã®åºç¤ãå¹ççã«å¦ã¹ã¾ãã
é常ã«ããããã§ãã
åºç¤ãå¦ãã ãå¾ã¯å®éã«ã¨ãã¥ããã¤ãã¼ãã¤ã¶ãããã¯,èªä½ãã¦ã¿ã¾ãããããã ãã®è¾ºã¯æ¬å½ã«åèæ¸ç±ãå°ãªããåºæ¬çã«ã¯ãããã®æ
å ±
ã«é ¼ãããããã¾ããã(å²ã¨æè¿ã«ãèªä½ã¨ãã¥ã¬ã¼ã¿ã§å¦ã¶x86ã¢ã¼ããã¯ãã£ãã¨ããæ¬ãåºã¦ãã¿ããã§ãããç§èªèº«ãèªãã¦ãããå
容ã確èªã§ãã¦ããã¾ãã...)
ãã ä¸å¿å°ãã¨ãã¥ã¬ã¼ã¿ã®å®è£ ã«è§¦ãã¦ããæ¸ç±ãç§ã«ã®ç¥ãç¯å²ã§ããã¾ãã¦ã
â 5-2. ãç±è¡ï¼ ã¢ã»ã³ãã©å ¥éã
ããããã®ç±è¡ï¼ ã¢ã»ã³ãã©å
¥éã§ãããã®æ¬ã¯å¤æ§ãªã¢ã»ã³ãã©ãæ¯è¼ããªããã³ã³ãã¥ã¼ã¿ã¢ã¼ããã¯ãã£(主ã«ISAã§ãã)ãå¦ã¶ã¨ããæ¬ã§ã
æå¾ã®æ¹ã«gdbã·ãã¥ã¬ã¼ã¿ãè§£æ,æ¹é ãã¦ããæããã£ã¦ã¨ãã¥ã¬ã¼ã¿ã®åºæ¬æ§é ãå¦ã¶äºãã§ãã¾ãã
ãããã£ãæççãªæ å ±ããããã®è¨äºãé ¼ãã«ç°¡åãªã¨ãã¥ã¬ã¼ã¿ãèªä½ã§ããããä»åº¦ã¯QEMUãKVM,Xenãããã¯ãã¦ã¿ãã¨é¢ç½ãã§ãã
QEMUã¨KVMã®å®è£ ã«é¢ãã¦ã¯ä»¥ä¸ã®è¨äºããããããã¾ãã(èªåã®è¨äºãè¦ããã®ã¯ã¡ãã£ã¨ã¢ã¬ã§ãããä»ãæ¤ç´¢ãã¦ãæ¥æ¬èªè¨äºã¯ãããè±èªã§ããè³æãç¡ãã®ã§ã...)
â 5-4. ãKVMã®ãªãã¿(KVM internals)ã
Xenã«é¢ãã¦ã¯å
¬å¼ã®ããã¥ã¡ã³ãã¨ã½ã¼ã¹ã³ã¼ããèªã¿è§£ãã¦ããã¯ãããããããç§ã¯ç¥ãã¾ããã
(ãã®ãã¡Xenã®ãªãã¿(Xen internals)ã¿ãããªè¨äºãæ¸ããã¨ã¯æã£ã¦ã¾ãããå°ãå
ã«ãªãã¨æãã¾ã)
æ´æ¸ã ã¨ä¸å¿Xenã®ã³ã¼ã解説æ¸ç±ã¯ããã¾ãã(ä¸èº«ã¯æªç¢ºèªã§ã: â»2016/12/25è¿½è¨ 2007å¹´åºçã¨ããã®ããã£ã¦çµæ§å 容ã¯å¤ãããã§ãã ntddkããæé£ããããã¾ã)
6. ã³ã³ãã¤ã©,è¨èªã©ã³ã¿ã¤ã
æ¬ç¯ã¯ã³ã³ãã¤ã©,è¨èªã©ã³ã¿ã¤ã ã®èªä½,ããã¯ã«ã¤ãã¦ã§ãã
ã³ã³ãã¤ã©ã¨è¨ãã¨ããªã¬ãªã¬è¨èªãä½ã£ã¦åããã¨ããã®ãããã³ããã£ã¦æ¥½ããã§ãããæ¬ç¯ã§ã¯ã©ã¡ããã¨ããã¨ã³ã¼ãçæããªã³ã¯ã¨ãã£ã
ããããããã¯ã¨ã³ãé¨åãä¸å¿ã«è¿°ã¹ã¾ãã
ä¾ãã°Sonyã¯Playstation4ãéçºããéãclang/llvmãæ¡ç¨ãã¾ããããã®éèªç¤¾ç¬èªã®PS4 SDKããããã©ãªã³ã«ããããã«ç§»æ¤ãã
ã²ã¼ã æ©ã®ã¢ã¼ããã¯ãã£ã«ãã¥ã¼ãã³ã°ãããããã¯ã¨ã³ããéçºããã¨è¨ããã¦ãã¾ãã
LLVM Conferenceã§å®éã«SCEã®äººã話ãã¦ããçºè¡¨ãªã©ãè¦ã¦ã¿ãã¨åããã¾ãã
"Developer Toolchain for PS4"
http://llvm.org/devmtg/2013-11/slides/Robinson-PS4Toolchain.pdf
(ã¨ããã§ãã£ãããã²ã¼ã æ©ã®è©±ã°ããåºã¦ãããª...ã¨æãããããããã¾ããããããããããããä¾ãæãã¦ããã®ã¨ãç§ã®è¶£å³ã§ã(ã§ )
æ°ãããã¼ããä½ãã°ãå½ç¶ãã®ã¢ã¼ããã¯ãã£ã«é©ããã³ã³ãã¤ã©ãã¼ã«ãã§ã¼ã³ãéçºããå¿ è¦ãããããã§ãã
å社ã®ã³ã³ãã¤ã©ã¸ã®åãçµã¿æ¹ãå®è£ ä¾ã¯ããµã ã¹ã³ã®äººéã«ãã以ä¸ã®è³æãè¦ãã¨ããããããã§ãã
"Where is LLVM being used today?"
http://llvm.org/devmtg/2016-01/slides/fosdem-2016-llvm.pdf
ã¾ããããã£ããã¼ã«ãã§ã¼ã³ç§»æ¤ã®é
åã¨ãã¦ã¯ããã¯ãæ®æ®µå½ããåã®ããã«ä½¿ã£ã¦ããgccãclangããç¬èªã®ãã¼ãä¸ã§åãå§å·»ã®å
æ¯ã§ã¯ãªãã§ããããã
èªä½ãã¼ãç¨ã«ã³ã³ãã¤ã©ãç§»æ¤ãã¦ã¿ããããã¨ãã®æåãå³ããããã¨æãã¾ãã
(æ£ç´ç§ã¯ã¾ã ç¬èªãã¼ãç¨ã®ã³ã³ãã¤ã©ç§»æ¤ã¯ãã£ãäºããªãã®ã§ãããä»ã®äººããèãã話ã§ã¯é常ã«éææãããã¨ã®äºã§ãã)
ãã¦ãã§ã¯ã¾ãç°¡åãªã³ã³ãã¤ã©ãã¤ã³ã¿ããªã¿ãèªä½ãã¦ã¿ã¾ããããããã«ã¯ä»¥ä¸ãããããã§ãã
â 6-1. ãè¨èªå®è£ ãã¿ã¼ã³: ã³ã³ãã¤ã©æè¡ã«ããããã¹ãå¦çããè¨èªå®è£ ã¾ã§ã
ãã®æ¬ã¯ä¸»ã«ã³ã³ãã¤ã©ã®æ§æè§£æãASTçæã«ç¦ç¹ããã¦ã¦ãããã³ã³ãã¤ã©ã®ããã³ãã¨ã³ããç¥ãã«ã¯é常ã«è¯ãæ¸ç±ã§ãã
ãã å®éã«ã³ã³ãã¤ã©ãä½ãã¨ãªãã¨ãèå¿ã®ããã¯ã¨ã³ã(主ã«ã³ã¼ãçæ)ãå¿
è¦ã«ãªã£ã¦ãã¾ãããããã«ã¯ä»¥ä¸ãåç
§ããã¨è¯ãã¨æãã¾ãã
â 6-2. ãã³ã³ãã¤ã©: åçã»ææ³ã»ãã¼ã«ã
éç§°ãã©ã´ã³ããã¯ã¨å¼ã°ãããã®æ¬ã¯ãã³ã³ãã¤ã©ã®ããã³ãããããã¯ã¾ã§ç¶²ç¾ çã«ãæã«ã¯æ¬ä¼¼ã³ã¼ãã示ããªãã説æãã¦ããã¾ãã
â 6-3. ãææ°ã³ã³ãã¤ã©æ§æææ³ã
ã¾ããã¡ãã®ã¿ã¤ã¬ã¼ããã¯ãããããã§ãããå°ãçè«ãããªã®ã¨MLã«ããå®è£ ãä¸å¿ã¨ãã¦ãããããèå³ãããã°è¦ã¦ã¿ãã°è¯ãã®ããªã¨ã
â 6-4. ãã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³ èªåçã¡ã¢ãªç®¡çãæ§æããçè«ã¨å®è£ ã
ãã¨ã¯GC(Garbage Collection)ã«ã¤ãã¦ãç¥è¦ãæã£ã¦ããã¨ãã³ã³ãã¤ã©ãã¼ã«ã®ç§»æ¤ã§ãå½¹ç«ã¤ã§ããããå¹çã®è¯ãã¡ã¢ãªãã¼ã¸ååã¢ã«ã´ãªãºã ã«ã¤ãã¦å¦ã¶ãã¨ãã§ãã
ä»ã®ã¸ã£ã³ã«ã§ãå½¹ç«ã¦ãããã¨æãã¾ãããã©ã¦ã¶ã®å®è£
ã«èå³ããã人ãªã©ã«ãGCã¯å¿
é ã§ãã
ãã¦ãã³ã³ãã¤ã©ã®ããã¯ã«ããã¦æ¬ ãããªãã®ãLLVMã§ããããã¤ã¯ã³ã³ãã¤ã©ã®ããã¯ã¨ã³ãå¦çãæ
ãã¨ããã ãã§ãªãã
ä¾ãã°ãã¤ããªä¸ã®å½ä»¤ãã¬ã¼ã¹,ããã¯ãã¡ã¢ãªä¿è·ãªã©ã«ãå©ç¨ã§ããéå¸¸ã«æè»ãªä»£ç©ã§ãã
LLVMã®æ¦è¦ãä½¿ãæ¹ã«ã¤ãã¦ã¯ä»¥ä¸ãè¦ãã¨è¯ãã§ãããã
â 6-6. ããã¤ãããã§ããããLLVMã
ã¾ãLLVMã®ã³ã¼ãèªä½ãããã¯ãã¦ã¿ããæ¹ã¯ã以ä¸ã®ãã¼ããèªãã§è¦ãã®ããããããã¾ãã(å°ãå¤ãã®ã§ãã...
â 6-7. ãRandom LLVM Notesã
ããããã³ã³ãã¤ã©ã ãã§ãªããªã³ã«ããªãã¸ã§ã¯ããã¡ã¤ã«ã®ä»çµã¿ãå¦ã¶å¿
è¦ãåºã¦ããå ´åãããããããã¾ããã
ããããæã¯åäºå
çã®ãªã³ã«ãã¼ãæ¬ãã¨ã¦ãåèã«ãªãã¾ãã
â 6-8. ããªã³ã«ã»ãã¼ãå®è·µéçºãã¯ããã¯: å®è¡ãã¡ã¤ã«ã使ããããã«å¿ é ã®æè¡ã
æ¨æºã©ã¤ãã©ãªãªã©ã®ã©ã³ã¿ã¤ã ãç§»æ¤ãæ¹é ãããå¿ è¦ãåºã¦ããå ´åã¯åäºå çã®ãã¡ãã®æ¸ç±ãããããã§ãã
â 6-9. ãããã¼âHello,World"OSã¨æ¨æºã©ã¤ãã©ãªã®ã·ã´ãã¨ããã¿ã
7. CPU,å¨è¾ºæ©å¨
æ¬ç¯ã§ã¯CPU,å¨è¾ºæ©å¨ã®è¨è¨ã«ã¤ãã¦"å°ãã ã"è¿°ã¹ã¾ãã
(å°ãã ãã¨ããã®ã¯ç§èªèº«ãã®ã¸ã£ã³ã«ã¯æè¿ããããæãã¤ãå§ããç¨åº¦ãªã®ã§ãè¯ããããªè³æãã¡ããã£ã¨ç´¹ä»ããç¨åº¦ã§....)
æ¢åã®ãããã»ãããCPUã«é¢ãã¦ã¯ããããããã³ãã¼ã®ä»æ§æ¸ãè¦ãã°è¯ãã®ã§ãããä¸åº¦ãããèªåã§ãã¼ããè¨è¨ãã¦ã¿ããã¨æã£ãæ¹ã«ã¯ã以ä¸ãããããã§ãã
â 7-1. ãã³ã³ãã¥ã¼ã¿ã®æ§æã¨è¨è¨ã
ãããããã¿ããæ¬ã§ãããã¤ãã©ã¤ã³æ§é ã®ãµã¤ã¼ã®CPUã«é¢ãã¦ã¯ãã®æ¬ã§å ååå¼·ã§ãã¾ãã
â 7-2. ãç¬èªCPUéçºã§å¦ã¶ ã³ã³ãã¥ã¼ã¿ã®ããã¿ã
å®éã«HDLãã¬ãªã¬ãªæ¸ãã¦CPUãè¨è¨ãããããã®ä¸ã«ã³ã³ãã¤ã©ç§»æ¤ãããããæ¸ç±ã§ãã
èªä½CPUãèãã¦ããæ¹ã«ã¯ããããã§ãã(ã¢ã«ãããã¯ä¾¡æ ¼ãªãè©ä¾¡ãã¼ãããããªãã®å¤æ®µã§æã«å
¥ãããã¾ã)
â 7-3. ãããã·ã¼ï¼ãã¿ã¼ã½ã³ ã³ã³ãã¥ã¼ã¿ã¢ã¼ããã¯ã㣠å®éçã¢ããã¼ãã
ãããããããã¿æ¬ã§ã(ç§ãéä¸ã¾ã§ããèªãã¦ã¾ããã)ãããã¬ãããªCPUã¢ã¼ããã¯ãã£ãå¦ã³ããæ¹åããããã§ãã
8. æ £ãã¦ããã
ãã¦ãå
¨ä½çã«(ãããã¯å±æçã«ã§ãè¯ãã®ã§ãã)åºç¤ãåºã¾ã£ã¦ããã¨ãã·ã¹ãã ããã°ã©ãã³ã°ã¯ããã«é¢ç½ããªã£ã¦ãã(ã¯ãã§ã)ã
å®ã¯ä¸ã®ä¸ã«ã¯æå¤ã¨ããã¯ã§ãããã¿ã¨ããã®ããããã転ãã£ã¦ãã¦ãããã«æ°ã¥ãå§ããã¨ããæ²¼ããæããããªããªãã¾ãã
ãããããããããã¯ãã¿ã£ã¦ã©ãããæããè¦ã¤ããã®ãã¨ããã¨ã大ä½ã¯RSSãã£ã¼ãã«ãããã¥ã¼ã¹(HackerNews, Phoronix....)ããæåãªããã«ã¼éã®SNSãç ç©¶è«æãMLçããå¾ããã¾ãã
ãããã¦å¾ãæ
å ±ãå
ã«ãèªåã¯ãããã«ã©ã®ããã«è²¢ç®ã§ããããããã¯æ°ããªããã¯ãçã¿åºããããèããå®éã«æãåããã宿ããæã«ã¯å½¼ãã«ã³ã³ã¿ã¯ã(ããã,ã¡ã¼ã«...)ãåã£ã¦ã¿ããããããã§ãã
ãããªã£ã¦ããã°æ¯æ¥ãããã¯æ¼¬ãã®é常ã«åºæ¿çãªæ¥ã
ãããããã§ãããã
ã¾ãä»è¨ã£ããããªéè¯ããã«ã¼(?)çãªæ¥½ãã¿æ¹ãè¯ãã§ãããããä½ããã®ã¸ã£ã³ã«ã®ã¨ãã¹ãã¼ãã¨ãã¦ç ç©¶è
ãå¿ã人éãããã¿ããã§ãã
ä¾ãã°ãã«ã¦ã§ã¢è§£æã ã£ããã忣ã·ã¹ãã ã ã£ããããã¼ã¿ãã¼ã¹ã ã£ãããããã¯ã¼ã¯ã ã£ããã¨ãã®ã¸ã£ã³ã«ã¯å¤ç¨®å¤æ§ã§ãã
ãã£ã¨ãããªæãã§ããæ¥ãè¶³ã§æ¸ããã®ã§è¥å¹²æç« æ§æãããããã£ããããããããã¾ããããããã¦ã
çµå±é·ã
ã¨æ¸ãé£ãã¾ããããã¨ã«ããèªåã®ãã®æããããã¨æã£ãäºãã©ãã©ãé²ãã¦ããã®ãè¯ãã¨æãã¾ãã
ãã®éãæ¬è¨äºãå¦ç¿ã®æå©ãã«ãªãã°å¹¸ãã§ãã
