본문 바로가기

세미나/소프트웨어 세미나

[세미나] 5차시 - 리눅스 기초(컴퓨터 아키텍처, 운영체제)

반응형

☞ 진행 날짜 : 2022.08.03
☞ 진행자 : 이광진
☞ 기록자 : 야호선종

☞ 통합개발환경 : 구름 IDE
☞ 준비물 : PC

 

 

 


목차

 1. 컴퓨터 아키텍처

 2. 운영체제

 3. 커널과 셸 그리고 터미널

 4. 터미널 명령어

 

 

 


 

 

 

 

 

 

① 컴퓨터 아키텍처

※ 컴퓨터 아키텍처란?

 

세미나 진행자 이광진 PPT 中

 

 

아키텍처는 구조를 의미하고 컴퓨터 아키텍처란 결국 컴퓨터의 구조를 의미한다. 컴퓨터는 하드웨어와 소프트웨어로 나뉘어져있는데 하드웨어에는 중앙처리장치(CPU), 기억 장치(Memory), 입출력 장치(I/O)가 있고, 소프트웨어에는 시스템과 애플리케이션이 있다. PPT의 오른쪽은 컴퓨터의 추상계층으로 하드웨어, 펌웨어, 어셈블러, 커널, 운영체제 및 응용 프로그램 순으로 계층이 존재한다.

 

 

 

☞ 추상화 계층

 

◎ 응용 프로그램은 목적에 따라 제작된 모든 소프트웨어를 의미한다.

 

◎ 운영체제는 OS(Operating System)라고도 하며, 간단하게는 하드웨어 및 시스템 리소스를 제어하는 시스템이다.

 

◎ 커널은 운영체제의 핵심이 되는 컴퓨터 프로그램으로 하드웨어인 중앙처리장치, 기억 장치, 입출력 장치를 통제한다.

 

◎ 어셈블러는 어셈블리어를 기계어로 변환해주는 컴퓨터 언어 번역 프로그램을 의미한다.

 

◎ 펌웨어는 하드웨어 장치를 제어할 수 있도록 돕는 소프트웨어이다.

 

 

 

추상화 계층 중에서도 운영체제, 커널과 같이 간단히 짚고 넘어가야하는 개념들이 있어 아래에 잠시 알아보고 직접 터미널에 명령어를 입력하여 실습해보자.

 

 

 


② 운영체제

※ 운영체제란?

 

세미나 진행자 이광진 PPT 中

 

 

PPT 그림은 왼쪽부터 Atmega128의 회로도와 컴퓨터 전체 회로도이다. 

 

위 추상화 계층에서 설명한 바와 같이 운영체제는 OS라고도 부르며 하드웨어와 시스템 리소스를 제어한다. 하드웨어 제어는 중앙처리장치, 기억 장치, 입출력 장치 제어를 의미하는데, 그럼 시스템 리소스는 무엇일까? 이는 사용자가 사용하는 서비스 집합을 의미한다. 서비스에는 네트워크 연결, 장치 인식, 메모리 접근, 인터럽트 처리 등이 있다.

 

좀 더 세부적으로 분류하여 설명할 수 있지만, 이는 리눅스이란 새로운 운영체제를 사용해보기 전에 간단히 컴퓨터의 구조에 대해서 알아보는 것이니 간단히 짚고 넘어가겠다.

 

 

 

 

※ 운영체제 종류

 

세미나 진행자 이광진 PPT 中

 

 

나도 이 많은 운영체제를 모두 사용해보지는 않았다. 리눅스 마스터를 공부하면서 이러저러한 리눅스 배포판에 대해서 알게되었는데 리눅스 마스터는 레드햇 계열의 CentOS 6, 7에 대한 구조를 배우기 때문에 가장 많이 접했던 기억이 있다. 데비안, 레드햇, 슬랙웨어 계열 세 가지에 대해 많이 배웠는데 이유는 데비안, 레드햇 엔터프라이즈 리눅스, 슬랙웨어 리눅스를 기반으로 많은 리눅스 배포판이 나왔기 때문이다.

 

유닉스의 System V, BSD는 유닉스 운영체제의 최초 상용 버전으로 지금까지 나온 리눅스 배포판의 조상님 격이다. 지금 운영체제가 많이 발달한 이유는 이 운영체제 때문이다. 운영체제는 가장 큰 오픈소스라고 할 수 있으며, 전세계에서 가장 많이 사용하는 윈도우 운영체제를 비롯한 다양한 OS 개발 오픈소스에도 이식되어 있는 상태라고 볼 수 있다.

 

추가로 운영체제 역사에 대해서 알아보다보면 GNU와 라이선스를 빼놓을 수 없는데 이는 직접 찾아보면 재미있을 것 같다.

 

 

 


③ 커널과 셸 그리고 터미널

※ 커널, 셸이란?

세미나 진행자 이광진 PPT 中

 

 

프로그래밍 언어, 컴퓨터 언어로 유명한 C, JAVA는 사용자가 쓰고 읽을 수 있는 영어로 구성되어 있다. 이를 고급 언어(High Level Language)라고 한다. 고급 언어가 있으면 저급 언어(Low Level Language)가 있을 텐데 이를 어셈블리어라고 한다. 어셈블리어는 기계어와 일대일 대응이 되는 프로그래밍 언어이다. 어셈블리어는 어셈블러를 통해 기계어로 번역되는데 기계어는 CPU가 직접 해독하고 실행할 수 있는 비트 단위로 쓰인 언어로 일반 사람이 알아보기에는 어려운 구조로 이루어져있다.

 

 

