프로그래밍 IT/Linux

리눅스 SW 개발이 필요한 이유 (with Comento)

Sunbang123 2024. 9. 13. 18:18

메모리 반도체는 RAM ROM이 속하고, 우리나라의 수출의 많은 부분을 차지한다.

비 메모리 반도체는 CPU같은 시스템반도체인데,

다품종 소량생산으로 많은 부가가치 창출을 가능하게 함.

이러한 비 메모리 반도체는 반도체 위에서 구동될 기본 SW 제공이 필요하다.

SoC(System On Chip) 이란?

비 메모리 반도체 개발의 흐름에서 주류가 되는 장치인데,

하나의 칩 안에 컴퓨터나 전자기기에 필요한 여러 부품들을 모두 집어넣은 것.

예를 들어, 스마트폰 안에 들어있는 작은 칩 하나에 CPU, 그래픽 처리기, 메모리 등이 모두 들어있는 것을 생각하면됨.

이건 마이크로 컨트롤러 시스템의 블록 다이어그램인데, 전형적인 SoC의 구조를 보여줌.

이러한 구조로 생겼는데... CPU GPU같이 핵심적 부분 뿐만 아니라

WIFI USB 등 부가기능을 모두 한 칩에 있음.

(RAM과 ROM은 별도)

 

SOC의 주요 특징과 이 다이어그램의 관계를 설명하자면,

  1. 통합성: SOC는 단일 칩에 여러 컴퓨팅 구성요소를 통합함. 이 다이어그램에서 볼 수 있듯이, ARM 프로세서, 메모리(SRAM, Flash), 다양한 주변장치 인터페이스가 모두 하나의 시스템으로 통합되어 있음.
  2. 프로세서 코어: SOC의 중심에는 보통 ARM과 같은 프로세서 코어가 있음. 이 다이어그램에서도 ARM 프로세서가 중앙에 위치해 있음.
  3. 온칩 메모리: SOC는 대개 SRAM이나 Flash 같은 메모리를 포함하며, 이 다이어그램에서도 이를 확인할 수 있음.
  4. 주변장치 통합: SOC는 USB, Ethernet, CAN 등 다양한 통신 인터페이스와 ADC, PWM 같은 아날로그/디지털 기능을 포함함. 이 다이어그램에서 이러한 요소들을 모두 볼 수 있음.
  5. 전력 관리: SOC는 보통 내장된 전압 조절기와 전력 관리 시스템을 가짐. 다이어그램의 전압 레귤레이터와 전력 관리 컨트롤러가 이를 나타냄.
  6. 디버그 인터페이스: SOC 개발을 위한 JTAG 같은 디버그 인터페이스도 포함되어 있음.

- 출처 Claude 3.5 -

SoC의 개발 흐름

하나의 작은 칩에 여러 기능을 넣고 그 칩에서 돌아갈 프로그램을 동시에 개발하는 과정.

칩이 나오기전에도 소프트웨어를 계속 개발하고 기능이 추가될때마다 프로그램도 함께만든다고 한다...

아직 실습을 안해봐서 잘 모르겠지만 더 알아가면 좋을듯!

 

  1. 하드웨어(HW)와 소프트웨어(SW) 동시 개발:
    • 칩(하드웨어)을 만들면서 동시에 그 칩에서 돌아갈 프로그램(소프트웨어)도 같이 만듦
    • 이것을 "날아가는 새의 양 날개"에 비유한 것입니다. 둘 다 중요하고 함께 발전해야 한다는 뜻.
  2. 에뮬레이터 사용:
    • 실제 칩이 완성되기 전에도 소프트웨어를 계속 개발할 수 있음.
    • 에뮬레이터라는 도구를 사용하면 실제 칩이 없어도 마치 있는 것처럼 테스트할 수 있음.
  3. 디바이스 드라이버 개발:
    • 새로운 장치(예: 새로운 센서)를 SoC에 추가하면, 그 장치를 제어할 수 있는 소프트웨어(디바이스 드라이버)도 만들어야 함.

SoC 개발 흐름 = "병렬 개발 프로세스" 또는 "동시 공학(Concurrent Engineering)"

ㄴ> 하드웨어와 소프트웨어를 동시에 개발한다는 의미이다.

왜 리눅스를 쓰지?

1. 안정성 -> 많은 나라의 다양한 개발자들이 쓰고, 지속적인 검증과 개발이 이뤄짐!

2. 활용처 -> 안드로이드나 우분투같은 리눅스로 구성된 시스템이 구성되는걸 이용자가 선호한다.

3. 오픈소스 -> 다른 운영체제에 비해 구매비용 없음!

4. 호환성 -> 다양한 개발도구 지원됨. 기본환경이 이 우분투 리눅스 환경에 맞춰져있는 경우가 많음.

 

공부를 앞서 기본적으로 요구되는 지식

C언어와 운영체제론 컴퓨터 구조론정도는 알아야 함!

1. C 언어의 포인터 개념

2. 운영체제 관련 이론

3. CPU / RAM 이란 무엇인가! CPU의 기본적인 구조가 어떻게 되는

 

필요한 장비

리눅스 설치, 터미널 개발, 오라클 Virtualbox(무료)를 사용하여 가상 PC에 리눅스설치함! x86계열의 PC에서 함

 

그램(LG Gram) 노트북은 대부분 x86 계열의 프로세서를 사용합니다. 이는 주로 Intel 또는 AMD의 프로세서를 탑재하고 있기 때문입니다. x86 아키텍처는 전통적으로 데스크탑과 노트북에서 많이 사용되는 아키텍처로, LG Gram은 이러한 프로세서를 통해 높은 성능과 호환성을 제공합니다.

 

라고 하는데 내 노트북은 그램이고 intel을 탑재하고 있으니까 그냥 쓸수 있겠다.

 

진행 내용

1. 리눅스 설치, 터미널에서 명령어 사용해보기

2. 리눅스 sw 개발환경 이해, 필요한 도구 설치하고 활용

3. 리눅스 커널을 수정하고 기능구현 운영체제론 기초 이해하기

4. 리눅스 sw 개발의 꽃은 디바이스 드라이버니까 이해하고 직접개발해보자

5. 디바이스 드라이버 기능을 사용하는 서비스 데몬 설계 및 관련 SDK 개발

 

와우... 이걸 다 할수 있을까 ㅋㅋㅋㅋㅋㅋㅋ!!

어려워서 막막하지만 강의자료보면서 하면 못할건 없지...!!

'프로그래밍 IT > Linux' 카테고리의 다른 글

안전모드 없이 우분투 설치  (0) 2024.09.17
환경설정하기  (0) 2024.09.13