소개글
1. 주제 선정의 이유와 목적윈도우즈라는 막강한 마이크로소프트의 운영체제가 잠식하고 있는 국내 소프트웨어 시장에서 점차 그 세력을 넓혀가고 있는 운영체제인 리눅스는 윈도우즈와 그 성격이 크게 다르다.
가장 큰 특징은 공개 소프트웨어이고, 소스 또한 공개되어 있어, 누구나 수정하여 사용할 수 있다.
이 특징이야 말로 리눅스를 정의하는 가장 짧은 단어이면서도, 리눅스의 무한한 가능성을 담고 있는 큰 의미의 단어라고 할 수 있겠다.
오픈 소스이기 때문에 지금 이 순간에도 누군가에 의해서 수정 되어지고, 발전하고 있다.
윈도우즈는 마이크로소프트사에서 손을 대지 않으면 결코 수정, 발전하지 못한다.
리눅스는 사용자의 필요에 의해서 쉽게 수정되고 업그레이드 되고 있다.
리눅스의 상기의 이유뿐만 아니라, 성능 또한 뛰어나기 때문에 더욱 빠르게 성장하고 있다.
웹서비스 분야에서는 리눅스를 기반으로 하는 아파치 서버가 국내서버 71%를 차지하며 마이크로소프트의 윈도우즈 기반의 IIS서버는 22%의 점유율을 보이고 있었다.
(www.securityspace.com 조사 2007,5,1 기준)
최근 정부와 대기업을 중심으로 리눅스의 보급과 확산에 나서고 있는 추세이며, 실무에서도 리눅스 서버의 사용량이 증대되고 있는 것이 IT업계의 현실이다.
이런 리눅스 운영체제에 대한 관심과 필요성 증가에 따라 직접 시스템에 설치해보고 리눅스 전반에 대한 학습을하며, 또한 운영체제의 시스템 관리기능을 리눅스 기반의 C 프로그래밍으로 실습하면서 리눅스 운영체제의 이해와, 운영체제의 시스템 관리기능의 이해라는 두 마리의 토끼를 잡을 수 있는 기회를 갖고자 리눅스 운영체제의 설치와 커널 컴파일이라는 주제로 본 리포트를 작성하게 되었다. 본 실습 문서는 작성자의 실습결과를 담은 것뿐만 아니라, 리눅스 설치에 대한 참고와 리눅스시스템 기반 프로그래밍을 위한 환경구축을 위한 간단한 매뉴얼이 되기를 희망한다.
목차
1. 주제 선정의 이유와 목적2. 리눅스 설치
2.1설치과정
2.2 개발환경 셋팅
3. 커널 컴파일 실습
3.1 커널이란
3.2 리눅스 커널 다운로드
3.3 커널 빌드
4. 리눅스 프로세스 생성과 대기에 관한 프로그래밍
5. 결론 및 후기
본문내용
설정을 모두 마치면 저장을 하고 메뉴에서 빠져 나온다.세번째로 make 명령을 실행한다. 커널 2.6 버전에서부터 make만 실행하면 make dep, make clean, make bzImage, make module 가 통합되어 함께 실행이 된다.
make 실행 과정은 커널 컴파일 과정에서 가장 긴 시간이 소요된다. 대략 30~40분 정도 소요되는 것으로 보인다. make 과정이 모두 끝나면 make modules_install 을 실행한다. 이 과정은 컴파일된 모듈을 /lib/modules 밑에 설치하게 된다.
새로 빌드된 커널 이미지는 커널 폴더 아래 arch/i386/boot/bzImage로 생성이 된다.
이 파일을 /boot/vmlinuz-2.6.14로 복사한다.
[root@localhost linux-2.6.14.6]# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.14
커널 이미지를 위와 같이 복사했으면, 이제 부팅을 담당하는 GRUB 부트로더의 설정 파일을 수정해야한다. 수정 방법은 아래와 같다.
부트 로더의 설정파일은 /boot/grub/menu.lst 이다. vi 편집기로 열어서 다음 라인을 추가한다.
Title Fedora Core4, kernel 2.6.14
Root (hd0,0)
Kernel /boot/vmlinuz-2.6.14 root=/dev/hda1 ro
Savedefault
Boot
수정을 마치면 시스템을 재부팅한다.
재부팅을 하면 다음과 같이 GRUB에 새로 추가된 커널로 부팅을 할 수가 있게 된다.
4. 리눅스 프로세스의 생성과 대기에 대한 프로그래밍 실습
프로세스를 생성하는 한가지 방법으로 fork( ) 함수를 사용 할 수 있다.
Fork( ) 함수는 프로그램 내에서 같은 코드를 실행할 프로세스를 여러 개 생성하는 방법이다.
별도의 프로세스는 생성하지만, 같은 자원을 공유하게 된다. 복제된 프로세스에 쓰기가 발생하면, 그때 프로세스 정보를 복사해서 새로운 프로세스 이미지를 구성한다. 프로그램 fork.c 를 작성하고 실행해 보면서 이해를 하도록 한다.