찾다
운영 및 유지보수리눅스 운영 및 유지 관리리눅스 커널의 하위 시스템은 무엇입니까?

리눅스 커널의 하위 시스템은 무엇입니까?

Nov 26, 2021 am 10:46 AM
리눅스 커널하위 시스템

Linux 커널에는 5개의 하위 시스템이 있습니다: 1. SCHED(프로세스 스케줄링 제어 시스템) 2. 주요 기능은 여러 프로세스를 제어하여 메인 메모리 영역을 안전하게 공유하는 것입니다. VFS), 4. 네트워크 인터페이스(NET), 5. 프로세스 간 통신(IPC).

리눅스 커널의 하위 시스템은 무엇입니까?

이 튜토리얼의 운영 환경: Ubuntu 16.04 시스템, Dell G3 컴퓨터.

커널:

컴퓨터 과학에서는 소프트웨어에서 발행한 데이터 I/O(입력 및 출력) 요구 사항을 관리하고 이러한 요구 사항을 데이터 처리 명령으로 변환하여 중앙 프로세서(CPU)에 전달하는 데 사용되는 컴퓨터 프로그램입니다. ) 및 컴퓨터의 기타 전자 부품은 현대 운영 체제의 가장 기본적인 부분입니다. 이는 많은 응용 프로그램에 대해 컴퓨터 하드웨어에 대한 보안 액세스를 제공하는 소프트웨어입니다. 이러한 액세스는 제한되어 있으며, 커널은 프로그램이 하드웨어의 특정 부분에서 작동할 수 있는 시기와 기간을 결정합니다. 하드웨어에서 직접 작업하는 것은 매우 복잡합니다. 따라서 커널은 일반적으로 이러한 작업을 완료하기 위한 하드웨어 추상화 방법을 제공합니다. 프로세스 간 통신 메커니즘과 시스템 호출을 통해 애플리케이션 프로세스는 필요한 하드웨어 리소스(특히 프로세서 및 IO 장치)를 간접적으로 제어할 수 있습니다.

리눅스 커널의 하위 시스템은 무엇인가요?

리눅스 커널은 주로 프로세스 스케줄링(SCHED), 메모리 관리(MM), 가상 파일 시스템(VFS), 네트워크 인터페이스(NET) 및 상호 연결로 구성됩니다. 프로세스 통신(IPC) 아래 그림과 같이 5개의 하위 시스템으로 구성됩니다.

리눅스 커널의 하위 시스템은 무엇입니까?

1. 프로세스 스케줄링

프로세스 스케줄링은 시스템의 여러 프로세스가 CPU에 액세스하는 것을 제어하므로 CPU에서 여러 프로세스가 "마이크로 직렬 및 매크로 병렬"로 실행될 수 있습니다. . 프로세스 스케줄링은 시스템의 중심에 있으며 각 하위 시스템은 프로세스를 일시 중지하거나 재개해야 하기 때문에 커널의 다른 하위 시스템은 이에 의존합니다.

아래 그림에 표시된 것처럼 Linux 프로세스는 여러 상태 간에 전환됩니다.


Linux 프로세스 상태 전환

장치 드라이버 프로그래밍에서 요청된 리소스가 충족되지 않으면 드라이버는 일반적으로 다른 프로세스를 실행하도록 예약하고 요청한 리소스가 해제될 때까지 이 프로세스를 절전 상태로 전환합니다. 그리고 준비 상태로 들어갑니다. 수면은 중단 가능한 수면과 무중단 수면으로 구분됩니다. 둘의 차이점은 인터럽트 가능한 수면은 신호를 받으면 깨어난다는 것입니다.

완전히 TASK_UNINTERRUPTIBLE 상태인 프로세스는 "종료"될 수도 없으므로 Linux 2.6.26 이후의 커널에도 "TASK_WAKEKILL|TASK_UNINTERRUPTIBLE"과 동일한 TASK_KILLABLE 상태가 있으며 치명적인 신호에 응답할 수 있습니다.

Linux 커널에서는 task_struct 구조(include/linux/sched.h)가 프로세스를 설명하는 데 사용됩니다. 이 구조에는 메모리 리소스, 파일 시스템 리소스, 파일 리소스, tty 리소스, 신호 처리 등을 설명하는 포인터가 포함되어 있습니다. . Linux 스레드는 경량 프로세스 모델을 사용하여 구현됩니다. 스레드가 pthread_create() API를 통해 사용자 공간에 생성되면 기본적으로 커널은 새 task_struct를 생성하고 새 task_struct의 모든 리소스 포인터를 이를 생성한 리소스로 가리킵니다. task_struct의 포인터.

