롱겐
Longene롱젠 0.2.1 | |
| 개발자 | 인시그마 테크놀로지 |
|---|---|
| 기입처 | C |
| OS 패밀리 | Windows와 같은 추가 기능을 갖춘 Linux |
| 동작 상태 | 비활성, 2014년 마지막 업데이트 |
| 소스 모델 | 오픈 소스 |
| 최신 미리보기 | 1.0-rc2 / 2014년 1월 , 전( |
| 저장소 | |
| 마케팅 대상 | 퍼스널 컴퓨팅 |
| 이용가능기간: | 다국어 |
| 플랫폼 | IA-32, x86-64 |
| 커널 타입 | 하이브리드(Linux 커널로 Windows NT와 호환되도록 설계) |
| 면허증. | GNU GPL v2 |
| 공식 웹사이트 | |
Longene(중국어: 井))은 Microsoft Windows 및 Linux용 애플리케이션 소프트웨어 및 디바이스 드라이버와 이진 호환되도록 설계된 Linux 기반의 운영 체제 커널입니다.1.0-rc2 시점에서는 Windows 커널의 측면을 구현하는 Linux 커널 모듈과 보다 네이티브한 인터페이스를 이용하도록 설계된 수정된 와인 배포판으로 구성되어 있습니다.Longene은 C 프로그래밍 언어로 작성되며 자유 오픈 소스 소프트웨어입니다.GNU General Public License 버전 2(GPLv2)의 조건에 따라 라이선스가 부여됩니다.
이 프로젝트는 2015년 현재 개발 단계 중이지만 많은 Windows 프로그램이 이미 [citation needed]잘 작동하고 있습니다.
공식 웹사이트는 8월에 없어졌다가 2019년에 복구되었다.한편, 소스 코드는 GitHub에서 [1]사용할 수 있습니다.
특징들
Longene은 시스템 호출, Windows 레지스트리, Windows 드라이버 모델, 지연 프로시저 호출 등을 포함한 모든 Windows 커널 메커니즘을 Linux 커널에 추가하여 새로운 커널을 형성하는 것을 목표로 합니다.새로운 커널을 사용하면 Linux 및 Windows 애플리케이션과 디바이스 드라이버 모두 가상화 또는 에뮬레이션 없이 동작할 수 있습니다.ReactOS 커널과 Linux 커널 모두에서 기능을 사용할 수 있는 경우 팽창을 방지하기 위해 Linux 구현을 사용합니다.함수는 Linux 로딩 가능한 커널 모듈을 사용하여 구현되므로 쉽게 로딩 및 언로드할 수 있습니다.
Longene에는 Windows syscall 세트와 Linux syscall 세트라는2개의 시스템콜 세트와 대응하는 테이블이 있습니다.Windows 응용 프로그램은 소프트웨어 인터럽트 "int 0x2e"를 통해 시스템 테이블을 호출합니다.Linux 응용 프로그램은 "int 0x80"을 통해 syscall 테이블을 호출합니다.
Longene 프로젝트는 윈도우즈 및 리눅스 사용자 랜드 라이브러리를 개발하지 않습니다.이러한 라이브러리는 Wine, ReactOS, GNU 및 NDISwrapper와 [2]같은 다른 프로젝트에 의해 제공됩니다.
발전
2005년 9월, Longen 프로젝트는, 중국에 거점을 둔 IT컨설팅 회사인 Insigma Technology(浙浙 techn),)로부터 후원을 받았습니다.프로젝트 리더인 Decao Mao는 Longene의 아이디어와 경로를 제안했다.그는 시장, 지적재산권, 그리고 사람들이 왜 이 프로젝트를 필요로 하는지, 그리고 어떻게 롱겐을 구현해야 하는지를 설명하기 위한 기술에 대한 일련의 기사를 썼다.그리고 나서 마오가 쓴 기사들을 편집하여 프로젝트의 백서를 만들었다.
백서에 따르면 Longene을 구현하려면 Linux 커널에 여러 부품을 추가해야 합니다.
- Windows 디바이스 드라이버(Windows 디바이스 드라이버 프레임워크 등)의 속성 및 요건에 일치하는 프레임워크입니다.이것에 의해, 복수의 Windows 디바이스 드라이버 모듈을 커널에 로드해, Windows 와 같이 관계나 동작 조건을 유지할 수 있습니다.
- Windows Kernel Export Function Interface(WDK; 커널 내보내기 기능 인터페이스)에 의해 정의된 내보내기 기능 세트.디바이스 드라이버 프로그램에 있어서, 이러한 함수는 커널에 의해서 제공되는 라이브러리 함수와 같습니다.
- Windows 네이티브 APIMicrosoft는 네이티브 API를 오픈하지 않았지만 "Windows NT/2000 네이티브 API 레퍼런스" 및 기타 자료에서 이 정보를 공개했습니다.Linux 커널에서 Windows 시스템 API를 구현하는 것은 어셈블리에서 상위 수준의 언어를 구현하는 것과 비교될 수 있습니다. 왜냐하면 커널 내에서 사용 가능한 함수는 외부 Linux 커널 API가 아닌 내부 Linux 커널 함수에 의해 구현되기 때문입니다.
- Longene 프로젝트는 Linux 커널의 목적을 달성하기 위한 패치를 만듭니다.프로젝트 개발자들은 이러한 패치가 최종적으로 Linux 커널 메인 [citation needed]트리에 통합될 것으로 예상하고 있습니다.Windows 플랫폼에서 프로그래밍하는 사용자는 저렴한 비용으로 Linux 플랫폼용 애플리케이션 및 디바이스 드라이버를 개발하거나 제품을 Linux 플랫폼으로 이식할 수 있습니다.
개발 전략
Longene은 Windows API를 구현하기 위한 기반으로 Wine을 사용합니다.이 프로젝트는 공동 커널의 일부로 사용하기 위해 Wine의 모듈을 다시 구현합니다.Longene은 프로젝트에 충분히 구현되지 않은 와인 모듈 사용을 보류합니다.Longene 버전은 여러 와인 모듈이 커널에 성공적으로 구현되면 출시됩니다.새로운 안정 버전은 이후 모듈을 구현하기 위한 기반으로 사용됩니다.와인이 구현하지 않은 윈도 API는 처음부터 모듈로 개발된다.Longene 커널은 Windows NT 커널의 작업을 하기 때문에 Wine 자체 사용자 공간 커널 에뮬레이션(와인 서버)은 필요하지 않습니다.
디바이스 드라이버의 경우 Longene은 NDISwrapper를 커널로 Import합니다.React를 사용하여 Windows 드라이버 모델의 기능이 누락된 경우 NDISrapper를 수정합니다.참조용 OS 코드.Windows 드라이버 키트의 실장은, React 에 근거하고 있습니다.OS 코드리눅스 커널 리소스로 드라이버를 리디렉션하고 리눅스에서 구현할 수 없는 기능을 구현하는 추가 라이브러리를 함께 사용합니다.
버전 이력
2006년 2월 15일 이전 버전 UnifiedKernel-2.6.13이 [3]출시되었습니다.이 버전에서는 Windows 시스템콜 메커니즘이 실현되었습니다.
| 색. | 의미. |
|---|---|
| 빨간. | 릴리스는 더 이상 지원되지 않습니다. |
| 노란 색 | 릴리스, 지원 대상 |
| 초록의 | 현재 릴리즈 |
| 파랑색 | 향후 출시 |
| 버전 | 발매일 | 릴리스 정보 |
|---|---|---|
| 0.1.0 | 2006년 4월 30일 |
|
| 0.2.0 | 2006년 12월 1일 |
|
| 0.2.1 | 2008년 2월 4일 |
|
| 0.2.2 | 2008년 10월 31일 |
|
| 0.2.2-1 | 2008년 12월 17일 |
|
| 0.2.3 | 2009년 2월 12일 |
|
| 0.2.4 | 2009년 5월 22일 |
|
| 0.2.4.1 | 2009년 8월 31일 |
|
| 0.3 | 2010년 5월 31일 |
|
| 0.3.1 | 2011년 2월 26일 |
|
| 0.3.2 | 2011년 6월 8일 |
|
| 1.0-rc1 | 2013년 12월 31일 |
|
| 1.0-rc2 | 2014년 1월 16일 |
|
| 2.0[4] | 2015 |
현재와 미래의 발전
개발자들은 현재 ARM이나 Loongson과 같은 비 x86 아키텍처 하드웨어에서 실행되는 Windows 애플리케이션을 지원하는 Longene 2.0을 개발하고 있습니다.또한 개발자들은 AMD64 지원 및 NDISWrapper 코드를 프로젝트에 이식하는 작업을 진행하고 있습니다.
미실장(단, 계획):
사용 가능한 오픈 소스 리소스
- Linux 커널
- Longene은 Linux 커널을 기반으로 합니다.Linux Loadable Kernel Module(LKM; 로드 가능 커널 모듈)에서 기능을 구현합니다.리액트와는 반대로처음부터 함수를 구현하는 OS Longene은 Linux 커널의 풍부한 코드와 문서를 이용하여 함수를 만듭니다.Longene에서 Windows 메커니즘을 구현하기 위한 주요 접근법은 다음과 같습니다.
- 시스템 콜인터페이스– 적절한 Linux 시스템콜 또는 대응하는 Linux 시스템콜의 코드를 부분적으로 재사용할 수 있습니다.Linux에 대응하지 않는 나머지는 구현 시 낮은 수준의 Linux 커널 함수를 사용해야 합니다.
- 디바이스 드라이버 프레임워크– 디바이스 드라이버 인터럽트 서비스 레지스터는 Linux 인터럽트 메커니즘을 사용합니다.디바이스 드라이버는 Windows 커널을 실행하는 것을 인식합니다.Windows 커널은 그 아래에서 실행되는 Linux 커널에 매핑됩니다.디바이스 드라이버의 DPC 요구는 Linux-bh 함수로 변환됩니다.
- Microsoft에 의해 저작권이 부여된 Microsoft Windows 네이티브시스템 파일 - Linux 커널에 대응하는 기능이 있는 디스크, USB, 그래픽 디바이스, 네트워크 기기 등 일반적인 외부 디바이스에 사용되는 .sys 모듈의 카테고리입니다.이러한 디바이스를 구동하기 위해 필요한 것은 브릿지 구축뿐이며 .sys 모듈을 작성할 필요가 없습니다.Linux 커널에 대응하는 오브젝트가 없는 나머지 .sys 모듈의 경우 에뮬레이션이 필요합니다.
- Windows DDK – 대부분의 디바이스 드라이버 인터페이스 기능과 데이터 구조는 Linux 커널에 포함되어 있습니다.일부 함수는 Linux 커널에 정확히 동등한 것이 없으며 Linux 커널을 사용하여 래퍼를 빌드해야 합니다.실제로 일부 리소스 호출 및 참조는 Linux 커널에 맞게 수정 또는 조정할 수 있으며 나머지는 처음부터 구현해야 합니다.
- 리액트 OS
- ReactOS는 처음부터 작성된 MS Windows의 복제품입니다.Longene은 React를 사용합니다.Microsoft Windows operating system의 기본적인 메카니즘을 실장하기 위한 참조용 OS 코드.여기에는 Windows 디바이스 드라이버 프레임워크, NDIS, 시스템콜 인터페이스, 프로세스 관리 및 자원 관리, 디바이스 드라이버 인터페이스 등의 구현이 포함됩니다.
- 와인
- Wine은 호환성 계층을 구현하여 Windows 프로그램이 호출하는 DLL의 대체 구현 및 Windows NT 커널을 대체하는 프로세스를 제공합니다.Longene이 마이크로커널 함수를 사용하여 커널 공간에서 Windows API를 구현하는 것과 달리, Wine은 매크로 호스트 OS API를 사용하여 사용자 공간에서 Windows API를 구현합니다.Longene은 Windows 프로세스 관리, 스레드 관리, 오브젝트 관리 등을 커널로 제공하고 Wine은 사용자 공간에서 실행되는 와인 서버별로 제공합니다.Longene은 사용자 라이브러리(.dll 파일)에 대해 Wine에 의존합니다.와인의 DLL은 대부분 Longene에서 직접 사용할 수 있습니다.와인 코드(Windows 레지스트리 테이블 등)는 몇 가지 기능을 구현하기 위해 참조할 수 있습니다.과도기 상태에서 Longene은 아직 완료되지 않은 기능을 제공하기 위해 Wine을 사용합니다.
- 커널-Win32
- Kernel-Win32는 Winserver에서 Linux 커널로 일부 기능을 이동하여 Wine을 가속화하는 프로젝트입니다.Longene 프로젝트는 커널-Win32를 Longene에 포팅(및 부분적으로 재실장)하여 Windows 시스템 호출 메커니즘을 구현했습니다.
- NDIS랩퍼
- NDISWrapper는 Linux 커널 모듈에서 Windows NT 커널의 일부를 재현하여 Linux 커널 박스 내에서 최신 Windows 드라이버를 실행할 수 있게 했습니다.NDISWrapper는 NTOSKRNL API, 기본 WDM 컨트롤러 및 Wireless/NDIS/USB/PnP와 Linux API 등의 Windows 콜래퍼 세트로 구성됩니다.NDIS Wrapper는 NDIS 드라이버만 실행하는 것이 아닙니다.드라이버가 구현되지 않은 Windows API 함수를 호출하지 않는 한 다른 WDM 드라이버를 사용할 수 있습니다.Longene에서의 WDM 실장의 첫 번째 단계는 NDISWrapper를 Longen으로 Import하는 것입니다.그런 다음 Longene 프로젝트 팀은 NDIS Wrapper를 수정하고 React를 사용하여 NDIS Wrapper에 기능을 추가하여 WDM을 구현합니다.참조용 OS 코드.
- QEMU
- ARM 아키텍처에서 Windows x86 바이너리 애플리케이션을 직접 실행하려면 물론 에뮬레이션이 필요합니다.QEMU는 Linux에서 Wine을 실행할 수 있는 오픈소스 에뮬레이터이지만 결과는 허용할 수 없을 정도로 느립니다.QEMU는 사용자 공간의 모든 x86 명령(와인 코드 포함)을 해석합니다.Linux 시스템에서 호출하는 경우에만 응용 프로그램이 최대 속도로 실행됩니다.애플리케이션이 대부분의 시간을 에뮬레이트된 사용자 공간에서 보내고 커널에서 더 적은 시간을 보내기 때문에 결과는 느립니다.그러나 Wine이 제공하는 Win API DLL을 QEMU 외부에서 사용할 수 있다면 네이티브로 컴파일할 수 있기 때문에 전체 실행 속도가 크게 향상될 것입니다.Wine과 QEMU를 조합하여 Winserver 기능을 커널에 넣는 것이 Longen 2.0의 아이디어입니다.
사용자
Magic Linux – Magic Linux는 Red Hat Linux를 기반으로 하는 중국 Linux 배포판입니다.2008년 12월 15일에 출시된 Magic Linux 버전 2.1에는 메인 버전(DVD, Linux 커널 2.6.25.20 포함), 컴팩트 버전(CD, Linux 커널 2.6.25.20 포함), Longen 버전(Longene 0.2 [5]포함 CD)이 포함되어 있습니다.
하드웨어 요건
실행할 최소 하드웨어 요건은 다음과 같습니다.
- IA-32 프로세서
- 128 MB RAM
- IDE 또는 SATA 하드디스크
- VGA 대응 비디오 카드
- 표준(PS/2 또는 USB) 키보드
- PS/2 호환 마우스 또는 Microsoft 마우스 호환 시리얼 마우스
아키텍처 지원
- IA-32(작동 중)
- x86-64(동작하지 않고 진행 중)
- Loongson 3(작동하지 않고 진행 중)
- ARM(작동하지 않음, 진행 중)
- Longene은 VMware나 Virtual Box 등의 상기 하드웨어를 에뮬레이트 또는 가상화하는 소프트웨어에서도 실행할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "tsuibin/longene". GitHub. Retrieved 2018-08-21.
- ^ Linux unified kernel 0.2.4.1 "LUK 프로젝트는 Windows 및 Linux 사용자 랜드 라이브러리를 개발하지 않습니다.이러한 라이브러리는 Wine(또는 Microsoft Windows/React)에서 제공합니다.OS) 프로젝트와 Linux 프로젝트입니다.
- ^ UnifiedKernel-2.6.13
- ^ "Longene 2.0 will support the Windows applications run on non-x86 architecture machine". Archived from the original on 2014-03-03. Retrieved 2014-04-09.
- ^ Magic Linux 2.5 rc2 © 2014-04-20 Wayback Machine 아카이브 완료
