UNIX 단일 사용자 모드와 다중 사용자 모드 구별은 언제 처음 도입되었습니까?

UNIX 단일 사용자 모드와 다중 사용자 모드 구별은 언제 처음 도입되었습니까?

실제로는 아니더라도 오늘날 UNIX와 유사한 모든 운영 체제는 다중 사용자 모드와 단일 사용자 모드를 구분합니다. 단일 사용자 모드는 일반적으로 시스템이 정상적으로 실행되는 동안에는 서비스 세트가 축소된 경우에도 수행할 수 없는 낮은 수준의 시스템 유지 관리를 위해 고안되었습니다(종종 오프라인으로 수행해야 하는 파일 시스템 유지 관리).

그러나 단일 사용자 모드와 다중 사용자 모드를 실제로 구별하려면 누군가 첫 번째 코드를 작성해야 했습니다.

다중 사용자 모드가 단일 사용자 모드 다음에 나온 것으로 의심됩니다. 왜냐하면 다중 사용자 모드가 더 많은 작업을 수행하고 처음에는 단일 사용자 모드에서 시스템을 시작한 다음 나중에 다중 사용자 모드로 전환하는 것이 합리적이기 때문입니다. 적어도 Linux에서는 어떻게 작동합니까? 예를 init=/bin/bash들어 전달한 다음 효과적으로 init다중 사용자 모드로 전환하면 알 수 있듯이 커널이 "단일 사용자" 모드에서 작동합니다. 그러나 내 질문은 다음과 같습니다.언제, 어떤 변형/버전이 처음으로 만들어졌습니까?

답변1

유닉스는 처음부터, 즉 1971년 버전 1이 출시된 이후부터 이러한 구별을 해왔습니다.

시스템이 다중 사용자 모드로 부팅 중이었습니다(즉, 사용자가 사용 가능한 직렬 인터페이스에 연결되어 있었지만 tty0tty tty5를 4개 더 추가하도록 규정되었습니다).

유닉스 v1 매뉴얼섹션 4, tty페이지에 대한 상태:

By appropriate console switch settings, it is possible to
cause UNIX to come up as a single—user system with I/O on
this device.

이 첫 번째 Unix 릴리스에서는 각 직렬 라인에 대한 로그인 프로세스를 생성하는 작업이 하드코딩되어 init 프로세스 자체에 의해 수행되었습니다. 사용할 모드 선택은 부팅하기 전에 수행되었으며 다중 사용자 모드로의 전환은 스위치 설정을 수정하고 단일 사용자 모드 셸을 종료하여 수행되었습니다.

나중에 Unix 버전 7(1979)에서는 하드웨어 스위치 대신 시스템이 먼저 단일 사용자 모드로 부팅되었고 단일 사용자 셸이 종료되면 다중 사용자 모드로 전환되었습니다.

나중에 System III(1981)에서 이 inittab파일이 도입되었습니다. 이를 통해 여러 실행 수준을 더 잘 정의 및 구성하고 사용할 수준을 선택할 수 있었습니다. 실행 수준 1은 단일 사용자이고 실행 수준 2는 다중 사용자였습니다. inittab 파일이 없으면 시스템은 단일 사용자 모드로 부팅됩니다.

답변2

원래 init는 단일 사용자 모드에서 콘솔에 쉘을 불러오고 해당 쉘이 종료되면 나머지 파일 시스템을 마운트하고 시작하는 것과 함께 직렬 포트에 로그인(실제로는 getty) 프로그램을 불러옵니다. 그때 실행되도록 구성된 데몬이 무엇이든.

이것은 모두 /etc/inittab의 항목에 의해 제어되었습니다.

이 모든 것은 1970년대 초 유닉스의 PDP-11 버전에 존재했고, 나는 그 이전에도 믿었습니다.

물론 세부사항은 끝이 없지만 그게 핵심입니다.

답변3

single user대라는 용어를 사용하는 가장 가능성 있는 이유 multi user는 부팅 직후 UNIX에 읽기 전용으로 마운트된 루트 파일 시스템만 있었기 때문입니다.

다음으로 수행된 작업은 루트 파일 시스템(약 1MB)을 확인하고 읽기/쓰기로 다시 마운트하는 것이었습니다.

그런 다음 /usr파일 시스템을 확인하고 마운트했습니다.

사용자는 마운트된 후에만 로그인이 가능하므로 /usr/유닉스가 다중 사용자 환경을 지원할 수 있게 된 시점이다.

관련 정보