루팅된 폰에서만 가능

확실한 정보는 아니고, 대충 느끼기에..
안드로이드 부팅 중 /system/app 또는 /system/priv-app 에 있는 apk들의 압축을 /data/data에 푸는듯 보인다.
즉, /system 안에 있는 애들을 지워주면 될 것 같은데.. 이 안에 있는 것을 지우려고 하면 mount가 read-only 로 돼있어서 지워지질 않는다.
따라서, 마운트를 바꿔준 후, 앱을 지우도록 하자

#su
#mount -o rw,remount /system
#cd /system/priv-app
#rm -rf [App Name]

이후 재부팅 해서 /data/data 안을 보면 [AppName] 이 없는 것을 확인 할 수 있다.
/system 안에서 찾을 수 없으니 부팅 중에 가져오지 않은 것이다.(추측)
당연히 어플리케이션 관리자에도 없다.
그리고 재부팅하면 다시 /system은 read-only로 돼있으니 따로 mount를 바꿔줄 필요는 없다.
저작자 표시 비영리 변경 금지
신고
블로그 이미지

roter

JHB / Peripheral Programmer

Tag android

댓글을 달아 주세요

 

CPU (Central Processing Unit)

CPU가 무엇인가... 하면.. 컴퓨터의 두뇌같은 녀석이다. CPU가 들어가면 그놈은 컴퓨터라고 할 수 있으며, 컴퓨터라고 하면 거기엔 CPU가 있다고 볼 수 있다. 두뇌이기 때문에 CPU라고 하면 한 컴퓨터 시스템에 1개가 있다.(Central Unit 입니다~!)

보통 검정색 Chip 으로 돼있다.

예전에는 단순히 제어 장치, 연산 장치, 레지스터.. 정도가 다였지만, 요즘은 공정 기술이 좋아지면서 이것저것 마구마구 들어간다.

PC용 CPU를 보면 내장 그래픽 카드도 들어가고 장난 아니다.

SoC (System On Chip)이라 그래서 요즘은 엄지손톱 만한 자그만 칩에 이것저것 다 들어간다. Processor + System Bus + Peripherals + Memory 등등등.. 보통 이렇게 On Chip 돼있는 애들은 MCU(Micro Controller Unit)라고 부른다. 주변 장치가 따로 Off Chip 돼있는 애들은 MPU라고 부른다.

자 그럼 MCU와 CPU의 개념이 햇깔릴 수 있는데, 이렇게 생각하면 된다.

예를 들어 요즘 스마트폰에는 CPU가 무엇이 들어가는가? 보통 ARM의 A시리즈 프로세서가 들어간다. 그럼 이 ARM-A시리즈 프로세서가 '스마트폰의 Central Processing Unit)'인 것이다. 근데 스마트폰 안에 이러한 mcu가 하나만 있을까? 아니~ 더 많다. 터치스크린을 컨트롤 하는 칩 역시 mcu이며, (아마도) 센서들을 다루는 칩 역시 mcu 일 것이다. 그렇다고 터치스크린, 센서를 다루는 녀석들을 스마트폰의 cpu라고 부르진 않는다.

아키텍쳐를 따로 떼어놓고 보아서, 만약 터치스크린 패널 - 터치스크린 ic(mcu) 이 두가지를 컴퓨터라고 부른다면, 이 환경에서의 cpu는 터치스크린 ic가 맞겠지만, 스마트폰의 cpu는 arm a시리즈라는 것.

자동차 역시, 엔진 제어 유닛인 ECU, 그 외 자동 에어콘 시스템, 자동 라이트 온/오프 시스템 등등 여러가지 있겠지만, 가장 중요한놈은.. 워디에 있을까? 여튼 CPU라고 불리는 놈은 하나일 것이다. (자동차 시스템을 잘 몰라서..^^;)

너무 말이 길었다.. 한줄 정리 하겠다.

CPU : '컴퓨터'의 '중앙 처리 장치'를 말하며, MCU가 올수도 있고 MPU가 올 수도 있다. 끝

 

 

Processor

흔히 말하는 연산 기능, 제어 기능, Program Counter, 캐쉬 등등이 이 안에 들어 있다. 무엇 보다 가장 중요한 Core가 들어있다.

 

 

Core

Core에 따라 이 CPU가 ARM계열이냐, MIPS계열이냐, x86계열이냐 등등 분류된다.

안에는 ALU, Register 등등이 있다. 참고로 Core는 예전이나 지금이나 크게 다를 바가 없다. 보통 ARM Processor가 예전에 비해 발전됐다고들 하는데, Core는 거의 변한게 없고, 주변 Cache라던지 다른 장치들이 발전된 것이다.

 

Peripheral 장치

사전적 정의를 찾아보면 Peripheral은 '주변적인'라고 나온다. 말그대로 주변 장치이다. 보통 CPU 내부에서 Processor와 연결되는 여러 장치들을 말한다. 위 그림을 보면 ADC, UART등이 있다. CPU 외부의 센서를 CPU의 ADC에 할당된 핀에 연결하고, ADC는 이를 읽어서 Analog to Digital Convert 하여 AHP/ABP BUS를 통해 Processor로 값을 전달한다.

 

 

 

