개발자/Linux 리눅스

Linux Tutorial 2 - 한 눈에 보는 리눅스 시스템

지구빵집 2021. 10. 19. 15:33
반응형

 

 

Linux Tutorial 2 - 한 눈에 보는 리눅스 시스템 

 

Linux는 데스크톱, 서버 및 모바일 컴퓨팅 환경에서 광범위한 범위를 가진 인기 있는 오픈 소스 운영 체제로 소개되었습니다. Linux는 오픈 소스이고 OSS 개발자와 옹호자들 사이에서 엄청나게 인기가 있기 때문에 현재 수백 개의 Linux 배포판을 사용할 수 있습니다. 모든 Linux 배포 또는 패키지는 Linux 커널, GNU 유틸리티, 셸, 데스크톱 환경 및 일부 기본 응용 프로그램이 함께 번들로 제공되는 완전한 운영 체제 소프트웨어입니다. 따라서 실행 중인 하드웨어 플랫폼에 관계없이 모든 Linux(운영 체제) 시스템에는 기본적으로 다음과 같은 소프트웨어 구성 요소가 있습니다.

 

1) 리눅스 커널

2) GNU 유틸리티

3) 쉘

4) 데스크탑 환경

5) 애드온 애플리케이션 소프트웨어

 

Ubuntu Linux 시스템, 이미지는 리눅스 포럼 https://kjvvv.kr/8411#prettyPhoto

 

리눅스 커널

 

Linux 커널은 Linux 시스템의 핵심입니다. 컴퓨터 시스템의 하드웨어 및 소프트웨어 관리를 담당합니다. 커널은 기본적으로 시스템 메모리 관리, 프로그램 관리, 하드웨어 관리 및 파일 시스템 관리의 네 가지 주요 기능을 구현합니다. Linux는 Unix 운영 체제의 복사본이 되도록 의도되었습니다. Unix는 컴퓨터에서 실행되는 서로 다른 프로세스가 프로세서의 시간 공유를 개선하기 위해 개발되었습니다. 따라서 Linux는 본질적으로 메모리를 포함한 프로세스에 대한 하드웨어 리소스 할당을 개선하도록 진화했습니다. 리눅스는 물리적 메모리(RAM)를 활용할 뿐만 아니라 보조기억장치(하드디스크)에 가상 메모리를 생성해 가용 메모리를 확장할 수 있도록 개발됐다. 이 하드 디스크의 가상 메모리를 스왑 공간이라고 합니다. RAM의 메모리와 스왑 공간은 페이지라는 블록으로 구성됩니다. 커널은 물리적 메모리와 스왑 공간에서 페이지를 찾고 현재 물리적 메모리에 있고 스왑 공간에서 다음 물리적 메모리로 전송되어야 하는 메모리 페이지의 테이블을 만듭니다. 공간을 교환하기 위해 현재 사용되지 않는 페이지를 교환하고 현재 응용 프로그램 프로세스에 필요한 페이지를 교환합니다. Linux가 계속 실행될 때까지 이 메모리 페이지 스와핑 인/아웃이 계속됩니다.

 

커널이 관리하는 또 다른 중요한 기능은 프로세스 관리입니다. 프로세스는 화면에 일부 출력을 표시하는 포그라운드에서 실행되거나 로그인한 사용자에게 보이지 않는 백그라운드에서 실행될 수 있습니다. Linux가 부팅되면 커널은 다른 모든 프로세스를 시작하는 첫 번째 프로세스인 init를 시작합니다. init 프로세스는 가상 메모리에 로드되고 이에 의해 시작된 다른 모든 프로세스, 데이터 및 프로그램을 위한 가상 메모리의 일부 공간을 할당합니다. 일부 Linux 배포판에서는 부팅 후 시작해야 하는 프로세스 테이블이 /etc/inittabs 폴더에 있는 반면 일부 배포판에서는 부팅 시 시작해야 하는 프로세스에 대한 스크립트가 etc/init.d 폴더에 있고 etc/rcX.d 폴더의 항목을 통해 시작됩니다.

 

