{"id":718,"date":"2014-01-11T15:42:00","date_gmt":"2014-01-11T07:42:00","guid":{"rendered":"http:\/\/note.systw.net\/note\/?p=718"},"modified":"2023-11-04T15:44:22","modified_gmt":"2023-11-04T07:44:22","slug":"operating-system","status":"publish","type":"post","link":"https:\/\/systw.net\/note\/archives\/718","title":{"rendered":"Operating System"},"content":{"rendered":"\n<p><strong>Operating system<\/strong><br>a program that acts between a user and computer hardware<br>\u4e00\u7a2eSystem Software\uff0c\u4e3b\u8981\u7ba1\u7406Processor\u3001Memory\u3001Information\u3001Device\u9019\u56db\u7a2e\u8cc7\u6e90<\/p>\n\n\n\n<p><strong>goal:<\/strong><br>execute user programs<br>make the computer system convenient to use<br>use the hardware in an efficient manner<\/p>\n\n\n\n<p><strong>4 components of computer system<\/strong><br>user<br>application programs<br>operating system<br>hardware<\/p>\n\n\n\n<p><strong>definition:<\/strong><br>OS is a resource allocator<br>OS is a control program<br>OS is a interrupt driven<\/p>\n\n\n\n<p><strong>\u4e3b\u8981\u529f\u80fd<\/strong><br>\u63a7\u5236system\u7684\u4f5c\u696d\u6d41\u7a0b<br>\u6709\u6548manage\u4e26\u5584\u7528\u7cfb\u7d71\u8cc7\u6e90<br>\u65b9\u4fbfuser\u8a08\u7b97\u6a5f\u7cfb\u7d71\u7684\u4f7f\u7528<\/p>\n\n\n\n<p><strong>\u4f4d\u7f6e<\/strong><br>\u901a\u5e38OS\u662f\u5728bare machine\u4e0a\u57f7\u884c\uff0c\u800cuser program\u662f\u5728Extended Machine\u57f7\u884c<br><strong>Bare Machine(\u88f8\u6a5f)<\/strong><br>\u3000\u53ea\u6709CPU, memory, I\/O device\u7b49Hardware Components\u6240\u7d44\u6210marchine,\u6c92\u6709\u4efb\u4f55user\u53ef\u7528\u7684system program\u5b58\u5728<br>\u3000bare machine\u672c\u8eab\u6709\u4e00\u7d44Basic Instruction Set(\u57fa\u672c\u6307\u4ee4\u96c6)\u53ca\u4e00\u5957Operating System\u4f86\u7ba1\u7406\u4e26\u6709\u6548\u5730\u4f7f\u7528\u7cfb\u7d71\u8cc7\u6e90<br><strong>Extended Machine<\/strong><br>\u3000\u5728Bare Machine\u4e0a\u52a0\u4e0auser\u53ef\u7528\u7684OS, Compiler, DBMS\u7b49System Programs\u6240\u7d44\u6210\u7684marchine<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<p><strong>\u4f5c\u696d\u7cfb\u7d71\u5206\u985e<\/strong>&nbsp;<\/p>\n\n\n\n<p>\u4f5c\u696d\u7cfb\u7d71\u4e3b\u8981\u5206\u70ba<br><strong>\u55ae\u4eba\u55ae\u5de5<\/strong><br>ex:MS-DOS<br><strong>\u55ae\u4eba\u591a\u5de5,\u9700\u4f7f\u7528multitasking<\/strong><br>ex:Win95\u300198\u3001Me\u30012000 Pro\u3001NT Workstation\u3001Mac OS 8.6<br><strong>\u591a\u4eba\u591a\u5de5,\u9700\u4f7f\u7528multitasking<\/strong><br>ex:Netware\u3001Windows NT Server\u3001Windows 2000 Server\u3001UNIX\u3001Linux<\/p>\n\n\n\n<p>\u4ee5\u6642\u9593\u5206\u985esystem type<br><strong>Batch System(\u6279\u6b21\u7cfb\u7d71):<br><\/strong>\u3000\u7528\u4f86\u9032\u884c\u6279\u6b21\u8655\u7406\u7684\u4f5c\u696d\u7cfb\u7d71 ,\u9069\u5408Long-Term Scheduler<br><strong>Time-Sharing System(\u5206\u6642\u7cfb\u7d71):<\/strong><br>\u3000\u5c07\u904b\u7b97\u6642\u9593\u5206\u6210\u591a\u4efd,\u4e26\u5206\u7d66\u6bcf\u500bprocess,\u53ef\u9054\u5230multitasking\u529f\u80fd, \u4e3b\u8981\u4ee5RR\u7684cpu scheduling\u5be6\u4f5c<br>\u3000ps:<br>\u3000\u9700\u786c\u9ad4\u8a2d\u5099\u652f\u63f4,\u50cf\u662f\u53ef\u5b9a\u6642\u767c\u51fainterrupt\u7684timer\u96fb\u8def,\u53ef\u907f\u514dCPU\u88ab\u6c38\u9060\u4f54\u64da<br><strong>Real-Time System(\u5373\u6642\u7cfb\u7d71):<br><\/strong>\u3000\u5c0d\u65bcprocess\u7684\u5b8c\u6210\u6642\u9593\u6709\u6975\u70ba\u56b4\u683c\u7684\u8981\u6c42<br>\u3000\u53ef\u5206\u70ba<br>\u3000\u3000Hard Real-Time System:process\u9808\u5728\u898f\u5b9a\u7684\u6642\u9593\u5167\u5b8c\u6210<br>\u3000\u3000Soft Real-Time System:\u6709\u5373\u6642\u6027\u7684process\u5177\u6709\u8f03\u9ad8\u7684\u512a\u5148\u6b0a<\/p>\n\n\n\n<p><br>\u4ee5\u6578\u91cf\u5206\u985esystem type<br><strong>Tightly-Coupled System<\/strong><br>\u3000\u4e3b\u8981\u4ee5Multiprocessing\u529f\u80fd\u5be6\u4f5c<br><strong>Loosely-Coupled System\/Distributed System<\/strong><br>\u3000\u53ef\u5728\u5206\u70ba\u5169\u7a2e<br>\u3000Client-Server mode<br>\u3000Peer-to-Peer mode<br><strong>Clustered System<\/strong><br>\u3000\u591a\u500b\u7cfb\u7d71\u96c6\u7d50\u7d44\u6210,\u5171\u4eab\u76f8\u540c\u7684stroage device,\u76ee\u7684\u5728\u65bc\u63d0\u4f9bHigh availability<\/p>\n\n\n\n<p>ps:<br>\u5e38\u898bOS\u529f\u80fd<br><strong>Multiprogramming<\/strong><br>\u3000\u8b93\u591a\u500bprocess\u53ef\u4ee5\u540c\u6642\u5728memory\u4e2d\u88abCPU\u57f7\u884c<br>\u3000\u512a\u9ede:\u907f\u514dCPU idle,\u63d0\u9ad8CPU utilization<br>\u3000\u8aaa\u660e:\u591a\u500bprocess\u6703\u88ab\u8f09\u5165\u5230memory\u4e2d,\u7576\u67d0\u4e00\u500bprocess\u9032\u884cI\/O\u4f5c\u696d\u6642,CPU\u5c31\u6703\u5207\u63db\u5230\u53e6\u4e00\u500bprocess,\u4f7f\u5f97\u591a\u500bprocess\u53ef\u540c\u6642\u88ab\u8655\u7406<br>\u3000ps:\u591a\u500bprocess\u540c\u6642\u88ab\u8655\u7406\u53ef\u5206\u70baConcurrent(\u4e26\u884c) mode,Parallel(\u5e73\u884c) mode<br><strong>Multitasking<\/strong><br>\u3000\u8b93user\u53ef\u4ee5\u540c\u6642\u57f7\u884c\u591a\u500bprocess<br>\u3000\u512a\u9ede:response time(\u53cd\u61c9\u6642\u9593)\u5feb,\u9069\u5408\u7528\u5728user interactive<br>\u3000\u8aaa\u660e:\u900f\u904econtext switching\u7684\u65b9\u5f0f,\u8f2a\u6d41\u57f7\u884c\u591a\u500bprocess<br><strong>Multiprocessing<\/strong><br>\u3000\u591a\u500bCPU\u53ef\u540c\u6642\u57f7\u884c\u4e00\u500b\u6216\u591a\u500bprocess<br>\u3000\u512a\u9ede:\u53ef\u63d0\u9ad8\u8a08\u7b97\u6a5f\u7cfb\u7d71\u4e4b\u53ef\u9760\u5ea6\u53ca\u901f\u5ea6<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<p><strong>OS is a interrupt driven<\/strong><\/p>\n\n\n\n<p><strong>interrupt<\/strong><br>\u67d0\u88dd\u7f6e\u8981\u901a\u77e5\u53e6\u4e00\u88dd\u7f6e,\u7528\u4f86\u5f15\u8d77\u6ce8\u610f\u7684\u6280\u5de7<br>\u5c6c\u65bc\u975e\u540c\u6b65\u767c\u751f\u7684event,\u5728\u4efb\u4f55\u6642\u9593\u90fd\u53ef\u4ee5\u767c\u751f<br>ex:<br>\u7576\u5468\u908a\u8a2d\u5099\u6709\u8cc7\u6599\u7522\u751f\u6642,\u5468\u908a\u8a2d\u5099\u6703\u7528interrupt\u7684\u65b9\u5f0f\u901a\u77e5CPU,\u800cCPU\u6703\u5148\u5c07\u76ee\u524d\u7684\u5de5\u4f5c\u505c\u4e0b\u4e26\u5132\u5b58\u7576\u6642\u7684\u72c0\u614b,\u7136\u5f8c\u8655\u7406\u5468\u908a\u8a2d\u5099\u7684\u8981\u6c42,\u5f85\u8655\u7406\u5b8c\u6210\u5f8c\u518d\u7e7c\u7e8c\u525b\u525b\u7684\u5de5\u4f5c<\/p>\n\n\n\n<p>interrupt\u53ef\u5206\u70ba<br><strong>software interrupt\/trap\/exception<\/strong>\uff1a\u7531\u8edf\u9ad4\u6240\u7522\u751f\u7684\u4e2d\u65b7<br>ex: system call\u3001\u908f\u8f2f\u932f\u8aa4\uff0c\u4e0d\u5408\u6cd5\u7684\u8a18\u61b6\u9ad4\u5b58\u53d6,overflow<br><strong>hardware interrupt\/IRQ<\/strong>\uff1a\u7531\u786c\u9ad4\u7522\u751f\u7684\u4e2d\u65b7<br>\u3000\u53ef\u5728\u5206\u5169\u985e<br>\u3000external interrupt :CPU\u4ee5\u5916\u7684\u5468\u908a\u5143\u4ef6\u6240\u7522\u751f\u7684<br>\u3000ex:I\/O complete\u3001I\/O error\u3001machine check<br>\u3000internal interrupt:CPU\u672c\u8eab\u6240\u7522\u751f\u7684<br>\u3000ex:stack overflow\u3001illegal command(\u975e\u6cd5\u6307\u4ee4\u57f7\u884c)\u3001divided by zero(\u9664\u4ee50)&#8230;<\/p>\n\n\n\n<p><br><strong>Interrupt Handler(\u4e2d\u65b7\u8655\u7406)<\/strong><br>\u4e00\u7a2etable,\u53ef\u5728interupt\u767c\u751f\u6642,\u5feb\u901f\u627e\u5230ISR<br>ps:\u901a\u5e38\u90fd\u5728\u8a18\u61b6\u9ad4\u958b\u59cb\u7684\u5730\u65b9<br><strong>ISR(Interrupt Service Routine,\u4e2d\u65b7\u670d\u52d9\u5e38\u5f0f)<\/strong><br>\u8655\u7406interrupt event\u7684\u7a0b\u5f0f<br>\u6bcf\u500binterrupt event\u6703\u63d0\u4f9bISR\u53bb\u670d\u52d9\u6b64interrupt<br><strong>Interrupt vector(\u4e2d\u65b7\u5411\u91cf\uff09<\/strong><br>\u753100H~FFH\u7684\u6578\u5b57,\u7528\u4f86\u5224\u65b7interrupt\u7684\u7a2e\u985e<\/p>\n\n\n\n<p><br><strong>Interrupt Step<\/strong><br>1.OS\u66ab\u505c\u76ee\u524d\u7684process\uff0c\u4e26\u7528context switching\u4fdd\u5b58\u8a72process\u72c0\u614b<br>2.\u6839\u64dainterrupt ID\u67e5\u8a62interrupt vector\uff0c\u53d6\u51fa\u5c0d\u61c9\u7684ISR initial address<br>3.\u5230ISR\u7684initial address\uff0c\u57f7\u884c\u8a72ISR<br>4.\u7576ISR complete<br>5.OS\u6062\u5fa9\u539f\u5148\u4e2d\u65b7\u524d\u7684process\u57f7\u884c<\/p>\n\n\n\n<p>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<p><strong>I\/O operations<\/strong><\/p>\n\n\n\n<p><strong>CPU\u8207I\/O\u7684\u904b\u4f5c\u65b9\u5f0f<\/strong><br>\u4e3b\u8981\u53ef\u5206\u70ba\u4e09\u7a2e<br>\u3000Polling I\/O (\u8a62\u554f\u5f0fI\/O)<br>\u3000Interrupt I\/O (\u4e2d\u65b7\u5f0fI\/O)<br>\u3000DMA<\/p>\n\n\n\n<p><strong>Polling I\/O<\/strong><br>CPU\u6703\u4e0d\u65b7\u554fI\/O Device\u7684I\/O\u904b\u4f5c\u7d50\u679c,\u6703\u6d6a\u8cbb\u8a31\u591aPolling Time<br>CPU\u5728Process\u4e0a\u82b1\u7684\u6642\u9593\u4e0d\u591a,\u96d6\u7136CPU\u5f88\u5fd9\u788c,\u4f46\u5c0dProcess\u7684\u57f7\u884c\u9032\u5ea6\u7121\u5e6b\u52a9,\u5c0dCPU Throughput\u7121\u76ca<\/p>\n\n\n\n<p><strong>Interrupt I\/O<\/strong><br>\u6703\u900f\u904einterrupt\u7684\u6a5f\u5236<\/p>\n\n\n\n<p><strong>DMA<\/strong><br>DMA Controller\u8ca0\u8cacMemory\u8207I\/O Device\u4e4b\u9593\u7684\u8cc7\u6599\u50b3\u8f38,\u5176\u904e\u7a0b\u4e0d\u9700CPU\u7684\u53c3\u8207<br>\u56e0CPU\u53ef\u7528\u5728Process\u4e0a\u7684\u6642\u9593\u66f4\u591a,\u6240\u4ee5\u53ef\u589e\u52a0CPU Utilization\u8207Throughput<br>\u5e38\u7528\u5728\u9ad8\u901f\u7684Block-Transfer I\/O Device&nbsp;ex:Disk<br>ps:<br>DMA\u4e5f\u6703\u767c\u51fa\u4e2d\u65b7,\u53ea\u662f\u767c\u51fa\u7684\u6642\u9593\u9ede\u8207Interrupt I\/O\u4e0d\u540c<\/p>\n\n\n\n<p>&#8230;<\/p>\n\n\n\n<p><strong>I\/O Structure<\/strong><br>\u4e3b\u8981\u6709\u5169\u7a2e<br>\u3000<strong>Synchronous I\/O<\/strong>:\u7576I\/O\u5b8c\u6210\u904b\u4f5c\u5f8c\u624d\u6703\u5c07\u63a7\u5236\u6b0a\u4ea4\u9084\u7d66User Process<br>\u3000<strong>Asynchronous I\/O<\/strong>:\u7acb\u523b\u5c07\u63a7\u5236\u6b0a\u4ea4\u9084\u7d66User Process,\u4e0d\u9700\u7b49\u5230I\/O\u904b\u4f5c\u5b8c\u6210<\/p>\n\n\n\n<p><strong>Synchronous I\/O<\/strong><br>\u4e00\u500b\u6642\u9593\u5167\u53ea\u5141\u8a31\u4e00\u500bI\/O\u8acb\u6c42<br>\u4e0d\u5141\u8a31\u5e73\u884cI\/O\u8655\u7406<br>ps:\u7576I\/O\u5b8c\u6210\u4e2d\u65b7\u7522\u751f\u6642,OS\u5c31\u6703\u77e5\u9053\u662f\u90a3\u4e00\u500bdevice\u6240\u767c\u51fa<br>ps:process\u85c9\u7531busy waiting(loop)\u6216\u7279\u6b8await\u6307\u4ee4\u4ee5\u9054\u5230\u7b49\u5f85\u7684\u76ee\u7684<\/p>\n\n\n\n<p><strong>Asynchronous I\/O<\/strong><br>\u4e00\u500b\u6642\u9593\u5167\u53ef\u5141\u8a31\u591a\u500bI\/O\u8acb\u6c42<br>system efficiency\u589e\u52a0<br>ps:\u9700\u5c0d\u591a\u500bI\/O\u8655\u7406\u540c\u6642\u8ffd\u8e64,OS\u6703\u4f7f\u7528Device status table\u8a18\u9304\u5404\u7a2edevices\u4f4d\u5740,\u4f7f\u7528\u72c0\u6cc1,I\/O request\u4e4b\u57f7\u884c\u9032\u5ea6,&#8230;\u7b49<\/p>\n\n\n\n<p><br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;<\/p>\n\n\n\n<p><br><strong>\u786c\u9ad4\u4fdd\u8b77<\/strong><\/p>\n\n\n\n<p><strong>Dual Mode(\u96d9\u91cd\u6a21\u5f0f)<\/strong><br>\u4fdd\u8b77hardware\u91cd\u8981\u7684resources,\u628a\u53ef\u80fd\u5f15\u8d77\u5371\u5bb3\u7684\u4e00\u4e9b\u6a5f\u5668\u6307\u4ee4\u8a2d\u70bapriveleged instruction,\u907f\u514duser program\u57f7\u884c\u9019\u4e9b\u6307\u4ee4\u5c0d\u7cfb\u7d71\u6216\u5176\u5b83user\u9020\u6210\u5371\u5bb3<br>ps<br>\u4ee5\u524d\u7684CPU\u7121mode\u7684\u6982\u5ff5,\u4efb\u4f55\u4e00\u96bb\u7a0b\u5f0f\u90fd\u53ef\u4ee5\u7834\u58de\u7cfb\u7d71<\/p>\n\n\n\n<p>\u900f\u904ehardware\u7684\u652f\u63f4\u63d0\u4f9b2\u7a2e\u72c0\u614b\u4fdd\u8b77\u7cfb\u7d71<br><strong>Monitor mode<\/strong><br>\u3000\u4e5f\u5c31\u662fsupervisor mode\/system mode\/kernel mode<br>\u3000\u6b64mode\u53ef\u57f7\u884cpriveleged instruction<br>\u3000\u4e3b\u8981\u662fOS\u7684system processes\u5728\u57f7\u884c,OS\u64c1\u6709\u7cfb\u7d71\u63a7\u5236\u6b0a<br>\u3000ex: ISR, system call, \u5c0d\u61c9\u7684service routine<br><strong>User mode\u3000<\/strong><br>\u3000user program\u53ef\u4ee5\u57f7\u884c\u7684\u72c0\u614b<br>\u3000\u6b64mode\u7121\u6cd5\u57f7\u884cpriveleged instruction,\u5426\u5247\u6703\u900f\u904etrap\u7522\u751f\u932f\u8aa4\u4e2d\u65b7,\u4f7fOS\u5f37\u8febprocess\u4e2d\u6b62<br>\u3000ps:<br>\u3000\u6703\u8b93CPU\u96e2\u958buser mode \u800c\u9032\u5165kernel mode\u4e8b\u4ef6\u4e3b\u8981\u70baintruput<br>\u3000ex:hardware interrupt, system call, \u975e\u6cd5\u4e4b\u8a18\u61b6\u9ad4\u5b58\u53d6, \u7b97\u6578\u96640\u932f\u8aa4,<\/p>\n\n\n\n<p><strong>mode bit<\/strong><br>\u5224\u65b7mode\u72c0\u614b<br>mode bit=0:monitor mode<br>mode bit=1:user mod<br><br>\u4e09\u7a2e\u786c\u9ad4\u4fdd\u8b77<br><strong>I\/O Protection<\/strong><br>\u3000\u9632\u6b62User Program\u76f4\u63a5\u7528I\/O device<br><strong>Memory Protection<\/strong><br>\u3000\u9632\u6b62User Program\u8aa4\u7528memory space<br><strong>CPU Protection<\/strong><br>\u3000\u9632\u6b62User Program\u7121\u9650\u671f\u4f54\u7528CPU<\/p>\n\n\n\n<p><br>&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;..<\/p>\n\n\n\n<p><strong>management of OS&nbsp;<\/strong><\/p>\n\n\n\n<p><strong>process management of OS<\/strong><br>\u4e00\u500bprocess\u662f\u4e00\u500b\u5728\u57f7\u884c\u7684program<br>OS\u6709\u5f88\u591aprocess\u5728\u904b\u4f5c<br>process\u5167\u542bthread,\u53ef\u4ee5\u5728\u5206\u70ba<br>\u3000single-threaded process<br>\u3000multi-threaded process<br>activities of process management<br>\u3000creating,deleting,suspending,resuming process<br>\u3000process synchronization<br>\u3000process communication<br>\u3000deadlock handling<\/p>\n\n\n\n<p><strong>memory management of OS<\/strong><br>target:<br>\u30001. determines what is memory<br>\u30002. determines when optimizing CPU utilization<br>activities of memory management<br>\u3000keeping track: \u8ffd\u8e64\u90a3\u4e00\u5340\u584a\u7684memory\u8ab0\u5728\u7528<br>\u3000move into and out:\u6c7a\u5b9a\u90a3\u500bprocess\u6216\u8cc7\u6599\u8981\u5f9ememory\u79fb\u9032\u6216\u79fb\u51fa<br>\u3000allocating and deallocating:\u4f9d\u9700\u6c42\u5206\u914dmemory\u3000<\/p>\n\n\n\n<p><strong>storage management of OS<\/strong><br>activities of file management<br>\u3000creating and deleting files and directories<br>\u3000manipulate files and directories<br>\u3000mapping files onto secondary storage<br>activities of mass-storage management<br>\u3000free-space management<br>\u3000storage allocation<br>\u3000disk scheduling<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Operating systema program that &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[22],"tags":[],"class_list":["post-718","post","type-post","status-publish","format-standard","hentry","category-operationsystem"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/718","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/comments?post=718"}],"version-history":[{"count":0,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/posts\/718\/revisions"}],"wp:attachment":[{"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/media?parent=718"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/categories?post=718"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/systw.net\/note\/wp-json\/wp\/v2\/tags?post=718"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}