[리눅스] tgid와 pid에 대해서...
By Guillermo Austin Kim | 2018년 9월 17일 |
예전 커널부터 리눅스는 태스크 마다, tgid 와 pid 멤버가 있었습니다. tgid 는 thread group id 을 나타내고, (posix.1 에서 정의하는 프로세스)pid 는 thread id 를 나타냅니다, 예전에 모든 스레드는, tgid 와 pid 가 같았습니다. 새로운 커널에서는 leader thread 인 경우만, tgid 와 pid 가 같고, child thread 인 경우는 tgid 와 pid 는 다릅니다. getpid 를 호출하면 tgid 를 돌려주므로, 같은 thread group 인 경우 다 같습니다.pid 를 알고 싶으면, sys_gettid() 커널 함수를 호출하면 되고, child thread 에 signal 을 보내고 싶으면, sys_tkill() 커널 함수를 호출하면
[라즈베리파이] jessie 에 glibc 2.21 사용 환경
By 지훈현서 | 2022년 1월 23일 |
일을 하다보면 다양한 환경에서 여러 경험을 하게 됩니다.이번에 정확한 Target Machine 은 아니지만, 가장 유사한 라즈베리 환경에라즈비언(레즈비언이라는 단어와 유사해서 그런지 최근에 라즈베리OS로 이름이 바뀌었네요)jessie 에 glibc 2.21 환경에서 테스트를 해야할 필요가 생겼습니다. 그래서 약간의 삽질을 정리해 둡니다. 2017-08-16-raspbian-stretch : GLIBC 2.24 * 2017-07-05-raspbian-jessie : GLIBC 2.19 ==> 2.212017-03-02-raspbian-jessie : GLIBC 2.19 2017년에 jessie 버전까지 2.19 GLIBC를 지원했으나2017년 stretch 로 업그레이드 되면서 2.24로 뛰었
리눅스에서 명령어로 모니터를 강제로 끄기
By 반달가면 | 2021년 3월 8일 |
간단한 내용이지만 꽤 요긴한 경우가 있어서 정리해 두기로. 리눅스 데스크탑 환경에서 명령어를 통해서 모니터를 꺼두는 방법이다. 일반 PC에서는 모니터에 전원 버튼을 누르면 간단하겠지만 노트북에서 모니터를 끌 필요가 있을 때 사용할 수 있다. 우선 연결되어 있는 모니터의 식별자를 파악한다. 터미널창에서 아래와 같이 작업. # 디스플레이 정보 출력 xrandr Screen 0: minimum 320 x 200, ... eDP connected primary... ... HDMI-A-0 disconnected ... 위의 출력 예시의 경우 2개의 디스플레이 출력이 있음을 볼 수 있다. 하나는 "eDP"로 현재 사용중(connected)이고, 나머지 하나는 "HDMI-A-0"이며 연결
Reboot - Kernel Rebooting(커널 리부팅) Sequence
By Guillermo Austin Kim | 2017년 12월 29일 |
보통 시스템이 리부팅될 때 동작에 대해 상세히 다룬 글이 없는 것 같아요.그래서 유저 스페이스에서 reboot 시스템 콜을 수행하면 어떤 흐름으로 시스템이 리셋되는지 살펴볼께요. 가끔 시스템이 리부팅하는 과정에서 락업이나 커널 크래시가 발생하거든요. 이럴 때 어떤 흐름으로 리부팅 되는지에 대한 정보를 알면 어느 포인트에서 디버깅을 해야 할 지 빨리 파악할 수 있어요. sys_reboot이란 함수는 아래 코드로 정의되어 있구요. kernel_restart() 함수가 호출되요. SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, void __user *, arg){ struct pid_namespace *pid_ns = task_act