>  기사  >  운영 및 유지보수  >  리눅스는 어떤 부분으로 나눌 수 있나요?

리눅스는 어떤 부분으로 나눌 수 있나요?

青灯夜游
青灯夜游원래의
2022-05-12 19:29:2111233검색

Linux는 4가지 부분으로 나눌 수 있습니다: 1. 컴퓨터 시스템의 모든 하드웨어와 소프트웨어를 제어하고 주로 시스템 메모리 관리, 소프트웨어 프로그램 관리, 하드웨어 장치 관리 및 파일 시스템 관리를 담당하는 커널 2. GNU 도구 , 커널 제외 셸과 같은 제어되는 하드웨어 장치 이외의 필요한 도구 3. KDE와 같은 데스크탑 환경 4. 응용 프로그램 소프트웨어.

리눅스는 어떤 부분으로 나눌 수 있나요?

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

Linux는 UNIX와 유사한 무료 오픈 소스 운영 체제입니다. 주로 Minix와 Unix의 아이디어에서 영감을 얻었으며 POSIX 기반 다중 사용자, 다중 작업, 다중 스레드 및 다중 CPU 운영 체제입니다. Linux는 다음 네 부분으로 나눌 수 있습니다.

  • Linux 커널
  • GNU 도구
  • 그래픽 데스크탑 환경
  • 응용 소프트웨어

다음 그림은 다양한 부분이 함께 작동하여 Linux를 구성하는 방법을 보여주는 기본 구조 블록 다이어그램입니다. 완전한 리눅스 시스템.
리눅스는 어떤 부분으로 나눌 수 있나요?

1.리눅스 커널

리눅스 시스템의 핵심은 커널이다. 커널은 컴퓨터 시스템의 모든 하드웨어와 소프트웨어를 제어합니다. 커널은 주로 다음 네 가지 기능을 담당합니다.

  • 시스템 메모리 관리
  • 소프트웨어 프로그램 관리
  • 하드웨어 장치 관리
  • 파일 시스템 관리

1.1 시스템 메모리 관리

핵심 기능 중 하나 운영 체제 커널은 메모리 관리입니다. 커널은 서버에서 사용 가능한 물리적 메모리를 관리할 뿐만 아니라 가상 메모리(즉, 실제로 존재하지 않는 메모리)를 생성하고 관리할 수도 있습니다. 커널은 하드 디스크의 저장 공간을 통해 가상 메모리를 구현합니다. 이 영역을 스왑 공간이라고 합니다. 커널은 스왑 공간과 실제 물리적 메모리 사이에서 가상 메모리의 내용을 지속적으로 교환합니다. 이로 인해 시스템은 실제 메모리보다 사용 가능한 메모리가 더 많다고 생각하게 됩니다.
리눅스는 어떤 부분으로 나눌 수 있나요?

메모리 저장 단위는 그룹별로 여러 블록으로 나뉘며, 이러한 블록을 페이지라고 합니다. 커널은 각 메모리 페이지를 물리적 메모리나 스왑 공간에 배치합니다. 그런 다음 커널은 메모리 페이지 테이블을 유지 관리하여 어떤 페이지가 물리적 메모리에 있는지, 어떤 페이지가 디스크로 스왑되었는지를 나타냅니다.

커널은 사용 중인 메모리 페이지를 기록하고, 사용 가능한 메모리가 아직 있는 경우에도 일정 기간 동안 액세스하지 않은 메모리 페이지를 스왑 공간 영역(스왑 아웃이라고 함)에 자동으로 복사합니다. 프로그램이 스왑 아웃된 메모리 페이지에 액세스하려고 하면 커널은 물리적 메모리에서 다른 메모리 페이지를 스왑 아웃하여 공간을 확보한 다음 스왑 공간에서 요청된 메모리 페이지를 스왑 인해야 합니다. 분명히 이 프로세스에는 시간이 걸리고 실행 프로세스 속도가 느려집니다. Linux 시스템이 실행되는 동안 프로그램 실행을 위해 메모리 페이지를 교체하는 프로세스는 결코 멈추지 않습니다.

1.2 소프트웨어 프로그램 관리
Linux 운영 체제는 실행 중인 프로그램을 프로세스라고 부릅니다. 커널은 시스템의 다른 모든 프로세스를 시작하기 위해 첫 번째 프로세스(init 프로세스라고 함)를 만듭니다. 커널이 시작되면 init 프로세스가 가상 메모리에 로드됩니다. 커널이 다른 프로세스를 시작할 때 가상 메모리의 개인 영역을 새 프로세스에 할당하여 프로세스에서 사용하는 데이터와 코드를 저장합니다.
Linux 운영 체제의 초기화 시스템은 실행 수준을 사용합니다. 실행 수준은 init 프로세스가 /etc/inittab 파일 또는 /etc/rcX.d 디렉토리에 정의된 특정 유형의 프로세스를 실행하는지 결정합니다. Linux 운영 체제에는 5개의 시작 실행 수준이 있습니다.

