Computer Science
탄탄한 기반 실력을 위한
전공과 이론 지식 모음
Today I Learned!
배웠으면 기록을 해야지
TIL 사진
Flutter 사진
Flutter로 모바일까지
거꾸로캠퍼스 코딩랩 Flutter 앱개발 강사
스파르타코딩클럽 즉문즉답 튜터
카카오테크캠퍼스 3기 학습코치
프로필 사진
박성민
임베디드 세계에
발을 들인 박치기 공룡
임베디드 사진
EMBEDDED SYSTEM
임베디드 SW와 HW, 이론부터 실전까지
ALGORITHM
알고리즘 해결 전략 기록
🎓
중앙대학교 소프트웨어학부
텔레칩스 차량용 임베디드 스쿨 3기
애플 개발자 아카데미 1기
깃허브 사진
GitHub
프로젝트 모아보기
Instagram
인스타그램 사진

Embedded System/Embedded Linux 4

[Embedded Linux] 라즈베리파이의 부팅

라즈베리 파이의 부팅 과정 (간단 version)파워 온! → GPU가 먼저 켜진다. (CPU는 죽어있는 상태)1단계 부트로더 (ROM) : GPU가 이걸 ROM에서 실행. 이 단계에서 SD Card에서 2단계 부트로더를 찾음2단계 부트로더 (bootcode.bin) : SDRAM의 활성화. 이 단계에서 RAM에 3단계 부트로더를 로드3단계 부트로더 (start.elf) : GPU Firmware로 동작하며, 커널 이미지를 읽어옴커널 부팅 준비 (start.elf) : 시스템 설정을 읽고, 커널 이미지 로드 + CPU에게 제어권 넘기기커널 부팅 시작 : 리눅스 커널이 CPU에서 실행되기 시작ㅤㅤ라즈베리 파이는 GPU가 주도권을 가지고 부팅을 시작한다.단계별로 나눠둔 이유? 각 단계마다 필요로 하는 메모리..

[Embedded Linux] Linux 커널 아키텍처

리눅스의 커널은 Monolithic리눅스의 커널은 기본적으로 Monolithic 구조이다. 그러나 유연성을 위해서 커널 모듈을 적극적으로 사용하고 있다.ㅤㅤ리눅스가 사용하는 Monolithic 커널이란 다음의 특징을 가진다.하나의 거대한 커널 공간에 모든 핵심적인 서비스가 포함되어 실행된다.커널 컴포넌트간에 직접 서로 함수를 호출할 수 있어, 오버헤드가 적어 좋은 성능을 가진다.단, 커널의 크기가 매우 크고 복잡하다. (기존에는) 새로운 기능이 추가되거나 기능 수정을 위해서는 전체 커널을 새로 컴파일해서 사용해야했다.ㅤㅤMonolithic 구조의 단점들을 해결하기 위해서 리눅스는 모듈식 설계(Loadable Kernel Module, LKM)를 적용한다.장치 드라이버, 파일 시스템같은 기능들은 필요할 때..

[Embedded Linux] 시스템콜 함수가 호출되면 아래에선 무슨일이 일어나나

리눅스 기본에 대해서 공부하면서 리눅스가 커널을 기준으로 위아래가 분리된 아키텍처로 구성되어 있다는 것을 파악했다. 그리고 유저 프로세스에서는 직접 하드웨어나 자원을 건드리지 못하고, 커널에게 시스템콜을 요청해서 자원에 액션을 취할 수 있다는 것까지 파악했다. 이런건 이제 아주 명쾌하지!ㅤ그 과정에서 혹시 이 코드를 내가 따라가볼 수 있나 궁금해서 열어봤다가, 작게 하나의 소제목으로 넣으려고 했던 내용이 너무 길어지는 것 같아서 아예 새로운 글로 빼버렸다.ㅤㅤ그렇다면 내가 C로 작성한 실행파일에서 실제로 이 시스템콜 호출 함수를 사용했을 때, 내려가는 과정을 볼 수 있을까? 가 궁금해서 한 번 따라가봤다.ㅤUser Process인 C 파일부터 시작사용자 쪽에서 아래 코드로 작성된 프로그램을 실행했다고 하..

[Embedded Linux] UNIX, POSIX 그리고 LINUX

UNIX와 POSIX리눅스와 관련된 설명이나 기능들을 살펴보다보면 계속해서 유닉스라는 키워드가 나온다. 나는 리눅스 시스템을 쓰려고 하는데 왜 자꾸 “유닉스 기능, 유닉스 함수”라는 말이 나오는건지 궁금해서, 관련된 내용에 대해서 알아보았다.UNIX의 전파와 POSIX의 등장 배경알고리즘 타고 널리퍼진 UNIXUnix가 등장하기 전에는 각 회사마다 전용의 OS를 사용하는 환경이였다. IBM 컴퓨터 → IBM 전용 OS / DEC 컴퓨터 → DEC 전용 OS. 우리로 친다면 Dell OS / ASUS OS / macOS / Samsung OS 가 모두 따로 있는 느낌일까 싶다. 이렇다보니, 프로그램을 하나 만든다고 하더라도 각 OS에 맞게 전체 프로그램을 다시 작성해야 하는 문제가 있었고, 개발자가 각각의..