본문 바로가기

리눅스

커널 소스 분석 1. system call trace 1. System call 시스템 콜은 운영체제의 커널이 제공하는 함수에 대해, 어플리케이션의 요청에 따라 커널에 접근하기 위한 방법으로 정의할 수 있습니다. 일반 어플리케이션은 커널의 자원을 마음대로 제어할 수 없기 때문에 커널에 자원을 요청해야 하는 경우 시스템 콜을 발생해 커널 함수를 호출하고, 자원을 요청할 수 있습니다. 출처 : 위키피디아 - https://ko.wikipedia.org/wiki/%EC%8B%9C%EC%8A%A4%ED%85%9C_%ED%98%B8%EC%B6%9C 이 그림은 시스템 콜을 검색하면 아직도 많이 볼 수 있는 그림입니다. (커널 세미나 자료에도 이 자료가 포함돼있더라는....) 이 그림에서 나타내는 시스템 콜의 순서는 다음과 같습니다.1) 유저 어플리케이션에서 시스템 함.. 더보기
리눅스 커널 맵 (이미지 클릭)#리눅스커널맵입니다.그림으로 보는 것도 좋지만 아래 링크를 타고 들어가면 시스템 함수의 호출 순서를 더 크게 볼 수도 있고,lxr로 편하게 시스템 함수를 따라갈 수 도 있습니다. (추가 참고할만한 사이트)http://docs.huihoo.com/linux/kernel/a1/ 더보기
make와 vi통합 사용 make와 vi 통합하면 소스코드 수정 후 vi를 종료하고 컴파일을하는 번거로움을 줄일 수 있다. 먼저 간단하게 작성한 테스트 파일그냥 소스코드 하나와 make파일 하나 두 툴을 함께 사용하는 방법은 일단 vi를 열고 명령어모드(:)를 입력 그러고 나면 아래와 같이 에러 메시지들을 볼 수 있음. wq를 누르는 번거로운 일이 하나 더 줄었음.더 나아가 출력되는 메시지에 따라 엔터를 누르면 에러가 발생한 위치로 이동됩니다. 에러 메시지를 다시 확인하려면 명령어모드에서 cw를 입력하면 아래쪽에서 에러 메시지를 확인할 수 있음 창을 보면 수평으로 나눠진 것을 볼수 있는데 ctrl+w, w를 순차적으로 누르면 창 사이를 오갈 수 있음나눠진 창 종료는 vi와 마찬가지로 :q를 사용 만약 하단에 원하는 창 크기를 지.. 더보기
우분투에서 커널 컴파일 필요 패키지 sudo apt-get install build-essential bin86 kernel-package wget libncurses5 libncurses5-dev openssl-dev 커널 소스 kernel.org 1. 소스 다운로드 (명령어 귀찮을 경우 브라우저로 접속) wget http://kernel.org/pub/linux/kernel/~~~ 2. 소스 복사 & 압축 해제 cp ~/Download/linux~ /usr/src/linux~ tar xvf linux~ 3. 기존 커널 설정 가져오기 cp /boot/config-'uname -r' .config make oldconfig 4. 환경설정 make menuconfig 5. 컴파일 한적이 있을 경우 make-kpkg clean 6.. 더보기
CentOS NET: Registered protocol family 2 문제 VirtualBox에서 CentOS 5.x(적어도 5.5와 5.6에서는)를 설치하는 도중 Registered protocol family 2 나오며 더이상 설치가 되지 않는다. 구글링을 했으니 많은 영어의 웹페이지들이 발견 ㅠㅠ (전 영어가 싫습니다!) 결국 찾긴했습니다. 다음화면에서 linux nolapic을 입력하면 됩니다....ㅠㅠ 그리고 나서 재부팅할때 에디트모드(아무키나 누르라고 할때 아무키나 누른다음 e키를 누르면 에디트모드입니다) 에서 kernel /vmlinux.......... 나오는데 그 위에 다음과 같이 추가(구글링에서는 수정같은데 저는 수정할땐 안되고 뒤에 추가하니까 됬습니다. ) root=LABEL=/ nolapic 해주고나서 b를 누르면 부팅됩니다. 그리고나서 설치를 마무리 하면.. 더보기
CenOS 리눅스 비프음 끄기 (CenOS 5.5버전 기준입니다.) 리눅스를 사용하는데 계속 비프음이 삑삑 임베디드 장비에 파일을 전송하는데 비프음이 삐비비비빅!!!! 너무 신경쓰여서 오늘도 역시 구글링을 했습니다 (잡담) 우분투를 같이 쓰고 있어서 처음에는 우분투로 검색해서 뻘짓했다는 ㅠㅠ 1. # rmmod -v pcspkr 입력 그럼 다음과 같은 결과가 나옵니다. rmmod spkr, wait=no rmmod 명령어는 모듈을 제거하는 명령어 입니다. 맞는지는 모르겠지만 pcspkr는 대략 pc스피커인듯 싶네요 2. # sudo vi /etc/modprobe.d/blacklist.conf를 입력 맨 아랫줄에 blacklist pcspkr 를추가해 줍니다. 인터넷에는 그냥 blacklist라고만 되있었는데 실제 파일은 3개정도가 있.. 더보기
minicom 설치 한백전자 임베디드 보드로 테스트중 장비와 연결하기 위해 minicom필요 # rpm -qa|grep minicom 을 입력하니 아무것도 안나왔다. 미니컴이 없단 소리지... 그래서 CD로 이동 설치를 하려 하니 에러가 남 버전이 안맞는걸로 보임 그래서 Applications-Add/Remove SoftWare가서 검색해보니 2.1-3.i386이 보여서 설치하니까 설치 완료 [willow72@localhost minicom]$ rpm -qa|grep minicom minicom-2.1-3 결과는 요래 뜬다. 더보기
리눅스 apache서버 설치 리눅스 apache서버 설치 방법입니다. 아파치 제단의 문서(http://httpd.apache.org/docs/2.2/install.html)를 참고했고, 제 환경(Ubuntu 리눅스)에 맞게 중간중간 변경된 내용이 있을 수 있습니다. 1. apache서버 소스파일 다운로드(http://httpd.apache.org/download.cgi) 1) 위 주소로 접속합니다. 아래로 조금 내리면 다음과같이 소스파일을 다운받을 fpt서버를 선택합니다. 아무래도 가까운 지역에 있는 서버가 속도가 조금 걸리겠죠?(서버들이 어느 지역에 있는지는 모르지만 친숙한 이름을 가진 daum의 ftp서버로 선택합니다. 2) 소스를 다운받아 컴파일을 한 후 설치 할것이므로 Unix Source의 httpd-2.2.18.tar.g.. 더보기