런 레벨이 1이면 기본 시스템 프로세스와 콘솔 터미널 프로세스만 시작됩니다. 우리는 이것을 단일 사용자 모드라고 부릅니다. 단일 사용자 모드는 일반적으로 시스템 문제가 있는 경우 긴급 파일 시스템 유지 관리에 사용됩니다. 분명히 이 모드에서는 한 사람(일반적으로 시스템 관리자)만 시스템에 로그인하여 데이터를 조작할 수 있습니다.

표준 시작 실행 수준은 3입니다. 이 실행 수준에서는 네트워크 지원 프로그램과 같은 대부분의 응용 프로그램 소프트웨어가 시작됩니다. Linux의 또 다른 일반적인 런레벨은 5입니다. 이 실행 수준에서 시스템은 그래픽 X Window 시스템을 시작하여 사용자가 그래픽 데스크톱 창을 통해 시스템에 로그인할 수 있도록 합니다.

Linux 시스템은 시작 실행 수준을 조정하여 전체 시스템의 기능을 제어할 수 있습니다. 실행 수준을 3에서 5로 조정하면 시스템을 콘솔 기반 시스템에서 더욱 발전된 그래픽 X Window 시스템으로 변환할 수 있습니다.

1.3 하드웨어 장치 관리 커널의 또 다른 책임은 하드웨어 장치를 관리하는 것입니다. Linux 시스템과 통신해야 하는 모든 장치에는 커널 코드에 해당 드라이버 코드가 있어야 합니다. 드라이버 코드는 애플리케이션과 하드웨어 장치 사이의 중개자 역할을 하여 커널과 장치 간에 데이터가 교환될 수 있도록 합니다. Linux 커널에 장치 드라이버 코드를 삽입하는 방법에는 두 가지가 있습니다.

    커널에 컴파일된 장치 드라이버 코드
  • 커널에 삽입할 수 있는 장치 드라이버 모듈
Linux 시스템은 하드웨어 장치를 다음과 같은 특수 파일로 처리합니다. 장치 문서. 장치 파일에는 3가지 범주가 있습니다:

  • 문자 장치 파일: 데이터 처리 시 한 번에 한 문자만 처리할 수 있는 장치를 말합니다. 대부분의 모뎀과 단말기는 캐릭터 장치 파일로 생성됩니다.
  • 블록 장치 파일: 하드 드라이브와 같이 대용량의 데이터를 한 번에 처리할 수 있는 장치를 말합니다.
  • 네트워크 장치 파일: 다양한 네트워크 카드 및 특수 루프백 장치를 포함하여 데이터 패킷을 사용하여 데이터를 보내고 받는 장치를 말합니다.

1.4 파일 시스템 관리
Linux 커널은 다양한 유형의 파일 시스템을 통해 하드 디스크에서 데이터 읽기 및 쓰기를 지원합니다. 표 1-1에는 Linux 시스템에서 데이터를 읽고 쓰는 데 사용되는 표준 파일 시스템이 나열되어 있습니다.
리눅스는 어떤 부분으로 나눌 수 있나요?

2.GUN 도구

커널로 하드웨어 장치를 제어하는 ​​것 외에도 운영 체제에는 파일 및 프로그램 제어와 같은 일부 표준 기능을 수행하는 도구도 필요합니다. 이 Linux 시스템용 핵심 도구 세트를 coreutils(핵심 유틸리티) 패키지라고 합니다. GNU coreutils 패키지는 세 부분으로 구성됩니다:

  • 파일 처리 도구
  • 텍스트 조작 도구
  • 프로세스 관리 도구

2.1 쉘

GNU/Linux 쉘은 특별한 대화형 도구입니다. 이는 사용자에게 프로그램을 시작하고 파일 시스템의 파일을 관리하며 Linux 시스템에서 실행되는 프로세스를 제공합니다. 쉘의 핵심은 명령줄 프롬프트입니다. 명령줄 프롬프트는 셸의 대화형 부분입니다. 이를 통해 텍스트 명령을 입력한 다음 명령을 해석하고 커널에서 실행할 수 있습니다. 여러 셸 명령을 파일에 넣고 프로그램으로 실행할 수도 있습니다. 이러한 파일을 쉘 스크립트라고 합니다.

Linux 시스템에는 일반적으로 여러 개의 Linux 셸을 사용할 수 있습니다. 쉘마다 기능이 다르며 일부는 스크립트 생성에 더 좋고 일부는 프로세스 관리에 더 좋습니다. 모든 Linux 배포판의 기본 셸은 bash 셸입니다. Bash 쉘은 GNU 프로젝트에 의해 개발되었으며 표준 Unix 쉘로 간주됩니다.

2.1.1 쉘 유형

시스템이 시작하는 쉘 프로그램의 종류는 개인 사용자 ID 구성에 따라 다릅니다. /etc/passwd 파일에서 기본 쉘 프로그램은 사용자 ID 레코드의 7번째 필드에 나열됩니다. 사용자가 가상 ​​콘솔 터미널에 로그인하거나 GUI에서 터미널 에뮬레이터를 시작하자마자 기본 쉘 프로그램이 실행되기 시작합니다. 예를 들어, 사용자 루트는 /bin/bash(bash 쉘)를 기본 쉘 프로그램으로 사용합니다.

