LFCA: Linux 운영 체제 이해 – 1부


Linux Foundation은 LFCA(Linux Foundation Certified IT Associate)로 알려진 새로운 예비 IT 자격증을 발표했습니다. 이것은 기본 시스템 관리 명령, 클라우드 컴퓨팅, 보안 및 DevOps와 같은 기본적인 IT 개념을 테스트하는 데 중점을 둔 새로운 초급 인증입니다.

LFCA: 개요 및 코스 개요

다음은 LFCA가 테스트하고자 하는 역량과 영역에 대한 요약입니다.

  1. Linux 운영 체제 – 1부
  2. 파일 관리 명령 – 2부
  3. Linux 시스템 명령 – 3부
  4. 일반 네트워킹 명령 – 4부
    1. Linux 사용자 관리 – 5부
    2. Linux에서 시간 및 날짜 관리 – 6부
    3. Linux에서 소프트웨어 관리 – 7부
    4. Linux 기본 측정항목 모니터링 – 8부
    5. Linux 기본 네트워킹 – 9부
    6. Linux 2진수 및 10진수 – 10부
    7. LFCA: 네트워크 IP 주소 지정 범위 클래스 알아보기 – 11부
    8. LFCA: 기본 네트워크 문제 해결 팁 알아보기 – 12부
      1. 클라우드 컴퓨팅의 기초 학습 – 13부
      2. 클라우드 가용성, 성능 및 확장성 알아보기 – 14부
      3. LFCA: 서버리스 컴퓨팅, 이점 및 함정 알아보기 – 15부
      4. LFCA: 클라우드 비용 및 예산 책정 알아보기 – 16부
        1. Linux 시스템을 보호하기 위한 기본 보안 팁 – 17부
        2. 데이터 및 Linux 보안을 위한 유용한 팁 – 18부
        3. Linux 네트워크 보안을 개선하는 방법 – 19부
        4. LFCA 인증 개요

          LFCA 인증은 기본 시스템 및 파일 관리 명령, 네트워크 명령 및 문제 해결, 클라우드 컴퓨팅 개념, 시스템 및 네트워크 보안을 포함하는 데이터 보안, DevOps 기본 사항에 대한 기본 지식을 제공합니다.

          기본 개념을 잘 이해하고 LFCA 시험에 합격하면 LFCE(Linux Foundation Certified Engineer)를 시작할 수 있습니다.

          LFCA 시험은 객관식 시험이며 비용은 $200입니다. 원격 감독관이 앉아 있는 동안 웹캠을 통해 당신을 주시하면서 온라인으로 진행됩니다. 시험에 합격하면 3년 동안 유효한 LFCA 배지와 인증서를 받게 됩니다.

          리눅스 기초

          이 첫 번째 섹션에서는 다음 장을 다룹니다.

          1. Linux 운영 체제 – 1부
          2. 파일 관리 명령 – 2부
          3. Linux 시스템 명령 – 3부
          4. 일반 네트워킹 명령 – 4부
          5. 더 이상 고민하지 않고 바로 들어가 보겠습니다.

            이 기사는 LFCA 인증 시험에 필요한 필수 영역과 역량을 다루는 LFCA 시리즈의 1부입니다.

            Linux 운영 체제 이해

            시작할 때 일상적인 컴퓨팅 작업을 수행할 때 Windows 또는 macOS 또는 둘 다와 상호 작용했을 수 있다고 가정합니다. 둘 다 운영 체제이며 컴퓨터의 하드웨어 및 소프트웨어 구성 요소와 상호 작용하고 탐색, 게임, 음악 및 비디오 스트리밍, 소프트웨어 개발을 포함한 다양한 작업을 실행할 수 있습니다.

            Windows는 일반적인 운영 체제이며 데스크톱 사용자 사이에서 상당한 시장 점유율을 자랑합니다. 사용하기 쉽고 배우기 쉬우며 일반적으로 컴퓨터와 상호 작용하는 방법을 배우는 데 있어 초기 단계를 밟는 학습자를 위한 관문입니다.

            광범위한 하드웨어 장치에 대한 사용 용이성과 지원에도 불구하고 Windows에는 상당한 단점이 있습니다. 첫째, Windows는 Microsoft의 독점 운영 체제이며 Microsoft Office 제품군과 같은 대부분의 소프트웨어 응용 프로그램은 유료입니다. 이것은 제품에 대한 라이선스를 취득할 재정적 능력이 없는 많은 사람들을 차단합니다.

            우아하고 훌륭한 보안에도 불구하고 막대한 가격표가 붙어 있는 Apple의 macOS도 마찬가지입니다. 실제로 AppStore의 일부 응용 프로그램은 일반적으로 유료입니다. 사용자는 다른 플랫폼에서는 무료일 수 있는 응용 프로그램에 대한 교활한 구독 비용을 지불하는 것을 종종 비난했습니다.

            또한 Windows는 매우 불안정하며 종종 바이러스 및 트로이 목마와 같은 맬웨어 공격에 취약합니다. 강력한 안티바이러스 프로그램을 확보하여 공격 및 침해를 방지하거나 바이러스 진단 및 제거를 위해 전문가에게 막대한 비용을 지불하는 데 수백 달러를 투자할 수 있습니다.

            또한 보안 패치 및 기능 업데이트를 적용하는 데 시간이 오래 걸리는 경우가 많습니다. 대부분의 경우 시스템 업데이트는 업데이트 크기에 따라 30분에서 1시간 사이에 지속될 수 있으며 이는 종종 일련의 시스템 재부팅으로 인해 발생합니다.

            Windows 및 macOS와 마찬가지로 Linux는 IT 산업을 폭풍으로 장악한 또 다른 운영 체제입니다. Linux는 유비쿼터스이며 매일 수천 명의 사용자가 사용합니다.

            수백만 대의 스마트 장치를 구동하는 인기 있는 Android 운영 체제는 Linux 커널을 기반으로 합니다. 즐겨 사용하는 Android 스마트폰이나 거실의 스마트 TV는 Linux로 구동됩니다. 가장 중요한 것은 Linux가 웹 호스팅 플랫폼과 인터넷 서버에서 엄청난 점유율을 차지하는 인터넷의 지배적인 시스템이라는 것입니다. 퍼블릭 클라우드의 약 90%와 슈퍼컴퓨터 시장 점유율의 약 99%가 Linux에 의해 뒷받침됩니다.

            그렇다면 리눅스는 어떻게 생겨났을까?

            이 시점에서 시간을 거슬러 올라가 가장 널리 사용되는 운영 체제 중 하나의 기원을 엿볼 수 있다면 신중할 것입니다.

            Linux의 역사는 1960년대 AT&T Bell Labs에서 C 프로그래밍 언어의 아버지 Dennis Ritchie와 미국 컴퓨터 과학자인 KenThompson이 다른 개발자들과 함께 Multics 프로젝트를 진행하던 곳으로 거슬러 올라갑니다. Multics는 메인프레임 컴퓨터 시스템을 구동하는 운영 체제였습니다.

            두 명의 컴퓨터 과학자는 계층적 파일 시스템을 사용하여 다중 사용자, 다중 작업 운영 체제를 구축할 방법을 찾고 있었습니다. 처음에 Multics는 연구 프로젝트였으나 금세 상용 제품으로 전환되었습니다. Multics가 취하는 방향에 감명을 받지 않은 두 명의 수석 개발자는 자신의 진로를 계획하고 나중에 UNIX로 변형된 UNICS라고 하는 Multics를 기반으로 하는 또 다른 시스템을 개발하기 시작했습니다.

            1970년대와 80년대에 UNIX는 특히 학계에서 점점 대중화되었습니다. 이것은 나중에 궤도를 변경한 버클리 캘리포니아 대학(University of Berkley California)을 비롯한 여러 기관에서 채택했습니다. 대학의 개발자들은 UNIX 코드에 대한 추가 작업을 수행하여 Berkeley Software Development의 약어인 BSD를 고안했습니다. BSD는 나중에 FreeBSD 및 NetBSD와 같이 오늘날에도 여전히 사용되는 여러 운영 체제에 영감을 주었습니다.

            Bells Labs에서는 UNIX에 대한 연구 및 개발이 계속되어 나중에 상업용 공급업체에서 채택한 UNIX의 다른 변형이 생겨났습니다. 그러나 BSD는 Bells Labs의 상용 변형보다 훨씬 더 유명했습니다.

            한편 1991년 핀란드 출신의 리누스 토발즈(Linus Torvalds)는 미닉스(MINIX)라고 불리는 유닉스 버전을 작업하고 있었지만 프로젝트의 허가에 실망했다. 그의 MINIX 사용자 그룹에 보낸 편지에서 그는 나중에 Linux 커널이라고 불리는 새로운 커널에 대해 작업하고 있다고 발표했습니다. 그는 GNU 컴파일러 및 bash와 함께 GNU 코드를 사용하여 나중에 GNU/GPL 모델에 따라 라이선스가 부여된 최초의 실행 가능한 Linux 커널을 만들었습니다.

            Linux 커널은 수백 개의 Linux 배포판 또는 풍미 개발을 위한 단계를 설정했습니다. distrowatch에서 인기 있는 Linux 배포판을 전체적으로 엿볼 수 있습니다.

            Linux는 오픈 소스 운영 체제입니다. 이것은 무엇을 의미 하는가? 글쎄, 그것은 당신이 리눅스 소스 코드를 보고 수정하고 절대 비용 없이 자유롭게 재배포할 수 있다는 것을 의미합니다. 개발자와 같은 숙련된 사용자는 코드를 개선하고 흥미롭게 만들기 위해 코드에 기여할 수도 있습니다.

            이러한 이유로 다양한 패키지 관리 시스템, 소프트웨어 응용 프로그램 및 시각적 매력을 가진 수백 개의 Linux 배포판이 있습니다. 구어체로 배포판으로 알려진 Linux 배포판은 프로그램, 라이브러리, 관리 도구 및 기타 추가 소프트웨어와 함께 미리 패키지로 제공되는 Linux 운영 체제 버전입니다. 모든 배포판은 Linux 커널에서 파생됩니다.

            상당수의 RHEL(Red Hat Enterprise Linux)은 지원, 보안 및 기능 업데이트를 구독해야 합니다.

            Linux 배포판에는 4가지 주요 제품군이 있습니다.

            1. Debian 제품군 시스템(예: Ubuntu, Mint, Elementary 및 Zorin).
            2. Fedora 제품군 시스템(예: CentOS, Red Hat 7 및 Fedora).
            3. SUSE 제품군 시스템(예: OpenSUSE 및 SLES).
            4. 아치 시스템(예: Arch, Manjaro, ArchLabs 및 ArcoLinux).
            5. 인기 있고 널리 사용되는 Linux 배포판은 다음과 같습니다.

              1. 우분투
              2. 데비안
              3. 리눅스 민트
              4. 페도라
              5. 심각한
              6. 만자로 리눅스
              7. MX 리눅스
              8. 기본 OS
              9. 센트OS
              10. 오픈수세
              11. Linux 초보자에게 적극 권장되는 초보자용 배포판에는 Ubuntu, Mint, Zorin OS 및 Elementary OS가 있습니다. 이는 주로 사용자 친화성, 단순하고 깔끔한 UI, 높은 사용자 정의 때문입니다.

                Zorin OS와 같은 일부 버전은 Windows 10과 매우 유사하여 Linux로 전환하는 Windows 사용자에게 이상적입니다. 초등 OS와 같은 다른 것들은 시그니처 도크 메뉴로 macOS를 밀접하게 모방합니다.

                중급 사용자 또는 Linux를 비교적 잘 이해하는 사용자의 경우 CentOS, Debian 및 Fedora로 충분합니다. Linux 시스템 관리에 대해 잘 알고 있는 노련한 사용자는 일반적으로 Arch 기반 Linux 시스템과 Gentoo에서 작업하는 것이 편할 것입니다.

                각 Linux 배포판은 데스크톱 환경 또는 GUI(그래픽 사용자 인터페이스) 및 기본 앱 측면에서 고유한 방식으로 고유합니다. 그러나 대부분은 LibreOffice 제품군, Thunderbird 메일 클라이언트, 김프 이미지 편집기 및 멀티미디어 응용 프로그램과 같은 즉시 사용 가능한 응용 프로그램을 제공하여 시작합니다.

                서버 환경에서 널리 사용되는 Linux 배포판은 다음과 같습니다.

                1. RHEL(Red Hat Enterprise Linux)
                2. SUSE Linux Enterprise Server(SLES)
                3. 우분투 서버
                4. 데비안
                5. Linux는 다음과 같은 주요 구성 요소를 포함합니다.

                  모든 Linux 시스템의 핵심에는 Linux 커널이 있습니다. C로 작성된 커널은 하드웨어 구성 요소를 기본 소프트웨어 및 프로그램과 인터페이스합니다. 커널은 실행 중인 프로세스를 관리하고 어떤 프로세스가 CPU를 사용하고 얼마 동안 사용할지 결정합니다. 또한 각 프로세스가 가져오는 메모리 양을 결정합니다. 또한 장치 드라이버를 관리하고 실행 중인 프로세스로부터 서비스 요청을 수신합니다.

                  부트로더는 Linux 시스템에서 부팅 프로세스를 처리하는 프로그램입니다. 하드 드라이브에서 메인 메모리로 운영 체제를 로드합니다. 부트로더는 Linux에만 국한되지 않습니다. Windows 및 macOS에도 있습니다. Linux에서는 부트로더를 GRUB라고 합니다. 최신 버전은 systemd 배포판에서 사용하는 GRUB2입니다.

                  Initialization의 줄임말인 Init는 시스템 전원이 켜진 후 실행되는 첫 번째 프로세스입니다. 프로세스 ID(PID)가 1이고 데몬 및 기타 백그라운드 프로세스 및 서비스를 포함하여 Linux 시스템의 다른 모든 프로세스를 생성합니다. 따라서 모든 프로세스의 어머니로 명명됩니다. Init는 시스템 전원이 꺼질 때까지 백그라운드에서 실행됩니다.

                  초기 Init 시스템에는 System V Init(SysV) 및 Upstart가 포함되었습니다. 이것들은 현대 시스템에서 systemd init로 대체되었습니다.

                  데몬은 시스템이 부팅될 때부터 백그라운드에서 조용히 실행되는 프로세스입니다. 데몬은 명령줄에서 사용자가 제어할 수 있습니다. 부팅 시 중지, 다시 시작, 비활성화 또는 활성화할 수 있습니다. 데몬의 예로는 원격 SSH 연결을 제어하는 SSH 데몬인 sshd와 서버에서 시간 동기화를 처리하는 ntpd가 있습니다.

                  Linux 셸은 CLI로 약칭되는 명령줄 인터페이스로, 관리 작업을 수행하고 자동화하기 위해 명령이 실행되거나 호출됩니다. 인기 있는 셸에는 bash 셸(bash)과 Z 셸(zsh)이 있습니다.

                  데스크탑 환경은 사용자가 Linux 시스템과 상호 작용하는 데 사용하는 것입니다. X 윈도우 시스템 소프트웨어를 통해 구현 가능한 GUI(그래픽 사용자 인터페이스)를 제공합니다. X 윈도우 시스템(X11, X라고도 함)은 디스플레이 프레임워크 또는 GUI를 제공하고 사용자가 윈도우, 키보드, 마우스 및 터치패드와 상호 작용하는 방식을 결정하는 시스템입니다.

                  일반적인 데스크탑 환경에는 GNOME, MATE, XFCE, LXDE, Enlightenment, Cinnamon, Budgie 및 KDE Plasma가 있습니다. 데스크탑 관리자는 파일 관리자, 데스크탑 위젯, 배경 화면, 아이콘 및 기타 그래픽 요소와 같은 그래픽 구성 요소와 함께 제공됩니다.

                  데스크탑 환경은 시작하는 데 필요한 기본 응용 프로그램만 제공합니다. Windows 또는 macOS와 마찬가지로 일상적인 사용을 위한 응용 프로그램을 설치할 수 있습니다. 여기에는 Google Chrome, VLC 미디어 플레이어, Skype, LibreOffice 제품군, DropBox, GIMP 이미지 편집기 등과 같은 응용 프로그램이 포함됩니다. 일부 배포판에는 필요한 응용 프로그램을 다운로드할 수 있는 저장소 역할을 하는 자체 소프트웨어 센터가 함께 제공됩니다.

                  이 시점에서 Linux가 많은 사용자와 기업에서 선호하는 운영 체제인 이유가 분명해지고 있습니다. Linux 사용의 몇 가지 이점을 간략하게 요약해 보겠습니다.

                  앞서 지적했듯이 Linux는 완전히 오픈 소스입니다. 숙련된 사용자는 코드를 보고 원하는 목적으로 제한 없이 수정하고 커뮤니티와 공유할 수 있습니다. 또한 일부 배포판을 제외하고 대부분의 배포판은 라이선스 비용을 지불하지 않고 무료로 다운로드하여 사용할 수 있습니다.

                  Windows는 독점 제품이며 일부 제품은 매우 비쌉니다. 현재 Microsoft Office 제품군의 가격은 430달러입니다. Windows Server 2019 라이선스는 최대 6,000달러입니다. macOS는 똑같이 비싸고 App Store의 많은 응용 프로그램이 구독을 통해 지불됩니다.

                  Linux가 사용자에게 제공하는 주요 이점 중 하나는 거의 모든 구성 요소를 원하는 대로 사용자 지정할 수 있다는 것입니다. 배경 화면, 배경 이미지, 색 구성표, 아이콘 모양 등을 포함하여 모양과 느낌을 조정하여 모양을 향상시킬 수 있습니다.

                  Linux 시스템은 놀라운 수준의 안정성과 보안을 갖추고 있습니다. Linux는 공격에 덜 취약하며 시스템을 지속적으로 업데이트하면 바이러스 및 트로이 목마와 같은 맬웨어의 희생양이 될 가능성이 훨씬 적습니다.

                  보안과 안정성 덕분에 Linux는 웹 사이트, 데이터베이스 및 응용 프로그램을 호스팅하는 서버 환경에 가장 적합한 선택입니다. 데이터베이스 및 스크립팅 도구와 같은 다른 구성 요소와 함께 완전한 웹 서버를 가동하는 데 몇 가지 명령만 있으면 됩니다. 고전적인 예는 Apache 웹 서버, MySQL 데이터베이스 및 PHP 스크립팅 언어의 집합체인 인기 있는 LAMP 서버입니다.

                  Linux가 제공하는 안정성으로 인해 커널 업그레이드를 수행해야 하는 경우를 제외하고는 서버를 재부팅할 필요가 거의 없습니다. 이는 서버 및 고가용성을 위한 최대 가동 시간을 보장합니다.

                  대부분의 Linux 배포판은 CPU 및 RAM과 같은 시스템 사양이 낮은 PC에서 실행할 수 있는 용량을 가지고 있습니다. 실제로 Linux Lite, Puppy Linux 및 AntiX와 같은 일부 경량 Linux 배포판을 설치하여 일부 오래된 PC를 되살릴 수 있습니다.

                  일부는 1GB RAM, 512MHZ CPU 및 5GB 하드 드라이브만 있는 시스템에서 실행할 수 있습니다. 훨씬 더 인상적인 것은 라이브 USB 스틱에서 이러한 배포판을 실행할 수 있으며 여전히 작업을 계속할 수 있다는 것입니다.

                  Debian 및 Ubuntu와 같은 주요 Linux 배포판은 저장소에 수천 개의 소프트웨어 패키지를 호스팅합니다. Ubuntu만 해도 47,000개 이상의 패키지가 있습니다. 터미널에서 몇 가지 명령을 실행하거나 배포판에 포함된 App Center를 사용하여 애플리케이션을 쉽게 설치할 수 있습니다.

                  또한 워드 프로세싱, 파일 공유, 오디오/비디오 재생 사진 편집, 그래픽 디자인 등과 같은 유사한 작업을 수행하는 다양한 응용 프로그램을 얻을 수 있습니다. 선택의 여지가 없으며 다양한 응용 프로그램을 선택하여 작업을 실행할 수 있습니다.

                  Linux 운영 체제는 소프트웨어 응용 프로그램, 보안 업데이트 및 버그 수정에 있어 최상의 결과를 얻을 수 있도록 24시간 끊임없이 노력하는 활기찬 개발자 커뮤니티에서 개발 및 유지 관리합니다.

                  Ubuntu 및 Debian과 같은 주요 배포판에는 특히 사용자가 도중에 어려움이나 도전에 직면할 때 도움과 지침을 제공하는 대규모 개발자 커뮤니티와 수많은 포럼이 있습니다.

                  그것은 Linux 운영 체제와 끊임없이 진화하는 컴퓨팅 환경에서의 위치에 대한 조감도였습니다. 확실히 Linux는 유비쿼터스이며 우리가 살고 있는 급변하는 기술 세계에서 지울 수 없는 흔적을 남겼습니다. 따라서 기본적인 Linux 기술을 습득하는 것은 경쟁력 있는 IT 직업에서 사다리를 확장하려는 IT 전문가에게 필수적입니다.

                  Linux를 배우면 DevOps, 사이버 보안 및 클라우드 컴퓨팅과 같은 다른 고급 IT 분야의 문을 열 수 있습니다. 다음 주제에서는 계속 진행하면서 쉽게 사용할 수 있어야 하는 기본 Linux 명령에 중점을 둘 것입니다.