이제, 이 강좌는 ARM 강좌이기 때문에.. 아래 그림을 다시 유심히 보자. 

쉽게 설명하기 위해 개략적으로 소개하겠다

 

CPU를 보면 Processor와 Bus, 그리고 여러가지 Peripheral 장치들이 연결돼 있는걸 볼 수 있는데, 여기서 빨간색 점선으로 돼있는 부분까지가 ARM社에서 라이센싱 하는 부분이다.

ST, TI, Samsung LSI 등 회사들은 ARM으로 부터 라이센스를 구매해서 사용하며, 주변의 Peripheral 장치들을 연결하여 One Chip으로 만들어 판매한다.

즉, Processor와 Bus는 ARM의 기술력이며, 그 외의 부분들은 Vendor의 기술력이라 보면 되겠다.

건축으로 예를 들면, ARM 사는 설계도를 판매하는 건축설계사무소 이며, ST, TI, Samsung LSI 등의 벤더들은 건축 시공을 하는 시공사들이다.

 

 

저작자 표시 비영리 변경 금지
신고

'PROGRAMMING > Firmware' 카테고리의 다른 글

[ARM] CPU, Processor, MCU, Core, SoC  (0) 2015.10.05
[ARM] ARM 강좌를 시작하기에 앞선 잡담  (0) 2015.10.05
블로그 이미지

roter

JHB / Peripheral Programmer

댓글을 달아 주세요

학교에서 Computer Architeture 수업을 듣는데..

MIPS Architecture로 수업을 했다. (ARM이었으면 더 좋았을텐데..)

참 웃긴게, 나는 수업 듣는 내내 뭔 내용인지 이해를 하지 못했었다..

Booth 알고리즘은 뭐고.. ALU는 뭐고..

무엇보다 내가 왜 저런걸 해야하는건지?? 그냥 XML에 레이아웃 쫙~ 그려서 JAVA로 안드로이드 뙇! 하면 프로그램 하나가 만들어 질텐데..

재미도 없고 지루하기만 하고..

 

나는 좀 '동기'가 있어야 움직이는 사람인데.. 학교 수업 당시에는 그러한 '동기'가 없었다. 고로 나는 움직이지 않았고.. 수업을 열심히 듣지 않았다.

 

시간은 흘러..

현업에서 Firmware를 주업으로 하게 되면서, 하드웨어 flow를 이해하는 것이 얼마나 중요한 것인지 깨닫게 되었다.

특히나, '찰나'의 순간도 중요한 '상품화'를 위한 로직을 설계 하게 되면, 최적화는 필수 불가결한 요소이다.

 

예를 들어, 카메라로 눈을 깜빡이는 순간을 인식하는 하드웨어를 설계한다고 쳐보자. 내가 눈을 깜빡이는데 0.001초가 걸리는데, 이 때 프로세스가 잠시 딴짓을 하느라 처리를 못했다면, 혹은 0.01초 단위밖에 인지를 하지 못한다면 해당 장치는 필요가 없는 것이 된다. 이런 마이크로 이하 단위의 시간을 컨트롤 하는데 최적화는 말하지 않아도 중요하단 것을 알 수 있다.

 

어떤 페리퍼럴 장치가, 어떤 버스에 연결되고, 어떠한 데이터를 캐쉬에 넣을 것이며(캐쉬 적중률은 어떻게 높일 것이며), Floating 연산을 쓸 것인지, 작은 칩을 써야하는지, Mux를 쓸것인지 시분할을 할것인지 등등

결정할 수 있는 사항은 너무나 많고, 리소스는 한정적이고.. 시간 역시 한정 적이다.

 

우선 경험이 제일 중요하고, 그 경험을 뒷받침해줄 이론 또한 중요하다.

그래서 내가 아는 ARM 지식을 정리해보고자, 여기에 글을 쓰기로 결심했다.

 

적고 나니 뭔말을 하는건지 모르겠다.. 일단 걍.. 시작하겠다.

 

아직 ARM에 대해 잘 모르면 도대체 이게 뭐야? 이럴텐데..

이 강좌를 다 보고 나면 위 그림을 보고 어느 정도 이해할 수 있는 수준이면 좋겠다.

 

 

 

2000년도 초중반쯤에 삼성에서 나온 S3C2440A의 블록다이어그램. 이게 뭔 그림인지 이해한다면, 본 강의를 볼 필요도 없다.

 

 

저작자 표시 비영리 변경 금지
신고

'PROGRAMMING > Firmware' 카테고리의 다른 글

[ARM] CPU, Processor, MCU, Core, SoC  (0) 2015.10.05
[ARM] ARM 강좌를 시작하기에 앞선 잡담  (0) 2015.10.05
블로그 이미지

roter

JHB / Peripheral Programmer

댓글을 달아 주세요