윈도우 서비스 포 유닉스
1. 개요
윈도우 서비스 포 유닉스(SFU)는 마이크로소프트가 개발한 유닉스 유틸리티 및 기능을 윈도우 운영체제에서 사용할 수 있도록 해주는 소프트웨어 패키지이다. SFU는 1999년부터 2004년까지 여러 버전으로 출시되었으며, 유닉스 유틸리티, GNU 컴파일러, NFS 서버 및 클라이언트, X 윈도 시스템 도구 등을 포함했다. SFU는 윈도우 XP와 윈도우 서버 2003에서 POSIX 서브시스템을 사용하기 위한 필수 패키지였으며, 2004년 3.5 버전부터 무료로 제공되었다. 이후 윈도우 서버 2003 R2, 윈도우 비스타, 윈도우 7에서 SUA(Subsystem for UNIX-based Applications)로 대체되었으며, 윈도우 8부터는 지원이 중단되었다. 윈도우 10에서는 리눅스용 윈도우 하위 시스템(WSL)이 SUA의 대안으로 제공된다.
이미지 준비중입니다.
| 다른 이름 | SFU |
|---|---|
| 저자 | MKS Inc. (SFU 1.0 / 2.0), Softway Systems, Inc. (SFU 3.0 / 3.5) |
| 개발자 | 마이크로소프트 |
| 최초 출시일 | 1999년 2월 |
| 단종 여부 | 예 |
| 최신 버전 | 3.5 |
| 최신 출시일 | 2004년 1월 |
| 운영 체제 | 마이크로소프트 윈도우 |
| 플랫폼 | IA-32 및 x86-64 |
| 대체 대상 | 마이크로소프트 POSIX 서브시스템 |
| 대체된 대상 | 윈도우 서브시스템 포 리눅스 |
| 장르 | 호환성 계층 |
| 라이선스 | 알 수 없음 |
| 웹사이트 | Windows Services for Unix |
-
윈도우 구성 요소 -
인터넷 익스플로러
마이크로소프트가 개발한 웹 브라우저인 인터넷 익스플로러는 윈도우 운영 체제와의 통합으로 높은 시장 점유율을 유지했으나, 웹 표준 문제와 보안 취약점으로 비판받으며 2015년 엣지에 자리를 내주고 2022년 지원이 종료되었지만, 엣지의 IE 모드로 레거시 호환성을 유지하고 있다. -
윈도우 구성 요소 -
원격 데스크톱 서비스
원격 데스크톱 서비스(RDS)는 네트워크를 통해 원격으로 컴퓨터의 데스크톱 환경에 접근할 수 있게 해주는 기술이며, 클라이언트 소프트웨어, 서버 구성 요소, 다양한 역할을 수행하는 구성 요소로 구성된다.
2. 구성 요소
SFU 3.5 버전은 다음과 같은 주요 구성 요소를 포함하고 있다.
* GCC 3.3 컴파일러, 헤더 파일, 라이브러리
* Microsoft Visual Studio 명령줄 컴파일러의 cc 래퍼
* GDB
* Perl
* NFS 클라이언트와 서버
* pcnfsd 데몬
* X11 도구 및 라이브러리 (기본 X 서버는 포함되지 않음)
* NFS 마운트 지점을 윈도우 공유로 표시하거나 그 반대로 표시하는 도구(게이트웨이 서비스)
* NIS 서버 기능 (Active Directory(AD)와 연결)
* 일부 윈도우/유닉스 인증 정보 동기화 도구
* 텔넷 서버
* 암호 동기화 서비스
SFU에는 다음과 같은 구성요소는 포함되어 있지 않다.
* bash, OpenSSH, sudo, CVS, ClamAV, bzip2, gmake, curl, emacs, Apache, XView, 루비, Tcl, 파이썬
SFU에는 X 윈도 시스템 클라이언트 라이브러리 및 응용 프로그램이 포함되어 있지만, 기본 X 서버는 포함되어 있지 않았다. 관리자는 Cygwin/X, Xming, WeirdX와 같은 타사 윈도우 X 서버 중 하나를 구성할 수 있다.
2.1. 유틸리티
* vi, ksh, csh, ls, cat, awk, grep, kill 등 350개 이상의 유닉스 유틸리티가 포함되어 있다.
* GCC 3.3 컴파일러, 인클루드 및 라이브러리 (MS libc를 통해)가 제공된다.
* 마이크로소프트 비주얼 스튜디오 명령줄 C/C++ 컴파일러를 위한 cc와 유사한 래퍼가 포함되어 있다.
* GDB 디버거가 포함되어 있다.
* Perl이 포함되어 있다.
* X11 도구 및 라이브러리가 포함되어 있다.
2.2. 네트워크 파일 시스템 (NFS)
NFS 서버 및 클라이언트, pcnfsd 데몬, NFS 마운트 지점을 윈도우 공유로 표시하거나 그 반대로 표시하는 도구(게이트웨이 서비스), 사용자 이름 매핑 (Mapsvc), NFS 인증 서버 (NFSServerAuth) 등이 포함된다.
2.3. 기타
* X11(X Window system) 도구 및 라이브러리 (기본 X 서버는 포함되지 않음)
* NIS(Network Information Service) 서버 기능 (Active Directory(AD)와 연결)
* 일부 윈도우/유닉스 인증 정보 동기화 도구
* 윈도우 원격 셸 서비스 (RshSvc)
* 윈도우용 텔넷 서버 (TelnetServer)
* 암호 동기화 (PasswdSync)
* ActiveState Perl (Perl)
2.4. 포함되지 않은 구성 요소
SFU에는 bash, OpenSSH, sudo, CVS, ClamAV, bzip2, gmake, curl, emacs, Apache, XView, 루비, Tcl, 파이썬이 포함되어 있지 않았다.
SFU에는 X 윈도 시스템 클라이언트 라이브러리 및 응용 프로그램이 포함되어 있지만, 기본 X 서버는 포함되어 있지 않았다. 관리자는 Cygwin/X, Xming, WeirdX와 같은 타사 윈도우 X 서버 중 하나를 구성할 수 있다.
3. 릴리스
마이크로소프트는 1999년부터 2004년까지 윈도우 서비스 포 유닉스(SFU)의 여러 버전을 출시했다. 초기 버전은 영어만 지원하고 x86 및 알파 플랫폼에서 동작하는 윈도우 NT 4.0 SP3+를 지원했다. 이후 버전에서는 일본어를 추가 지원하고, 지원 운영 체제 및 구성 요소를 확장했다.
SFU는 여러 차례 버전 업데이트를 거쳤다.
* 1999년 4월 16일: 윈도우 NT 서비스 포 유닉스 애드온 팩 일본어판 (29800JPY)
* 2000년 8월 11일: 윈도우 서비스 포 유닉스 버전 2.0 일본어판 (29800JPY)
* 2002년 12월 6일: 윈도우 서비스 포 유닉스 버전 3.0 일본어판 (29800JPY)
* 2004년 1월 20일: 윈도우 서비스 포 유닉스 버전 3.5 일본어판 (무상)
* 2005년 12월 6일: 윈도우 서버 2003 R2 서브시스템 for 유닉스 기반 애플리케이션 (5.2)
* 2006년 11월 8일: 윈도우 비스타 서브시스템 for 유닉스 기반 애플리케이션 (6.0)
버전 3.0까지는 패키지 제품으로 판매되었으나, 2004년에 출시된 버전 3.5부터는 무상으로 제공되었다.
윈도우 XP와 윈도우 서버 2003에서는 윈도우가 POSIX 서브시스템을 삭제했기 때문에, POSIX를 이용하기 위해서는 해당 패키지가 필수적이었다.
3.1. 1.0 (1999년)
마이크로소프트는 1999년 2월에 SFU의 초기 버전 베타 버전을 최소 한 개 이상 제작했으며, 같은 해 최종 버전을 출시했다. 이 릴리스는 영어만 지원했으며, x86 및 알파 플랫폼용 윈도우 NT 4.0 SP3+에서 지원되었다. 알파를 지원하는 유일한 릴리스로 알려져 있다. 여기에는 다음과 같은 구성 요소와 함께 MKS Toolkit의 데모 버전이 포함되었다.
* 텔넷 서버
* 텔넷 클라이언트
* UNIX 유틸리티 (MKS 제공)
* NFS 클라이언트
* NFS 서버
* NFS 인증 서버
* Windows NT에서 UNIX로의 비밀번호 동기화
* 도움말 파일 및 설명서
3.2. 2.0 (2000년)
SFU의 두 번째 버전은 2000년 4월에 출시되었으며, 영어 버전과 함께 2개월 뒤인 2000년 6월에 일본어 버전이 출시되었다. 두 버전 모두 x86 플랫폼의 윈도우 NT 4.0 SP4+ 및 윈도우 2000에서 실행되었으며, 인터넷 익스플로러 4.01+가 필요했다. SFU 2.0은 솔라리스 2.6+, HP-UX 10.2+, AIX 4.2+, Tru64 UNIX 5.0+, 레드햇 리눅스 5.1+ 등 유닉스 버전을 지원했다. 다음 구성 요소가 포함되었다.
* NFS 서버 (NFSServer)
* NFS 클라이언트 (NFSClient)
* NFS 게이트웨이 (NFSGateway)
* PCNFS 서버 (Pcnfsd)
* 사용자 이름 매핑 (Mapsvc)
* NFS 인증 서버 (NFSServerAuth)
* NIS 서버 (NIS)
* 텔넷 클라이언트 (TelnetClient)
* 텔넷 서버 (TelnetServer)
* 비밀번호 동기화 (PasswdSync)
* ActiveState ActivePerl (Perl)
* 유닉스 유틸리티 (UnixUtilities)
* 크론 서비스 (CronSvc)
* Rsh 서비스 (RshSvc)
이후 SFU 2.1, SFU 2.2, SFU 2.3과 같은 OEM 업데이트가 출시되었다.
3.3. 3.0 (2002년)
2002년 5월에 출시된 이 버전은 Interix 서브 시스템을 포함한 최초의 릴리스였다. 이전에는 마이크로소프트가 SFU 2.0과 비슷한 시기에 Interix 2.2(실제 버전 2.2.5)를 별도의 제품으로 출시했었다. 이 SFU 릴리스에는 내부 Microsoft 버전 7.0과 관련된 Interix 3.0 릴리스(일반적으로 uname -r로 보고되는 "버전")가 포함되었으며, 이는 내부 빌드 시퀀스와 관련이 있다. 이 Interix 릴리스는 Softway Systems의 Interix 개발 코드명 "Firebrand"를 기반으로 하는 루트 파일 시스템 및 setuid 기능과 같은 Interix 2.2 릴리스의 상당한 기술적 확장을 포함했다. 또한 영어로 출시되었으며, 2002년 10월에 국제화 지원을 추가한 일본어 버전이 출시되었다. 두 버전 모두 x86 플랫폼에서 Windows NT 4.0 SP6a+, Windows 2000 및 Windows XP Professional을 지원했으며 Internet Explorer 5.0+가 필요했다. MKS Toolkit은 더 이상 포함되지 않았다. 포함된 구성 요소는 다음과 같다.
* Interix용 기본 유틸리티(BaseUtils; X11R5 유틸리티 포함)
* Interix용 UNIX Perl(UNIXPerl)
* Interix SDK(InterixSDK; 개발용 헤더 및 라이브러리, Visual Studio 컴파일러용 래퍼 포함)
* Interix용 GNU 유틸리티(GNUUtils, 총 약 9개의 유틸리티)
* Interix용 GNU SDK(GNUSDK; gcc 및 g++ 포함)
* Windows용 NFS 클라이언트(NFSClient)
* Windows용 NFS 게이트웨이(NFSGateway)
* Windows용 NFS 서버(NFSServer)
* Windows용 NIS 서버(NIS)
* 암호 동기화(PasswdSync)
* Windows 원격 셸 서비스(RshSvc)
* Windows용 Telnet 서버(TelnetServer)
* NFS 사용자 이름 매핑(Mapsvc)
* NFS 인증 서버(NFSServerAuth)
* PCNFS 서버(Pcnfsd)
* ActiveState Perl(Perl)
3.4. 3.5 (2004년)
2004년 1월에 출시된 SFU 3.5는 무료로 배포된 유일한 릴리스였다. x86 플랫폼에서 윈도우 서버 2003(오리지널 릴리스만)의 영어 및 일본어 버전을 지원했으며, 인터넷 익스플로러 5.0 이상이 필요했다. Interix 서브 시스템 릴리스 3.5(빌드 버전 8.0)는 국제화 지원 및 POSIX 스레드를 추가했다. 이 릴리스는 NTFS 파일 시스템에만 설치할 수 있었다.
NFS 구성 요소는 다음과 같은 UNIX 버전을 지원했다.
| UNIX 버전 |
|---|
| Solaris 7 및 8 |
| Red Hat Linux 8.0 |
| AIX 5L 5.2 |
| HP-UX 11i |
SFU 3.5에는 다음과 같은 구성 요소가 포함되었다.
| 구성 요소 |
|---|
| Interix용 기본 유틸리티(BaseUtils; X11R6 및 X11R5 유틸리티 포함) |
| Interix용 UNIX Perl(UNIXPerl) |
| Interix SDK(InterixSDK; 개발을 위한 헤더 및 라이브러리, Visual Studio 컴파일러용 래퍼 포함) |
| Interix용 GNU 유틸리티(GNUUtils, 약 9개의 유틸리티) |
| Interix용 GNU SDK(GNUSDK; gcc 및 g++ 포함) |
| Windows용 NFS 클라이언트(NFSClient) |
| Windows용 NFS 게이트웨이(NFSGateway) |
| Windows용 NFS 서버(NFSServer) |
| Windows용 NIS 서버(NIS) |
| 암호 동기화(PasswdSync) |
| Windows 원격 셸 서비스(RshSvc) |
| Windows용 Telnet 서버(TelnetServer) |
| NFS 사용자 이름 매핑(Mapsvc) |
| NFS 인증 서버(NFSServerAuth) |
| PCNFS 서버(Pcnfsd) |
| ActiveState Perl(Perl) |
마이크로소프트는 통합 SUA를 위해 SFU의 추가 독립 실행형 버전을 제작하지 않을 것이라고 밝혔다. 2016년 8월 18일 현재, v3.5는 마이크로소프트 링크에서 더 이상 사용할 수 없다. 일반 지원은 2011년까지, 연장 지원은 2014년까지 계속되었다.
4. 알려진 문제점
문자 변환은 콜론(:) 또는 윈도우 파일 시스템의 명명 규칙을 준수하지 않는 다른 문자를 포함하는 파일 이름을 수용하기 위해 사용해야 한다. 대소문자가 다른 동일한 이름의 파일도 기본적으로 허용되지 않지만, 설치 시 활성화할 수 있으며, 하위 파티션의 파일 시스템을 대소문자를 구분하게 하는 부작용이 발생한다. 이는 Win32 서브 시스템에도 적용된다.
UNIX 시스템의 네트워크 인증은 안전하지 않은 NIS 프로토콜에 의존한다 (LDAP 및 Kerberos 기반 인증에는 타사 솔루션이 필요하다). 마이크로소프트는 윈도우 서비스 포 유닉스에 대한 여러 핫픽스와 최소한 하나의 보안 업데이트(KB939778)를 출시했다. GNU 프로젝트 유틸리티는 최신 버전보다 여러 버전 더 오래되었다. 최신 Debian 유틸리티의 별도 포트가 2007년에 시작되었지만, 2009년에 중단된 것으로 보인다. SUA의 여러 텍스트 처리 유틸리티(예: awk)는 유니코드 또는 와이드 문자 텍스트 파일과 호환되지 않는다.
Windows XP Professional x64 에디션에는 윈도우 서비스 포 유닉스 버전이 제공되지 않는다.
5. 이후 버전 및 대체
윈도우 서버 2003 R2에는 마이크로소프트 네트워크 파일 시스템용 서비스(NFS), UNIX 기반 응용 프로그램용 하위 시스템(SUA, 인터릭스라고도 함) 등 대부분의 SFU 구성 요소가 포함되어 있다. SFU와 달리 윈도우 서버 2003 R2 및 이후 버전에 포함된 SUA 버전은 64비트를 지원하고, Win32 라이브러리를 SUA 응용 프로그램에 연결할 수 있다.
윈도우 비스타와 윈도우 7 엔터프라이즈 및 얼티밋 에디션에는 UNIX용 서비스 구성 요소와 NFS v3용 클라이언트가 포함되어 있다. 사용자는 유틸리티와 SDK를 별도로 다운로드해야 한다. SFU 제품군에서 제공되는 서버 구성 요소(예: NFS용 서버, 사용자 이름 매핑, NIS용 서버, 암호 동기화 등)는 포함되지 않았으며, 이는 윈도우 서버 에디션(예: 윈도우 서버 2008)에 포함되어 있다.
SUA는 윈도우 8 엔터프라이즈 및 윈도우 서버 2012에서 사용이 중단되었으며, 윈도우 8.1 및 윈도우 서버 2012 R2에서 완전히 제거되었다. 윈도우 서버 2012 R2에서는 NFS 서버가 계속 지원된다.
윈도우 8에서 NFS 클라이언트는 krb5p(Kerberos 5 전체 데이터 암호화) 지원을 받았다. 윈도우 7에서는 Kerberos 5가 인증을 지원했지만 데이터에 대해서는 패킷 무결성 검사만 사용할 수 있었다. 최대 블록/버퍼 크기도 윈도우 8에서 32KB에서 1MB로 증가했다.
윈도우 서버 2012는 NFS 4.1 서버에 대한 지원을 추가했다. 새로운 구현은 커널 기반(RPC/XDR 방식)이지만, ACL, pNFS 등 NFS4의 많은 선택적 기능이 구현되지 않았다. 그러나 파워셸에서 사용자 ID 매핑에 대한 지원이 있다.
다음은 윈도우 서비스 포 유닉스의 출시 버전이다.
원래는 패키지 제품으로 판매되었지만, 2004년 1월 SFU 3.5부터 무상으로 제공되었다. 윈도우 XP와 윈도우 서버 2003에서는 윈도우가 POSIX 서브시스템을 삭제했기 때문에, POSIX를 이용하기 위해서는 해당 패키지가 필수적이었다.
5.1. 윈도우 서버 2012 이후의 UNIX 호환 환경 (SUA 대안)
윈도우 서버 2012부터 마이크로소프트가 제공하는 유닉스 기반 응용 프로그램용 하위 시스템(SUA)은 권장되지 않게 되었다. 이에 따라 Hyper-V를 사용하여 네이티브 OS 또는 기존 OS를 가상화하거나, 다음과 같은 환경을 공식적으로 권장하고 있다. 또한, 윈도우 8.1 및 윈도우 서버 2012 R2부터는 SUA가 완전히 삭제되었지만, 내장형 Windows Embedded 8.1 Pro에는 탑재되었다.
* Cygwin
* mingw-w64 또는 MinGW
윈도우 10에서는 정식 버전 출시 1주년(2016년 9월) 대규모 업데이트를 통해, 64비트 버전에 한해 SUA의 후계 또는 유사 제품으로 리눅스용 윈도우 하위 시스템(WSL)을 사용할 수 있게 되었다.