본문 바로가기

개발자/라즈베리파이4

라즈베리파이 파이선 프로그래밍 03. Linux 시스템 기반 Raspberry Pi

반응형

 

 

라즈베리파이 파이선 프로그래밍 03. Linux 시스템 기반 Raspberry Pi 

 

앞선 튜토리얼에서 라즈베리 파이 모델을 검토하고 응용 프로그램에 따라 가장 적합한 디바이스를 고려했습니다. 대부분의 경우 라즈베리파이를 Linux 컴퓨터로 사용할 것입니다. Raspberry Pi의 공식 운영 체제인 Raspbian은 Debian OS(Linux 배포판)의 변형입니다. 다른 운영 체제를 사용할 수 있지만 일반적으로 Linux가 선호됩니다.

 

전자적 관점에서 볼 때 모든 컴퓨팅 장치는 특정 작업이 완료되도록 프로그래밍된 순서로 일련의 디지털 명령을 처리하고 실행할 수 있는 디지털 전자 회로입니다. 이러한 명령어의 프로그래밍된 순서를 응용 프로그램이라고 합니다. 운영 체제가 컴퓨팅 장치에서 실행될 때 Raspberry Piapplications의 Raspbian OS 스크린샷과 모든 하드웨어 리소스는 운영 체제에서 관리합니다.

 

따라서 운영 체제는 하드웨어 리소스, 데이터, 메모리 및 응용 프로그램을 관리하도록 설계되고 개발된 고유한 프로그램입니다.

 

모든 애플리케이션은 하드웨어가 데이터를 조작하도록 "허용"합니다. 예를 들어 워드 프로세싱 응용 프로그램은 컴퓨터에서 다음을 허용합니다.

 

  • 키보드에서 데이터 입력을 읽으려면
  • 입력된 데이터 또는 데이터 파일을 그래픽 사용자 인터페이스를 통해 화면에 표시
  • 보조 메모리 장치에 데이터 파일 저장
  • 프린터 또는 플로터를 사용하여 데이터를 인쇄합니다.

데이터는 런타임 데이터 또는 보조 메모리 장치에 저장된 파일일 수 있습니다. 응용 프로그램을 보조 메모리 장치에 저장하는 데이터 파일을 프로그램이라고 합니다. 런타임에 프로그램을 프로세스라고 합니다. 그러나 프로세스는 하드웨어 리소스에 직접 액세스 할 수 없습니다. 하드웨어 리소스, 기본 메모리, 보조 메모리에 있는 기타 파일에 액세스 하거나 한 장치에서 다른 장치로 데이터를 전송하려면 운영 체제와 상호 작용해야 합니다.

 

대부분의 운영체제가 하는 일은 다음과 같습니다. 

 

  • 하드웨어 리소스 관리 및 할당
  • 기본 및 가상 메모리 리소스 할당
  • 프로세스 관리
  • 파일 시스템 유지
  • 보조 스토리지의 파일 및 데이터를 보호합니다. 

컴퓨터를 사용하는 사람을 사용자라고 합니다. 사용자는 입출력 주변 장치를 통해 애플리케이션과 상호 작용합니다. 입/출력 주변 장치에서 데이터 전송을 관리하려면 운영 체제에 장치 드라이버가 설치되어 있어야 합니다. 이러한 장치 드라이버는 하드웨어 구성 요소와의 데이터 통신을 지시하는 프로그램입니다. 컴퓨터 시스템에 연결된 각 하드웨어 장치에는 특정 하드웨어 장치와 상호 작용할 수 있도록 운영 체제에 명시적으로 설치해야 하는 장치 드라이버가 있습니다.

 

또한 운영 체제는 사용자가 보조 또는 이동식 저장 장치에 저장된 파일에 액세스하고 응용 프로그램과 상호 작용할 수 있도록 사용자 인터페이스(명령줄 또는 그래픽)를 제공해야 합니다. 또한 프로세스 예약, 파일 처리, 텍스트 조작, 인쇄, 네트워킹 등과 같은 시스템 서비스 또는 유틸리티 서비스를 제공합니다. 이러한 서비스는 별도의 프로세스로 실행되며 운영 체제가 부팅될 때 시작됩니다. 응용 프로그램은 특정 작업을 위해 이러한 서비스 중 하나 또는 여러 개에 액세스 하거나 상호 작용해야 할 수 있습니다.

 

Linux 운영 체제

 

Linux는 Linus Benedict Torvalds가 처음 개발한 오픈 소스 운영 체제입니다. 소프트웨어는 라이선스 비용 없이 무료로 Linux 커널로 사용할 수 있습니다. 이것은 누구나 자신의 Linux 배포판을 갖도록 Linux의 소스 코드를 다운로드하고 수정할 수 있음을 의미합니다. Linux 커널은 C 프로그래밍 언어로 작성되었습니다.

 

