묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결리눅스 커널의 구조와 원리: 인터럽트 [저자 직강 1부-5]
TRACE32 관련 문의 내용
안녕하세요. 이번 1부- 5강 인터럽트 강의를 듣고 있는 학생입니다. 해당 강의를 들으면서 6. bcmgenet_isr_0 인터럽트 핸들러 디버깅-TRACE32 (Part.1) 를 수강하면서 2-irq-dump 덤프 강의자료로 실습을 진행하는데 TRACE32 의 콜스택이 깨진건지 첨부한 사진과 같이 나옵니다. 처음에는 스택 관련 이슈로 인해서 깨졌다고 생각해서 Crash utility 의 bt -s 명령어 및 log -m 의 출력된 콜스택과 레지스터 셋 정보를 이용해 이전 강의에 들었던 스택 복구를 시도해보았습니다. 하지만 전부 다 콜스택 복구가 안되는것을 확인하여 이것이 어떤 문제인지 궁금해서 질문드립니다. [해당 2-irq-dump를 Load-Dump - Dump1 으로 불러오면 나오는 화면][불러올때 아래에 뜨는 에러메세지]말씀드린 것처럼 Crash utility는 정상동작하며, TRACE 32 만 위와 같이 콜스택이 전부 깨져서 나옵니다.아래는 해당 프로그램을 실행하는 작업환경입니다.Host OS : Window 11감사합니다.
-
미해결리눅스 시스템 프로그래밍
함수 메뉴얼을 보기 위한 단축키
fopen() 과 같은 함수의 메뉴얼을 보기 위해선 어떤 단축키를 이용해야 하나요?
-
해결됨실무에서 꼭 필요한 서버 모니터링(Zabbix)
t2.micro 무료 요금제에서는 사용이 불가합니다.
t2.micro 무료 요금제에서는 사용이 불가합니다.대체할 수 있는게 있을까요??
-
해결됨한국에서 제일 쉬운 리눅스 커널 강의
ftrace를 사용하면서 궁금한 점.
현재까지 ftrace라는건 어떤 함수를 추적하고 그 로그를 볼 수 있구나라는것을 알았고, ftrace로 혼자 분석하고 싶다는 생각이 들었습니다.강의에서 프로세스가 종료될 때 do_exit()같은 함수가 호출된다! 라는것을 전제하고 이것을 ftrace에 등록해서 로그분석을 하고있는데,do_exit()이 호출된다는건 어떻게 알 수 있을까요??
-
미해결개발자라면 알아야 할 리눅스(linux-ubuntu) 기본
설치오류
vmware 설치하고 ubuntu.iso파일 다운로드하여 영상과 같이 진행하였으나 스크린샷 같이 뜨면서 설치가 더이상 진행되지 않습니다. 어떻게 해결해야할지 모르겠습니다
-
해결됨한국에서 제일 쉬운 리눅스 커널 강의
install.txt를 실행하는 이유에 대해서.
라즈베리파이에 OS를 이미 깔아둔상태에서,커널소스 다운 -> 빌드 까지는 왜 하는지 알겠는데install.txt를 왜 해야하는건가요??기존의 라즈베리파이 OS에 다운받고 빌드한 커널을 덮어 씌우는건가요???그렇다면 왜 덮어 씌워야하나요???기존에 깔았던 OS가 라즈비안이기 때문에, 정통 linux로 교체하기 위해서 인가요???
-
미해결리눅스 시스템 디버깅
영상의 실습 환경 설정이 다운로드 받은 것과 조금 다르네요
영상에서 3분 23초 쯤 나오는실습 환경 설정에서는1, 2, 3, 4 로 나뉘어서 설정하는 방법이 나오는데 다운로드 받은 pdf에서는강의자료 공유와 원격 접속, 세개만 있고2 page 뒤에서 다시 5번이라고 나오고 있네요 직접 수정하신 거일수 있는데 혹시나 싶어질문 드립니다.
-
미해결리눅스 시스템 프로그래밍
17분 2초에
17분 2초 쯤printf("%s\n", inbuf);의 출력 결과가 hello, world #1 이고 나머지 데이터가 안 찍힌 이유로 개행이 없다고 설명해 주셨는데이 부분이 조금 애매한 것 같습니다. inbuf 에는 아래와 같이hello, world #1\0hello, world #2\0hello, world #3입력한 데이터가 다 들어있고 널문자까지 있습니다.그걸 printf("%s\n" ...) 출력하다 보니버퍼 중간의 null 을 만나서 문자열 끝으로 인식해서 출력이 종료된고 write 함수로 MSGSIZE 대신 null 문자를 제외한 사이즈 MSGSIZE - 1 로 출력하면printf 가 msg1, msg2, mg3을 다 찍네요null 이 없어서 이상한 문자가 출력되지만요...
-
해결됨리눅스 커널의 구조와 원리: 프로세스 [저자 직강 1부-4]
강의영상 확인요청
섹션 4. 프로세스 주요 동작-유저 프로세스14. 유저 프로세스-생성 과정 13:17 15. 커널 소스 분석-프로세스 생성 13:17 위 두 영상이 동일한 영상 같습니다. 확인 부탁드립니다.감사합니다.
-
해결됨리눅스 시스템 프로그래밍
혹시 고급과정의 경우 하반기 몆월쯤 나올까요?
명강의를 빨리 듣고싶습니다ㅎㅎ..
-
미해결리눅스 커널 해킹. A부터 Z까지
cred 구조체에 __randomize_layout이 적용된건가요?
cred 구조체 소스코드를 elixir를 통해 확인해보니 다음과 같았습니다. (실습 버전인 5.8.5 기준)struct cred { atomic_t usage; #ifdef CONFIG_DEBUG_CREDENTIALS atomic_t subscribers; /* number of processes subscribed */ void *put_addr; unsigned magic; #define CRED_MAGIC 0x43736564 #define CRED_MAGIC_DEAD 0x44656144 #endif kuid_t uid; /* real UID of the task */ kgid_t gid; /* real GID of the task */ kuid_t suid; /* saved UID of the task */ kgid_t sgid; /* saved GID of the task */ kuid_t euid; /* effective UID of the task */ kgid_t egid; /* effective GID of the task */ kuid_t fsuid; /* UID for VFS ops */ kgid_t fsgid; /* GID for VFS ops */ unsigned securebits; /* SUID-less security management */ kernel_cap_t cap_inheritable; /* caps our children can inherit */ kernel_cap_t cap_permitted; /* caps we're permitted */ kernel_cap_t cap_effective; /* caps we can actually use */ kernel_cap_t cap_bset; /* capability bounding set */ kernel_cap_t cap_ambient; /* Ambient capability set */ #ifdef CONFIG_KEYS unsigned char jit_keyring; /* default keyring to attach requested * keys to */ struct key *session_keyring; /* keyring inherited over fork */ struct key *process_keyring; /* keyring private to this process */ struct key *thread_keyring; /* keyring private to this thread */ struct key *request_key_auth; /* assumed request_key authority */ #endif #ifdef CONFIG_SECURITY void *security; /* subjective LSM security */ #endif struct user_struct *user; /* real user ID subscription */ struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */ struct group_info *group_info; /* supplementary groups for euid/fsgid */ /* RCU deletion */ union { int non_rcu; /* Can we skip RCU deletion? */ struct rcu_head rcu; /* RCU deletion hook */ }; } __randomize_layout;이 중 마지막 __randomize_layout 이 뭔지 찾아보니 커널에서 정의한 매크로이고 구조체의 순서를 랜덤화하는 일종의 보호 기법이라는 것을 알았습니다. 실습을 따라가보니 uid, gid, suid, sgid를 순서대로 덮기 때문에 현재 커널에서 이 보호 기법이 적용되지 않았다는 것을 알 수 있었습니다. 이 매크로의 정의 부분은 총 두 부분이고 다음과 같았습니다.#if defined(RANDSTRUCT_PLUGIN) && !defined(__CHECKER__) #define __randomize_layout __attribute__((randomize_layout)) #define __no_randomize_layout __attribute__((no_randomize_layout)) /* This anon struct can add padding, so only enable it under randstruct. */ #define randomized_struct_fields_start struct { #define randomized_struct_fields_end } __randomize_layout; #endif #ifndef __randomize_layout # define __randomize_layout __designated_init #endif첫 번째 부분에서는 flag처럼 보이는 RANDSTRUCT_PLUGIN 과 __CHECKER__ 에 cross reference(?)가 더이상 안돼서 확인은 못했습니다만, 이게 define 되어있으면 __randomize_layout 매크로를 정의하는 것 같아보입니다. 반대로 flag가 켜져있지 않아 첫 번째 부분에서 매크로 선언이 이뤄지지 않으면 두 번째 부분에서 __designated_init 으로 어쨌든 선언은 되는 것 같습니다. 마지막으로 __designated_init 의 선언 부분을 보면 다음과 같습니다.#if __has_attribute(__designated_init__) # define __designated_init __attribute__((__designated_init__)) #else # define __designated_init #endif첨부는 했지만 어떻게 동작하는건지 잘 모르겠어서 여기부터 이해가 안됐습니다... 제 질문은 다음과 같습니다. 구조체 멤버 랜덤화가 적용되어야 할 것 같은데 강의자님께서 일부러 커널을 빌드할 때 소스코드를 수정하신건가요?아니라면 __designated_init__ 이 없기 때문에 빈 매크로가 할당된 것 같은데, 이게 어떤 플래그이며 어떻게 키고 끌 수 있는건가요?커널 소스코드를 확인할 때 RANDSTRUCT_PLUGIN 과 __CHECKER__ 같이 더 이상 cross reference가 불가능한 경우는 어떻게 값을 확인할 수 있나요?정작 __randoimze_layout 이 붙었을 때 어떻게 메모리 레이아웃을 변경하는지에 대한 로직은 못찾았는데, 이런 부분은 어디서 확인할 수 있을까요?강의자님 경험상 대회나 리얼월드 커널에서 구조체 멤버 랜덤화가 잘 적용되어있는 편인가요? 질문이 길어졌는데, 답변주시면 큰 도움이 될 것 같습니다. 감사합니다.
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
컨테이너에서 다른 컨테이너 접속시
[root@cent1 /]# scp -rp /root/SHELL/monitor cent3:/root/SHELLWarning: Permanently added '172.18.1.93' (ECDSA) to the list of known hosts.Load key "/root/.ssh/id_rsa": invalid formatroot@172.18.1.93's password:ssh cent3 "mkdir ~~~~"를 해도 똑같이 password를 입력하라고 뜨네요 ㅠ왜 이런걸까요
-
해결됨시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
실습 주소에 172.18.1.91를 접속하니 접속이 되지 않습니다
질문을 찾아서 제어판 - 네트워크 설정 - 어댑터 설정에서vEthernet(WSL (Hyper-V firewall))이라는 것의 주소를 확인해보니IPv4 주소가 다르게 되어 있어서 그 주소로 했더니 접속이 됩니다 서버 설정은 다른건 하지 않고 docker만으로 실행했습니다.
-
해결됨리눅스 커널 해킹. A부터 Z까지
ppt자료 문의
강의 내용을 복습하며 정리하던 중, 수업 중 사용하신 PPT 자료를 참고하고 싶어 이렇게 문의드립니다.혹시 가능하시다면 해당 PPT자료를 공유해주실 수 있을까요?학습 목적으로만 활용하겠습니다.감사합니다.
-
미해결리눅스 커널의 구조와 원리: 인터럽트 [저자 직강 1부-5]
강의안 자료는 따로 제공이 안 되나요?
안녕하세요1부-4,5,6 강의가 전부다 강의안 제공이 안 되고 있는데추후 업로드 예정이신지 질문 드립니다.(혹시 1부-1 강의도 강의안 업로드 예정이 있나요?)
-
미해결리눅스 입문 - 개념으로 탄탄히!!
터미널 창의 프롬프트가 너무 깁니다. 짧게 하고 싶습니다.
안녕하세요?virtual box 최신 버전에 문제가 있는지 설치가 안되어서vmware로 설치하고 로그인 해 보니aaschool@aaschool-VMware-Virtual-Platform:~/Desktop$라고 프롬프트가 뜹니다. 이 프롬프트 강의에서 처럼 짭게 만들려면 어떻게 해야 하는지요?답변 부탁드립니다.
-
미해결리눅스 쉘 스크립트
강의 순서
안녕하세요! 해당 강의를 수강예정인데이 강의를 먼저 듣는게 좋을까요?리눅스 시스템 프로그래밍 - 이론과 실습 이 강의를 먼저 듣는게 좋을까요?
-
미해결리눅스 소개와 리눅스 커널 Overview [저자직강 1부-1]
혹시 리눅스 커널 강의는 할인 쿠폰 발행하실 생각 없으신가요?
혹시 리눅스 커널 강의는 할인 쿠폰 발행하실 생각 없으신가요? 전체 코스를 다 구매하고 싶은데... ARM 강의는 할인 쿠폰이 제공되고 있어서 질문드립니다!
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
왜 전 오류가 뜨나요??
오타난건 없는것 같고 파일은 그대로 복붙했는데 왜 이런 오류가 뜨는지 잘 모르겠네요..ㅠㅠ
-
미해결리눅스 입문 - 개념으로 탄탄히!!
core 생성이 안됩니다.