시작해야 하는 프로세스를 결정하려면 Init를 실행 수준으로 정의해야 합니다. 프로세스는 etc/inittabs 파일 또는 /etc/rcX.d 폴더에서 각각에 대해 정의하여 실행 수준과 연결됩니다. 실행 수준은 Linux 시스템의 특정 모드에 대해 실행되어야 하는 프로세스를 결정하도록 init에 지시하는 데 사용됩니다.

 

0에서 6까지 번호가 매겨진 7개의 실행 레벨이 있습니다. 실행 레벨 0은 정지 모드를 나타내며 실행 레벨이 0인 프로세스는 시스템이 종료될 때 실행되어야 합니다. 실행 수준 1은 네트워크 인터페이스를 구성하거나 데몬을 시작하거나 루트가 아닌 로그인을 허용하기 위해 Linux를 중지하는 단일 사용자 모드를 나타냅니다. 실행 수준 2는 네트워크 인터페이스를 구성하고 데몬을 시작하기 위해 Linux를 중지하는 다중 사용자 모드를 나타냅니다. 실행 수준 3은 Linux가 정상적으로 실행되도록 하는 네트워킹이 있는 다중 사용자 모드를 나타냅니다. 실행 수준 4는 정의되지 않았으며 사용자가 정의할 수 있습니다. 실행 레벨 5는 시스템에 디스플레이 관리자(X)를 추가하는 실행 레벨 3에서와 같이 Linux가 정상적으로 실행되도록 하는 X11을 나타냅니다. 실행 수준 6은 재부팅을 나타내며 시스템을 재부팅합니다.

 

실행 수준 3과 5가 가장 많이 사용됩니다. Linux는 실행 수준을 제어하여 전체 기능을 제어할 수 있습니다. 실행 수준을 3에서 5로 변경하면 시스템을 콘솔 기반에서 그래픽 시스템으로 변경할 수 있습니다.

 

운영 체제인 Linux는 하드웨어 리소스를 관리할 수 있어야 합니다. 커널은 장치 드라이버를 통해 하드웨어 구성 요소와 통신합니다. 장치 드라이버는 커널로 컴파일하거나 실행 중인 커널에 삽입할 수 있습니다. 커널과 함께 디바이스 드라이버를 컴파일하는 방식은 USB 펜 드라이브를 연결하거나 스피커를 연결하는 등 컴퓨터 시스템에 새로운 디바이스가 삽입될 때마다 리눅스 커널을 다시 컴파일해야 하므로 비효율적이다. 그래서 재컴파일하지 않고 실행 중인 커널에 디바이스 드라이버 모듈을 삽입하는 방법이 도입되어 널리 사용된다.

 

하드웨어 장치는 Linux에서 장치 파일이라는 특수 파일로 식별되는 반면, 하드웨어 장치와의 모든 통신은 노드 파일이라는 다른 종류의 특수 파일에 의해 처리됩니다. 장치 파일에는 Character(모뎀 및 터미널과 같이 한 번에 한 문자씩 커널과 통신하는 장치의 경우), Block(하드 드라이브와 같은 큰 데이터 블록을 통해 통신하는 장치의 경우) 및 Network(통신을 통해 통신하는 장치의 경우)의 세 가지 유형이 있습니다. 통신 네트워크 또는 인터넷을 통해 송수신되는 데이터 패킷). 장치 드라이버는 Linux 커널과 하드웨어 장치 간에 데이터가 통신되는 방식을 지정합니다. 장치 파일은 이 통신의 특성을 정의하고 노드 파일은 이 모든 데이터 통신이 수행되어야 하는 방법을 정의합니다.

 

