
저는 80년대 후반부터 컴퓨터를 접했습니다(실제로는 3살 정도였습니다). Atari Xl-XE, MS-DOS, Windows 3.1, 95 등을 다 사용했습니다. 그런 다음 외모 때문에 Linux를 사용하기 시작했습니다(예, 알아요.Compiz-FusionLinux를 탐색하는 진짜 이유였습니다.) 이제 내 모든 컴퓨터에 설치되었습니다. 심지어 Windows 10에도 있습니다.
나는 이전에 기계를 처음부터 조립해 본 적이 있으며 언제든지 "MS-DOS"로 부팅할 수 있다는 점을 기억하고 있으며 그것이 나를 궁금하게 만들었습니다.
80년대나 70년대 후반에 유닉스는 어떻게 설치됐나요(저는 아직 살아있지도 않았죠)? 큰 플로피 디스크를 부팅하거나 흑마술이 관련된 것처럼 사소한 일이었나요?
나는 그것에 대한 어떠한 언급도 찾을 수 없고 우리 나라의 사람들은 자유 소프트웨어를 얻지 못하는 일이 발생합니다.
편집하다:
중요한 부분을 빼먹었는데, 애초에 그런 생각을 하지 않았기 때문에 멍청한 기분이 듭니다.
모든 것은 운영 체제는 아니지만 BIOS(내 생각에는 시스템 구성을 위한 매우 최소한의 OS) 및 부팅 시퀀스와 같은 기타 항목과 같은 ROM 메모리에 있는 부팅 시퀀스로 시작됩니다. 이 단계에서는 BIOS에 나열된 장치를 찾은 다음 하나의 장치가 테이프에 있는 것과 같은 부팅 지침에 응답할 때까지 순서대로 반복합니다. 따라서 초기 OS가 필요하지 않으며 Unix를 설치할 수 있습니다.
멍청한 실수는 당신을 먼 길로 데려가지만, 확실히 당신은 더 많은 것을 배울 수 있습니다.
답변1
80년대에 Unix를 설치한 경험은 PDP-11에 있었으며 설치 과정은 실제로 꽤 흥미로웠습니다. 실제로 오늘 밤에 (에뮬레이터로) 몇 년 만에 처음으로 해냈습니다...
PDP-11용 Unix V7은 테이프로 배포되었습니다. 테이프에는 여러 개의 파일이 차례로 포함되어 있었습니다.
- 테이프의 첫 번째 파일은 부트로더였습니다. 두 부분으로 나왔어요. 첫 번째 부분은 부트 블록이었고, 부트로더의 두 번째 부분을 테이프에서 메모리로 읽어들인 다음 제어권을 거기로 전달할 만큼만 알고 있었습니다. 이에 대한 코드는 512바이트 미만이었습니다. 두 번째 부분은 더 크고 몇 가지 다른 유형의 디스크와 테이프에 대한 "독립 실행형 드라이버"가 제거되었으며 테이프나 루트 디렉터리에서 파일을 찾을 수 있을 만큼 Unix 파일 시스템에 대해 충분히 알고 있었습니다. 하드 드라이브의 파일 시스템을 로드하고 실행합니다. 부트로더의 전체 크기(두 부분의 전체 크기)는 약 8K 바이트였습니다.
- 테이프의 두 번째 파일은 독립형
cat
프로그램이었습니다. "독립형"이라고 말하면 운영 체제 없이 베어 메탈에서 직접 실행된다는 의미입니다. 부트로더와 동일한 독립형 장치 드라이버 및 파일 시스템 드라이버를 사용하여 작성되었습니다. 부트로더를 사용하여 이를 로드하고 실행할 수 있습니다. 시작되면 파일을 읽으려는 장치와 읽을 파일을 알려줍니다. 이를 읽고 인쇄한 다음 종료됩니다. 그게 전부입니다. 이것은 유용성이 제한적이었습니다. - 테이프의 세 번째 파일은 테이프에 있는 파일 목록이 포함된 텍스트 파일이었습니다. 거의 아무도 이것을 본 적이 없습니다. 이러한 배포 테이프 중 하나를 사용하고 있다면 그 안에 무엇이 들어 있는지 이미 거의 알고 계실 것입니다.
- 테이프의 네 번째 파일은 독립형
mkfs
프로그램이었습니다. 이는 다른 독립 실행형 프로그램과 동일한 독립 실행형 장치 드라이버 및 파일 시스템 드라이버 라이브러리로 구축되었으며 운영 체제 없이 베어 메탈에서도 실행되었습니다. 부트 로더를 사용하여 이를 로드하고 실행할 수 있으며, 파일 시스템을 만들려는 디스크(및 파티션)와 파일 시스템의 크기를 묻고 초기 파일 시스템 구조를 기록합니다. 당신이 지시한 장치와 파티션. 그러면 종료됩니다. - 테이프의 다섯 번째 파일은 독립형 프로그램이었습니다 (예, 시스템 호출
restor
과 마찬가지로 'e' 없이 철자가 작성되었습니다...). 부트로더를 사용하여 이를 로드하고 실행할 수 있습니다. 다시 말하지만 운영 체제 없이 베어메탈에서 실행되었습니다. 파일 시스템 덤프가 포함된 테이프 파일과 이를 복원할 디스크 파티션을 요청합니다. 그러면 그렇게 될 것입니다. 그러면 종료됩니다.creat()
restor
- 테이프의 여섯 번째 파일은 루트 파일 시스템의 파일 시스템 덤프였습니다.
- 테이프의 일곱 번째 파일은 /usr 파일 시스템의 파일 시스템 덤프였습니다.
그리고 그것이 바로 당신이 얻는 것입니다.
따라서 이 테이프가 있다면 어떻게든 프로세스를 시작해야 했습니다. 일부 PDP-11에는 장치(테이프나 디스크 등)의 첫 번째 블록을 로드하고 점프하는 방법을 알고 있는 부팅 ROM이 있습니다. (그리고 이 테이프의 경우 첫 번째 블록은 나머지 부트 로더를 로드하는 방법을 알고 있는 512바이트 미만의 실행 코드입니다.) 그러나 제가 사용한 첫 번째 PDP-11에는 부트스트랩 ROM이 없었습니다. 머신을 부팅할 때마다 장치의 첫 번째 블록을 로드하고 해당 블록으로 점프하기 위해 부팅 코드를 입력해야 했습니다. 손으로. 바이너리로... 다행히도 꽤 짧았고(예를 들어 TU16 또는 TE16 테이프 드라이브의 첫 번째 블록을 읽고 거기로 점프하는 코드는 6워드, 즉 12바이트에 불과했습니다) 부팅 코드도 있었습니다. 기계에 테이프로 붙인 종이에 적어 두었습니다. 말할 필요도 없이, 우리는 어떤 대가를 치르더라도 시스템을 재부팅할 필요가 없도록 최선을 다했습니다...
따라서 모든 것을 고려하여 시스템을 설치하는 일반적인 프로세스는 다음과 같습니다.
- 소위 "블록 제로 부트 로더"를 메모리에 로드하려면 부트 ROM(또는 손으로 부트 코드 키 입력...)을 사용하고, 이는 나머지 부트 로더를 로드하는 데 사용됩니다.
- 부트 로더를 사용하여 독립 실행형
mkfs
프로그램(테이프의 네 번째 파일)을 로드하고 하드 디스크 파티션에 루트 파일 시스템의 구조를 배치합니다. - 부트 로더를 사용하여 독립 실행형
restor
프로그램(테이프의 다섯 번째 파일)을 로드하고 루트 파일 시스템(테이프의 여섯 번째 파일)의 파일 시스템 덤프를 하드 디스크에 복원합니다. - 부트 로더를 사용하여 하드 드라이브(테이프에서 방금 복원한)의 루트 파일 시스템에 있는 파일에서 Unix 커널을 로드하고 여기에 제어권을 넘깁니다. 이 시점에서 Unix가 실행 중입니다.
- 일반 Unix
mkfs
및restor
명령을 사용하여 하드 디스크의 다른 파티션에 /usr 파일 시스템을 생성하고 /usr 파일 시스템의 파일 시스템 덤프를 방금 준비한 파티션에 복원합니다.
그런 다음 하드 디스크의 첫 번째 디스크 블록에 부팅 코드를 설치하는 것을 제외하면 거의 모든 작업이 완료되었습니다(따라서 시스템을 재부팅할 때마다 부팅 ROM 또는 직접 입력한 부팅 코드를 실행할 수 있음). 몇 가지 시스템 튜닝 항목과 원하는 방식으로 몇 가지 항목을 설정합니다.
이와 같은 절차는 1970년대와 1980년대에 오랫동안 얼마나 많은 Unix 배포판이 설치되었는지를 보여줍니다. Berkeley Unix(4.2BSD 이상)는 매우 유사한 구조와 설치 절차를 갖춘 배포 테이프를 제공했습니다.
PDP-11에 V7 Unix를 설치하는 방법에 대한 Charles Haley와 Dennis Ritchie의 지침을 보려면 해당 지침을 찾을 수 있습니다.여기. 오늘 밤에 이 지침을 따랐는데 제대로 작동합니다. ;-)
답변2
1989년에 제가 했던 첫 번째 작업에서는 3.5인치(약 9cm) 플로피 디스크를 사용하여 Intel 386 PC에 Unix(당시 Kodak 소유의 Interactive)를 설치했습니다.
답변3
내 생각에 당신은 어떻게초기 설치Unix의 작업이 수행되었습니다. 그 시대의 많은 컴퓨터는 Unix를 실행하도록 설계되었으며 하드 디스크나 플로피에 운영 체제가 사전 설치되어 제공되었습니다. 설치는 적절한 콘텐츠가 포함된 디스크를 제공하는 문제일 뿐입니다.
하지만 시스템이 시작될 때 어떤 방법으로 운영 체제를 메모리에 설치합니까?
여기에 예가 있습니다. "Unix PC"라고도 알려진 AT&T 3B1에는 주소 800000-BFFFFFF에 부트스트랩 프로그램이 포함된 ROM이 있습니다. 시스템이 재설정되면 해당 Motoroloa 68010 CPU는 000000-2에서 스택 포인터를 로드하고, 000004-6에서 프로그램 카운터를 로드하고 점프합니다. 재설정하는 동안 하드웨어는 주소 비트 23을 높게 설정하여 ROM을 주 메모리에 효과적으로 매핑하므로 시스템은 실제로 ROM에서 프로그램을 실행합니다. ROM에 있는 해당 프로그램은 다양한 하드웨어 구성 요소를 초기화하고 일부 진단을 실행하며 부팅 블록을 로드하고 실행하여 플로피나 디스크에서 운영 체제를 로드합니다. 부트 블록의 코드는 커널을 로드하고 실행을 시작합니다 init
. 이는 현대 시스템에서도 마찬가지입니다.
(설명서의 자세한 내용은 Philip Pemberton의 거울을 참조하세요.AT&T 3B1 에뮬레이터)
이론적으로 이 지식을 사용하여 컴퓨터와 같은 Unix 이외의 다른 것을 설치할 수 있습니다. 그러나 PC의 BIOS와 같은 하드웨어 추상화 계층이 항상 존재하는 것은 아니었기 때문에 부팅되는 프로그램은 하드웨어와 더욱 긴밀하게 결합되어야 했습니다.
답변4
PC(IIRC)에서는 Interactive Unix 설치가 부팅 플로피를 사용하여 수행되었으며 "실제" 설치는 테이프에서 수행되었습니다. SCSI 카드는 대화형으로 지원되어야 합니다.
HP 워크스테이션에서는 테이프/DAT에서 부팅하고 설치했습니다.