서버 운영 체제의 첫 번째 선택으로 가장 큰 시장 점유율을 차지했지만 최근 WINDOWS SERVER 및 Linux 와의 경쟁에서 패했습니다.
다음은 유닉스 코드입니다. 코드에 따르면 유닉스 워크플로우를 잘 이해할 수 있습니다.
1. 주 페이지
# "head.h" 포함
# include "blockinodesuperblock.h"
#' initial.h' 포함
#' userop.h' 포함
# "file.h" 포함
# "dir.h" 포함
# "command.h" 포함
# "chsome.h" 포함
//////////////////////////////////
Void main ()
{
Control.open("control.txt ",IOs:: in | IOs:: out | IOs:: nocreate);
Int I;;
컨트롤>> 나;
Control.close ();
만약! =0)// 0 이 아니면 초기화됩니다.
{
Initial ();
}
Control.open("control.txt ",IOs:: in | IOs:: out | IOs:: nocreate);
Control.seekp (0);
제어<& lt0; //기본값은 초기화가 없는 마지막 시간부터 계속하는 것입니다.
Control.close ();
Strcpy(curname, "root"); //현재 디렉토리 파일 이름은 루트입니다.
로드 [0] = 0; //현재 디렉토리 경로 (루트 디렉토리에서 여기까지 노드 번호 저장)
Num =1; Road 의 마지막 [num- 1] 은 현재 카탈로그 파일 I 의 노드 번호입니다.
Cout & lt& lt "시스템에 로그인하십시오. \ n;
그리고 (! 로그인 ()//로그인할 때까지.
Cout & lt& lt "가 잘못되었습니다! ! ! \ n ";;
Cout & lt& lt "로그인 성공"<& ltendl
Cout & lt& lt“* * * * * * 환영 "< & ltauser & lt<" * * * * * ";
Readsuper ();
Getcommand (); //명령 구문 분석 함수
Writesuper ();
}
2.blockinodesuperblock.h
//////////////////////////////////
Int ialloc()// 노드 번호를 반환하는 I 노드를 요청합니다. 그렇지 않으면-1 을 반환합니다.
{
If (superblock.fiptr > 0)
{
Inttemp = superblock.fistack [80-superblock.fiptr]; //현재 사용 가능
Superblock.fistack [80-superblock.fiptr] =-1;
Superblock.fiptr-;
반환 온도
}
리턴-1;
}
//////////////////////////////////
//////////////////////////////////
Void ifree(int index)// 노드 번호를 지정하고 I 노드를 재확보합니다.
{
Disk.open("disk.txt ",IOs:: in | IOs:: out | IOs:: no create); //노드 지우기
Disk.seekp (514+64 * index+2 * (인덱스/8));
디스크<& ltsetw(64)& lt; < & lt'';
Disk.close ();
For (int I = 80-superblock.fiptr; 나 & lt80; I++)// 노드 번호 적절한 위치를 찾아 유휴 노드 번호 스택을 삽입합니다.
{
If (superblock.fi stack < 색인)//앞쪽 위치보다 한 자리 작습니다.
{
Superblock.fistack [I-1] = superblock.fistack;
}
Else// 그보다 큰 첫 번째 노드 번호 앞에 옵니다.
{
Superblock.fistack [I-1] = index;
깨뜨리다
}
}
Superblock.fiptr++;
}
//////////////////////////////////
//////////////////////////////////
/* 그룹 연결 방법 */
Int balloc()// 블록 요청, 블록 번호 반환 : 그렇지 않으면-1 을 반환합니다.
{
Inttemp = superblock.fbstack [10-superblock.fbptr];
If (superblock.fbptr = =1)//예 스택 맨 아래 = => 이것은 레코드 디스크 블록입니다
{
//는 마지막으로 기록된 디스크 블록의 마지막 번호이며 0 (예약 하단 할당 실패) 입니다.
다음 경우 (온도 ==0)
{
리턴-1;
}
Superblock.fbstack [10-superblock.fbptr] =-1;
Superblock.fbptr = 0;
//디스크 블록의 내용이 스택으로 읽혀집니다
For(int I = 0;; 나< 10; I++)
{
Int id, num = 0;;
Disk.open("disk.txt ",IOs:: in | IOs:: out | IOs:: no create);
//먼저 디스크 블록 수 num (최대 10) 을 계산하면 최종 디스크 블록 수가 10 보다 작을 수 있습니다.
Disk.seekg (514 * temp);
For(int I = 0;; 나< 10; I++)
{
디스크>& gtid;;
Num++;+;
If (id = = 0) break;
}
Disk.seekg (514 * temp); //디스크 블록의 내용이 스택으로 읽혀집니다
For (int j =10-num; J< 10; J++)
{
디스크>& gtid;;
Superblock.fb stack [j] = id;
}
Superblock.fbptr = num
Disk.close ();
}
Disk.open("disk.txt ",IOs:: in | IOs:: out | IOs:: no create); //복구 트레이를 비웁니다.
Disk.seekp (514 * temp);
디스크< & ltsetw (512) < & lt'';
Disk.close ();
//디스크 블록 부족
반환 온도
}
Else// not 레코드 블록 = => 디스크 블록 소진
{
Superblock.fbstack [10-superblock.fbptr] =-1;
Superblock.fbptr-;
반환 온도
}
}
//////////////////////////////////
자세한 설명:
켄과 데니스는 먼저 벨 연구소에서 유닉스를 개발했다. 10 년 동안 유닉스는 학술 기관과 대기업에 널리 사용되었습니다. At&T 는 연구 또는 교육을 위해 Unix 소스 코드를 저렴하고 무료 라이센스로 학술 기관에 허가합니다. 많은 기관들이 소스 코드를 확장하고 개선하여 소위 Unix' 변형' 을 형성하여 Unix 의 발전을 촉진시켰다. 가장 유명한 변화 중 하나는 UC 버클리 분교에서 개발한 BSD 제품이다.
나중에 at&T 는 Unix 의 상업적 가치를 인식하고 Unix 의 소스 코드를 학술 기관에 더 이상 허가하지 않으며 이전 Unix 및 그 변종에 저작권을 선언합니다. 변종 BSD Unix 는 Unix 의 역사 발전에 상당한 영향력을 가지고 있으며, 많은 상업 업체들에 의해 채택되어 많은 상업 Unix 의 기초가 되었다. BSD 는 4.2BSD 와 4.3BSD, 그리고 원본 버전 기반 파생 버전 등 주 버전에 부 버전을 추가하는 방법을 사용하며, 일반적으로 4.3BSD-Net/ 1, 4.3BSD-Net/2 등과 같은 고유한 이름을 가지고 있습니다. 그 영향력은 결국 AT & amp; 를 불러일으켰다. T 의 관심으로 인해 & amp;; 까지 지속된 저작권 소송이 시작되었습니다. T 는 Unix 시스템 연구소를 매각하고 인수한 Novell 은 버클리가 AT & amp; 에서 온 경우 자신의 BSD 를 자유롭게 발표할 수 있도록 좀 더 개방적인 접근 방식을 취했습니다. T 의 코드가 완전히 삭제되어 4.4BSD Lite 버전이 탄생했다. 이 버전에는 법적 문제가 없기 때문에 4.4 BSD Lite 는 현대 BSD 시스템의 기본 버전이 되었습니다. 이후 비상업용 UNIX 시스템은 많은 진화를 거쳤지만 결국 BSD 버전 (Linux 제외) 을 기반으로 했다. 따라서 이러한 관점에서 볼 때 4.4 BSD 는 모든 무료 유닉스의 기초이며 유닉스 V, 리눅스와 함께 유닉스 운영체제의 빛나는 별을 구성합니다.
BSD 의 발전에는 FreeBSD, OpenBSD, NetBSD 의 세 가지가 있습니다.
앞으로 수십 년 동안 유닉스 (Unix) 는 끊임없이 변화하고 있으며, 저작권 소유자도 끊임없이 변화하고 있으며, 사용권자 수도 증가하고 있다. 유닉스의 저작권은 & amp;; T all, 그리고 Novell 은 유닉스를 소유하고, Novell 은 저작권을 SCO 에 판매합니다 (이 사실은 아직 논란의 여지가 있음). 많은 대기업들이 유닉스의 허가를 받은 후 IBM 의 AIX, HP 의 HPUX, SUN 의 Solaris, SGI 의 IRIX 와 같은 자체 유닉스 제품을 개발했습니다.
유닉스 는 그 안전, 신뢰성, 효율, 강력한 특징 으로 서버 분야 에서 광범위하게 응용되었다. GNU/Linux 가 유행하기 전에는 유닉스도 과학 컴퓨팅, 메인프레임, 수퍼컴퓨터 등에서 사용되는 메인스트림 운영 체제였다.
역사
원시기
유닉스의 탄생은 Multics (승수 정보 및 컴퓨팅 시스템) 와 관련이 있다. Multics 는 MIT, AT & amp; 가 개발했습니다. 벨 연구소와 제너럴 일렉트릭 (General Electrical Company) 이 협력하는 운영 체제 프로젝트는 GE-645 메인프레임에서 실행되도록 설계되었습니다. 그러나 목표가 방대하고 기능이 너무 많아 Multics 는 일부 제품을 발표했지만 성능이 낮아 결국 실패로 끝났다.
미국 전화 전신 회사. T 는 결국 Multics 프로젝트에 투입된 자원을 철회했고, 개발자 중 한 명인 켄 톰슨은 GE-645 를 위한 소프트웨어 개발을 계속했고, 결국 우주여행 게임을 만들었다. 실제 조작 후, 그는 이 게임이 느리고 비싸다는 것을 발견했다. 한 번에 75 달러가 든다.
데니스 리치의 도움으로 톰슨은 PDP-7 의 어셈블리 언어로 게임을 다시 작성하고 DEPDP-7 에서 실행되도록 했습니다. 이러한 경험은 Multics 프로젝트의 경험과 결합하여 Thompson 이 DECPD-7 에서 새로운 운영 체제 프로젝트를 시작하게 했습니다. 톰슨과 리치는 개발자 그룹을 이끌고 새로운 멀티 태스킹 운영 체제를 개발했다. 이 시스템에는 명령 인터프리터와 몇 가지 유틸리티가 포함되어 있다. 이 프로젝트는 동시 다중 사용자 작업을 지원하기 때문에 UNICS (Unified Information and Computing System) 라고 합니다. 나중에 이름이 유닉스로 바뀌었다.
발전기
최초의 Unix 는 어셈블리 언어로 작성되었으며, 일부 응용 프로그램은 B 언어와 어셈블리 언어라는 해석 언어의 혼합으로 작성되었습니다. B 언어는 시스템 프로그래밍에서 충분히 강하지 않았기 때문에 톰슨과 리치는 이를 개조하여 197 1 * * 과 함께 C 언어를 발명했다. 톰슨과 리치는 1973 에서 C 언어로 유닉스를 다시 썼다. 당시 최고의 효율을 얻기 위해 시스템 프로그램은 어셈블리 언어로 작성되었기 때문에 톰슨과 리치의 이러한 행동은 과감한 혁신과 혁명적인 의미를 지녔다. C 언어로 작성된 Unix 코드는 간결하고, 작고, 이식이 쉽고, 가독성이 있고, 쉽게 수정할 수 있어 Unix 의 발전을 위한 탄탄한 기반을 마련했다.
1974 년 Thompson 과 Ritchie 는 ACM communication 에서 UNIX 에 대한 문장 한 편을 공동 발표했습니다. UNIX 가 벨 연구소 외부에 등장한 것은 이번이 처음입니다. 이후 유닉스는 정부기관, 연구기관, 기업, 대학의 주목을 받아 점차 유행하고 있다.
1975 년 UNIX 는 4 개, 5 개, 6 개 버전을 발표했습니다. 1978 년에는 약 600 대의 컴퓨터가 UNIX 를 실행했습니다. 1979, 버전 7 출시, 마지막으로 널리 발표된 연구 유닉스 버전입니다. 1980 년대에 발표된 8, 9, 10 버전은 소수의 고교에만 허가되었다. 이후 이 방향의 연구는 새로운 분산 운영 체제인 계획 9 의 출현으로 이어졌다.
1982, at &;; T 는 version 7 을 기반으로 첫 번째 버전의 Unix System III 를 개발했는데, 이는 판매 전용 상용 버전입니다. 혼란스러운 유닉스 버전, AT & amp;; T 는 다른 대학과 회사에서 개발한 다양한 유닉스를 통합하고 유닉스 시스템 v 릴리스1을 개발했습니다.
이 새로운 상용 릴리스 버전의 UNIX 에는 소스 코드가 더 이상 포함되어 있지 않으므로 UNIX 시스템 III 및 V 에 대한 대안으로 BSD UNIX 를 계속 개발하기 위해 UNIX 에 대한 BSD 의 가장 중요한 기여 중 하나는 TCP/IP 입니다. BSD 에는 TCP/IP 를 포함한 8 대 릴리스가 있습니다. 4. 1C, 4.2, 4.3, 4.3-Tahoe, 4.3-Reno, Net2, 4.4, 4.4 이러한 버전의 TCP/IP 코드는 AT & amp;; 를 포함한 거의 모든 시스템에서 TCP/IP 구현의 전신입니다. 시스템 V UNIX 및 Microsoft 창을 테스트합니다.
다른 회사들도 자신의 소형 폼 팩터 또는 워크스테이션에 상용 버전의 UNIX 시스템을 제공하기 시작했습니다. System V 를 기본 버전으로, BSD 를 선택하는 경우도 있습니다. BSD 의 주요 개발자 중 한 명인 Bill Joy 는 BSD 를 기반으로 SunOS 를 개발하고 결국 Sun Microsystems 를 설립했습니다.
199 1 년, BSD 개발자 그룹 (Donn Seeley, Mike Karels, Bill Jolitz, Trenthain) 이 캘리포니아 대학을 떠나 bee 를 설립했습니다 BSDI 는 저렴한 범용 인텔 플랫폼에서 모든 기능을 갖춘 상용 BSD UNIX 를 제공하는 최초의 공급업체입니다. 나중에 Bill Jolitz 는 BSDI 를 떠나 386BSD 작업을 시작했다. 386BSD 는 FreeBSD, OpenBSD 및 NetBSD 의 조상으로 간주됩니다.
미국 전화 전신 회사. T UNIX 시스템 V. 1987 에서 1989 까지 파일 잠금, 시스템 관리, 작업 제어, 스트리밍 및 원격 파일 시스템, at & amp;; T Xenix (Microsoft 가 x86-pc 에서 개발한 UNIX 버전), BSD, SunOS 및 System V 를 svr4 (system v release 4) 로 통합하기로 결정했습니다. 이 새 버전은 다양한 기능을 결합하여 혼란스러운 경쟁을 끝냈다.
1993 이후 대부분의 상용 UNIX 발행자는 SVR4 를 기반으로 자체 UNIX 변종을 개발했습니다.
생활의 얼굴
유닉스 시스템 v 릴리즈 4 출시 직후 at & amp;; T 는 모든 유닉스 저작권을 노벨에게 팔았다. Novell 은 Microsoft 의 Windows NT 에 대항할 것을 기대했지만, 핵심 시장은 심각한 피해를 입었다. 결국 Novell 은 SVR4 의 저작권을 유닉스 표준을 정의하는 산업 조직인 UNIX/OPEN Consortium 에 팔았습니다. 마지막으로 X/OPEN 과 OSF/ 1 병합은 오픈 그룹을 만듭니다. Open Group 이 정의하는 몇 가지 기준은 UNIX 가 무엇이고 UNIX 가 아닌 것을 정의합니다.
실제 UNIX 코드는 나중에 Caldera Systems 에 판매된 Santa Cruz Operation 으로 이전되었습니다. 칼드라는 리눅스 시스템을 팔았는데 거래가 끝난 후 새 회사는 SCO 그룹으로 이름을 바꿨다.
1 127 부서 해체
보도에 따르면 벨 연구소는 유닉스 R&D 및 후속 유지 관리를 담당하는 부서 1 127 이 2005 년 8 월 공식 해체됐다. 켄 톰슨은 은퇴했고 현재 캘리포니아에 살고 있다. 데니스 리치는 다른 부서로 옮겨졌습니다. 더글라스 맥로이는 다트머스 대학 등의 교수이다.
표준
POSIX 는 개방형 운영 체제 표준이며 1980 년대 이후 개발되어 왔으며 IEEE 가 개발한 POSIX 표준은 현재 UNIX 시스템의 기본 구성 요소입니다.
무료 유닉스 시스템
리처드 스토먼은 자유롭게 발표할 수 있는 유닉스 같은 시스템을 만들기 위해 UNIX 프로젝트를 설립했다. 지난 20 년 동안 이 프로젝트는 계속 성장하고 있으며, 포함된 내용도 갈수록 많아지고 있다. 현재 UNIX project 가 개발한 Emacs, GCC 등과 같은 제품은 다양한 무료 출시 유닉스 제품의 핵심 역할이 되었습니다.
1990 년, Linus Torvalds 는 자신의 Minix 커널을 작성하기로 결정했는데, 처음에는 Linus' Minix, 즉 Linus 의 Minix 커널을 뜻하며 나중에 Linux 로 이름이 바뀌었다. 이 커널은 199 1 에서 공식 발표되어 점차 사람들의 관심을 끌고 있다. GNU 소프트웨어가 Linux 커널과 결합될 때, GNU 소프트웨어는 이 POSIX 호환 운영 체제인 GNU/Linux 의 기초를 형성합니다. 오늘날 GNU/Linux 는 가장 활발한 자유/오픈 소스 유닉스 운영 체제가 되었습니다.
1994, BSD Unix 가 부흥의 길을 걷고 있다. BSD 의 발전도 몇 가지 다른 방향으로 갔고, 결국 FreeBSD, OpenBSD, NetBSD 의 출현으로 이어졌다.
유닉스 운영 체제
A/UX | AIX | BSD | 잠자리 BSD | FreeBSD | GNU | HP-UX | irix | Linux | lynxos | MAC OS x | minix | netbs ...