분류 전체보기
-
안드로이드 4.0, 기본 커널과 삼성 커널 코드 비교IT/Linux Kernel 2011. 12. 28.
안드로이드 커널 소스코드를 받는 과정에서, 하나가 아닌 여러개로 관리되는데 그중 삼성버전이 있었다. 삼성에서 관리하는 거의 초기모델에 가까운 안드로이드 모바일 갤럭시S가 처음 나왔을 때 엄청나게 느린 현상을 보여줌을 경험상으로 알고 있기 때문에(물론 지금은 엄청 빨라졌음) 출시된지 얼마 안된 안드로이드 4.0 플랫폼에서 사용되는 커널은 어떤 차이점이 있을까 궁금증으로 소스코드 diff를 좀 해보았다. 안드로이드 커널 소스코드 다운로드 방법은 이전에 포스팅 했었다. 2011/12/26 - [리눅스(Linux)/커널(Kernel)] - 안드로이드 커널 소스코드 그 과정에서 레파지토리 정보를 복사할 때, 삼성 커널로 복사해오면 된다. git clone https://android.googlesource.com..
-
안드로이드 커널 버전과 플랫폼 버전 확인하는 방법IT/Linux Kernel 2011. 12. 27.
안드로이드 코드는 크게 두가지로 나눠진다. 안드로이드 플랫폼 소스코드 안드로이드 커널 소스코드 각각의 소스코드에서 버전을 확인할 수 있다. 첫번째, 안드로이드 플랫폼 버전 확인하기. vi build/core/version_defaults.mk 플랫폼 소스코드를 다운로드 받았다면, 해당 버전파일을 통하여 이 코드의 플랫폼 버전을 확인할 수 있다. 플랫폼 버전이란 4.0(아이스크림) 이런걸 의미한다. 두번째, 안드로이드 커널 버전 확인하기 vi kernel/Makefile VERSION = 3 PATCHLEVEL = 0 SUBLEVEL = 8 EXTRAVERSION = NAME = Sneaky Weasel 커널 소스코드를 다운로드 받았다면, 해당 파일에서 정보를 확인할 수 있다. 내가 받은 안드로이드 커널 ..
-
안드로이드 커널 소스코드IT/Linux Kernel 2011. 12. 26.
안드로이드 커널 코드는 기본 리눅스코드를 커스터마이징을 통하여 필요한 기능을 추가하고 불필요한 부분을 제거하여 모바일이나 태블릿에 맞게 변경된 커널을 의미한다. 리눅스 코드 자체가 오픈소스이다 보니 안드로이드도 역시 코드가 오픈되어 있어 웹사이트에 방문하여 쉽게(?) 다운로드 받을 수 있다. http://source.android.com/source/downloading.html 안드로이드에서는 플랫폼 소스코드와 커널 코드가 구분되어 관리되고 있다. 플랫폼 소스코드는 download 사이트의 내용 자체를 따라하면 쉽게 받을 수 있지만, 커널 코드는 사이트에 적혀있지 않은 일부 정보가 필요하여 커널 코드 다운로드에 대해서 이야기 하려 한다. 일단 커널 코드를 받기 위해서 git이라는 새로운 소스코드 관리 ..
-
ps명령어를 통하여 thread 정보를 확인하는 방법IT/DevOps 2011. 11. 18.
개발하는데 있어서 thread를 사용하는 경우가 많다. "나는 thread가 필요 없어!" 하는 분들도 한번쯤은 보면 나중에 우연히 만나게 될 때 조그마한 도움(빠른 원인분석등)이 될수 있다. ps 명령어를 사용하면 linux 시스템의 프로세스 정보들을 얻을 수 있다. 시스템을 운용하는 사람들에게 있어서도 유용히 사용되는 정보인데, 이러한 ps 명령어에서 해당 프로세스가 thread정보를 함께 출력하게 정보를 얻을 수 있다. ps -eLf | grep testsrv UID PID PPID LWP C NLWP STIME TTY TIME CMD root 2588 2587 2588 0 11 00:05 ? 00:00:07 ./testsrv root 2588 2587 2589 2 11 00:05 ? 00:23:1..
-
gdb, thread에 대한 이야기IT/Linux C 2011. 11. 17.
지난번 포스팅에서 core파일과 gdb를 가지고 디버깅하는 방법에 대하여 이야기 했었다. 2011/11/16 - [리눅스(Linux)/개발(Developemnt)] - [gdb] core 파일을 통해 디버깅하자. 오늘도 비슷한 내용인데, 멀티 thread를 사용하는 프로그램일 때 확인할 수 있는 방안에 대해서 이야기 하려 한다. 기본적으로 gdb로 core파일을 불러드리면 메인 thread의 내용만 나옵니다. 간단한 명령을 통해서 thread를 변경하고 정보를 확인할 수 있다. (gdb) info threads 위의 명령으로 해당 프로그램이 몇개의 스레드가 존재하고 있는지 번호로 관리 되어지고 있는 스레드 정보가 나온다. 1번이 메인 thread 이다. (gdb) threads 번호 이렇게 thread를..
-
gdb를 통하여 디버깅을 하자IT/Linux C 2011. 11. 16.
linux 시스템 환경에서 C,C++ 로 개발을 하다보면 흔히 말하는 세그폴트라 불리는 segmentation fault 오류가 발생하면 난감하게 된다. 오류가 발생하는 이유는 메모리 관련이지만 일단 오류가 발생하면 저 메세지만 내놓고 프로그램이 죽기 때문이다. 세그폴트 오류가 발생하면 해당 프로그램의 현재 상태정보를 파일로 남기게 되어 있다.(그것을 core파일이라고 불린다) 하지만 일반적으로 그 파일의 사이즈를 0으로 설정되어 있기 때문에 아무런 흔적이 남지 않는 것이다. 그렇다면, core파일을 남도록 설정을 하자 [isupt@qqi ~]$ ulimit -c 0 위 명령을 통해서 core파일 사이즈 설정을 확인할 수 있다. 결과는 0 이다. 오류를 확인하기 위하여 크기를 최대치로 설정을 해야 한다...
-
블로그에서 소스코드를 가독성있게 출력하는 방법. SyntaxHighlighterBlog Tips 2011. 11. 2.
저의 경우 블로그에 간략한 예제에 대한 C 소스코드와 shell 스크립트의 내용들을 포스팅 내용에 간간히 포함시키곤 한다. 그럴 때 마다 HTML 수정에서 직접 태그를 주어서 하나의 문단으로 묶어주고 가독성을 위해 앞뒤 글과의 차이를 두고 재확인하는 작업을 했었다. 자료를 찾아보니 많은 사람들이 적용한 SyntaxHighlighter라는 프로그램을 찾았다. http://alexgorbatchev.com/SyntaxHighlighter/ SyntaxHighlighter는 자바 스크립트를 통해 태그 안에 약속된 아이디(class)에 어떤 소스코드인지를 명시해두면 소스코드 작성 편집기에서 표현해주는 퀄리티의 소스 코드를 웹에서 확인할 수 있다. 위의 이미지에서 Demo 부분처럼 말이다. 자 그렇다면, 이제 설..
-
ls 명령어 디렉토리만 확인하는 방법에 대하여IT/DevOps 2011. 11. 2.
ls 명령어는 파일과 디렉토리 리스트를 출력해주는 unix계열의 명령어다. ls --help 명령어를 확인하면 -d 옵션으로 directory만 출력하게 하는 옵션을 확인할 수 있다. morenice@ubuntu:~$ ls --help 사용법: ls []... []... List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort. 긴 옵션에서 꼭 필요한 인수는 짧은 옵션에도 꼭 필요합니다. -a, --all do not ignore entries starting with . -A, --almost-all do not list impli..