대부분의 프로세스(및 프로세스의 여러 스레드)는 기본 리소스 및 하드웨어 액세스에 대한 요구 사항이 있는 경우 사용자 공간 응용 프로그램에 의해 생성되며 시스템 호출을 통해 커널 공간에 들어갑니다. 때때로 커널 프로그래밍에서 여러 작업을 동시에 실행해야 하는 경우 커널 스레드가 시작될 수 있으며 이러한 스레드에는 사용자 공간이 없습니다. 커널 스레드를 시작하는 함수는 다음과 같습니다: pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);

2 메모리 관리

메모리 관리의 주요 기능은 제어하는 ​​것입니다. 여러 프로세스가 공유하는 주 메모리 영역의 보안. Linux 메모리 관리는 CPU가 메모리 관리 장치(MMU)를 제공할 때 각 프로세스에 대해 가상 메모리에서 실제 메모리로의 변환을 완료합니다. Linux 2.6에서는 MMU 없는 CPU에 대한 지원이 도입되었습니다.

그림에서 볼 수 있듯이 일반적으로 32비트 프로세서에서 Linux의 각 프로세스는 4GB의 메모리 공간을 사용하며 0~3GB는 사용자 공간에 속하고 3~4GB는 커널 공간에 속하며 커널 공간은 일정한 영향을 미칩니다. 일반 메모리와 I/O에서는 장치 메모리와 고급 메모리가 다르게 처리됩니다. 커널 공간과 사용자 공간 사이의 특정 경계는 커널 구성 옵션인 커널 기능→메모리 분할에서 조정될 수 있습니다. 경계는 2GB 또는 3GB로 설정할 수 있습니다.


Linux 프로세스 주소 공간

위 그림에서 볼 수 있듯이 Linux 커널의 전반적인 메모리 관리는 각 페이지의 점유를 관리하는 데 사용되는 기본 Buddy 알고리즘, 커널 공간 및 사용자 공간에서 C 라이브러리의 보조 관리. 또한 커널은 메모리를 사용하여 디스크를 캐시하는 페이지 캐시 지원도 제공하며, 지원 장치별 정보 플러셔 스레드는 더티 페이지 캐시를 디스크로 다시 플러시하는 데 사용됩니다. Kswapd(스왑 프로세스)는 Linux에서 페이지 재활용(파일 지원 페이지 및 익명 페이지 포함)에 사용되는 커널 스레드로, 메모리 재활용을 위해 LRU(최근 사용) 알고리즘을 사용합니다.

3. 가상 파일 시스템

그림과 같이


Linux 가상 파일 시스템

Linux 가상 파일 시스템은 다양한 하드웨어의 구체적인 내용을 숨기고 모든 기기에 통일된 인터페이스를 제공합니다. . 또한 각 특정 파일 시스템과 독립적이며 다양한 파일 시스템을 추상화한 것입니다. 이는 상위 계층 애플리케이션을 위한 통합된 vfs_read(), vfs_write() 및 기타 인터페이스를 제공하고 특정 기본 파일 시스템 또는 장치 드라이버에 구현된 file_Operations 구조의 멤버 함수를 호출합니다.

4. 네트워크 인터페이스

네트워크 인터페이스는 다양한 네트워크 표준에 대한 액세스를 제공하고 다양한 네트워크 하드웨어를 지원합니다. 그림 3.8에서 볼 수 있듯이 Linux의 네트워크 인터페이스는 네트워크 프로토콜과 네트워크 드라이버로 나눌 수 있으며, 네트워크 프로토콜 부분은 가능한 모든 네트워크 전송 프로토콜을 구현하는 역할을 합니다. 장치에는 해당 장치 드라이버가 있습니다.


Linux 네트워크 아키텍처

Linux 커널은 인터넷, UNIX, CAN, NFC, Bluetooth, WiMAX, IrDA 등과 같은 다양한 유형의 프로토콜 스택을 지원합니다. 상위 계층 응용 프로그램은 소켓 인터페이스를 균일하게 사용합니다.

5. 프로세스 간 통신