[root@node1 bin]# cat /etc/passwdroot:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

하지만 또 다른 기본 쉘인 /bin/sh가 있는데, 이는 시스템 쉘이 필요한 사용자를 위한 기본 시스템 쉘로 사용됩니다. 사용된 스크립트입니다. CentOS 배포판과 같이 기본 시스템 셸을 bash 셸로 설정하기 위해 소프트 링크를 사용하는 일부 배포판을 자주 볼 수 있습니다.
$ ls -l /bin/sh

lrwxrwxrwx. 1 root root 4 Mar 18 15:05 /bin/sh -> bash

/bin/sh는 /bin/bash - -posix와 동일합니다. , sh를 사용하여 스크립트를 호출하고 실행하는 것은 bash의 POSIX 표준 모드를 ​​켜는 것과 동일합니다. 이들 사이의 다양한 차이점은 POSIX 표준 모드와 bash의 차이점입니다.

2.1.2쉘의 부모-자식 관계

가상 컨트롤러 터미널에 로그인하거나 GUI에서 터미널 에뮬레이터를 실행할 때 시작되는 기본 대화형 쉘은 부모 쉘입니다.
CLI 프롬프트 다음에 /bin/bash 명령 또는 기타 동등한 bash 명령을 입력하면 새로운 쉘 프로그램이 생성됩니다. 이 쉘 프로그램을 하위 쉘이라고 합니다. 서브셸에는 CLI 프롬프트도 있으며 명령 입력을 기다립니다.
예: ps -f

[root@node1 bin]# ps -fUID        PID  PPID  C STIME TTY          TIME CMD
root       727   711  0 11:01 pts/0    00:00:00 -bash
root      4385   727  0 12:06 pts/0    00:00:00 ps -f

사용 ps -f를 사용하면 두 개의 프로세스가 표시됩니다. 프로세스 중 하나의 프로세스 ID는 727이며 bash 쉘 프로그램을 실행 중입니다. 다른 프로세스의 프로세스 ID는 4385이며 이는 ps -f 명령에 해당합니다.

[root@node1  bin]# bash[root@node1  bin]#  ps -fUID        PID  PPID  C STIME TTY          TIME CMD
root       727   711  0 11:01 pts/0    00:00:00 -bash
root      4492   727  0 12:08 pts/0    00:00:00 bashroot      4512  4492  0 12:08 pts/0    00:00:00 ps -f

bash 명령을 입력하면 서브쉘이 나타납니다. 두 번째 ps -f는 서브쉘에서 실행됩니다. 표시된 결과에서 두 개의 bash 쉘 프로그램이 실행되고 있음을 알 수 있습니다. 상위 쉘 프로세스인 첫 번째 bash 쉘 프로그램의 원래 프로세스 ID는 727입니다. 두 번째 bash 쉘 프로그램인 서브쉘 프로세스의 PID는 4492입니다. 하위 셸의 상위 프로세스 ID(PPID)는 727이며, 이는 이 상위 셸 프로세스가 하위 셸의 상위 프로세스임을 나타냅니다. 서브셸 프로세스가 생성되면 상위 프로세스 환경의 일부만 서브셸 환경에 복사됩니다.

3.Linux Desktop Environment

1.KDE(K Desktop Environment, K Desktop Environment)는 원래 1996년에 오픈 소스 프로젝트로 출시되었습니다. Microsoft Windows와 유사한 그래픽 데스크탑 환경을 생성합니다.
리눅스는 어떤 부분으로 나눌 수 있나요?
KDE 데스크탑을 사용하면 응용 프로그램 아이콘과 파일 아이콘을 데스크탑의 특정 위치에 배치할 수 있습니다. 응용 프로그램 아이콘을 클릭하면 Linux 시스템이 응용 프로그램을 실행합니다. 파일 아이콘을 클릭하면 KDE 데스크탑이 파일을 처리하는 데 사용할 응용 프로그램을 결정합니다.

2.GNOME(GNU 네트워크 개체 모델 환경, GNU 네트워크 개체 모델 환경)은 또 다른 인기 있는 Linux 데스크탑 환경입니다. GNOME은 1999년에 처음 출시되었으며 많은 Linux 배포판의 기본 데스크탑 환경이 되었습니다.

리눅스는 어떤 부분으로 나눌 수 있나요?

3. Unity 데스크톱

Ubuntu Linux 배포판을 사용하는 경우 KDE 및 GNOME 데스크톱 환경과 다소 다르다는 것을 알 수 있습니다. 정확히 말하면 우분투 개발을 담당한 회사가 유니티(Unity)라는 자체 리눅스 데스크톱 환경을 도입하기로 결정했기 때문이다.

Unity Desktop은 워크스테이션, 태블릿 및 모바일 장치에 일관된 데스크톱 경험을 제공하려는 프로젝트 목표를 따서 명명되었습니다. 워크스테이션에서든 휴대폰에서 Ubuntu를 사용하든 Unity 데스크톱은 동일한 방식으로 작동합니다.

리눅스는 어떤 부분으로 나눌 수 있나요?

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

위 내용은 리눅스는 어떤 부분으로 나눌 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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