반응형

Linux 커널 9

init - 커널 실행순서(안드로이드)

/init이 실행되기 전까지 커널은 일반커널의 동작과 전혀 차이가 없다. 커널내 몇가지 option이 안드로이드용으로 추가된것은 있지만 흐름은 같다. bootloader 실행 -> 커널 loading -> 커널 실행 까지는 같음. 커널 실행후 최최의 프로세스인 /init이 실행될대 안드로이드는 안드로이드용 /init 을 실행한다. 일반적인 리눅스라면 /etc/inittab을 참조하고, /etc/init.d/rcS를 실행한다거나 하는 흐름이지만 안드로이드는 /init.rc를 수행한다. 이런차이가 /init에서 달라진다. (안드로이드 소스참조 : system/core/init.c)

Linux 커널 2011.02.14

tar 명령어

▶2월_11 tar tar는 지정되 여러 개의 파일들을 아카이브라고 부르는 하나의 파일로 만들거나, 하나의 아카이브 파일에 직접 되어있는 여러개의 파일을 원래의 형태대로 추출해내는 유닉스 shell명령어이다. tar 아카이브 파일에는 어떻게 파일명을 적든 상관없지만, tar로 묶었다는 것을 분명히 해주기 위해 ".tar"라는 파일이름 확장자가 붙는다. tar아카이브 파일내에 들어있는 파일들은 압축되는 것이 아니라, 단지 하나의 파일로 모아지는것 뿐이다. 명령어- 압축하기binary file tar -cvf *.tar.gz ./ -c : tar파일을 생성한다. -v : 생성되는 파일 절차를 보여준다. -f : backup 파일명을 지정한다.Default는 "/dev/rmt0"이다. -z : gzip에 현재..

Linux 커널 2011.02.11

====가상주소====

● 가상주소 가상 메모리는 컴퓨터와 운영체계에 의해 구현되는 개념으로서 가상의 주소 공간을 할당하여 대단히 큰 용량의 메모리나 데이터 저장공간을 사용할 수 있도록 만든다. 또 한 가상 메모리 기법으로 제공되는 주소공간으로서, 프로세스의 관점에서 사용하는 주소이다.오늘날 대부분의 운영체제에는 가상 메모리 기법이 적용되어 있다. 가상메모리에서의 주소공간 즉 가상주소 공간은 프로세스가 참조할 수 있는 주소들의 범위이며, 하나의 프로세스 당 하나의 가상주소 공간이 주어진다. 일반적으로 스레드는 프로세스 내의 주소 공간을 공유한다. 주소 공간의 크기는 주소버스(Address Bus)의 크기에 따라 달라진다. 예를 들어 주소 버스가 32비트인 시스템에서 주소 공간의 크기는 232개의 서로 다른 주소에 대한 식별자를..

Linux 커널 2010.09.28

makefile분석

#----------------------------- # 2008 Mecha Cource - By CM WC, 2008.09.10. // 주석처리.. makefile에 대한 설명 #----------------------------- ifndef ERASE_FCT // ERASE_FCT가 정의되어있지 않다면 5번 줄을 실행해라라는 뜻. ERASE_FCT=rm -rf // -r은 지울 때 물어보지 않게 -f는 지울수 있는건 다지워라라는 뜻. endif // ifndef ERASE_FCT의 끝 ifndef WCCROSS_COMPILE // WCCROSS_COMPILE이 정의 되어있지 않다면 8번 줄을 실행해라 WCCROSS_COMPILE=arm-elf- endif // WCCROSS_COMPILE의 끝 W..

Linux 커널 2010.09.28

source insight 프로젝트 생성하기

source insight 프로젝트 생성하기 생성하기에 앞서 소스인사이트에서 ARM 기반을 디폴트로 없기 때문에 언어 정보를 추가해야한다. 위에 첨부된 파일 GCC,ADS를 지원하는 파일을 사용하자. Options-> Preferences 에서 import을 클릭해서 위의 파일을 import 시킨다. 그러면 윗처럼 ARM9.....생성이 된다. Options-> Document options에서 Add type을 클릭하고type 이름 설정 그리고 File filter에서 *.s;*.S등을 성정하고 parsing에서 import한 언어를 추가하자 언어추가 설정이 끝났다.(ARM언어를 추가하지 않으면 심볼을 찾을수 없다.) 이제부터 프로젝트을 생성하자. project -> new project 원하는 프로젝..

