난 갤럭시S 사용자가 아니지만 스마트폰을 이렇게 설계했다는게, 그리고 이런 속사정을 사용자들에게 알리지 않고 판매한다는게 큰 문제인 것 같다. 이런 사정을 알고도 스마트폰을 살까?
http://v.daum.net/link/10624935
안드로이드 폰의 메모리 구조는 다음과 같다.
1. 전원이 켜진 동안 OS와 앱이 상주하며 CPU와 직접 대화를 하는 RAM과
2. 항상 OS와 앱이 설치되어 있고 가끔 RAM이 부족할 때 스왑핑을 하는 플래시 메모리와 (ROM이라고도 표현함)
3. 대용량 미디어 파일과 앱에서 사용하는 미디어, 사용자가 USB 메모리처럼 활용할 수 있는 대용량 메모리 혹은 SD 메모리
4. 그리고 스펙에는 안나오지만 부트로더나 OS초기화시 이용하는 자료가 담겨있는 말그대로 진짜 ROM, 통신용 RAM 기타 etc 메모리들이 있다.
모토로이를 예로 들면 RAM 256M, 플래시(ROM) 512M, SD 메모리 8기가로 되어 있을 것이다. OS와 앱, 위젯등이 상주하기 시작하면 가용램은 최대 100M에서 적으면 3-40M 수준으로 떨어진다. 메모리가 데스라인을 넘어가면 자동으로 재부팅하는 당신의 폰을 발견할 수 있을 것이다. 바탕화면에 위젯을 많이 설치하거나 연락처,사진,음악등을 대량으로 저장해놓고 다닌다던가 멀티태스킹을 원한다면 384M 이상의 메모리가 마지노선이라 할 수 있다.
플래시 512M에는 안드로이드 OS와 SKAF를 포함한 각종 기본 앱들, 그리고 당신이 설치한 앱들이 저장된다. 그리고 가장 중요한 부분은 보안문제상 이 부분을 제외한 나머지 확장메모리에 앱을 설치하는 것은 불가능하다. 당신이 구입한 안드로이드폰의 플래시 512M 중 과연 당신이 사용가능한 자유로운 부분이 얼마나 되는지 확인하자. 빈 공간이 100M 정도라면 그 100M만이 당신이 앱을 설치할 수 있는 유일한 장소이다.
물론 용량문제를 너무 지나치게 걱정할 필요는 없다. 당신이 100M의 앱을 설치한다고 해서 모든 부분이 메모리에 설치되게 만든다면 누구도 그 앱을 사지 않을 것이다. 하나 깔고 다른 앱을 설치할 수 없어지기 때문이다. 그렇기 때문에 앱 개발자들이 머리를 썼다. 끽해야 수백KB-10MB 안팎의 코어부분만을 당신의 플래시 메모리에 설치하게 될 것이다. 나머지는 최초 실행할 때 당신의 대용량 확장 메모리에 다운로드 되도록 앱을 설계했을 가능성이 크다.
그렇다 하더라도 당신의 플래시 메모리 100M에 설치할 수 있는 앱의 개수는 상당히 한정지어지게 된다. 그런 연유로 프로요에서는 확장메모리에 앱을 설치할 수 있는 것으로 알려져 있다. 그러나 이는 다소 잘못 알려진 것이다. 프로요에서는 확장메모리에 앱을 전적으로 설치할 수 있는 것이 아니다. 확장메모리에 설치한 앱은 이유는 모르겠지만 확장메모리와 플래시 메모리에 반반씩 설치된다. ODEX파일을 남겨서 그런것 같던데 아직 확실한 이유는 모르겠다. 이것이 사실이라면 당신이 플래시 메모리에 100M의 빈공간을 가졌다면 200M의 앱을 설치할 수 있어졌을 뿐 확장메모리에 모두 옮길 수 있어진 것은 아니다. 그나마도 당신이 다운로드 받은 앱이 확장메모리에 설치기능을 지원하지 않는다면 말짱 꽝이다. 이런 연유로 아이폰의 경우에는 16GB의 NAND 플래시에 모든 앱과 모든 미디어를 저장할 수 있기 때문에 수백개의 앱을 부담없이 설치할 수 있는 반면에 안드로이드폰에서는 설치할 수 있는 앱의 개수가 상당히 한정될 수 밖에 없다.
이를 극복할 방법은 내장 플래시 메모리의 용량을 늘리는 것이다. 옵티머스 Q같은 경우에는 3GB의 내장 플래시 메모리를 제공한다. 이건 간단한 문제같으나 이는 여러가지 문제점을 야기한다. 우선 내장 플래시 메모리에 쓰이는 SLC 플래시는 속도가 빠르고 수명이 길지만 가격이 너무 비싸다. 그리고 용량을 늘릴수록 랜덤억세스에 필요한 전력소모량이 늘어난다. 그렇다고 해서 값싸고 용량이 큰 MLC 플래시를 사용하는 것은 상당한 속도의 지연문제가 발생한다. 따라서 대략 512M, 많으면 768M에서 1G까지의 내장 메모리를 제공하는 것이 일반적이다.
이런 면에서 갤럭시 S는 상당히 특이한 폰이다. 배짱좋게도 앱 설치에 내장 플래시를 이용하지 않고 16G의 moviNAND MLC 플래시를 달았다. 그냥 아이폰을 흉내내서 대용량 16G를 달면 해결될거라고 생각한 모양이다. 그래놓고 2G는 내장플래시 대신 사용자 앱 설치 영역으로 쓰도록, 나머지 14G는 외장메모리처럼 쓸수 있도록 파티션만 둘로 나눠놨다. 이렇게 해서 겉으로는 512RAM, 512M(시스템영역)+2G(사용자 앱 설치영역) 내장 플래시, 14G 확장플래시 메모리 의 스펙을 가진 것처럼 보이도록 만들었다. 그러나 앞서 말했듯이 moviNAND MLC 플래시는 매우 느리다. 따라서 속도저하가 발생할 수 밖에 없다. (갤K,U에 쓰이는 내장 플래시 메모리는 느린 MLC + 빠른 SCL 하이브리드 원낸드이다.) 따라서 갤럭시 S는 갤럭시 K나 U에 비해 수배 이상 많은 용량의 앱을 설치할 수 있는 반면 상대적인 앱 동작 속도에서는 느릴 수 밖에 없다.
더 결정적인 문제는 다른데 있다. 안드로이드는 곧 리눅스이다. 대개 이 내장 플래시 메모리는 리눅스에서 사용하는 ext2,ext3,ext4 등의 포맷으로 포맷되면 좋으련만 moviNAND는 자신의 짧은 수명을 대비해 삼성 특유의 rfs라는 포맷으로 파티션하도록 되어 있다. 이 rfs가 수명 연장의 꿈에는 도움이 되지만 반면에 랜덤억세스에 조홀라 느리다는 거다. 그래서 갤럭시 S는 타사의 제품에 비해 압도적인 하드웨어 스펙을 가지고 있음에도 조홀라 느려지고 그 스펙에 나올 수 없는 어처구니 없는 프리징을 경험할 수 밖에 없어지는 거다. 이것이 갤럭시 S 발적화(?)의 실체이다.
해결책은 있는가? 있다. 루팅한 후 rfs를 ext 파티션으로 다시 고쳐버리는 거다. 이러면 엄청난 속도향상을 경험할 수 있다. moviNAND 플래시의 수명은 장담할 수 없어지긴 하지만 ㅡ_-;;; 이것이 두려운 유저라면 외장 SD 메모리를 구입해 ext 파티션으로 파티션한 후 /data/app 폴더로 마운트해서 앱이 외장 SD메모리에 모두 깔리게 하는 방법이 있다. 갤럭시 S 유저라면 한번쯤 루팅을 고려해 볼 필요가 있다. 자세한 내용이 궁금하신 분은 “부두 패치”로 검색하시기 바란다.
부족한 512M의 외장 메모리만을 가진 모토로이 유저라 할지라도 마찬가지 방법으로 외장 SD메모리에 파티션한 후 /data/app 폴더로 마운트한다면 이론적으로 볼때 충분히 앱설치 공간의 문제를 극복할 수 있을 뿐 아니라 속도개선효과도 있을 것이다. 그러나 실제로 활용했다는 예를 아직 보지를 못해서…누군가는 했을지도…
[출처] 갤럭시 S I/O 속도저하의 근본적 이유.|작성자 musiki