프로세스 간 통신은 프로세스 간 통신을 지원합니다. Linux는 세마포어, 공유 메모리, 메시지 대기열, 파이프, UNIX 도메인 소켓 등을 포함한 다양한 프로세스 간 통신 메커니즘을 지원합니다. 여러 프로세스, 여러 리소스에 대한 상호 배타적 액세스, 프로세스 간 동기화 및 메시지 전달을 지원합니다. 실제 Linux 응용 프로그램에서 사람들은 System V IPC의 메시지 대기열 및 기타 메커니즘보다는 UNIX 도메인 소켓을 사용하는 경향이 있습니다. Android 커널에는 새로운 Binder 프로세스 간 통신 방법이 추가되었습니다.

Linux 커널의 5개 구성 요소 간의 종속성은 다음과 같습니다.

  • 프로세스 스케줄링과 메모리 관리 간의 관계: 이 두 하위 시스템은 서로 종속되어 있습니다. 다중 프로그램 환경에서 프로그램을 실행하려면 프로세스를 생성해야 합니다. 프로세스를 생성할 때 가장 먼저 해야 할 일은 프로그램과 데이터를 메모리에 로드하는 것입니다.

  • 프로세스 간 통신과 메모리 관리의 관계: 프로세스 간 통신 하위 시스템은 공유 메모리 통신 메커니즘을 지원하기 위해 메모리 관리에 의존합니다. 이 메커니즘을 통해 두 프로세스는 자신의 개인 공간을 가질 뿐만 아니라 액세스도 할 수 있습니다. 공통 메모리 영역.

  • 가상 파일 시스템과 네트워크 인터페이스의 관계: 가상 파일 시스템은 네트워크 인터페이스를 사용하여 NFS(Network File System)를 지원하고 메모리 관리를 사용하여 RAMDISK 장치를 지원합니다.

  • 메모리 관리와 가상 파일 시스템의 관계: 메모리 관리는 가상 파일 시스템을 사용하여 스와핑을 지원하며 스와핑 프로세스는 스케줄러에 의해 정기적으로 예약되므로 메모리 관리는 프로세스 스케줄링에 의존합니다. 프로세스가 액세스하는 메모리 맵이 스왑 아웃되면 메모리 관리는 가상 파일 시스템에 요청을 보내는 동시에 현재 실행 중인 프로세스를 일시 중지합니다.

이러한 종속성 외에도 커널의 모든 하위 시스템도 일부 공통 리소스에 의존합니다. 이러한 리소스에는 메모리 공간 할당 및 해제 기능, 경고 또는 오류 메시지 출력 기능, 시스템에서 제공하는 디버깅 인터페이스 등 모든 하위 시스템에서 사용하는 API가 포함됩니다.

관련 추천: "Linux 비디오 튜토리얼"

위 내용은 리눅스 커널의 하위 시스템은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
리눅스 유지 보수 모드 : 목적 이해리눅스 유지 보수 모드 : 목적 이해Apr 28, 2025 am 12:01 AM

유지 보수 모드는 시스템 유지 보수 및 수리에 사용되므로 관리자는 단순화 된 환경에서 작업 할 수 있습니다. 1. 시스템 수리 : 손상된 파일 시스템 및 부트 로더 수리. 2. 비밀번호 재설정 : 루트 사용자 비밀번호를 재설정합니다. 3. 패키지 관리 : 소프트웨어 패키지를 설치, 업데이트 또는 삭제합니다. Grub 구성을 수정하거나 특정 키로 유지 보수 모드를 입력하면 유지 보수 작업을 수행 한 후 안전하게 종료 할 수 있습니다.

Linux 운영 : 네트워킹 및 네트워크 구성Linux 운영 : 네트워킹 및 네트워크 구성Apr 27, 2025 am 12:09 AM

Linux 네트워크 구성은 다음 단계를 통해 완료 할 수 있습니다. 1. 네트워크 인터페이스 구성 IP 명령을 사용하여 구성 파일 관리 설정을 일시적으로 설정하거나 편집하십시오. 2. 고정 IP가 필요한 장치에 적합한 정적 IP를 설정합니다. 3. 방화벽을 관리하고 IPTables 또는 방화구 도구를 사용하여 네트워크 트래픽을 제어하십시오.

Linux의 유지 관리 모드 : 시스템 관리자 안내서Linux의 유지 관리 모드 : 시스템 관리자 안내서Apr 26, 2025 am 12:20 AM

