전체 글(68)
-
Makefile 실습
1. make buildroot-download : buildroot가 없다면 다운로드2. make buildroot-config : buildroot를 설정3. make buildroot : buildroot를 빌드4. make kernel-download : kernel이 없다면 다운로드5. make toolchain-download : toolchain 없다면 다운로드6. make kernel-config : kernel을 설정7. make run : QEMU로 리눅스 실행8. make kernel : kernel을 빌드 buildroot를 빌드하기 위해선 buildroot 설정이 되어있어야하고, buildroot를 설정하기 위해서는 buildroot가 다운로드 되어있어야한다. kernel을 빌드..
2024.11.26 -
Random number
= 0~4까지의 정수 값을 갖는 random number 발생: P[X=0] = 0.12 P[X=1] = 0.27 P[X=2] = 0.19 P[X=3] = 0.33 P[X=4] = 0.09 Gen_X라는 함수는 난수 생성 함수인 rand를 사용하여 0부터 1사이의 난수를 발생시키고 주어진 P[X=0]부터 P[X=4]까지 확률을 나타내기위해 구간을 나눠 x를 return 하는 함수이다. 난수 생성을 여러번 하는 것을 주사위를 여러 번 던지는 것과 같다고 생각하면 이해하기 쉽다. 주사위를 굴릴 때 주사위에서 나오는 숫자의 확률은 각각 1/6이다. 물론 10번을 던지면 6이 5번이 나올 수도 있지만, 만약 주사위를 10만번 굴리면 1부터 6까지는 1/6에 가까워질 것이다...
2024.11.26 -
QEMU에서 리눅스 실행하기
QEMU란?오픈소스의 다양한 CPU와 디바이스를 지원하는 에뮬레이터(하나의 시스템이나 장치가 다른 시스템이나 장치를 흉내 내거나 모방할 수 있게 해주는 소프트웨어나 하드웨어) 우선 QEMU를 설치해준다. QEMU를 실행하는 명령어는 밑과 같다. -kernel : 빌드한 커널 지정-drive : 사용할 가상의 디스크, 빌드한 루트 파일 시스템 지정-m : 메모리 크기-smp : 코어 개수 지정 다음과 같은 명령어로 QEMU를 실행하면 로그인 창이 뜨는데 기본 비밀번호는 root이다. QEMU를 통해 가상머신을 만들어 실행시킬 수 있으며, 가상 머신이 시작되면, 설정해두었던 리눅스 커널이 자동으로 부팅되고, 리눅스 커널은 사용자 모드에서 커널 모드로 전환된다.
2024.11.23 -
리눅스 디바이스 드라이버
디바이스 드라이버를 공부하면서 이 내용을 왜 공부하는지에 대해 궁금해서 작성하는 내용이다. 디바이스 드라이버란?리눅스 디바이스 드라이버는 리눅스 커널의 중요한 구성 요소로, 운영 체제가 하드웨어와 상호 작용을 할 수 있도록 중간 역할을 한다. 디바이스 드라이버는 특정 하드웨어 장치를 제어하는 데 필요한 로직과 인터페이스(서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면)를 제공한다. 리눅스에서는 다양한 유형의 하드웨어를 지원하기 위해 많은 드라이버가 포함되어 있으며, 이를 통해 하드웨어와 소프트웨어가 원활히 통신할 수 있다. 운영 체제는 유저모드와 커널모드라는 두 가지 주요 실행 모드를 가지고 있다. 유저모드는 어플리케이션 (웹 브라우저, 텍스트 편집기 등)이 실행..
2024.11.23 -
리눅스 커널 빌드하기
빌드 루트를 통해 루트파일시스템을 다운받았으니 이번엔 커널을 다운받는다. 빌드 루트와 동일하게 wget 명령어를 통해 압축파일을 다운로드 받은 후 tar xvf 명령어를 통해 압축을 해제한다. 그 다음 빌드에 필요한 툴체인도 설치해준다. 그 다음 Buildroot에서 제공하는 기본 커널 설정 파일(linux.config)을 리눅스 커널 소스 트리의 qemu_defconfig로 복사하여, 커널 빌드 과정에서 QEMU ARM64 가상 머신에 적합한 설정을 할 수 있도록한다. 명령어 ARCH=arm64 make qemu_defconfig 명령어를 통해 리눅스 커널을 ARM64 플랫폼의 QEMU 에뮬레이터에서 사용할 수 있도록 기본 설정을 로드한다. 여기 까지가 리눅스 커널을 빌드하기 위한 기본 준비이다...
2024.11.21 -
Rootfs 빌드 하기
루트파일시스템(Rootfs) 이란?루트 파일 시스템은 운영체제에서 가장 기본이 되는 파일 시스템이다. 리눅스나 유닉스 계열의 운영 체제에서 모든 파일과 디렉터리는 이 루트 파일 시스템 아래에 위치한다. 주요 디렉터리로는 밑과 같다. / : 루트 디렉터리/bin : 사용자와 시스템에서 사용하는 필수 명령어 바이너리 (ls,cp,mv...)/sbin : 시스템 관리자가 사용하는 바이너리 (/lib : 실행 파일에 필요한 공유 라이브러리 ( C 라이브러리, 공유 라이브러리..)/etc : 시스템 설정 파일과 애플리케이션의 설정 파일 ( /etc/fstab, /etc/passwd...)/var : 가변 데이터를 저장/home : 사용자 계정의 개인 파일을 저장 ( /home/user)/usr : 사용자가 설치..
2024.11.20