글쎄요, 저는 80년대 후반부터 컴퓨터를 접해왔습니다(실제로 저는 3살 정도였습니다). 다양한 운영 체제를 사용해 보았습니다: Atari Xl-XE, MS-DOS, Windows 3.1, 95 등. 그런 다음 Linux의 외관 때문에 Linux를 사용하기 시작합니다(예, 알고 있습니다.복합융합Linux를 탐색하는 진짜 이유입니다) 이제 내 모든 컴퓨터에 설치됩니다. 심지어 Windows 10에도 있었습니다.
나는 이전에 기계를 처음부터 만들어 본 적이 있으며 항상 "MS-DOS"로 부팅할 수 있다는 것이 제가 기억하는 것입니다. 이것이 나를 궁금하게 만들었습니다.
80년대나 70년대 후반에 유닉스는 어떻게 설치됐나요(저는 아직 살아있지도 않았죠)? 큰 플로피 디스크를 부팅하거나 흑마술을 포함하는 것만큼 작은 일입니까?
우연히도 나는 그것에 대한 어떤 참고 자료도 찾을 수 없고, 우리나라 사람들은 자유 소프트웨어를 이해하지 못합니다.
편집하다:
중요한 부분을 빼먹었고 애초에 이 부분을 고려하지 않았기 때문에 제가 바보 같다는 생각이 듭니다.
모든 것은 부팅 순서로 시작됩니다. 부팅 순서는 OS가 아니라 BIOS(제 생각에는 시스템 구성을 위한 매우 최소한의 OS입니다)와 같은 ROM 메모리 및 부팅 순서와 같은 기타 항목입니다. 이 단계에서는 BIOS에 나열된 장치를 찾아 테이프의 장치처럼 부팅 명령에 응답할 때까지 순차적으로 반복합니다. 따라서 초기 운영 체제가 필요하지 않으며 Unix를 설치할 수 있습니다.
어리석은 실수는 당신에게 큰 도움이 될 것이지만, 당신은 확실히 더 많은 것을 배울 것입니다.
답변1
1980년대에 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년대 오랫동안 많은 유닉스 배포판에는 이러한 프로그램이 설치되어 있었습니다. Berkeley Unix(4.2BSD 이상)는 매우 유사한 구조와 설치 프로세스를 갖춘 배포 테이프를 제공합니다.
PDP-11에 V7 Unix를 설치하는 방법에 대한 Charles Haley와 Dennis Ritchie의 지침을 보려면 여기에서 찾을 수 있습니다.여기. 나는 오늘 밤 이 지침을 따랐고 훌륭하게 작동했습니다. ;-)
답변2
1989년에 처음 직장에서 우리는 3.5인치(약 9cm) 플로피 디스크를 사용하여 Intel 386 PC에 Unix(대화형, 당시 Kodak 소유)를 설치했습니다.
답변3
내 생각엔 당신이 방법을 묻고 있는 것 같아요초기 설치유닉스 구현. 그 시대의 많은 컴퓨터는 Unix를 실행하도록 설계되었으며 운영 체제는 하드 드라이브나 플로피 디스크에 사전 설치되어 있었습니다. 설치는 올바른 콘텐츠가 포함된 디스크를 제공하기만 하면 됩니다.
하지만 시스템이 시작될 때 운영 체제가 메모리에 어떻게 설치되는지 궁금할 수도 있습니다.
여기에 예가 있습니다. "Unix PC"라고도 알려진 AT&T 3B1에는 주소 800000-BFFFFF에 부트로더가 포함된 ROM이 있습니다. 시스템이 재설정되면 해당 Motoroloa 68010 CPU는 000000-2에서 스택 포인터를 로드하고 000004-6에서 프로그램 카운터를 로드하고 점프합니다. 재설정하는 동안 하드웨어는 주소 비트 23을 하이로 설정하여 ROM을 주 메모리에 효과적으로 매핑하므로 시스템은 실제로 ROM에서 프로그램을 실행합니다. ROM의 프로그램은 다양한 하드웨어 구성 요소를 초기화하고, 일부 진단 프로그램을 실행하며, 부팅 블록을 로드하고 실행하여 플로피나 디스크에서 운영 체제를 로드합니다. 부트 블록의 코드는 init
최신 시스템과 마찬가지로 커널을 로드하고 실행을 시작합니다 .
(브로슈어에 대한 자세한 내용은 Philip Pemberton의 Mirror를 참조하세요.AT&T 3B1 에뮬레이터)
이론적으로는 이 지식을 사용하여 예를 들어 컴퓨터에 Unix가 아닌 다른 것을 설치할 수 있습니다. 그러나 PC의 BIOS와 같은 하드웨어 추상화 계층이 항상 존재하는 것은 아니므로 실행된 프로그램은 하드웨어와 더욱 긴밀하게 결합되어야 합니다.
답변4
PC(IIRC)에서는 플로피 디스크로 부팅한 후 테이프에서 "실제" 설치를 완료하면 Interactive Unix가 설치됩니다. SCSI 카드는 대화형으로 지원되어야 합니다.
HP 워크스테이션에서는 테이프/DAT에서 부팅하고 설치합니다.