보조 저장소는 대부분의 컴퓨팅 시스템에서 중요한 구성 요소입니다. Linux는 하드 드라이브용 다양한 파일 시스템에서 파일을 읽고 쓸 수 있어야 합니다. 따라서 Linux 커널은 FAT32, NTFS, XFS, ext, ext2, ext3, ext4, iso9660, hpfs, jfs, msdos, minix, nfs, proc, ufs, umsdos, sysv, smb, ncp와 같은 여러 파일 시스템을 지원합니다. , ReiserFS 등. Linux는 VFS(가상 파일 시스템)를 사용하여 모든 파일 시스템과 인터페이스 합니다.

 

이를 통해 Linux는 모든 유형의 파일 시스템에서 데이터를 읽고 쓸 수 있습니다.

 

GNU 유틸리티

 

시스템 유틸리티는 모든 운영 체제에 필수적이며 Linux도 이에 대해 낯설지 않습니다. Linux는 GNU 프로젝트에서 오픈 소스 소프트웨어로 개발된 GNU 시스템 유틸리티를 활용했습니다. 이러한 시스템 유틸리티는 Linux 커널과 응용 프로그램 소프트웨어 간의 다리 역할을 합니다. 파일 처리, 프로세스 관리 및 텍스트 조작을 담당합니다. GNU 유틸리티는 Linux 시스템에서 매우 중요한 역할을 하므로 많은 순수 주의자들은 Linux를 GNU/Linux 시스템이라고 합니다.

 

Shell

 

Shell은 Linux 커널에서 명령을 입력하고 실행하는 데 사용되는 대화형 유틸리티입니다. 명령을 입력하기 위해 Shell에는 명령 프롬프트가 있습니다. 셸에는 파일 및 파일 시스템을 처리하고 프로세스를 관리하고 프로그램과 상호 작용하기 위한 일련의 내부 명령이 포함되어 있습니다. 사용자는 쉘을 통해 프로그램 실행을 시작, 중지 또는 변경할 수 있습니다. 쉘 명령은 프로그램을 실행하기 위해 쉘 스크립트라는 파일로 그룹화될 수 있습니다. Linux에서 사용할 수 있는 많은 쉘이 있습니다. 이러한 쉘 중 일부는 쉘 스크립트를 작성하기 더 쉽고 일부는 쉘 스크립트를 실행하기 더 쉽습니다. Linux 커널의 기본 셸은 Bash 셸입니다. Bourne Shell(창조자의 이름을 딴 기본 Unix Shell)을 대체하기 위해 GNU 프로젝트에서 개발했습니다. Bash Shell이라는 이름 자체는 'Bourne Again Shell'에서 따왔습니다.

 

Linux에서 사용할 수 있는 다른 인기 있는 셸에는 Tcsh/Csh 셸, Ash Shell, Zsh 셸, Korn 셸 및 Fish Shell이 ​​있습니다. Tcsh/Csh는 셸 명령에 C 구문을 사용하는 향상된 C 셸입니다. 주요 기능에는 프로그래밍, 명령줄 편집기, 철자 수정, 파일 이름 완성 및 작업 제어와 같은 C가 포함됩니다. Ash는 제약 조건 메모리에서 실행되도록 설계된 bash 호환 셸입니다. Korn Shell 또는 Ksh는 높은 수준의 프로그래밍 언어 기능과 대화형 명령 언어를 갖춘 Bourne 호환 셸입니다. Zsh는 시작 파일, 변수 색인, 기능 색인, 개념 색인, 파일 이름 생성, 키 색인, 닫기 주석 등과 같은 많은 고유 기능과 함께 korn 셸, bash 및 Tch의 기능이 포함된 고급 셸입니다.

 

데스크톱 환경

 

