문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[분류: 컴파일러]] == 개요 == Virtual instruction set computing (VISC)는 [[ISA]]디자인시에, [[프로세서]]가 사용할 ISA와 컴파일되는 ISA가 일치하지 않는 환경을 말한다. 컴파일러가 만드는 virtual ISA (vISA)는 프로세서가 사용할 ISA로 compile time, link time, install time, boot time, 혹은 Just-in-time 러와 같은 특정 상황에서 실제 ISA로 변환 되게 된다 <ref>[[Hardening Hypervisors with Ombro]]</ref>. == Secure Virtual Architecture == Secure Virtual Architecture (SVA)는 VISC중에서 코드 생성기가 vISA의 Security를 체크하는 환경을 말한다. SVA는 [[LLVM]] [[IR]]을 확장하여서, 추가적인 Run-time security checks와 static analysis가 가능하도록 변경한다. 만약 Operating system에 사용된다면, I/O, MMU혹은 Context change와 같은 일들이 안전하게 이루어질 수 있도록 Additional한 Security check을 더하도록 이용될 수도 있다. SVA를 제대로 사용하기 위해서는 [[Control flow integrity]]가 보장되어, 프로그램이 SVA를 해칠 수 있는 특정 명령어, (예 - reboot, int3)를 사용할 수 없도록 하여야 한다. 이를 위해서 메모리의 Access permission을 write 과 execute를 XOR로 하거나, 아니면 Hardware protection을 이용하는 법, 혹은 [[SFI]]를 이영하는 법들이 사용되어 진다. 더 자세한 내용은 Secure Virtual Architecture: A Safe Execution Environment for Commodity Operating Systems<ref>[[Secure Virtual Architecture: A Safe Execution Environment for Commodity Operating Systems]]</ref>참고. == References == Virtual instruction set computing 문서로 돌아갑니다.