목록전체 글 (95)
total_activ
임베디드 디버거의 전설 TRACE32TRACE32(T32)는 임베디드 소프트웨어에서 많이 사용되는 전설적인 디버깅 프로그램이다.색션 정보 보기 : symbol.list.section주소로 코드 정보 파악 : symbol.list.line [주소]전역 변수 확인 : var.view [전역 변수 이름]구조체를 주소로 캐스팅 : var.view %l %t (struct 구조체_이름*)주소어셈블리 코드 보기 : data.list 주소특정 조건에서만 동작하는 코드extern uint32_t raspbian_debug_state;if (raspbian_debug_state == 1004) {//추가하고 싶은 코드 입력}첫번째 명령 줄인 전역변수를 선언하고 if 문내에 수정하고 싶은 코드를 추가하면 전역변수가 100..
ftraceftrace란?printk와 dump_stack을 활용한 커널 디버깅은 한계가 존재한다.함수 호출 흐름을 소스 코드를 수정하지 않고 보고 싶음커널의 세부 실행 정보를 출려해 줬으면 좋겠음1초에 수십번 호출해도 성능 부담 없었음 좋겠음커널 로그도 같이 보고 싶음ftrace 특징인터럽트, 스케줄링, 커널 타이머등의 커널 동작을 상세히 추적함함수 필터를 지정하면 지정된 함수를 호출한 함수와 전체 콜 스택까지 출력함 (코드 수정x)함수를 어느 프로세스가 실행했는지 알 수 있음함수가 실행된 시각 정보를 알수있음ftrace 로그를 활성화해도 시스템 동작에 부하를 거의 주지 않음ftrace 설정 방식ftrace가 제공하는 트레이서를 사용하려면 ftrace 관련 코드가 컨러 이미지에 있어햐한다.즉, ftra..
printk() 함수c프로그래밍의 기초 함수 : main과 printfprintf("Hello Wordn");윈도우 콘솔 프로그램이나 리눅스 시스템 프로그램에서 printf 함수 호출 할시 → 문자 출력 이와 동일하게,printk() 함수 호출 할시 → 커널 로그 출력커널의 내부 함수에서도 에러 정보를 커널 로그로 출력할때 printk()를 주로 사용관련 예제 코드printk("pc: [] lr : [] psr : $081x\n", regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr);레지스터 세트가 커널 로그로 출력된다.%081x : c언의 printf 함수에서 사용하는 형식 지정자, 주어진 값을 8자리의 16진수로 표현하되, 값이 없는 곳은 0으로 채워 오른쪽 정렬하여 ..
디버깅이란?디버깅 :debug와 ing 합성어로 버그를 잡는 과정리눅스 커널 관점의 디버깅 의미 :커널과 드라이버가 정상 작동 할때 자료 구조와 함수 호출 흐름까지 파악하는 과정을 디버깅이라고 함필요 역량 문제 해결 능력 : 커널 디버깅 = 문제 해결 능력커널 학습 능력문제 해결 능력임베디드 및 BSP 개발 도중 직면 가능한 문제부팅 도중 커널 크래시 발생인터럽트 핸들러를 설정했는데 인터럽트 핸들러가 호출되지 않음시스템 응답 속도가 매우 느려짐파일 복사가 안됨위 문제 해결 과정문제 발생 원인 분석+ 원인 분석 방법 : 커널 로그와 메모리 덤프로 함수나 자료구조 분석을 통한 문제 원인 분석 가능 = 커널 디버깅 위의 커널 디버깅 방식에서는 다른 개발자 코드를 접할 가능성이 높음 이유는 디바이스 드라..
라즈베리 파이란라즈베리 파이는 리눅스 개발용 보드이자 소형 컴퓨터이다.장점막강한 커뮤니티 : 쉽게 자료 탐색 가능저렴한 가격간단한 설치최신 리눅스 커널을 지원라즈베리 파이 사전 준비물라즈베리파이USB 연결형 키보드HDMI 케이블충전기마이크로 SD 카드라즈베리 파이 전원 케이블라즈베리 파이 터미널 설정sudo suraspi-configLocalisation Options 클릭en_GB.UTF-8 UTF-8, en_US.UTF-8 UTF-8, ko_kr.UTF-8 UTF-8 체크cd /home/piapt-get updateapt-get upgradeapt-get intall ibusapt-get install ibus-angulapt-get install fonts-unfonts-core1. 라즈베리 파이 ..
커널의 주요 개념리눅스 커널의 메일링 리스트세계최고의 리눅스 커널 블로그https://jake.dothome.co.kr/저자 블로그 및 유튜브https://rousalome.egloos.com/category/Question_Announcementhttps://www.youtube.com/user/schezokim해당 책의 리눅스 커널 소스 버전 기준 : 4.19현재 리눅스 커널 최신 버전 : 6.4 리눅스를 배워야 하는 이유크게 3가지 존재리눅스는 IT 산업 전반의 운영체제다.네트워크, 브라우저, WAS 웹 어플리케이션, 보안 유틸리티 모두 리눅스 기반 환경오픈소스 기반 운영체제리눅스 커널을 배워야 하는 이유임베디드 리눅스, BSP(Board Suport Package) 개발자로 디바이스 드라이버 개발..
Process Explorer프로세스를 관리하는 프로그램실행 중인 프로세스의 파악 및 우선권 변경, 정지, 강제 종료 등의 조치 및 메모리 사용량을 파악녹색 : 프로세스 실행빨간색 : 프로세스 종료분홍색 : 서비스 프로세스파란색 : 사용자 프로세스보라색 : 패킹 이미지 파일무색 : 시스템 영역 프로세스 Integrity LevelUAC와 관련하여 vista 이후 윈도우에서 Intergrity Control 이라는 사용자 권한으로 작동하는 프로세스들의 등급을 나누고 있음 >> 이를 Intergrity LevelUntrusted Level (0) : 대부분 개체에 대한 쓰기 액세스를 차단함Low Level (1) : 대부분의 쓰기 레지스트리 키 및 파일 개체에 대한 액세스 차단Midium Level (2) ..
도커(DOCKER)1. 뉴스 & 요약지금까지 올린 뉴스를 총 집합해서 도커 이미지 취약점을 분석하는 심화된 탐구를 진행했습니다. 이번 뉴스스터디는 논문을 중점적으로 조사해봤습니다.2. 조사한 자료 및 실행과정▶ 전체적인 도커 정보 요약가상황는 os 가상화, 컨테이너 가상화 기술로 나눠집니다.① os 가상화 os 전체를 가상화하여 클라우드상에 완벽히 독립적인 환경에서 서비스를 진행할수 있지만 가상화를 위하여 많은 자원을 필요로 하기 때문에 다소 무거운 편입니다.② 컨테이너 가상화 기술 os 가상화 기술에 비해 가볍고 리소스를 적게 소모하면서도 os 가상화 기술의 장 점인 독립된 서비스 운영환경과 프로세스 격리 등 다양한 장점을 두루 갖추고 있 어 점점 많은 사람들이 서비스 운영에 컨테이너 가상화 기술을 도..