세미나 진행자 이광진 PPT 中

 

 

이와 같이 어려운 구조로 이루어진 시스템을 사용자가 쉽게 사용할 수 있도록 중간에서 중계자 역할을 해주는 것이 있는데 이를 셸(Shell)이라고 한다. 대표적으로 터미널을 셸의 일종이라 할 수 있는데 이는 사용자가 익히기만 하면 사용할 수 있는 영어 명령어를 통해 하드웨어 시스템을 제어할 수 있도록 커널에 전달하는 인터페이스 역할을 하기 때문이다.

 

터미널 외에도 마우스를 클릭하여 응용 프로그램을 실행하거나, 인터넷을 사용하거나, 터미널에 명령어를 입력하는 행위처럼 컴퓨터와 핑퐁핑퐁(입력하면 출력하는) 할 수 있는 것들이라고 생각하면 된다.

 

셸에도 종류가 다양하여 여러가지 셸이 존재하는데 마이크로소프트의 윈도우 말고 유닉스 셸로는 본 셸(Bourne Shell), 배시 셸(Bash, Bourne-again Shell), C 셸(csh), 콘 셸(ksh) 등이 있다. 이 중에서 가장 많이 사용되는 셸은 배시 셸이다. 우분투를 포함하여 데비안 계열의 리눅스 배포판은 배시 셸을 기본 셸로 채택하고 있다. [셸은 필요에 따라 설치할 수도 있으며, chsh(change shell) 명령어를 통해 셸을 변경할 수 있다.]

 

 

이로써 컴퓨터 구조에 대해서 간단히 알아보았다. 이제는 직접 터미널을 사용해보면서 많이 사용하는 명령어를 알아보도록 하자.

 

 


④ 터미널 명령어

  구름 IDE

 

리눅스에서 명령어를 입력하는 터미널을 사용하기 위해서는 다른 개발 환경이 필요하다. 우리가 사용하고 있는 노트북에서 하드디스크 볼륨을 축소하여 그 부분에 듀얼 부팅할 수 있도록 리눅스를 설치하는 방법도 있고, 라즈베리파이나 젯슨 보드와 같은 싱글 보드 컴퓨터(SBC)를 통해 리눅스를 사용하는 방법도 있지만, 이는 설치부터 부담이 많은 작업이 될 수 있어 구름에서 제공하는 구름 IDE 컨테이너에서 작업을 진행하려 한다.

 

 

 

 

구름IDE - 설치가 필요없는 통합개발환경 서비스

구름IDE는 언제 어디서나 사용 가능한 클라우드 통합개발환경(Integrated Development Environment IDE)을 제공합니다. 웹브라우저만 있으면 코딩, 디버그, 컴파일, 배포 등 개발에 관련된 모든 작업을 클라

ide.goorm.io

 

 

위 링크에 있는 구름 IDE 웹사이트에 접속해서 로그인을 하면 컨테이너를 만들 수 있는 창이 나온다.

 

 

 

 

화면 아래에 보면 + 버튼이 있는데 이를 클릭하면 컨테이너 생성하기 전에 설정 창이 나온다.

 

 

 

 

 

☞ 설정 값

설정 값은 소프트웨어 스택만 C/C++로 사용하고 나머지는 기본 값을 그대로 사용하면 된다.

 

 

◎ 이름, 설명 : 자유

 

◎ GPU : 사용하지 않음

 

◎ 지역 : 서울

 

◎ 템플릿 : 기본 템플릿

 

◎ 배포 :  Not used

 

◎ 소프트웨어 스택 : C/C++ , Templete(C 콘솔 프로젝트), OS(Ubuntu 18.04 LTS)

 

 

 

 

 

 

 

터미널을 생성하고나면 오른쪽 ...에 터미널 실행하기 버튼으로 터미널에 진입할 수 있다. 아래에 나와있는 터미널 명령어를 하나씩 입력하면서 어떤 명령을 수행하는지 하나씩 확인해보자.

 

 

 

 

 

☞ 터미널 명령어

세미나 진행자 이광진 PPT 中

 

 

터미널에서 사용할 수 있는 명령어는 아주 많지만 자주 사용하는 기본적인 명령어들이 있으니 위 PPT에서 제시한 명령어 정도는 숙지하고 있으면 좋을 것 같다.

 

 

 

 

 

아래는 이전에 ROS 설치에 대한 포스팅을 하면서 리눅스 기본 명령어도 몇 가지 적어놓았던 것으로 기억하여 첨부하였다. 시간이 남으면 확인해보면 좋을 것 같다.

 

[ROS] 3. ROS Melodic 설치

☞ 메인보드 : Jetson Nano Developer Kit ☞ 운영 체제 : Ubuntu 18.04 - JetPack 4.3 ☞ ROS 버전 : Melodic <이전 포스트> 1. 이미지 삽입, 포맷 그리고 백업 # 이미지 삽입 1) Rufus 다운로드 https://rufus.i..

95mkr.tistory.com

 

 

 

 

 

 

 

 

비밀결사대 앙치킨

 

 

 

 

 

 

반응형