본문 바로가기
OS 운영체제/LINUX

kernel-devel (리눅스 패키지)

by yororing 2024. 4. 9.

00 개요

1. devel이란

1) 배경지식

  • 리눅스에선 -dev, -devel 패키지 존재
  • 리눅스에서 이런 저런 패키지를 설치하다 보면 의존성 (dependency) 문제로 libxml2-devel, openssl-devel과 같은 devel 패키지를 설치해야 하는 경우가 많음

2) devel의 정의

  • 리눅스에서 dev, devel이 붙은 패키지는 컴파일을 위한 헤더 및 라이브러리 패키지
    • Ubuntu와 같은 Debian 계열의 리눅스: -dev
    • CentOS와 같은 RedHat 계열의 리눅스: -devel
  • devel 패키지의 주요 역할: 다른 프로그램들을 위한 라이브러리 역할소스코드 컴파일
    • 소스코드 컴파일하다 (동사): 리눅스에서 mysql-8.0.1.tar.gz 같은 소스파일로 프로그램을 설치하는 것
  • 일반적으로 *.h, *.so, *.a 확장자를 가진 파일로 구성되어 있음
확장자명 설명
.h 파일 헤더 파일로 소스코드 파일
.so 파일 동적 (dynamic) 라이브러리
shared object
의 약자

윈도우의 DLL (dynamic link library)와 같은 역할을 함
프로그램에 라이브러리가 포함되지 않음 → 컴파일 시 어떤 .so 라이브러리를 사용하는지만 포함되어 동적으로 연결하여 사용
.a 파일 정적 (static) 라이브러리
archive library
를 의미

컴파일 시 .a 라이브러리가 포함
파일에 포함되기에 .a 파일이 없어도 프로그램이 돌아가지만 용량이 커지고 버전관리가 .so 파일을 링크한 것에 비해 힘듦

 

2. kernel이란

1) 정의

  • 커널은 리눅스 운영 체제의 핵심 부분으로, 시스템 자원을 관리하고 하드웨어와 소프트웨어 애플리케이션 간의 interface 제공

01 kernel-devel이란

1. 정의

  • Development package for building kernel modules to match the kernel
  • 커널 패키지에 대한 모듈을 구축하기에 충분한 kernel-headers 및 makefiles를 포함하는 개발 패키지

2. kernel RPM 패키지 overview

  • kernel RPM은 meta package이며 그 어떤 파일도 담겨있지 않음
  • 다음과 같은 sub-package들이 제대로 설치되어 있는지를 ensure함
    • kernel-core: 리눅스 커널(vmlinuz)의 binay image를 포함
    • kernel-modules-core: 코어 기능성을 보장하기 위한 커널 모듈들 포함
    • kernel-modules: kernel-core에 있지 않은 다른 커널 모듈들 포
    • kernel-headers: 리눅스 커널과 사용자 공간 라이브러리 및 프로그램 간의 interface를 지정하는 C 헤더 파일이 포함되어 있음. 헤더 파일은 대부분의 표준 프로그램 구축에 필요한 구조와 상수를 정의함

 

 

참조

  1. https://mentha2.tistory.com/214#google_vignette 
  2. https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/the-linux-kernel-rpm-package-overview_assembly_the-linux-kernel
  3. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/managing_monitoring_and_updating_the_kernel/assembly_the-linux-kernel_managing-monitoring-and-updating-the-kernel
  4.  

'OS 운영체제 > LINUX' 카테고리의 다른 글

ls (파일 목록 명령어)  (0) 2024.04.17
EGO (Alter Ego)  (0) 2024.04.15
DKMS (리눅스 커널 모듈 관리 프레임워크)  (0) 2024.04.09
/etc/passwd (사용자 정보 파일)  (0) 2024.04.08
find (파일 검색 명령어)  (0) 2024.04.05