| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 디스크립터
- HDR
- fscanf
- fprintf
- interrupt handler
- layouts
- ubuntu
- interrupt context
- memcmp
- gparted
- 환경 변수
- DMA
- 멀티프로세싱
- makefile
- context
- 소캣
- 프레임버퍼
- Shared Folder
- 젠킨스
- 속도저하
- usb2.0
- jenkins
- sscanf
- 디스크 축소
- sprintf
- intents
- context switch
- 문자형 디바이스 파일
- pagefile.sys
- activities
- Today
- Total
목록분류 전체보기 (78)
do{학습}while
rootfs(root file system)이란? 루트 파일 시스템은 운영체제에 필요한 어플리케이션이나 라이브러리와 같은 기본 파일을 담고 있는 저장소입니다. 루트경로('/') 즉 최상위 경로에 담기는 기본적인 파일들을 의미합니다.rootfs 생성rootfs을 생성을 위해 buildroot 혹은 yocto와 같은 리눅스 시스템 구축 오픈소스 프레임워크를 사용할 수 있습니다.해당 프레임워크들을 통해 부트로더, 커널, rootfs와 같은 시스템을 위한 패키지를 생성할 수 있습니다.rootfs 구성요소 각각의 루트 파일 시스템마다 다양한 기본 파일이 존재할 수 있습니다.바이너리 파일(binary files)실행 가능한 프로그램 파일들이 포함됩니다.예를 들어, /bin, /sbin, /usr/bin, /usr/..
Makefile은 빌드를 자동화해주는 설정 파일입니다.make 명령어와 함께 사용되며, 소스 코드를 컴파일하고 실행 파일을 만드는 과정을 쉽게 만들어줍니다.1. 빌드 자동화Makefile은 복잡한 빌드 과정을 자동화해줍니다.빌드에 필요한 파일들을 컴파일하거나 링킹하기 위한 명령어들을 Makefile에 입력하고, 의존성과 순서를 정확히 작성해두면 'make' 명령어 하나만으로 손쉽게 빌드를 수행할 수 있습니다.2. 점진적 빌드 (Incremental Build)Makefile은 변경된 파일만 다시 컴파일하는 기능을 통해 전체 빌드 시간을 단축시킵니다.예를 들어, A 파일이 변경되었을 때, A 파일에 직접적 또는 간접적으로 의존하는 파일만 다시 컴파일합니다.A 파일과 관련 없는 파일들은 다시 빌드하지 않기 ..
시스템 콜운영 체제 커널에 정의된 인터페이스로, 응용 프로그램에서 운영 체제의 기능을 시스템콜 핸들러의 도움을 받아 사용할 수 있게 해줍니다. 시스템 콜의 종류Process Managementfork()새로운 프로세스를 생성하는 데 사용됩니다. 부모 프로세스에서 fork()를 호출하면, 커널은 현재 실행 중인 부모 프로세스의 정확한 사본을 만들어 새로운 자식 프로세스를 생성합니다. 이때, 자식 프로세스는 부모 프로세스의 메모리, 파일 디스크립터, 환경 변수 등을 상속받습니다.#include #include int main() { pid_t pid = fork(); if (pid == 0) { // 자식 프로세스 코드 printf("자식 프로세스..
Shell script 터미널에서 실행될 수 있는 명령어를 하나의 파일로 묶은 것 모든 Shell script는 반드시 Shebang으로 시작 해야합니다. 위에 보이는 #!/bin/sh 코드가 Shebang입니다. 문자열 "#!" 이후에 사용할 shell의 경로를 알려주는 과정입니다. Shebang 이후에 사용할 명령어들을 나열하면 됩니다. 다음은 직접 shell script를 작성한 코드입니다. 먼저 Shebang을 작성하고 echo 뒤에 문자열을 출력을 한 뒤에 현재 경로의 상위 폴더로 이동후에 hello 문자열을 입력한 wow파일을 생성해주는 shell script입니다. shell script: 반복문 "list"라는 이름을 가진 리스트를 생성해줍니다. 요소들은 띄어쓰기로 요소들이 구분이 됩니다...
용어 빌드(build): 소스 코드를 실행할 수 있는 바이너리 코드로 변환하는 과정 호스트(host): 빌드를 진행하는 환경 타겟(target): 빌드를 진행한 바이너리 코드가 실행될 환경 타겟에 따라 요구되는 바이너리 코드가 다름 툴체인(toolchain): 원하는 타겟에 맞춰서 빌드를 해주는 개발도구 모음 컴파일러(compiler): 소스코드를 기계어(object file = 목적 파일)로 변환하는 도구 링커(linker): 여러 기계어와 라이브러리를 모아 하나의 바이너리로 결함하는 도구 빌드 시스템(build system): 빌드 시스템은 소프트웨어를 빌드(컴파일, 링크, 테스트, 배포)하고 관리하는 도구입니다. SDK(Software Develope Kit)소프트웨어 개발 도구 모음으로서, API..
branch를 왜 사용하는거야? 코드의 복사본을 만들어 본사본(commit 기준) 상에서 원본 코드의 손상없이 코드를 작성을 위함입니다. git branch git branch [branch의 이름] git branch는 branch를 생성하는 명령어입니다. gti branch 이후에 문자열로 branch의 이름을 설정할 수 있습니다. 또한 git branch [브랜치의 이름] 명령어는 현재 check-out된 commit을 기준으로 새로운 branch를 생성하는것을 의미합니다. 그렇다면! 특정 commit에서부터 branch를 생성하고 싶으면 어떻게 해야할까요? 특정 commit에서 branch 생성 1. commit hash를 이용해 branch 생성 commit hash는 commit마다 고유하게 ..
오늘은 git을 사용하고 있지만 "git add", "git commit", "git push"는 구체적으로 무엇을 위한 명령어인지 생각해보고 사용하지 않아서 이번 기회에 확실하게 개념을 정리하고자 합니다! git 구조 git add git add [기록을 남기고 싶은 파일명] git add는 add 뒤에 오는 수정된 파일들을 staging area(index area라고도 불림)로 옴기기 위한 명령어입니다. staging area는 commit 이전에 기록을 남기고 싶은 관련된 파일들을 저장하는 공간입니다. 수정된 파일을 staging area로 옴기는 행위 == staging git commit git commit -m "commit 메시지" commit은 repository(저장소)에 staging..
대학교 재학 시절 윈도우 환경에서 opencv 라이브러리를 사용하기 위해 환경 설정을 하는 과정에서 처음 "환경 변수"라는 단어를 처음 접하게 되었습니다. 또한 bitbake를 학습 과정에서 bitbake의 실행 파일을 현재 위치한 주소와 관계없이 실행하기 위해 환경 변수 설정을 해주었습니다. 환경 변수에 대한 확실한 개념을 다지기 위해 글을 작성해보겠습니다. 환경 변수 환경 변수는 컴퓨터 시스템에서 프로세스나 프로그램이 실행될 때 참조할 수 있는 동적인 값들을 말합니다. 환경 변수가 사용되는 구체적인 예 저희는 별다른 설정을 하지 않더라도 리눅스의 기본 명령어를 사용할 수 있고 CLI 환경에서 git을 사용할 수도 있습니다. 그것을 가능하게 했던 것은 기본 명령어의 실행 파일들이 위치한 상대경로를 환경..