둘러보기 메뉴
검색
바뀐글
임의글
개인 도구
가입하기
로그인
도움말
도움말
질문게시판
자주 묻는 질문
커뮤니티
실시간 채팅방
가입인사게시판
자유게시판
뉴스게시판
제재안게시판
최근 토론
페미위키
공지사항
개선 요청
바뀐글
임의글
파일 올리기
다면 분류 목록
특수 문서 목록
WASI 문서 원본 보기
이름공간
문서
토론
주시
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
위키베이스 항목
행위
보기
읽기
원본 보기
역사 보기
←
WASI
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요.
요청한 명령은 다음 중 하나의 권한을 가진 사용자에게 제한됩니다:
사용자
,
Seeders
.
문서를 고치려면 이메일 인증 절차가 필요합니다.
사용자 환경 설정
에서 이메일 주소를 입력하고 이메일 주소 인증을 해주시기 바랍니다.
문서의 원본을 보거나 복사할 수 있습니다.
WASI는 [[WebAssembly]] System Interface의 준말로, CPU 아키텍처에 관계없이 작동하는 WebAssembly를 OS에 관계없이 실행시킬 수 있는 인터페이스이다.<ref name=":0" /> [[Docker]]의 공동 설립자 솔로몬 하이크스는 2008년에 WASI가 존재했다면 Docker를 만들 필요도 없었을 것이라고 평했다.<ref>{{트윗 인용 | url = https://twitter.com/solomonstre/status/1111004913222324225 | date = 2019-03-27 | dead-url = no | archive-url = https://web.archive.org/web/20190331040119/https://twitter.com/solomonstre/status/1111004913222324225 | archive-date = 2019-03-31 | id = solomonstre | author = Solomon Hykes }}</ref> == 탄생 배경 == 기존에는 WebAssembly를 브라우저 밖에서 실행할 때 [[시스템 호출]]을 이중 모방한 인터페이스를 사용하였다. WebAssembly 컴파일러로 많이 쓰이는 [[emscripten]]의 경우 [[자바스크립트]]로 모방된 시스템 호출 인터페이스를 통해 브라우저를 조작하여 시스템과 상호 작용했는데, 이를 브라우저 없이 시스템과 직접 상호 작용하도록 만들기 위해 emscripten의 인터페이스를 다시 모방하여 사용한 것이다. 그러나 emscripten의 인터페이스는 표준화되지 않았고 타입 안전하지 않으며 인자를 넘길 때 [[레지스터]] 대신 [[힙]]을 이용하므로 성능도 떨어진다. emscripten의 목적이었던 자바스크립트의 제한적 환경에서는 관계없는 단점들이지만, 자바스크립트가 아닌 다른 환경에서까지 이 단점들을 그대로 모방할 필요는 없었다. 따라서 WASI란 이름으로 여러 환경에서 사용할 수 있는 표준화된 인터페이스를 만들게 된다.<ref name=":0" /> == 샌드박싱 == 기존 OS의 인터페이스는 사용자가 접근할 수 있는 리소스라면 [[애플리케이션]] 또한 문제 없이 접근이 가능한 점 때문에 악성 코드가 사용자 정보를 쉽게 탈취할 수 있는 문제가 있었다. WASI는 샌드박싱을 이용해 애플리케이션이 가진 권한에 따라 해당 권한에 맞는 함수를 제공하여 이런 문제를 해결한다. 파일 시스템의 경우 WASI에서는 각 애플리케이션은 기본적으로 따로 할당된 [[디렉토리]] 안에 있는 파일에만 접근이 가능하며, 각 모듈 또한 권한이 구별되기 때문에 파일 시스템 접근이 허가되지 않은 모듈은 모듈 외부에서 파일 디스크립터를 넘겨받아야만 비로소 파일 접근이 가능하다.<ref name=":0" /> == 출처 == <references> <ref name=":0">[https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/ Standardizing WASI: A system interface to run WebAssembly outside the web]</ref> </references> [[분류:성격/인터페이스]]
이 문서에서 사용한 틀:
틀:트윗 인용
(
원본 보기
)
WASI
문서로 돌아갑니다.
다른 언어