유지 보수 모드는 Linux 시스템 관리에서 중요한 역할을 수행하여 수리, 업그레이드 및 구성 변경을 돕습니다. 1. 유지 보수 모드를 입력하십시오. 그루브 메뉴를 통해 선택하거나 "sudosystemctlisolaterscue.target"명령을 사용할 수 있습니다. 2. 유지 보수 모드에서는 파일 시스템 수리 및 시스템 업데이트 작업을 수행 할 수 있습니다. 3. 고급 사용법에는 루트 비밀번호 재설정과 같은 작업이 포함됩니다. 4. 유지 보수 모드를 입력하거나 파일 시스템을 마운트 할 수없는 것과 같은 일반적인 오류는 Grub 구성을 확인하고 FSCK 명령을 사용하여 수정할 수 있습니다.

Linux의 유지 보수 모드 : 언제 및 왜 사용해야하는지Linux의 유지 보수 모드 : 언제 및 왜 사용해야하는지Apr 25, 2025 am 12:15 AM

Linux 유지 관리 모드 사용 타이밍 및 이유 : 1) 시스템이 시작될 때 2) 주요 시스템 업데이트 또는 업그레이드를 수행 할 때 3) 파일 시스템 유지 관리를 수행 할 때. 유지 보수 모드는 안전하고 제어 된 환경을 제공하여 운영 안전 및 효율성을 보장하고 사용자에게 미치는 영향을 줄이며 시스템 보안을 향상시킵니다.

Linux : 필수 명령 및 운영Linux : 필수 명령 및 운영Apr 24, 2025 am 12:20 AM

Linux의 필수 명령에는 다음이 포함됩니다. 1.LS : 목록 디렉토리 내용; 2.CD : 작업 디렉토리 변경; 3.mkdir : 새 디렉토리 생성; 4.RM : 파일 또는 디렉토리 삭제; 5.CP : 파일 또는 디렉토리 복사; 6.mv : 파일 또는 디렉토리를 이동하거나 바꾸십시오. 이러한 명령은 사용자가 커널과 상호 작용하여 파일 및 시스템을 효율적으로 관리하는 데 도움이됩니다.

Linux 작업 : 파일, 디렉토리 및 권한 관리Linux 작업 : 파일, 디렉토리 및 권한 관리Apr 23, 2025 am 12:19 AM

Linux에서 파일 및 디렉토리 관리는 LS, CD, MKDIR, RM, CP, MV 명령을 사용하며 권한 관리는 CHMOD, Chown 및 CHGRP 명령을 사용합니다. 1. 파일 및 디렉토리 관리 명령 LS-L 목록 상세 정보와 같은 MKDIR-P는 디렉토리를 재귀 적으로 생성합니다. 2. CHMOD755FILE SET 파일 권한 설정, ChownUserFile 변경 파일 소유자 및 CHGRPGROUPFILE와 같은 허가 관리 명령은 파일 그룹을 변경합니다. 이러한 명령은 파일 시스템 구조 및 사용자 및 그룹 시스템을 기반으로하며 시스템 호출 및 메타 데이터를 통해 작동 및 제어합니다.

Linux의 유지 관리 모드 란 무엇입니까? 설명했다Linux의 유지 관리 모드 란 무엇입니까? 설명했다Apr 22, 2025 am 12:06 AM

MaintenanceModeInlinlinlinuxisspecialbootenvernmentforcriticalsystemmaintenancetasks.itallowsAdministratorStorformtaskSlikeresettingpasswords, Repairingfilesystems, Andrecoveringfrombootfailuresinaminimalenvernment.toentermaintingancemode, intermainteancemode

Linux : 기본 부분에 대한 깊은 다이빙Linux : 기본 부분에 대한 깊은 다이빙Apr 21, 2025 am 12:03 AM

Linux의 핵심 구성 요소에는 커널, 파일 시스템, 쉘, 사용자 및 커널 공간, 장치 드라이버 및 성능 최적화 및 모범 사례가 포함됩니다. 1) 커널은 하드웨어, 메모리 및 프로세스를 관리하는 시스템의 핵심입니다. 2) 파일 시스템은 데이터를 구성하고 Ext4, BTRF 및 XFS와 같은 여러 유형을 지원합니다. 3) Shell은 사용자가 시스템과 상호 작용하고 스크립팅을 지원하는 명령 센터입니다. 4) 시스템 안정성을 보장하기 위해 사용자 공간을 커널 공간과 별도로 분리하십시오. 5) 장치 드라이버는 하드웨어를 운영 체제에 연결합니다. 6) 성능 최적화에는 튜닝 시스템 구성 및 다음 모범 사례가 포함됩니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기