syscalls

한 프로세스에는 비차단 설명자가 있고 다른 프로세스에는 동일한 파일/소켓을 참조하는 차단 설명자가 있을 수 있습니까?
syscalls

한 프로세스에는 비차단 설명자가 있고 다른 프로세스에는 동일한 파일/소켓을 참조하는 차단 설명자가 있을 수 있습니까?

나는 일반 파일보다 소켓에 더 관심이 있지만 기본적으로 한 프로세스가 소켓을 차단으로 "볼" 수 있고 다른 프로세스가 이를 비차단으로 볼 수 있는지 알고 싶습니다. 내 생각에는 그렇습니다. 커널은 시스템 호출에 사용된 옵션을 기반으로 이 모든 것을 처리합니다. 나는 이것이 TCP 소켓보다 Unix 도메인 소켓에 더 가깝다고 생각합니다. 왜냐하면 두 개의 다른 프로세스가 동일한 TCP 소켓을 사용할 수 있다고 생각하지 않기 때문입니다(그러나 틀릴 수도 있습니다). ...

Admin

동일한 프로세스 그룹 ID로 여러 프로세스를 실행하는 방법은 무엇입니까?
syscalls

동일한 프로세스 그룹 ID로 여러 프로세스를 실행하는 방법은 무엇입니까?

나는 killpg 시스템 호출을 사용하는 방법을 배우고 있습니다. 따라서 실험을 위해 동일한 pgid로 두 개의 새로운 프로세스를 시작한 다음 killpg를 사용하여 해당 프로세스를 종료하려고 합니다. 나는 setid에 대해 읽었으므로 다음과 같은 것을 시도했습니다. setsid gedit & firefox & 그러나 gedit와 firefox라는 두 프로세스는 서로 다른 두 개의 pgid로 끝납니다. ...

Admin

원하는 양의 메모리를 읽으려면 process_vm_readv를 사용하십시오.
syscalls

원하는 양의 메모리를 읽으려면 process_vm_readv를 사용하십시오.

process_vm_readv의 경우 Linux 매뉴얼 페이지에는 다음과 같이 명시되어 있습니다. [...] (방지) 단일 원격 iovec 요소에서 스패닝 메모리 페이지(일반적으로 4KiB). (대신 원격 읽기를 두 개의 remote_iov 요소로 분할하고 이를 다시 단일 쓰기 local_iov 항목으로 병합합니다. 첫 번째 읽기 항목은 페이지 경계까지 올라가고 두 번째 읽기 항목은 다음 페이지 경계에서 시작됩니다.) 이것이 왜 문제인지는 이해하지만 문제를 해결하는 방법은 잘 모르겠습니다....

Admin

mmap은 x32 ABI에서 어떻게 작동합니까?
syscalls

mmap은 x32 ABI에서 어떻게 작동합니까?

Linux 5.0-rc5 소스 코드를 살펴보던 중 arch/x86/entry/syscalls/syscall_64.tblx32에 대한 별도의 시스템 호출 번호가 없다는 것을 발견했습니다 mmap. 그렇다면 우리가 사용자 공간에서 x32 ABI를 사용하고 있어 4GiB 이상의 매핑된 주소를 제공하지 않는다는 것을 커널이 어떻게 알 수 있을까요? 또는 일반적으로 주소를 반환할 수 있는 시스템 호출은 우리가 x32를 사용하고 있고 4GiB 이상을 반환하지 않는다는 것을 어떻게 알 수 있습니까? ...

Admin

x86_64에서 Linux 시스템 호출에 32비트 인수를 어떻게 전달해야 합니까?
syscalls

x86_64에서 Linux 시스템 호출에 32비트 인수를 어떻게 전달해야 합니까?

시스템 호출에 uid_t또는 int(파일 설명자용) unsigned int과 같은 일부 32비트 매개변수 또는 일부 16비트 유형이 필요한 경우 64비트 레지스터를 사용하여 이를 어떻게 전달할 수 있습니까? 이 명령어를 사용하기 전에 64비트로 0 확장 또는 부호 확장이 필요합니까 syscall? 원래 64비트 포인터 유형 매개변수가 32비트가 되도록 RAX를 사용하는 경우 __X32_SYSCALL_BIT동일한 64비트 레지스터를 사용하여 매개변수를 전달해야 합니다. 이 경우 주소 매개변수를 0 ...

Admin

seccomp를 사용하여 문자열 값을 비교하는 방법은 무엇입니까?
syscalls

seccomp를 사용하여 문자열 값을 비교하는 방법은 무엇입니까?

일부 Linux 시스템 호출(예 execve: , openat)에는 문자열 유형 매개변수가 있습니다. 그런데 seccomp에서 제공하는 비교 함수는 SCMP_CMP두 포인터를 비교하는 것 같습니다. 그렇다면 프로세스가 특정 디렉터리에 열 수 있는 파일을 제한하기 위해 seccomp를 어떻게 사용합니까? 사용자에게 보편적인 비교 기능을 제공할 수 있는 방법이 있습니까? ...

Admin

프로그램을 실행하고 시스템 호출을 가로채서 리디렉션합니다.
syscalls

프로그램을 실행하고 시스템 호출을 가로채서 리디렉션합니다.

프로그램을 실행하고 싶은데, 프로그램이 특정 파일을 읽으려고 할 때 내가 선택한 다른 파일을 읽도록 하고 싶습니다. 특히, 프로그램이 구성 파일을 읽으려고 시도하지만 설계가 잘못되어 사용자가 구성 파일의 위치를 ​​지정할 수 없습니다. 또한 프로그램이 읽으려고 하는 위치에서 파일을 편집할 권한도 없습니다. 나는 그것이 가능하다는 것을 안다발각프로그램은 만들어진 시스템 호출을 사용하며 strace, open()에서 프로그램을 실행하면 프로그램이 만든 시스템 호출만 볼 수 있습니다 strace. 어떤...

Admin

Linux의 각 시스템 호출에는 최대 1개의 함수가 필요합니까?
syscalls

Linux의 각 시스템 호출에는 최대 1개의 함수가 필요합니까?

Linux에서 함수와 시스템 호출 간의 관계를 이해하려고 합니다. 내가 아는 한, 프로세스의 기능은 프로세스가 시스템 호출을 호출할 때만 고려됩니다. 특정 매개변수를 사용하여 특정 시스템 호출이 호출되면 프로세스에 특정 기능이 있는 경우에만 시스템 호출이 성공합니다. 특정 매개변수가 있는 특정 시스템 호출의 경우 성공하려면 하나의 함수만 필요합니까? 아니면 특정(또는 임의의) 매개변수 세트를 사용하여 호출할 때 특정 시스템 호출에 여러 기능이 필요한가요? ...

Admin

명령 앞에 bash stat() 및 access()가 너무 많습니다. 정상인가요?
syscalls

명령 앞에 bash stat() 및 access()가 너무 많습니다. 정상인가요?

실행하도록 지시된 셸 에서 실행하면 strace실제 바이너리가 실행되기 전에 광범위한 통계를 보여주는 다음 출력이 제공됩니다.bashmkdirmkdir BASH$> strace -f sh -c "bash -c \"mkdir /tmp\" 2>&1 | nl | grep -e "execve\|stat\|access" [.....] 2766 [pid 17371] stat(".", {st_mode=S_IFDIR|0750, st_size=17262, ...}) = 0 2767 [...

Admin

커널이 SSE/AVX 레지스터와 명령어를 사용할 수 없는 이유는 무엇입니까?
syscalls

커널이 SSE/AVX 레지스터와 명령어를 사용할 수 없는 이유는 무엇입니까?

이 StackOverflow 기사에는 다음이 있습니다., 일부 환경에서는 특정 명령어나 특정 레지스터 사용에 제한이 있습니다. 예를 들어,Linux 커널에서는 SSE/AVX 또는 FP 레지스터가 일반적으로 허용되지 않습니다.따라서 대부분의 최적화된 memcpy 변형은 SSE 또는 AVX 레지스터에 의존하고 x86에서 일반 mov 기반 64비트 복사본을 사용하기 때문에 사용할 수 없습니다. 이러한 플랫폼의 경우 memcpy 최적화로 인한 대부분의 성능 이점은 SIMD 코드의 제한을 깨지 않고 r...

Admin

직렬 포트의 write()가 데이터 전송을 완료한 시기 이해
syscalls

직렬 포트의 write()가 데이터 전송을 완료한 시기 이해

사용자 공간에서 직렬 포트에 쓰는 것과 IO 핀 값을 동기화해야 합니다. (아직 커널 공간에서는 그렇게 할 수 없기 때문입니다.다른 문제). 내 코드(오류 검사 생략)는 다음과 같습니다. char buf[3] = {'U','U','U'}; int fd = open("/dev/ttyS1", O_RDWR | O_NOCTTY); // supposed to be blocking // fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) & ~O_NONBLOCK); <-- make...

Admin

스트레스
syscalls

스트레스

이 질문에는 이미 답변이 있습니다.: ...

Admin