Linux
-
[운영체제 만들기] xxdLinux/development tool 2023. 8. 3. 02:15
글의 참고 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자. - `글의 참조`에서 빨간색 볼드체로 체크된 링크는 이 글을 작성하면 가장 많이 참조한 링크다. 글의 내용 : 파일을 HEX 값으로 읽을 수 있도록 해준다. 파일 시스템 구현 시, 정말 유용하게 많이 사용했다. : xxd -s [시작 줄] -ㅣ [길이] 파일 " xxd -s 0x200 -l 0x40 HDD1.img - HDD1.img의 512바이트(0x200)부터 시작해서 64바이트(0x40) 만큼을 보여준다. 즉, 512..
-
[리눅스 커널] PM - Wakeup events frameworkLinux/kernel 2023. 8. 3. 02:14
글의 참고 - http://www.wowotech.net/pm_subsystem/wakeup_events_framework.html - https://lishiwen4.github.io/linux-driver/PM-wakeup-source - http://www.uwsg.indiana.edu/hypermail/linux/kernel/1202.0/02966.html - https://lwn.net/Articles/416690/ 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자. 글의 내..
-
[LINUX][KERNE][ISSUE] sysfs store() 무한으로 계속 write하는 이슈Linux/kernel 2023. 8. 3. 02:14
원인 - sysfs attribute를 만들고, shell에서 특정 값을 write하는데 쉘에서 응답이 없음. dmesg를 확인해보니, write가 계속 무한 루프를 돌고 있음. 원인 파악 과정 1. 리턴값을 정수 단위에서 아래로 구분. count 값보다 큰 경우 -> 정상 동작 count 보다 엄청나게 큰 사이즈를 테스트 해보지는 않았다. buf 사이즈가 기본 PAGE_SIZE이기 때문에, count에 적당히 큰 값을 더해서 테스트했다. count 값과 같은 경우 -> 정상 동작 count 값보다 작은 경우 -> 에러 발생. 만약 count 값보다 작거나 0 이라면, 무한 루프. 만약 음수를 리턴하면, Errno로 맵핑되는 문자열이 출력된다. 즉, 무한 루프를 돌지 않고 에러 메세지를 출력하고 종료한다..
-
[GIT] - git diff를 통한 patch 파일 생성 및 적용Linux/development tool 2023. 8. 3. 02:13
글의 참고- https://git-scm.com/book/ko/v2/%EB%B6%84%EC%82%B0-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C%EC%9D%98-Git-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0- https://stackoverflow.com/questions/45584131/how-patching-works-in-yocto글의 전제- 밑줄로 작성된 글은 강조 표시를 의미한다.- 그림 출처는 항시 그림 아래에 표시했다.글의 내용- 왜 패치 파일을 사용할까 ?" 왜 패치 파일을 별도로 사용할까? 그냥 소스 코드를 직접 수정하면 안되나? 내가 개인적으로 중요하다고 생각되는 패치 파..
-
Shell scriptLinux/development tool 2023. 7. 10. 02:20
글의 참고 - https://hbase.tistory.com/249 - https://velog.io/@alirz-pixel/linux-bashcompletion 글의 전제 - 밑줄로 작성된 글은 강조 표시를 의미한다. - 그림 출처는 항시 그림 아래에 표시했다. 글의 내용 - 쉘 정수 표현 " 쉘 스크립트에서 정수 표현은 특별한 기호를 사용해야 한다. 예를 들어, 변수 2개를 그냥 더하면, 문자열 2개가 더해지는 것과 같은 효과를 준다. 실제 수학적 연산이 되려면 `$(( ))` 안에 들어와 줘야한다. 그냥 더할 경우, 문자열 합치기가 된다. KERN16_PADD=$(($KERN16_SIZE+$SECTOR_SIZE)) ; 512+2 = 514 KERN16_PADD=$KERN16_SIZE+$SECTOR_..
-
ddLinux/development tool 2023. 6. 10. 14:41
글의 참고 글의 전제 - `운영체제 만들기` 파트에서 퍼온 모든 참조 글들과 그림은 반드시 `이 글과 그림을 소스 코드로 어떻게 구현을 해야할까` 라는 생각으로 정말 심도있게 잠시 멈춰서 생각해봐야 실력이 발전한다. 글의 내용 : dd 유틸리트를 이용하면 간단하게 디스크 드라이브를 이미지를 만들 수 있다. dd if=/dev/zero of=./disk.img bs=512 count=1024 : if는 `input file`의 약자이고, of는 `output file`의 약자이다. 위에 명령어를 통해서 0으로 채워진 0x80000(524288)B 크기의 disk.img 라는 파일이 만들어진다. 이와 같이 입력 파일의 값으로 출력 파일을 만드는게 dd다. 그 사이즈는 bs와 count에 전달된 값을 통해 계..
-
[개발 도구] objdumpLinux/development tool 2023. 6. 10. 02:21
글의 참고 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자. - `글의 참조`에서 빨간색 볼드체로 체크된 링크는 이 글을 작성하면 가장 많이 참조한 링크다. - `운영체제 만들기` 파트에서 퍼온 모든 참조 글들과 그림은 반드시 `이 글과 그림을 소스 코드로 어떻게 구현을 해야할까` 라는 생각으로 정말 심도있게 잠시 멈춰서 생각해봐야 실력이 발전한다. 글의 내용 - 개요 " 리눅스 환경에서 OS 개발시에 디버깅을 위해서 어셈블리 파일을 ELF로 빌드하기 위해 DWARF 정보를 삽입한다..
-
[개발도구] - inline assemblyLinux/development tool 2023. 6. 7. 13:16
글의 참고 - https://en.wikipedia.org/wiki/Inline_assembler - https://en.cppreference.com/w/c/language/asm - https://wiki.osdev.org/Inline_Assembly - https://www.ic.unicamp.br/~celio/mc404-s2-2015/docs/ARM-GCC-Inline-Assembler-Cookbook.pdf 글의 전제 - 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다. - 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자. 글의 내용 - 인..