처음에 Linux에는 명령줄 인터페이스가 있었습니다. Windows 운영 체제의 인기와 함께 Linux에서 그래픽 사용자 인터페이스에 대한 수요가 탄력을 받기 시작했습니다. 따라서 OSS 개발자는 시간을 낭비하지 않고 다양한 OSS 개발자와 팀에서 많은 그래픽 데스크톱 환경을 개발했습니다. 인기 있는 데스크탑 환경에는 X Window System, KDE 데스크탑, GNOME 데스크탑, Unity 데스크탑, Fluxbox, JWM, Xfce, Fvwm, fvwm95, Mate, Cinnamon, LXQt, LXDE, Luminia, Enlightenment, Sugar, EDE, Project Looking Glass 및 공통 데스크탑 환경 등이 있습니다.

 

X 윈도 시스템

 

모든 데스크톱 환경(프로그램)은 모니터 화면에 그래픽 환경을 투영하기 위해 비디오 카드 및 모니터와 데이터 통신이 필요합니다. X 윈도우 시스템은 리눅스를 비롯한 많은 운영체제용으로 개발된 데스크탑 환경입니다. X Window System의 가장 인기 있는 버전은 많은 최신 비디오 카드를 지원하는 X.org입니다. X 윈도우 시스템은 디스플레이 하드웨어(비디오 카드 및 모니터)와 직접 상호 작용하는 저수준 프로그램입니다. X.org 외에도 인기 있는 다른 X 윈도우 버전은 Wayland 소프트웨어(Fedora Linux에서 제공)와 Mir Display Server(Ubuntu Linux에서 제공)입니다. 데스크탑 환경은 Linux OS에 필수적입니다. 설치하는 동안 Linux(X Window Desktop이 있음)는 비디오 카드 및 모니터를 검색하는 X Window 구성 파일을 생성합니다. 지원되는 비디오 모드 및 해상도를 감지합니다. X Window는 화면에 그래픽 환경만 표시할 수 있습니다. 사용자가 파일을 조작하거나 프로그램을 실행할 수 없습니다. 따라서 X 윈도우 시스템 위에 다른 데스크탑 환경이 필요합니다.

 

KDE 데스크탑 환경

 

K Desktop은 1996년에 처음 출시된 Windows와 같은 데스크탑 환경입니다. Windows와 같이 파일 및 응용 프로그램에 대한 아이콘을 배치할 수 있는 데스크탑 영역이 포함되어 있습니다. 사용자는 해당 아이콘을 클릭하여 응용 프로그램을 시작할 수 있으며 파일 아이콘을 클릭하면 해당 파일을 열 응용 프로그램을 선택하라는 메시지가 표시됩니다. 이것을 데스크탑 영역이라고 합니다. 데스크탑 영역 하단에도 패널이 있습니다. 패널에는 프로그램 바로 가기와 애플릿(변경 가능한 아이콘이 있는 작은 응용 프로그램)이 있습니다. 설치된 프로그램에 대한 링크가 포함된 K 메뉴(Windows의 시작 메뉴와 유사)가 있습니다. 현재 실행 중인 응용 프로그램의 아이콘이 있는 작업 표시줄(Windows의 작업 표시줄과 유사)도 있습니다.

 

그놈 데스크탑

 

GNU 네트워크 개체 모델 환경 (GNOME) 은 1999년에 처음 출시된 또 다른 인기 있는 데스크탑 환경입니다. 이는 Red Hat Linux 및 기타 많은 Linux 배포판의 기본 데스크탑 환경입니다. 여기에는 아이콘의 바탕 화면 영역, 아이콘 및 패널 영역의 끌어서 놓기 기능과 같은 여러 Windows 기능이 포함됩니다. GNOME 에는 널리 사용되는 창 모양과 느낌과 구별되는 많은 추가 그래픽 기능 이 있습니다.

 

유니티 데스크탑

 

Unity는 Ubuntu Linux용으로 개발된 데스크탑 환경입니다. KDE 및 GNOME과 다릅니다. Unity 데스크톱은 데스크톱 컴퓨터, 모바일 및 태블릿과 같은 다양한 플랫폼에서 공통 그래픽 환경을 수용할 목적으로 개발되었습니다. 컴퓨터, 모바일 장치, 태블릿 또는 패블릿에서 실행되든 동일한 그래픽 인터페이스를 가지고 있습니다.

 

