W3C home > Mailing lists > Public > public-html-ig-ko@w3.org > June 2012

Re: Benchmarks Shows That iOS 6 Safari is 17.2% Faster Than iOS 5

From: mixed <i.nevalose@gmail.com>
Date: Fri, 15 Jun 2012 17:40:02 +0900
Message-ID: <CAByZ=OmwjH_heqMGbYgaFdKLcVmif8NdvKxXHuzNJ-S5gToHHg@mail.gmail.com>
To: Younggyo Seo <seo.younggyo@gmail.com>
Cc: Sangwhan Moon <sangwhan.moon@hanmail.net>, HTML WG <public-html-ig-ko@w3.org>
안녕하세요. 전용우입니다.

제가 이해하는데 구멍이 있던 부분이 sandbox부분이였는데 쉽게 설명해주셔서 이해가 잘 됐습니다.

감사합니다.^^


2012/6/15 Younggyo Seo <seo.younggyo@gmail.com>

> 안녕하세요.
>
> 코드로 설명해 주시니 명확하게 이해되네요.
> 감사합니다.
>
> 서영교 드림
>
> 2012년 6월 15일 오후 2:59, Sangwhan Moon <sangwhan.moon@hanmail.net>님의 말:
>
> 안녕하세요.
>>
>> 얼마전에 언급된 "크롬이 아이패드로 나온다" 였던가의 메일에서 에서
>> 크롬 포팅 가능성에 대해서 회의적인 입장으로  간단하게 언급했습니다만...
>>
>> On Jun 14, 2012, at 11:10 PM, Wonsuk Lee wrote:
>>
>> > 안녕하세요.
>> > 먼저 좋은 답변 감사합니다~
>> > 아래와 같이 inline comment를 달았습니다~
>> >
>> >
>> > 2012년 6월 14일 오후 2:25, Younggyo Seo <seo.younggyo@gmail.com>님의 말:
>> >> 안녕하세요. 오비고 서영교 입니다.
>> >>
>> >> 저도 궁금해서 좀 더 구글링을 해봤습니다.
>> >> 전용우 그룹장님 의견에 추가하여,
>> >>
>> >> 일반적인 Native Application은 크게 코드 영역과 실행 영역으로 나눌 수 있을 것이고, 컴파일 이후에는 코드
>> 영영의 변경은 이루어 지지 않을 것 입니다.
>>
>> 이 부분에 내용이 조금 틀린 부분이 있습니다. text 와 data 두가지로 크게 나뉘는데,
>> text가 code라고 불리기도 합니다. (대부분의 disassembler나 debugger는 text라는
>> 명칭을 사용합니다) data는 말 그대로 data입니다.
>>
>> "실행이 가능한" segment라고 하면 마찬가지로 text가 아닐까 생각됩니다.
>>
>> > 그런데 코드영역과 실행영역이 정확히 어떤 것을 이야기 하는 것인가요?
>> >> 하지만 JIT이 동작하기 위해서는 Native Application이 실행된 다음, 실시간으로 코드 영역이 생성되어 져야
>> 합니다.
>> >> 그러나 iOS에서는 Application의 실행 중, 코드 영역을 생성하여 실행할 수 없도록하는 보안 정책을 가지고 있다고
>> 합니다.
>> >> - iOS 전문가님의 의견 필요 ^^
>>
>> 조금 더 정확히는 mmap으로 시스템으로 부터 실행 가능한 페이지 (PROT_EXEC)를
>> 할당받아서 사용합니다. 이 접근을 사용하는 것이 Sandbox 안에서는 불가능합니다.
>>
>> 예> void* executable_code_page = mmap(NULL, 8192,
>> PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
>>
>> ARM의 경우.. 여기에서 executable_code_page를 32-bit align한 후 실행하고 싶은
>> 코드를 전부 넣고, 마지막에 BX R14을 넣어준 다음, 호출하면 주입한 코드가 전부
>> 실행이 된 다음에 반환됩니다.
>>
>> 물론 아키텍쳐에 따라서 접근은 달리 해야 합니다. 자세한 내용은 책이 아닌 관계로
>> 생략하겠습니다.
>>
>> >> 애플에서는 이 보안 정책을 Safari 에서만 예외가 가능하도록 처리해 놓았기 때문에, Safari에서만 nitro가
>> 동작가능한 것
>> >> 같습니다.
>>
>> 애플에서 내보내는 Safari는 Sandbox안에서 돌아가지 않기 때문에 가능한 것입니다.
>> App store에서 다운로드 받은 어플리케이션은 전부 Sandbox context 안에서 실행되기
>> 때문에 그 안에서 dynamic link된 UIKit.framework에서 UIWebView를 사용하게 될
>> 경우 해당 Webview에서 사용하는 Webkit의 실행 context가 Sandbox안에 있기 때문에
>> 위와 같이 실행 가능한 코드를 주입하는 것이 불가능합니다.
>>
>> 코드를 열어보지는 않았습니다만, 아마 자바스크립트 엔진에서 sandbox 안에 있는지 또는
>> UIWebView에서 호출되었는지 assert 후 실패할 경우 interpreter모드로 fallback을 할 것으로
>> 추정됩니다. 만약에 UIWebView를 jailbreak된 상태에서 사용할 경우 JIT가 동작한다면 후자
>> 일 것이고, jailbreak를 했어도 JIT가 비활성화되어 있다면 전자로 생각하시면 됩니다.
>>
>> (여담으로 전자가 구현하기 쉽고 오류의 여지가 상대적으로 적기 때문에 저라면 전자로 했을겁니다.)
>>
>> 단적인 예로... Safari는 Sandbox안에 있지 않았었기 때문에 Freetype 취약점을 이용한
>> Jailbreakme 3.0이 가능했던것입니다.
>>
>> >> 또한 이런 이유로 Webkit2가 Safari on iOS 에에 적용되면 WebView에서도 nitro의 사용이 가능하다고
>> 말하고 있는 것 같습니다.
>> >> - Webkit2의 경우 UI와 엔진이 프로세스로 분리되어 동작하고 있는 것으로 압니다.
>> >
>> > Webkit2에서는 UI 프로세스와 Web 프로세스로 분리되어 있기는 합니다만 이렇게 되는 경우에 왜 Nitro 적용이
>> > 가능한지는 정확히 이해가 되지 않습니다^^;
>> > 혹시 좀더 자세히 설명이 가능할 까요?
>>
>> 위에 설명이 되었을것이라고 생각됩니다. (고용주와 관계 상 Webkit에 대해서 더 자세하게
>> 이야기하지 못하는 점, 양해 바랍니다.)
>>
>> 애플에서 보안 정책을 갑자기 변경하지 않는 이상, 상기와 같은 이유로 iOS에 Opera Mobile이나
>> Firefox, Chromium이 나오더라도 반쪽짜리 제품이 나올것이라고 생각됩니다.
>>
>> (추가적으로 App store review guideline 현행 버전에 의하면 additional executable code에
>> 대해서 명시적으로 언급이 되어 있기 때문에, 그게 바뀌기 전까지는 브라우저도 게임기 에뮬레이터도
>> 전부 정책 변경이 이루어질때까지는 불가능합니다.)
>>
>> 감사합니다.
>> 문상환 배상
>>
>> >>
>> >> http://code.google.com/p/v8/issues/detail?id=1312
>> >> - I was told that the problem with getting V8 to run on iOS was the
>> fact
>> >> that JIT compilation could not be supported due to Apple disabling
>> writable
>> >> and executable memory regions.
>> >>
>> >> http://news.ycombinator.com/item?id=2317804
>> >> -  A JIT works by compiling some chunk of code into a section of
>> executable
>> >> memory, then jumping to that location. As I understand it, iOS hasn't
>> >> previously allowed execution of code from "data memory" (various
>> people were
>> >> curious about this very thing when it was announced they were shipping
>> a
>> >> JIT).
>> >>
>> >> 서영교 드림
>> >>
>> >> 2012년 6월 14일 오전 9:37, mixed <i.nevalose@gmail.com>님의 말:
>> >>
>> >>> JIT는 실행시점에 컴파일되서 올라가기 때문에 이때 뭔가 조작해서 수정할 수 있어 보안에 문제가 될수 있다는 말이네요.
>> >>> 반면에 전통적인 컴파일러는 프로그램 시작하기 전에 하기 때문에 괜찮구요.
>> >>>
>> >>>
>> >>>
>> http://stackoverflow.com/questions/95635/what-does-a-just-in-time-jit-compiler-do
>> >>>
>> >>> 제가 이해하기로는 그런데 맞는지는 확신을 못하겠네요 ㅎㅎ
>> >>>
>> >>>
>> >>>
>> >>> On Thursday, June 14, 2012, Wonsuk Lee wrote:
>> >>>>
>> >>>> 전용우 그룹장님.
>> >>>>
>> >>>> 저도 사실 내용이 정확히 이해가 가지는 않습니다^^ 전문가의 도움이 필요할 듯하네요 ㅎㅎ
>> >>>>
>> >>>> 이 글이 맞다면 보안 이슈로 iOS의 Webview는 JIT을 사용하지 않는 것입니다. 그런데 iOS의 Webview에
>> JIT을
>> >>>> 사용했을 때(Nitro를 적용했을 때) 어떤 경우의 문제 때문에 Security 이슈가 있는 것인지는 이해가 정확히 가지
>> 않네요 ;)
>> >>>>
>> >>>>
>> >>>>
>> >>>> 혹시 아시는 분계시면 설명 부탁드립니다~^^
>> >>>>
>> >>>>
>> >>>>
>> >>>> 이원석 드림.
>> >>>>
>> >>>>
>> >>>>
>> >>>> From: mixed [mailto:i.nevalose@gmail.com]
>> >>>> Sent: Thursday, June 14, 2012 8:20 AM
>> >>>> To: Wonsuk Lee
>> >>>> Cc: public-html-ig-ko@w3.org
>> >>>> Subject: Re: Benchmarks Shows That iOS 6 Safari is 17.2% Faster Than
>> iOS
>> >>>> 5
>> >>>>
>> >>>>
>> >>>>
>> >>>> 아... 사실 몰랐습니다.
>> >>>>
>> >>>> 좋은 자료 감사합니다.^^
>> >>>>
>> >>>> 근데 글을 보면 안드로이드가 되는가봐서 수정이 안되지는 않을것 같은데 모르겠네요.
>> >>>>
>> >>>>
>> >>>>
>> >>>> 느낌이 보안은 밖에다 말하는 핑계같고 실제 이슈는 다른게 있을것 같네요. ㅋㅋ
>> >>>>
>> >>>> JIT로 바꾸는건 쉽게 되지만 전에 iOS의 뭔가를 먼저 수정해야하는데 이게 너무 공수가 커서 못하는 느낌?^^;
>> >>>>
>> >>>>
>> >>>>
>> >>>> 여튼 모던 자바스트립트 엔진은 모두 JIT컴파일을 하는데... 뭔가 좀 이상하네요.
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> On Thursday, June 14, 2012, Wonsuk Lee wrote:
>> >>>>
>> >>>> 전용우 그룹장님.
>> >>>> 아마도 Webview에 Nitro가 올라가기는 어려울 겁니다^^ 아마도 아실 것 같은데 Security issue가 있어서
>> >>>> 그렇습니다. 자세한 내용은 [1]을 참고하세요~
>> >>>>
>> >>>> [1]
>> http://www.imore.com/2011/03/17/safari-nitro-web-clips-uiwebview/
>> >>>>
>> >>>> 이원석 드림.
>> >>>>
>> >>>> 2012년 6월 13일 오후 11:42, mixed <i.nevalose@gmail.com>님의 말:
>> >>>>> 근데 아쉽게도 iOS6의 webview에 아직도 nitro엔진이 안올라간게 함정이네요.
>> >>>>> 정식으로 릴리즈될 때는 nitro엔진이 올라갔으면 좋겠어요.
>> >>>>>
>> >>>>>
>> >>>>> On Wed, Jun 13, 2012 at 10:42 PM, Wonsuk Lee <wonsuk73@gmail.com>
>> >>>>> wrote:
>> >>>>>>
>> >>>>>> 안녕하세요.
>> >>>>>> 애플의 HW와 SW 최적화 기술은 정말 대단하네요. iOS6 Safari Browser도 iOS5때 보다 17% 정도
>> 성능
>> >>>>>> 향상이 되었다고 합니다^^
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> http://cellphonequick.com/benchmarks-shows-that-ios-6-safari-is-17-2-faster-than-ios-5/
>> >>>>>>
>> >>>>>> 이원석 드림.
>> >>>>>> =========================================
>> >>>>>> 이 원 석 (Wonsuk, Lee) / Principal Engineer, Ph.D
>> >>>>>> SAMSUNG ELECTRONICS Co., LTD. (三星電子)
>> >>>>>> Mobile: +82-10-5800-3997
>> >>>>>> E-mail: wonsuk11.lee@samsung.com, wonsuk73@gmail.com
>> >>>>>> http://www.wonsuk73.com/, twitter: @wonsuk73
>> >>>>>> -----------------------------------------
>> >>>>>> Inspire the World, Create the Future !!!
>> >>>>>> =========================================
>> >>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> --
>> >>>>
>> >>>> =========================================
>> >>>> 이 원 석 (Wonsuk, Lee) / Principal Engineer, Ph.D
>> >>>> SAMSUNG ELECTRONICS Co., LTD. (三星電子)
>> >>>> Mobile: +82-10-5800-3997
>> >>>> E-mail: wonsuk11.lee@samsung.com, wonsuk73@gmail.com
>> >>>> http://www.wonsuk73.com/, twitter: @wonsuk73
>> >>>> -----------------------------------------
>> >>>> Inspire the World, Create the Future !!!
>> >>>> =========================================
>> >>
>> >>
>> >
>> >
>> >
>> > --
>> >
>> > =========================================
>> > 이 원 석 (Wonsuk, Lee) / Principal Engineer, Ph.D
>> > SAMSUNG ELECTRONICS Co., LTD. (三星電子)
>> > Mobile: +82-10-5800-3997
>> > E-mail: wonsuk11.lee@samsung.com, wonsuk73@gmail.com
>> > http://www.wonsuk73.com/, twitter: @wonsuk73
>> > -----------------------------------------
>> > Inspire the World, Create the Future !!!
>> > =========================================
>>
>>
>
Received on Friday, 15 June 2012 08:40:58 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 15 June 2012 08:40:58 GMT