함수 메뉴얼을 보기 위한 단축키
미해결
리눅스 시스템 프로그래밍
fopen() 과 같은 함수의 메뉴얼을 보기 위해선 어떤 단축키를 이용해야 하나요?
- linux
- 운영체제
- linux-kernel
- ipc
- pthread
- system-programming
172만명의 커뮤니티!! 함께 토론해봐요.
미해결
리눅스 시스템 프로그래밍
fopen() 과 같은 함수의 메뉴얼을 보기 위해선 어떤 단축키를 이용해야 하나요?
해결됨
실무에서 꼭 필요한 서버 모니터링(Zabbix)
t2.micro 무료 요금제에서는 사용이 불가합니다. 대체할 수 있는게 있을까요??
해결됨
한국에서 제일 쉬운 리눅스 커널 강의
현재까지 ftrace라는건 어떤 함수를 추적하고 그 로그를 볼 수 있구나라는것을 알았고, ftrace로 혼자 분석하고 싶다는 생각이 들었습니다. 강의에서 프로세스가 종료될 때 do_exit()같은 함수가 호출된다! 라는것을 전제하고 이것을 ftrace에 등록해서 로그분석을 하고있는데, do_exit()이 호출된다는건 어떻게 알 수 있을까요??
미해결
개발자라면 알아야 할 리눅스(linux-ubuntu) 기본
vmware 설치하고 ubuntu.iso파일 다운로드하여 영상과 같이 진행하였으나 스크린샷 같이 뜨면서 설치가 더이상 진행되지 않습니다. 어떻게 해결해야할지 모르겠습니다
해결됨
한국에서 제일 쉬운 리눅스 커널 강의
라즈베리파이에 OS를 이미 깔아둔상태에서, 커널소스 다운 -> 빌드 까지는 왜 하는지 알겠는데 install.txt를 왜 해야하는건가요?? 기존의 라즈베리파이 OS에 다운받고 빌드한 커널을 덮어 씌우는건가요??? 그렇다면 왜 덮어 씌워야하나요??? 기존에 깔았던 OS가 라즈비안이기 때문에, 정통 linux로 교체하기 위해서 인가요???
미해결
리눅스 시스템 디버깅
영상에서 3분 23초 쯤 나오는 실습 환경 설정에서는 1, 2, 3, 4 로 나뉘어서 설정하는 방법이 나오는데 다운로드 받은 pdf에서는 강의자료 공유와 원격 접속, 세개만 있고 2 page 뒤에서 다시 5번이라고 나오고 있네요 직접 수정하신 거일수 있는데 혹시나 싶어 질문 드립니다.
미해결
리눅스 시스템 프로그래밍
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 구조체 소스코드를 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/SHELL Warning: Permanently added '172.18.1.93' (ECDSA) to the list of known hosts. Load key "/root/.ssh/id_rsa": invalid format root@172.18.1.93's password: ssh cent3 "mkdir ~~~~"를 해도 똑같이 password를 입력하라고 뜨네요 ㅠ 왜 이런걸까요
해결됨
시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
질문을 찾아서 제어판 - 네트워크 설정 - 어댑터 설정에서 vEthernet(WSL (Hyper-V firewall))이라는 것의 주소를 확인해보니 IPv4 주소가 다르게 되어 있어서 그 주소로 했더니 접속이 됩니다 서버 설정은 다른건 하지 않고 docker만으로 실행했습니다.
해결됨
리눅스 커널 해킹. A부터 Z까지
강의 내용을 복습하며 정리하던 중, 수업 중 사용하신 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]
오타난건 없는것 같고 파일은 그대로 복붙했는데 왜 이런 오류가 뜨는지 잘 모르겠네요..ㅠㅠ
미해결
리눅스 입문 - 개념으로 탄탄히!!
(사진)
미해결
리눅스 입문 - 개념으로 탄탄히!!
(사진)