Linux 커널 2010.09.28

u-boot

u-boot은 부트로더다. 그럼 부트로더란? 간단하게 말해 특정 cpu에 OS 혹은 어떤 프로그램을 돌릴 수 있도록 cpu가 동작하는데 필요한 아주 기초적인 부분이나 ROM(or flash),RAM,UART 등의 기본적인 디바이스들을 동작할 수 있게 만드는 프로그램이다. 그래서 인텔 관련 보드(x86)에서 말하는 BIOS와 리눅스에서 많이 쓰이는 LILO(Linux Loader)를 결합한 것이라고 생각하면 이해가 쉽다. 부트로더의 종류로는 LILO,GNU GRUB,ARMBOOT, BLOB, bootldr, PPCBOOT, RedBOOT,Angel 등이 있는데 오드로이드에서 사용하는 부트로더는 u-boot이다. LILO와 GEUB에 대해서는 수업에서 CM이 이야기 했듯이 LILO를 대체하기 위해 GRUB이..

Linux 커널 2010.09.28

리눅스 명령어

●리눅스의 특징 -Server System으로 운영적합 -ID와 PASSWD가 필요 -Root User (super user ): default user 계정및 시스템관리 -각 사용자별 home directory 존재 -각 사용자별 환경설정파일 존재( .bashrc .bash_profile .bash_logout ) -다양한 network protocol 지원 -신속한 개발, 자유로운 변형가능 : Open Source -multi-user & multi-job system ●부트 디스크 생성 방법 ①#mount -t iso9660 /dev/cdrom /mnt/cdrom ②#cd /mnt/cdrom ③#cd images ④#dd if=booting of=/dev/fd0 rbs=1440k ●IP 설정하기 ①..

Linux 커널 2010.09.07

리눅스 vi 사용법

1. vi란? 리눅스나 유닉스를 처음 접하는 사람에게 vi는 매우 골치아픈 존재이다. 도스나 윈도우에서 문서 편집기를 써 본 사람에게는 vi는 매우 불편한 편집기로 생각될 것이다. 그러나 내가 아는 한 vi만큼 가볍고 편하게 쓸 수 있는 편집기는 지구상에는 없다! `가볍고'라는 단어를 붙인 이유는 이맥스(emacs)라는 편집기를 쓰는 사람이 항의할 것이 걱정되기 때문이다. 이맥스는 호랑이 담배피던 시절부터 가장 똑똑한 에디터로 군림해 왔다. 그러나 프로그램 크기만도 수십메가에 달하고 설치되어 있지 않은 경우도 많다. 하지만 대부분의 유닉스 계열 시스템이라면 vi는 십중팔구 설치되어 있을 것이다. 따라서 한번 익혀두면 여러모로 편리하게 쓸 수 있다. vi라는 이름은 `VIsual display editor..

Linux 커널 2010.09.07

저수준 입출력 함수

저수준 파일 입출력 -파일을 융통성있고 빠르게 처리하려면 버퍼와 카운터, 파일포인터를 직접서술하는 저수준언어의 입출력 함수를 취급해야한다. 저수준 화일 입출력 함수들 fd = open("화일 이름 , 액세스 방식\[, 모드\]); /\* 화일이 있으면 그 내용을 지우고 없으면 생성, fopen의 "w"와 같음 \*/ fd = open("data.dat", O_WRONLY \| O_CREAT \| O_APPEND, 모드); /\* 화일이 있으면 그 끝으로 이동하고 없으면 생성, fopen의 "a"와 같음 \*/ fprintf(stderr,"Error: Cannot open data.dat\n"); : 저수준의 화일 입출력에서는 FILE이란 구조 대신 간단하게 각 화일마다 번호를 사용하는데, 이를 화일 식별..

Linux 커널 2010.09.07
반응형