'Linux'에 해당되는 글 2건

  1. 2010.06.23 Linux Kernel & Device Driver [2] (4)
  2. 2009.04.09 Portable Ubuntu 설치 (6)

Naver Perl Community & Study Cafe


2010.06.23 10:27

Linux Kernel & Device Driver [2]


교육의 둘째날입니다 :)

photo

사진출처 : http://news.joins.com/article/483/4262483.html?ctg=14



새벽4시쯤 깨어 축구를 시청했는데

보자말자 한골~ 그리고 후반에 또 한골~

아슬했지만 한국이 16강에 가게되어

너무나 좋더군요^^

16강 상대가 우루과이라 할만하다는 생각도 들구요~ ㅋㅋ


하지만 저는 교육을 받으로 왔으니

교육에 관련된 이야기를 또 해보겠습니다.




오늘은 어제 이야기를 들었던 Signal 에 대해서 더 세부적으로 배웠습니다.

햐.. Signal 이 이렇게 많은 기능을 가지고 있다니..

perl 을 하면서도 signal 은 그냥 죽었을 때 다시 처리할때나 쓰는 줄 알았는데

심도있게 알아야 한다는것을 알았습니다.




- 커널 컴파일하는 방법



kernel.org 에서 접속하여 원하는 커널 버전을 다운 받은 후에

Linux 에서 다운을 받도록 합니다.


다운을 받는 방법은 웹으로 받아도 되고 ftp로 받아도 되고 wget으로 받아도 상관이 없습니다 :)

실행환경 Linux 는 CentOS 이고

Kernel 버전은 2.6.29.1 입니다.



압축을 풀어주고 난 후에

심볼링크를 걸어줍니다.



커널 컴파일을 하기 이전에 .config 파일을 설정해 줘야 하는데

이부분에서 사람들이 많이 막힌다고 합니다.

이 파일은 아래 이미지에 따른 경로에 있으며

아래 작업을 안했을 시 커널 컴파일을하더라도 죽어버릴 확률이 있다고 하네요 :)



그 후에 menuconfig 를 해주는데 아래와 같이 하나씩 컴파일이 되고


파란화면의 설정창을 확인할 수 있습니다.


menuconfig 설정 뒤에는 친절하게  아래와 같은 문구가 뜨는데 make 를 하라는 뜻입니다.



make 를 할때는 아래와 같이 입력해주시면 됩니다.


# make

# make modules_install

# make install


일일이 기다렸다 명령어를 입력하기 힘드니
 
;(클론) 을 이용하여 한줄로 쭉~ 써주시면 됩니다.


이제 컴파일이 되며 약 1시간 정도 시간이 소요 됩니다. ( 너무 오래 걸려 ㅡ_ㅠ )


커널 컴파일 할때 중요한점은

용량이 넉넉해야 한다는 점입니다.

Vmware 일 경우에는 적어도 15GB 이상으로 하드용량을 잡아주셔야 합니다.

아닐 경우에는 용량이 부족해서 간단한 파일조차 컴파일이 안되는 경우가 ㅡ_ㅠ







-alarm 함수


alarm 함수를 실습을 했는데

위의 코드는 3초 뒤에 프로그램이 "자명종시계" 라고 출력되며 자동 종료됩니다.


위의 코드를 이용하여 알람을 이용하여 3초 미만으로 입력되면 입력된 값이 출력되고

3초 이상 입력하지 않으면 자동 종료되는 코드입니다.

여기서 alarm(0) 의 리턴값에 따라 입력시간이 얼마나 남았는지도 확인 할 수 있습니다.

3번 입력받는 코드를 예제로 다시한번 완성해 보겠습니다.



위의 예제를 실행하면 아래와 같으며 남은 시간이 나오고

타임아웃이 걸리면 자동으로 종료됩니다.



그런데 위에서 exit(0) 으로 프로그램을 종료해버리면 너무 각박해 보임으로

다음으로 넘어가게 만들어야 합니다.

이때 goto 문을 쓰면 되지 않으므로 이때 setjump 를 사용하여 코드를 작성합니다.

아래는 setjump 의 코드 예제입니다.



윈도우에서 try catch 와 비슷한 예제라고 생각하면 되고,

longjmp 가 예외를 일으키는 부분입니다.

재밌는것을 많이 배우네요~


이제 이 소스와 위의 alarm 예제를 합쳐서 입력을 받을 때 타임아웃이 걸리면

예외사항으로 넘어가게 할 수 있다는 것을 알 수 있습니다.




실전 프로젝트에서 예제처리에서 이렇게 타임아웃을 넣을 곳이 많은데

이런식으로 setjump 를 이용합니다.



한번에 알아들어야 하고, 강사님이 코딩속도가 너무 빠르신지라

수업 따라가기가 쉽지많은 않네요

( 실습시간도 마땅히 없고 ㅡ_ㅠ )

이렇게 간단히 정리해두고 다음 기회에 확실하게 다시 실습해보는게 좋을 듯합니다.




신고
Trackback 0 Comment 4
2009.04.09 03:57

Portable Ubuntu 설치





요즘 뜨고 있는 Portable Ubuntu 를 설치했다.

처음에는 설마설마 했는데 실제로 설치해보니 잘 되는것을 확인

이제 Vmware 및 멀티 부팅을 하지 않아도 간편하게

Ubuntu를 접할 수 있게 되었다.


설치하는방법 및 한글 언어팩 설정은 여기서 확인한 뒤,

설치하면 되는데 설치 후 실행시 네트워크 드라이버가 충돌되어 실행이 되지 않는 경우도 있으니

잘 확인해서 설정 해주어야 한다.




설치된 버전이 8.04 버전이기 때문에 

최신버전인 8.10버전으로 업데이트를 해주는 것이 좋은데,


업데이트를 하기 위해서는

일정 공간 이상의 저장공간이 필요하기 때문에,

이것을 늘려주기 위해서는

toporesize 프로그램을 사용하여 저장 공간을 늘려준다.

설치된 경로에서 rootfs.img을 찾는다.

Portable_Ubuntu\images\rootfs.img



저장공간은 2.7정도만 늘려주면 무리없이 업데이트가 잘 된다.




설치시, 업데이트에 많은 시간이 걸렸는데



패키지를 가져오는데만 약 1시간 가까이 걸린다.

이것은 우분투 업데이트 파일의 링크가 우리나라가 아닌 다른나라로 걸려 있기 때문인데

/etc/apt/source.list 파일을 확인하여 

http://ar.archive.ubuntu.com/

의 링크를 ar 대신 kr로 모두 바꿔주면 된다.

그리고 패키지 목록을 업데이트를 한번 해줘야하는데...

$sudo apt-get update

명령을 실행한 뒤 업데이트를 하면 매우 빠른시간에 업데이트가 된다.




그 후 화면 반응 속도를 빠르게 하기 위해 

조금 더 반응속도가 빠르고 버전이 높은 Xming을 다운받아서 설치한다.


여기서 Xming-mesa.exe 설치 파일을 다운받아 Xming을 설치한 뒤 

Portable Ubuntu의 Xming.exe 파일을 새로 설치한 Xming.exe로 교체 시켜주면 된다.


다운받고 설치하기 귀찮을테니 해당파일을 첨부




그리고 열심히 기다리면.... 업데이트 완료!!





주의 :  8.10으로 버전을 업데이트를 하다 중간에 멈추거나, 갑자기 종료가 되어버리면,

          우분투를 다시 설치를 해야 하는 경우가 생기니 조심하기 바란다. -ㅁ-;


도움주신분 : a3r0님 :)


신고
Trackback 0 Comment 6