다음과 결합됩니다.

 

  • System utilities (GNU utilities)
  • Shell — a special utility for a user to manage files and programs.
  • Desktop environment, which adds a graphic user interface to the Linux Kernel.
  • Default application software, written for the Linux Kernel, and forms a complete operating system.

결합된 기능을 갖춘 Linux 커널은 바로 사용할 수 있는 Linux 배포판이며 수백 개의 Linux 배포판이 있습니다. 흥미롭게도 Linux는 플랫폼에 국한되지 않습니다. 즉, 다양한 배포판을 데스크톱, 서버, 모바일 장치, 메인프레임 컴퓨터, 슈퍼컴퓨터 및 임베디드 장치용 운영 체제로 사용할 수 있습니다.

 

현재 Linux 데스크톱 점유율은 1.74~2.18%입니다. 모바일 장치의 약 85%가 Linux 파생 제품인 Android에서 실행됩니다. 서버의 약 66%가 Linux를 사용하고 거의 모든 슈퍼컴퓨터는 맞춤형 Linux 변형에서 실행됩니다.

 

리눅스 커널은 주기적으로 업데이트 및 다운로드를 사용할 수 있습니다. 버전 번호는 세 가지 구성 요소로 구성된 각각의 새 릴리스를 식별합니다.

 

1. 주요 번호는 Linux 커널에 대한 중요한 개정을 나타냅니다.

2. 마이너 넘버는 버전의 마이너 변경 및 안정성을 의미합니다. 부 번호가 홀수이면 개발 커널임을 의미합니다. 짝수이면 프로덕션 커널입니다. 개발 커널은 완전히 테스트되지 않았으며 불안정할 수 있습니다. 프로덕션 커널은 Linux 커널의 완전히 테스트되고 안정적인 릴리스입니다.

3. 개정 번호는 커널에 대한 미세한 변경 사항을 지정합니다. 예를 들어 안정적인 최신 Linux 커널 버전은 5.4.1(2019년 11월)이며, 여기서 5는 주 번호, 4는 부 번호, 1은 개정 번호입니다. 이것은 프로덕션 커널입니다.

 

Linux는 컴퓨터 사용자의 자유를 증진하기 위한 글로벌 사명을 가진 비영리 단체인 Free Software Foundation(FSF)에서 개발한 GNU Public License에 따라 사용할 수 있습니다. GPL에서는 모든 소프트웨어와 소스 코드를 자유롭게 사용할 수 있어야 합니다. 누군가 소스 코드를 수정하면 라이선스 비용 없이 재배포되어야 합니다.

 

따라서 Linux는 오픈 소스 소프트웨어(OSS)입니다. 오픈 소스 라이선스에 따라 소프트웨어와 소스 코드는 무료로 제공되어야 합니다. 이는 소프트웨어와 그 소스 코드가 오픈 소스 라이선스에 따라 무료로 배포되어야 하기 때문에 소프트웨어 회사와 개발자가 OSS에서 수익을 창출할 수 없음을 의미합니다. 결과적으로 OSS 개발자(및 Linux 개발자)는 OSS를 실행하는 하드웨어, OSS에서 실행되는 비공개 소스 소프트웨어(예: Linux용 애플리케이션)를 판매하거나 관련 고객 지원을 제공하여 수익을 창출합니다.

 

운영 체제로서 Linux에는 몇 가지 주목할만한 기능이 있습니다. 멀티 스레딩, 멀티 태스킹 및 다중 사용자 기능과 안정적이고 안전한 모놀리식 커널을 제공합니다. 또한 하드웨어 플랫폼의 다양성, 여러 파일 시스템 옵션, 오픈 소스 코드, 간단한 사용자 지정 및 낮은 운영 비용을 제공합니다.

 

인기 있는 Linux 배포판에는 Red Hat, Fedora, Slackware, Arch Linux, OpenSUSE, Mandriva Linux, Gentoo, Debian, Ubuntu, CentOS, PCLinuxOS, Puppy Linux, Solus, Elementary OS 등이 있습니다. Raspbian은 Debian을 기반으로 하는 Linux 배포판입니다.  

 

 

Raspbian OS running on Raspberry Pi

 

모든 Linux 시스템에는 다음과 같은 빌딩 블록이 있습니다.

 

  • Linux Kernel
  • GNU utilities
  • Shell
  • Desktop environment
  • Add-on application software

 

이러한 구성 요소에 대해 자세히 알아보려면 " 모든 Linux 시스템 개요 " 문서를 확인하십시오. Linux 운영 체제를 구성하는 다양한 소프트웨어 구성 요소와 해당 구성 요소가 작동하는 방식을 이해하는 것은 중요합니다.

 

다음 튜토리얼에서 라즈베리파이 컴퓨터를 설정하는 방법에 대해 알아봅니다. 다음 튜토리얼부터 손을 더럽힐 준비를 하십시오. 

 

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^