(마음대로 적는)라즈베리파이2 기초 – 4. 리눅스 프로그래밍 (1)

다시 한번, 라즈베리파이의 운영체제, Raspbian은 Debian 이라는 GNU/Linux 운영체제이라는 점을 강조하겠습니다.

 

즉, 라즈베리파이2의 프로그래밍은 리눅스 프로그래밍이라고 할 수 있다는 점이죠.

 

리눅스 프로그래밍을 하기 위해서는 리눅스 자체에 대해 알고 있으면 매우 좋습니다. 그래서 이번에는 리눅스에 대해 소개해드립니다.

 

4.1. 리눅스의 기본 구조와 파일 시스템

 

리눅스는 가장 중심에 커널이라는 것이 존재합니다. 이 커널은 운영체제의 핵심으로 컴퓨터 시스템의 전반적인 운영과 관리를 담당하고, 사용자에게는 편의성을 제공하며 하드웨어 관리의 효율성을 보장합니다.

 

http://www.makelinux.net/kernel_map/LKM3_2048.png

리눅스 커널 맵 (출처 : http://www.makelinux.net/kernel_map/ )

 

갑자기 복잡한 이미지가 등장하여 놀랐을 것이라고 생각합니다.

 

위 이미지는 리눅스 커널을 정리한 것으로, 이 커널은 입출력, CPU, 메모리, 네트워크등의 장치의 자원(Resource)를 관리하는 역할을 합니다.

 

선택 영역_016

리눅스 커널의 블록도(출처 : 사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리파이)

 

또한 시스템 보호를 위해 사용자(유저 모드)와 시스템의 영역(커널 모드)을 서로 나눠서 관리하는 역할도 하는데, 이는 사용자들이 시스템을 잘못 사용하지 않도록 하는 보안 기능을 제공하는 것입니다.

 

4.1.2 파일 시스템

 

FAT32, NTFS, ExFAT이라는 것을 들어보신 적이 있을 것입니다.

 

Microsoft Windows 환경에서 사용하는 파일 시스템인데, 리눅스에서도 이를 사용할 수 있지만 주로 사용하는 것은 따로 있습니다.

 

먼저 파일 시스템이란 파일의 저장, 삭제, 읽기 등의 파일 관리 기능과 파일에 대한 보호 기능을 제공하는 것입니다.

 

리눅스에서는 Ext2, Ext3등을 사용하며, 현재는 특히 대부분 Ext4를 사용하고 있습니다.

 

한편, 리눅스에서는 디스크, 사운드 카드 등의 모든 주변장치들도 각각 하나의 파일로 취급하는 특징을 가지고 있습니다.

 

이는 /dev 디렉토리를 확인해보면 알 수가 있습니다.

 

선택 영역_017

 

이러한 다양한 파일 시스템들을 하나의 파일 시스템처럼 사용할 수 있도록 리눅스에서는 가상 파일 시스템 아래 실제 파일 시스템이 돌아가는 구조를 취하고 있습니다.

 

선택 영역_018

리눅스 파일 시스템 기본 구조 (출처 : 사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리파이)

 

==============================================================================

Continue…

 

 

댓글 남기기

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d 블로거가 이것을 좋아합니다: