[unix] mknod 명령은 무엇에 사용됩니까?

방금 Ubuntu를 기본 OS로 사용하기 시작했고하지 말아야 할 일에 대해 배우고 과거 사람들이 저지른 나쁜 일에 대해 배우고 싶었습니다. 나는 유닉스와 리눅스 시스템 관리자 가 새로운 곳에서 자신의 시스템에서했던 공포 이야기에 대해이 이메일을 보았습니다 . 그들 중 많은 사람들이 mknod 명령을 사용하여 문제를 해결하고 문제를 해결했습니다. 나는이 명령에 대해 들어 본 적이 없으며 Ubuntu의 매뉴얼 페이지는별로 도움이되지 않습니다. 그래서 제 질문은,이 명령이 무엇에 사용되는지, 그리고 일상적인 사용에 유용한 예제는 무엇입니까?



답변

mknod원래 캐릭터를 생성하고 채우는 장치를 차단하는 데 사용되었습니다 /dev/. 요즘 같은 소프트웨어 udev는 커널이 해당 하드웨어를 감지했을 때 가상 파일 시스템에서 장치 노드를 자동으로 생성하고 제거하지만 원래 /dev/설치 중에 채워진 디렉토리 일뿐 입니다.

따라서 거의 완전한 재난이 발생하면 /dev가상 파일 시스템이로드 및 / 또는 급격히 udev실패하지 않으면 mknod최소한 초보적인 장치 트리를 다시 채워서 무언가를 백업 할 수 있습니다 …하지만 그래, sysadmin 공포 이야기 시간. 개인적으로는 복구 용 USB 스틱 또는 CD를 권장합니다.

명명 된 파이프를 만드는 것 외에도 최종 사용자가 자신에게 관심을 가질 필요가 있고 심지어 ‘일일 사용’의 정의를 확장하는 데 사용할 수있는 일일 사용을 생각할 수 없습니다.


답변

명명 된 파이프를 만들 수 있습니다.

나는 그것을 하나의 프로그램과 함께 사용하고 다른 하나는 그것에 쓰기 위해 사용합니다.

프로세스간에보다 쉽게 ​​통신 할 수 있습니다.

그렇지 않으면 존재하지 않는 장치에 대한 장치 파일을 만들 수 있습니다.

또한 : http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds3/mknod.htm


답변

Oracle ASM 디스크 그룹을 생성하기 위해 원시 장치에서 작업하는 Oracle DBA로서 정기적으로 mknod장치를 연결 하는 데 사용 합니다.

위의 답변은 우리가 시스템 관리자가 아니기 때문에 매우 도움이되었습니다. 스토리지 관리자의 관점에서는 사용하기가 드물지만 mknodOracle ASM 관점에서는 일반적으로 사용 되는 경우가 드물다고 지적했습니다. (누군가 우리를 위해 더 나은 방법을 생각 해낼 수 있습니까?)


답변

IMHO, 명명 된 파이프를 만들더라도 mkfifo 명령은 mknod보다 낫습니다. 하나는 이름 자체를 설명하는 것입니다. 둘째, -m 옵션을 사용하여 umask 설정을 무시할 수 있습니다.


답변

“mknod”명령은 AT & T에 의해 Unix ™ 버전 4의 라이센스 사용자에게 릴리스되었습니다. 나는 사본을 얻기 위해 시간과 돈을 소비하는 것이 가치가 있다고 당신에게 추천 할 것입니다.

Bell System Technical Journal, 57 : 6. 1978 년 7 월 -8 월 pp 1905-1929. 유닉스 타임 쉐어링 시스템. (리치, DM; 톰슨, 케이.)

이 문제, 특히이 기사에서는 Unix ™)와 같은 우아하고 컴팩트하며 빠르고 안정적이며 안전하며 다양한 운영 체제를 구축 할 수있는 몇 가지 기본 개념을 이해하게 될 것입니다. 현재 사용 가능한 다양한 시스템은 여전히 ​​다재다능합니다 😉

여기서 몇 가지를 언급하려고합니다.

1) setuid 및 setgid 비트 및 상기 비트의 사용으로 사용자를 신뢰할 수있는 도메인과 신뢰할 수없는 권한 도메인으로 분리하는 방법 홉은 신뢰할 수있는 사용자가 시스템에 “# cd /; rm -rf * .o”에서는 권한의 부적절한 사용과“파괴 공간”을 모두 확인하십시오. 또한 인용 문구가있는 문장의 끝 부분은 마침표와 닫는 인용 부호의 순서를 나타냅니다. 영어 문법은 짜증 난다 (fm). dmr과 ken은 semnal 특허를 대중에게 기증했습니다.

2) 파일과 동일한 네임 스페이스를 통한 장치 액세스 여기에 작은 도구의 단순한 우아함이 다른 간단한 도구와 결합되어 설립자가 생각하지 않은 활동을 수행하는 곳이 강력 해집니다.

3) 데이터 공간의 파일은 문자열입니다. 구조는 프로그램 공간의 프로그램에 의해 부과되며 복잡한 Swiss-Army-Knife 프로그램과 밀접한 관련이 없습니다. Apple (R), Microsoft (R) 및 IBM (R)은 BSTJ를 읽는 제품이 많을수록 더 나은 제품을 보유했을 수 있습니다.

4) stdin, stdout, stderr.

5) 쉘, 해석 명령 프로세서, 간단한 도구를 쉽게 구성 할 수 있습니다.

6) 내부 루프의 코드 만 최적화하고 제한된 시간과 비용을 계산하십시오.

7) 언어 번역 프로세서에 i / o 구문을 포함시키지 마십시오.

C. <포트란

8) 키스.

9)“MACRO로 작성된 작은 도구를 사용하여 구현 된 RSX-11D에 대한 시간 공유 확장 기능, 나보다 다른 방법보다 좋은 실시간 시스템에 대한 다중 사용자 시간 공유 ayaeem 시스템 확장을 구현하는 것이 더 쉽습니다. unavoidat, 그렇지 않으면 더 높은 수준의 언어 pr 스크립트가 꽤 좋았을 때, 248k 바이트 PDP-11 // 45에 16 명의 사용자 (나머지 코어 인 16k 솔리드 스테이트 메모리). FOCAL, BASIC, FORTRAN IV, C, MACRO-11, 링크 편집, 프로그램 실행, 배치, 대화식 및 LAB-11 및 A / D에 대한 독창적 인 맞춤형 인터페이스를 사용하여 여러 과학 실험의 제어 / 데이터 수집을 통한 동시 프로그램 개발, D / A, 고해상도 클록, …

9600baud CRT 또는 120cps 프린터 30cps DECwriter로 자극적 인 지연 편집이 관찰되지 않습니다. 300 lpm 프린터가 장착 된 약간 거친 스타카토. RJE 용 UT200 및 2780 RSX-11M, RSX-11M +, IAS 및 초기 버전의 VMS보다 Fastesr 프로그램 개발

대기열로 구현 된 우선 순위 연결 ATL의 행복한 특성을 사용하여 실시간 작업으로 구현 된 매우 간단한 시간 공유 스케줄러입니다.

요즘 유닉스 종류는 매우 빠르지 만 CPU가 3 초 안에 무한 루프를 할 수 있기 때문입니다. TFC.


답변