Microsoft PowerPoint - 10_(Linux)_(Fundamental)_Linux_Kernel

Similar documents
Microsoft PowerPoint - 11_(Linux)_(Fundamental)_Linux_Kernel

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

歯J PDF

GNU/Linux 1, GNU/Linux MS-DOS LOADLIN DOS-MBR LILO DOS-MBR LILO... 6

Unix & Linux 개요 Company 서울대학교통계학과 2010년 2학기컴퓨터의개념및실습 ( Thanks to: cancho & facewhite from SPARC/KAIST, Bruce La Plante fro

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

Microsoft PowerPoint - 00_(C_Programming)_(Korean)_Computer_Systems

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

슬라이드 제목 없음

Microsoft PowerPoint - linux intro.pptx

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Nero <Application> 설명서

C++ Programming

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Microsoft PowerPoint - 03-Development-Environment-2.ppt

PowerPoint 프레젠테이션

ISP and CodeVisionAVR C Compiler.hwp

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

C++ Programming

Sun Java System Messaging Server 63 64

Microsoft PowerPoint - 01_Overview

Microsoft PowerPoint - 01_Linux_Introduction.ppt [자동 저장]

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Microsoft Word - Armjtag_문서1.doc

<4D F736F F D20B1B9B0A1BAB020BEC6C0CCC7C720C2F7B4DC20B0A1C0CCB5E5>

K7VT2_QIG_v3

ESP1ºÎ-04

슬라이드 1

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Copyright 0, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT RIGHTS Programs, software, databases, and related

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

Solaris Express Developer Edition

고객 카드

슬라이드 1

침입방지솔루션도입검토보고서

DR-M140 사용 설명서

Mango220 Android How to compile and Transfer image to Target

Microsoft PowerPoint - em8-리눅스설치.ppt

!K_InDesginCS_NFH

DE1-SoC Board

Microsoft PowerPoint - chap01-C언어개요.pptx

APOGEE Insight_KR_Base_3P11

[Brochure] KOR_TunA

제1장 Unix란 무엇인가?

PCServerMgmt7

vm-웨어-01장

인켈(국문)pdf.pdf

PRO1_04E [읽기 전용]

Integ

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

CD-RW_Advanced.PDF

2004 IRISPen 사용자 설명서-본문-용지크기 조정-폰트포함.PDF

RTLinux 설치방법 (Ubuntu Breezy Version) Last update: by deathymn - Mechatrobotics Lab, Mechanical Eng.Dep. Yonsei Univ * 이작업은반드시 root 사용자로로그인해

manual pdfÃÖÁ¾

Microsoft PowerPoint - 03.OS.pptx

R50_51_kor_ch1

<목 차 > 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3

PowerPoint 프레젠테이션

Assign an IP Address and Access the Video Stream - Installation Guide

목차 제 1 장 inexio Touch Driver소개 소개 및 주요 기능 제품사양... 4 제 2 장 설치 및 실행 설치 시 주의사항 설치 권고 사양 프로그램 설치 하드웨

SANsymphony-V

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력

Microsoft Word - HD-35 메뉴얼_0429_.doc

Flute-GR_BV199_DOS.indb

Install stm32cubemx and st-link utility

PowerPoint Presentation

벤처연구사업(전동휠체어) 평가

JDK이클립스

Abstract View of System Components

LEICA C-LUX

PowerPoint 프레젠테이션

K_R9000PRO_101.pdf

PowerPoint Presentation

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

MF5900 Series MF Driver Installation Guide

Microsoft PowerPoint - 02-Development-Environment-1.ppt

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Microsoft PowerPoint - 06-CompSys-11-System.ppt

ODS-FM1

ez-md+_manual01

목차 개요 3 섹션 1: 해결 과제 4 APT(지능형 지속 위협): 이전과 다른 위협 섹션 2: 기회 7 심층 방어 섹션 3: 이점 14 위험 감소 섹션 4: 결론 14 섹션 5: 참조 자료 15 섹션 6: 저자 소개 16 2

untitled

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Transcription:

GNU/Linux 리눅스커널 (Linux Kernel) Seo, Doo-Ok Clickseo.com clickseo@gmail.com

목 차 리눅스커널 커널컴파일 커널컴파일옵션설정 커널패치 2

리눅스커널 리눅스커널 커널 리눅스커널 커널컴파일 커널컴파일옵션설정 커널패치 3

커널 (1/7) 커널 (Kernel) 하드웨어를소프트웨어로추상화 응용프로그램소프트웨어에실행환경을제공 가상메모리, 멀티태스킹, 디스크접근, 네트워킹같은문제를처리하는핵심소프트웨어 4

커널 (2/7) 커널의역할 하드웨어를소프트웨어로추상화 응용프로그램소프트웨어에실행환경을제공 자원관리 (Resource Management) 한정된시스템자원을효율적으로관리하여프로그램의실행을원활하게한다. 프로세스관리 (Process Management) 메모리관리 (Memory management) 가상메모리 (Virtual Memory) 파일시스템 (File System) : 파일및디렉터리접근 디바이스관리 (Device management) : 물리적인디바이스를맵핑하는것 네트워크및보안 5

커널의역할 : 추상화 커널 (3/7) 하드웨어를소프트웨어로추상화 응용프로그램소프트웨어에실행환경을제공 6

커널의종류 : 단일형커널 단일형커널 (monolithic kernel) 커널 (4/7) 커널의다양한서비스및높은수준의하드웨어추상화를하나의덩어리 ( 주소공간 ) 로묶은것이다. 운영체제개발자입장에서유지보수가일반적으로더어려우나성능이좋다. System V 계열 : Solaris, AIX, HP-UX BSD 계열 : FreeBSD, NetBSD, OpenBSD, SunOS Linux Kernel Classic Mac OS Microsoft MS-DOS Microsoft Windows 9x 시리즈 : 95, 98, 98 SE, ME 7

커널의종류 : 마이크로커널 마이크로커널 (micro kernel) 커널 (5/7) 하드웨어추상화에대한간결한작은집합을제공하고, 더많은기능은서버 (Server) 라고불리는응용소프트웨어를통해제공한다. GNU Hurd 커널 : Multiserver Microkernel NextSTEP : Mach 커널 8

커널의종류 : 혼합형커널 커널 (6/7) 혼합형커널 (hybrid kernel) : 수정마이크로커널 성능향상을위해추가적인코드를커널공간에넣은점을제외하면, 많은부분은순수마이크로커널과비슷하다. Apple XNU 커널 (XNU, X is Not Unix) macos : Mach 커널기반하이브리드커널 ios, watchos, tvos Microsoft NT 커널 Windows NT 제품군 : NT, 2000, XP, 2003, Vista 9

커널의종류 : 아키텍처 커널 (7/7) 단일형커널 (monolithic kernel) 기반운영체제 마이크로커널 (micro kernel) 기반운영체제 혼합형커널 (hybrid kernel) 기반운영체제 10

리눅스커널 (1/11) Linux Kernel : kernel.org 1991 년, 리누스토발즈 (Linus Torvalds) 1991 년 0.01 버전첫배포 미닉스를기반으로유닉스표준화규격인 POSIX(Portable Operating System Interface for Unix) 를도입하여 PC에서동작하는유닉스계열운영체제 GNU GPL(GNU General Public License) 아래에배포 리눅스탄생배경 1987년, 앤드류타넨바움 (Andrew S. Tanenbaum) : 네덜란드브리제대학원전산과교수» 운영체제강의를위해개발한유닉스의 PC 버전소스코드» 이후미닉스 (MINIX) 라는이름으로공개 GNU/Linux 또는리눅스배포판 1992년, 리눅스는 GNU 시스템과통합 1994년, 버전 1.0 출시 1996년, Linux 2.x 2011년 7월 21일, Linux 3.x 2015년, Linux 4.x 11

리눅스커널 : kernel.org 리눅스커널 (2/11) 12

리눅스커널 (3/11) 리눅스커널 : git.kernel.org Kernel.org Git repositories 13

리눅스커널 : GitHub 리눅스커널 (4/11) 리누스토발즈 (Linus Torvalds) 저장소 (Repository) : https://github.com/torvalds/linux 14

리눅스커널 : 버전역사 초창기 리눅스커널 (5/11) 1991년, 0.01 버전첫배포 0.12 : 첫번째 GPL 버전 1994년, 버전 1.0 출시 1996 년, Linux 2.x 1999년, 2.2.x 2001년, 2.4.x 2003년 12월, 2.6.x 2004년, 릴리즈프로세스변경» 2-3개월마다정기적으로 Linux 2.6.39 2011 년 7 월 21 일, Linux 3.x 리눅스커널 20주년기념일 -rc : 개발릴리스버전 2015 년, Linux 4.x [ 출처 : Timeline, Linux kernel, WIKIPEDIA. ] 15

리눅스커널 : 커널버전 리눅스커널 (6/11) < 주버전번호 >.< 부버전번호 >.< 패치레벨 > 커널버전규칙 주버전번호 커널에구조적인큰변화를의미 ( 역사적으로 0, 1, 2, 3, 4 까지사용 ) 2011년 7월 21일 : Linux 3.x» 리눅스커널 2.6.39 와비교할때주요기술적인변화에관한것이아니다.» 리누스토발즈, 리눅스커널 20주년기념일 ( 2.6.39 부터 3.0 ), ( 3.19 부터 4.0 ) 번호변경» 의미있는기술적차이를수반하지는않는다.» 메이저버전번호는커다란마이너번호를회피하기위해증가시킨것이다. 부버전번호 커널에구조적인큰변화는없지만, 내부적으로구현되는방식에여러변화 짝수 : 안정버전, 홀수 : 개발버전 패치레벨 같은버전안에서몇번의개정작업이이루어졌는가를나타내는값 이값이클수록코드가안정되고, 기능이향상되었음을의미 16

리눅스커널 (7/11) 리눅스커널 : 안정버전과개발버전 안정버전 (Stable Version) 제품용시스템에적합한안정된커널 많은개발과정을통해충분히안정화되어있다고판단하는기능으로구성된커널 제한된범위내에서지속적인안정화를위해패치 (Patch) 를가하며버전이조금씩올라간다. 개발버전 (Developmental Version) 주로새로운기능을추가하고실험하는데주력하는버전 안정성보다는실험성과기능에비중 17

리눅스커널 : 개발 개발자커뮤니티 리눅스커널 (8/11) 초창기 (2007 년이전 ), 개발자상위 20 명이코드의 80% 를작성 2007년, 개발자상위 30명이코드의 30% 를작성 상위개발자는변경사항을검토하는데더많은시간을투자 커널변경사항은 1900명이넘는개발자들에의해제출 ( 단, 팀소속개발자는 1로간주 ) Red Hat : 12% 의기여도, 알려진아마추어는 3.9% 2016년, Linux 커널개발보고서 : Linux Foundation (2014년 12월 ) 에서 4.7(2016년7 월 ) 까지의기간업데이트» 릴리스당평균 200-250 개기업의약 1500 명의개발자가각릴리스에기여 개발자 : 상위 30명, 코드의 16% 정도기여 회사 : Intel(12.9%), Red Hat(8.0%), 'none'(7.7%), 'unknown'(6.8%) 18

리눅스 커널 리눅스 커널 : 하드웨어 지원 (9/11) 리눅스 커널은 다양한 하드웨어 아키텍처를 지원하여, 소프트웨어에 대한 공통 플랫폼을 제공한다. [ 출처 : Hardware support, Linux kernel, WIKIPEDIA. ] 19

리눅스커널 (10/11) 리눅스커널프로그래밍 : 시스템콜 (System Call) fopen() user application user mode kernel mode system call interface open() system call 의구현 i... return 20

Linux Kernel map 리눅스커널 (11/11) [ 출처 : Linux Kernel map, Linux kernel, WIKIPEDIA. ] 21

커널컴파일 리눅스커널 커널컴파일 커널컴파일환경설정 커널컴파일과설치 커널컴파일옵션설정 커널패치 22

커널컴파일 (1/6) 커널컴파일 (Kernel Compile) 컴파일러를이용하여프로그램소스로부터수행가능한바이너리코드를만드는과정 시스템성능최적화및새로운하드웨어지원 속도개선과버그수정 두가지방법 리눅스제조사에서해주는방법 : 리눅스배포판 여러사용자들의요구를맞춰야한다. 사용자가직접컴파일하는방법 사용자자신에게맞는최적의환경설정 : 좀더작고가볍게구성 23

현재커널버전 : uname uname : 시스템정보 커널컴파일 (2/6) [clickseo@localhost ~]$ uname -r uname -o : 운영체제 uname -s : 커널이름 uname -r : 커널릴리즈 24

커널컴파일 (3/6) 현재커널버전 : /proc/version /proc/version 파일 [clickseo@localhost ~]$ cat /proc/version 25

현재커널버전 : /usr/src /usr/src 디렉터리 커널컴파일 (4/6) [clickseo@localhost ~]$ head /usr/src/linux-headers-4.15.0-34-generic/makefile 26

리눅스커널 : 다운로드 커널컴파일 (5/6) 27

리눅스커널 : 압축풀기 XZ Utils 커널컴파일 (6/6) [root@localhost ~]# tar xvlf linux-4.18.12.tar.xz 28

커널컴파일 : 환경설정 (1/5) 커널컴파일환경설정 커널이제공할기능설정 3 가지방식 make config : 명령어방식 make menuconfig : 메뉴방식 make xconfig : X 윈도환경, GUI 방식 29

커널컴파일 : 환경설정 (2/5) 커널컴파일환경설정 : make config make config 아주전통적인스타일방식 : CLI 형식으로옵션지정 설정가능한값 y( 기능추가 ), n( 기능제외 ), m( 모듈추가 ) 모듈이불가능한기능의경우 m 이표시되지않는다. 단점 : 잘못선택하면처음부터다시해야한다. 30

커널컴파일 : 환경설정 (3/5) 커널컴파일환경설정 : make menuconfig make menuconfig 메뉴방식의화면으로방향키로메뉴를선택 <h> 를누르면도움말을볼수있다. --> 표시가있는곳에서 <Enter> 키를누르면하위메뉴가열린다. <ESC> 를두번누르거나, <Exit> 를선택하면상위메뉴로올라간다. ncurses(new-curses) 라이브러리를사용 설정가능한값 Y는커널포함, N은제외, M은모듈을뜻한다. 설정상태는 [ ] 또는 < > 안에 *( 선택 ), M( 모듈 ), 빈칸 ( 제외 ) 으로표시된다. 모듈기능 (M) 은 < > 으로표시된질문에만쓸수있다. 31

커널컴파일 : 환경설정 (4/5) 커널컴파일환경설정 : make menuconfig make menuconfig 32

커널컴파일 : 환경설정 (5/5) 커널컴파일환경설정 : make xconfig make xconfig X 윈도환경에서구현한것 X 윈도와 Tcl/Tk 인트프리터 / 툴킷라이브러리가반드시필요 33

커널컴파일과설치 커널컴파일 : 설치 (1/4) 단계별명령수행후설치 1 // 컴파일환경설정 # make menuconfig # make dep // 컴파일을위한의존성관계설정 ( 커널 2.6이후불필요 ) # make clean // 이전에수행했던컴파일과정에서생성된목적파일, 커널, 임시파일, 설정값등을삭제한다. # make bzimage // 커널이미지생성 # make modules // 모듈컴파일 34

커널컴파일 : 설치 (2/4) 커널컴파일과설치 (cont d) 단계별명령수행후설치 2 // bzimage 파일을 /boot 로복사하고, bzimage 의이름을다음과같이바꾼다. vmlinuz vmlinuz-x.x.xx // System.map 파일복사 # cp /usr/src/linux/system.map /bott/system.map-2.4.16 # make /etc/lilo.conf modules_install 파일또는 /etc/grub.conf // 파일컴파일수정된모듈을 /lib/modules 아래설치 35

커널컴파일 : 설치 (3/4) 커널컴파일과설치 (cont d) 간단한컴파일과설치과정 // 컴파일환경설정 # make menuconfig... // 커널컴파일 # make all // 커널설치 # make modules_install # make install /boot 아래에필요한파일을복사하고 grub.conf 의갱신까지모든과정을한번에 해준다. 36

커널컴파일 : 설치 (4/4) 커널컴파일과설치 (cont d) /etc/grub.conf default=2 timeout=10 splashimage=(hd0,5)/grub/splash.xpm.gz hiddenmenu title Fedora Core (2.6.16) root (hd0,5) kernel /vmlinuz-2.6.16 ro root=label=/1 rhgb quiet initrd /initrd-2.6.16.img title Fedora Core (2.6.11-1.1369_FC4) root (hd0,5) kernel /vmlinuz-2.6.11-1.1369_fc4 ro root=label=/1 rhgb quiet initrd /initrd-2.6.11-1.1369_fc4.img title Other rootnoverify (hd0,0) chainloader +1 37

커널컴파일옵션설정 리눅스커널 커널컴파일 커널컴파일옵션설정 커널컴파일옵션설정 커널패치 38

커널컴파일 : 옵션설정 (1/8) Code maturity level options 커널코드의성숙도를선택하는부분 개발버전수준의소스를사용하도록선택해주는것 Y를선택하면개발중인새로운기능과, 새로운드라이버를포함할것인지조금더많은질문을하며, 시험적인기능은뒷부분에 (EXPERIMENTAL) 이란꼬리표가붙는다. 가장최신의 ( 따라서실험적이기도한 ) 커널개발에접근하고자하는가? General setup 리눅스에서네트워킹, PCI BIOS, MCA, PCMCIA, 프로세서사이에서동기화와정보 교환을가능하게하는 IPC 등과같은기능을선택한다. 39

커널컴파일 : 옵션설정 (2/8) Loadable module support 커널에서모듈을사용할수있게해주는것 [*] Enable loadable module support 모듈을이용하면자주쓰이지않는장치드라이버나기능들을커널바깥에모듈로두었다가필요할때에만동적으로메모리에적재하여사용한다. 작업이끝나면메모리에서다시제거하므로메모리를효율적으로사용할수있고, 커널크기가도감소한다. 모듈은스스로가컴파일되어독자적인기능을가지므로모듈로설정한기능에변화가있더라도전체커널에는손대지않을수도있다. Processor type and features 자신의컴퓨터 CPU 를선택하는화면 프로세서에맞추어서커널을최적화시킬수있다. 40

Networking 커널컴파일 : 옵션설정 (3/8) 패킷전송, 라우팅, 네트워크링크, 필터링과같은네트워킹에필요한옵션을설정한다. Networking options Amateur Radio support 리눅스를 HAM 과같은아마추어라디오와연결시키고싶은사람을위한옵션 <M> IrDA (infrared) subsystem support IrDA(the Infrared Data Associations) 는적외선통신에관한표준으로노트북이나 PDA와같은장치와의적외선통신을위한설정을하는부분 41

Device Drivers 커널컴파일 : 옵션설정 (4/8) Memory Technology Devices (MTD) MTD는플래시, RAM 그리고칩과같은것을지칭하는것을지칭하는것으로커널이이러한장치를하나의파일시스템으로인식하여관리할수있도록해준다. Parallel port support 병렬포트지원여부를설정하는것 프린터및외장형 Zip 드라이브사용시선택할수있다. Plus and Play support PnP 기능을사용하기위해설정하는부분 Block devices 블록장치는플로피디스크, 하드디스크, CD-ROM 처럼블록단위로읽고쓰는장치를말한다. 리눅스에붙일수있는여러저장장치들에대한지원여부를결정한다. Multi-device support (RAID and LVM) RAID나 LVM과같은다중장치드라이버를설정하는부분 42

커널컴파일 : 옵션설정 (5/8) Device Drivers (cont d) SCSI device support SCSI 지원여부를위한것 IEEE 1394 (FireWire) support I2O device support 지능형입출력 (Intelligent Input/Output; I2O) 아키텍처의지원여부를설정하는메뉴 I2O 인터페이스어댑터카드가설치되어있어야한다. Network device Support 네트워크장치를설정하는부분 ISDN subsystem 내장형 ISDN(Integrated Services Digital Networks) 통신을지원하기위한장비에대한드라이버와커널지원옵션들 Telephony Support IP 를가지고음성을전달할수있는카드를사용하는경우선택한다. 43

커널컴파일 : 옵션설정 (6/8) Device Drivers (cont d) Input device support 키보드나마우스와같은입력장치지원에대한항목을설정하는부분 Character devices 가상터미널, 시리얼터미널등과같은블록장치가아닌문자장치지원에대하여설정하는 부분 Multimedia devices Graphics support Sound 리눅스에서사용할수있는사운드카드목록이표시된다. USB suport USB 지원을위한메뉴로 USB 장치를사용한다면선택해준다. 44

File systems 커널컴파일 : 옵션설정 (7/8) 리눅스시스템이지원할파일시스템을선택 Second extended fs support Ext3 journalling file system support Reiserfs support JFS filesystem support XFS filesystem support Minix fs support CD-ROM/DVD Filesystems DOS/FAT/NT filesystems 기타등등 45

Kernel hacking 커널컴파일 : 옵션설정 (8/8) 시스템이다운되었을경우에도특정키조합을통해시스템에접근할수있도록해준다. 개발버전의커널을사용할때나커널디버깅시유용하게사용가능하다. 만약에선택할경우커널의속도가느려지는단점이있으며, 커널에디버깅코드가 활성화된다. 46

커널패치 리눅스커널 커널컴파일 커널컴파일옵션설정 커널패치 커널패치 47

커널패치 (1/2) 커널패치 커널업그레이드에해당 예 ) 2.4.16 커널 2.4.16-1 으로업그레이드 패치다운로드 패치파일명 patch 단어가앞에붙는다. 패치에의해설치되는리눅스버전번호가뒤에붙는다. patch-2.4.0-test10 파일 : linux-2.4.0-test9 버전에만적용 patch-2.4.16-1.gz 를다운로드 다운받은패치파일을 /usr/src 디렉터리로이동 gzip 명령어를사용해서패치의압축을푼다. # gzip -d patch-2.4.16-1.gz 48

커널패치 (2/2) 패치적용하기 patch-2.4.16-1 을 linux-2.4.16 에적용하려면 # patch -p0 < patch-2.4.0-test10 패치가잘동작한다면 /usr/src/linux 디렉터리로가서커널을재컴파일 # make dep; make clean; make zimage; make modules 패치가잘동작하지않는다면 다음두이유중의하나일것이다. 패치가적용될커널버전번호와현재설치되어있는커널의버전번호가서로맞지않는경우» 예를들어, patch-2.4.16-5 를 linux-2.4.16-4에작용한경우 현재커널의소스자체가변경되었다. 49

참고문헌 [1] 이종원, 우분투리눅스 ( 시스템 & 네트워크 ), 한빛아카데미, 2018. [2] 백창우, 유닉스리눅스프로그래밍필수유틸리티, 한빛미디어. 2010. [3] "The Linux Kernel Archives", the Linux Kernel Organization, 2018 of viewing the site, https://www.kernel.org/. 이강의자료는저작권법에따라보호받는저작물이므로무단전제와무단복제를금지하며, 내용의전부또는일부를이용하려면반드시저작권자의서면동의를받아야합니다. Copyright Clickseo.com. All rights reserved. 50