KDE 플라즈마

 

사용 가능한 최신 버전의 KDE Desktop은 KDE 소프트웨어 커뮤니티에서 개발한 KDE Plasma입니다. KDE 응용 프로그램이라는 여러 도구 및 유틸리티와 함께 ​​패키지로 제공됩니다. 마찬가지로 배치 파일 이름 바꾸기, 탭 브라우징 지원, 데스크톱 위젯 및 여러 패널과 같은 기능이 있는 Dolphin File Browsing 응용 프로그램이 포함되어 있습니다. 또한 오디오 및 비디오 재생 응용 프로그램을 위한 미디어 제어 기능과 함께 라이브 창 미리 보기를 제공합니다. 아이콘을 마우스 오른쪽 버튼으로 클릭하여 응용 프로그램을 사용자 정의하는 데 사용할 수도 있는 KRunner라는 자체 셸이 함께 제공됩니다. 또한 Android 및 Blackberry 장치를 데스크탑에 연결할 수 있는 KDE Connect 애플리케이션과 Linux 데스크탑 자체에서 알림, 배터리 상태 및 모바일 장치 파일에 액세스할 수 있습니다. KDE Plasma의 기본 데스크탑 환경은 OpenSUSE Linux Distro입니다.

 

저전력 PC를 위한 데스크탑 환경

 

KDE와 GNOME은 구형 PC와 저전력 장치에서도 실행할 수 있다는 큰 이점이 있었습니다. OSS 개발자들은 구형 PC와 저전력 장치에서 실행할 수 있는 다른 많은 기능을 갖춘 데스크톱 환경을 개발하는 데 어려움을 겪었습니다. 이러한 데스크탑에는 Fluxbox, JWM, Xfce, Fvwm, fvwm95 등이 포함됩니다. Fluxbox는 패널과 팝업 메뉴를 포함하는 간단한 데스크탑입니다. Joe's Window Manager(JWM)는 낮은 메모리와 낮은 디스크 공간에서 실행할 수 있는 또 다른 데스크탑 환경입니다. Xfce는 낮은 메모리에서 실행되도록 설계된 데스크탑과 같은 KDE입니다. Fvwm은 메모리 제약에도 불구하고 쉽게 실행할 수 있는 또 다른 완전한 기능을 갖춘 데스크탑입니다. fvwm95는 Fvwm을 기반으로 하지만 Windows와 같은 모양과 느낌을 가지고 있습니다.

 

기타 데스크탑 환경

 

MATE, Cinnamon, Pantheon, LXQt, PIXEL, Budgie, Enlightenment, LXDE, Trinity 등과 같은 Linux 배포판을 위한 몇 가지 다른 인기 있는 데스크톱 환경이 있습니다. 대부분의 인기 있는 Linux 배포판에는 기본적으로 하나 또는 다른 데스크톱 환경이 있습니다. Cinnamon이 Linux Mint의 기본 데스크톱인 것처럼 Unity는 Ubuntu의 기본 데스크탑 환경이며 Budgie는 Solus의 기본 데스크탑 환경입니다. Linux 사용자는 데스크탑 환경을 명시적으로 다운로드하여 설치할 수도 있습니다. Linux 배포판마다 메모리 요구 사항이 다릅니다. 예를 들어, Cinnamon에는 175MB, GNOME 250MB, KDE Plasma 300MB, LXDE 85MB, XFCE 100MB, MATE 125MB, Enlightenment 85MB, Unity 300MB 메모리(RAM) 공간이 필요합니다. 각 환경에는 고유한 기능과 장점이 있습니다. 그래서,

 

응용 소프트웨어

 

