DotGNU

DotGNU(닷그누)는 마이크로소프트의 닷넷 프레임워크를 대체하는 자유 소프트웨어 제공을 목표로 2001년 1월에 시작되었다가 현재는 중단된 GNU 프로젝트의 일부이다. DotGNU 프로젝트는 자유 소프트웨어 재단에 의해 운영되었다. 프로젝트의 다른 목표로는 비 마이크로소프트 윈도우 플랫폼에 대한 더 나은 지원과 더 많은 프로세서 지원이 있다.

DotGNU 프로젝트 코드 베이스의 주요 목표는 100% 공통 언어 사양(CLS)을 준수하는 클래스 라이브러리를 제공하는 것이었다.

 주요 개발 프로젝트 

 Portable.NET 
ECMA-335 공통 언어 기반(CLI)의 구현체인 DotGNU Portable.NET은 닷넷 기본 클래스 라이브러리, XML 및 윈도우 폼을 사용하는 비주얼 베이직 닷넷, C# 및 C 애플리케이션을 컴파일하고 실행하는 소프트웨어를 포함한다. Portable.NET은 x86, PPC, ARM, SPARC 등 다양한 명령어 집합 구조를 지원한다고 밝히고 있다.

 DGEE 
DotGNU Execution Environment(DGEE)는 웹 서비스 서버이다.

 libJIT 
libJIT는 가상 머신 구현, 동적 프로그래밍 언어, 스크립트 언어에서 고급 JIT 컴파일 개발을 위한 JIT 컴파일 라이브러리이다. 이는 변수가 정적 단일 할당 형식으로 유지되는 3-어드레스 코드 기반의 중간 표현을 구현한다.

libJIT는 GNU 이맥스, ILDJIThttps://web.archive.org/web/20111201192347/http://sourceforge.net/apps/mediawiki/ildjit/index.php?title=Main_Page 및 HornetsEyehttps://web.archive.org/web/20100328171539/http://www.wedesoft.demon.co.uk/hornetseye-api/files/HornetsEye-txt.html를 포함한 다른 오픈 소스 프로젝트에서도 일부 사용되었다.

 프레임워크 구조 
300px|섬네일|단순화된 모노 구조

Portable .NET 클래스 라이브러리는 애플리케이션 개발을 위한 기능을 제공하고자 한다. 이들은 주로 C#으로 작성되었지만, 공통 언어 사양 덕분에 모든 닷넷 언어에서 사용할 수 있다. 닷넷과 마찬가지로 클래스 라이브러리는 네임스페이스와 어셈블리로 구성된다. 여기에는 Accessibility 및 DotGNU를 포함한 추가적인 최상위 네임스페이스가 있다. 일반적인 작동 방식에서 Portable .NET 컴파일러는 ECMA-335 6장에 규정된 대로 공통 언어 사양(CLS) 이미지를 생성하고, Portable .NET 런타임이 이 이미지를 가져와 실행한다.

 자유 소프트웨어 
DotGNU는 자신이 자유 소프트웨어임을 강조하며, 마이크로소프트 윈도우의 GUI 코드 호출과 같은 독점 구성 요소에 대한 의존성을 최소화하도록 보장하는 것을 목표로 한다. DotGNU는 부터 까지 높은 우선순위의 자유 소프트웨어 프로젝트 중 하나였다.

 DotGNU와 마이크로소프트의 특허 

표준화를 위해 ECMA에 제출되지 않은 닷넷 스택 구성 요소들에 대한 DotGNU의 구현은 프로젝트 진행 기간 중 상당 부분 동안 특허 침해 우려의 원인이 되었다. 특히 마이크로소프트가 특허 소송을 통해 DotGNU 프로젝트를 무너뜨릴 수 있는지에 대한 논의가 이루어졌다.

ECMA에 제출된 기본 기술들은 문제가 없을 수 있다. 우려는 주로 ASP.NET, ADO.NET, 윈도우 폼(표준화되지 않은 네임스페이스 참조)과 같이 마이크로소프트가 닷넷 프레임워크 위에서 개발한 기술들, 즉 DotGNU의 윈도우 호환성 스택을 구성하는 부분들과 관련이 있다. 이러한 기술들은 현재 DotGNU에서 완전히 구현되지 않았으며 DotGNU 애플리케이션 개발에 필수적인 것도 아니다.

2009년 마이크로소프트는 특허 허여가 포함된 아파치 라이선스 버전 2.0으로 닷넷 마이크로 프레임워크를 출시했다. 그러나 닷넷 마이크로 프레임워크는 CLR의 재구현체이며 임베디드 장치에서 사용하기 위한 기본 클래스 라이브러리의 제한된 하위 집합이다. 또한 아파치 라이선스의 특허 허여는 닷넷 마이크로 프레임워크의 기여자 및 사용자만을 보호했을 것이며, DotGNU나 모노와 같은 대안 구현체의 사용자 및 개발자는 보호하지 않았을 것이다.

2014년 마이크로소프트는 아파치 라이선스로 차세대 공식 마이크로소프트 C# 컴파일러인 Roslyn을 출시했다. 그해 말, 마이크로소프트는 공식 닷넷 프레임워크의 "재시동"을 발표했다. 해당 프레임워크는 MIT 허가서로 출시된 공식 런타임 및 표준 라이브러리를 포함하는 .NET Core를 기반으로 하며, 닷넷 코어와 관련된 마이크로소프트 소유 특허로부터 수혜자를 명시적으로 보호하는 특허 허여를 포함한다.

 같이 보기 

 가상 머신 비교
 Portable.NET – DotGNU 툴체인 및 런타임의 이식 가능한 버전
 모노 – 마이크로소프트 닷넷의 인기 있는 자유 소프트웨어 구현체
 공통 언어 런타임

 각주 

 외부 링크 
 프로젝트 홈페이지
 기사 '2001 – DotGNU가 탄생한 해'
 DotGNU의 노르베르트 볼로와의 2003년 인터뷰

분류:컴퓨팅 플랫폼
분류:GNU 프로젝트 소프트웨어