Linux 배포판에는 여러 응용 프로그램 소프트웨어가 기본으로 제공됩니다. 각 배포판에는 기본적으로 Linux와 함께 설치되는 자체 애드온 응용 프로그램이 있습니다. 사용자는 요구 사항 및 사용에 따라 응용 프로그램 소프트웨어를 추가하거나 제거할 수 있습니다. 다른 Linux 배포판에는 공통 커널 및 시스템 유틸리티가 있으며 데스크톱 환경과 기본 추가 기능 응용 프로그램만 다릅니다.

 

리눅스 배포판

 

Linux 배포판은 커널, 시스템 유틸리티, 셸, 데스크탑 환경 및 추가 응용 프로그램을 포함하는 완전한 Linux 시스템 패키지입니다. 특정 사용자 그룹에 맞게 사용자 정의된 수백 개의 Linux 배포판이 있습니다. Linux 배포판은 크게 세 가지 유형으로 분류할 수 있습니다.

 

1) 풀코어 리눅스 배포

 

이러한 배포에는 Linux 커널, 하나 이상의 데스크탑 환경 및 커널에 필수적인 응용 프로그램 및 유틸리티만 포함됩니다. 베어 및 코어 Linux 설치입니다. 인기 있는 핵심 Linux 배포판 중 일부는 Red Hat, Fedora, Slackware, Arch Linux, OpenSUSE, Mandriva Linux, Gentoo 및 Debian입니다. Red Hat은 인터넷 서버용 상용 Linux 배포판입니다. Fedora는 가정용 Red Hat에서 파생된 제품입니다. Slackware는 1993년에 처음 출시된 맞춤형 초기 Linux 배포판입니다. OpenSUSE는 가정 및 사무실 워크스테이션용 핵심 Linux로 설계되었습니다. Gentoo 배포판은 고급 사용자를 위한 것이며 Linux 소스 코드와 FreeBSD 포트를 통한 소스의 응용 프로그램 컴파일을 포함합니다. Arch Linux는 고급 사용자를 위해 설계된 또 다른 배포판으로 PKGBUILD 파일 형식의 공식 및 비공식 바이너리 패키지를 포함합니다. Mandriva Linux는 인기 있는 현재 커뮤니티 기반 Red Hat 파생 제품입니다. 데비안은 리눅스 사용자들에게 가장 인기 있는 비상업적 배포판입니다.

 

2) 특수 배포

 

이러한 배포는 일반적으로 특정 사용자 그룹을 위한 응용 프로그램과 함께 핵심 응용 프로그램의 하위 집합을 포함하는 핵심 배포의 파생물입니다. 데비안은 전문 배포판을 만드는 데 가장 인기 있는 선택입니다. 이 배포판에는 사용자 지정 설치가 있으며 그래픽 디자이너, 교육자, 개발자 등과 같은 특정 사용자 그룹을 대상으로 합니다. 인기 있는 특수 배포판에는 Mint, Ubuntu, CentOS, PCLinuxOS, bolic, Puppy Linux, Solus, Elementary OS 등이 있습니다.

 

3) LiveCD 테스트 배포판

 

많은 Linux 배포판은 부팅 가능한 LiveCD 형태로도 제공됩니다. 설치가 필요하지 않으며 CD-ROM에서 직접 부팅할 수 있습니다. 많은 LiveCD는 인터넷에서 다운로드할 수 있고 CD-ROM으로 구울 수 있으며 언제 어디서나 사용할 수 있습니다. 인기 있는 LiveCD 배포판에는 Ubuntu, PCLinuxOS, Slitaz, Knoppix, Reskatux Linux, Puppy Linux, Tails Live, Clonezilla, Finnix 및 Slax가 있습니다. 분명한 이유로 LiveCD 배포판은 일반적으로 기능과 응용 프로그램이 제한적입니다. 다음 튜토리얼에서는 Linux 설치 및 개발 환경 설정에 대해 알아봅니다. 

 

 

 

반응형