GNU 스텝
GNUstep개발자 | GNUstep 개발자 |
---|---|
안정된 릴리스 | make 2.9.0, base 1.28.0, gui 0.29, back 0.29 / 2021년 5월 6일; 전( |
프리뷰 릴리즈 | SVN 소프트웨어 저장소에서만 |
저장소 | |
기입처 | 목표-C |
운영 체제 | 크로스 플랫폼 |
유형 | 위젯 툴킷 |
면허증. | 응용 프로그램용 GNU General Public License 라이브러리용 GNU Lesser General Public License. |
웹 사이트 | www |
GNUstep은 Unix와 유사한 운영 체제 및 Microsoft Windows용 Cocoa(이전의 OpenStep) Objective-C 프레임워크, 위젯 툴킷 및 응용 프로그램 개발 도구의 무료 소프트웨어 구현입니다.GNU 프로젝트의 일부입니다.
GNUstep은 크로스 플랫폼, 객체 지향 IDE를 갖추고 있습니다.기본 Objective-C 인터페이스와는 별도로 GNUstep은 Java,[2] Ruby, GNU Guile [3]및 Scheme용 바인딩도 갖추고 있습니다.GNUstep 개발자들은 호환성을 유지하기 위해 애플의 코코아에 추가된 몇 가지 사항을 추적하고 있다.GNUstep 어플리케이션인터페이스의 루트는 Cocoa의 루트와 같습니다.NeXTSTEP 및 OpenStep입니다.따라서 GNUstep은 애플이 NeXT의 기술을 인수하여 오리지널 Mac OS X의 개발에 통합하면서 등장한 코코아보다 앞서고, GNUstep은 기술적으로 야심찬 NeXTSTEP의 프로그래머 친화적인 기능을 복제하기 위한 GNU 개발자들의 노력이었다.
역사
GNUstep은 Stanford Linear Accelerator Center의 Paul Kunz와 다른 사람들이 HippoDraw를 NeXTSTEP에서 다른 플랫폼으로 이식하기를 원했을 때 시작되었습니다.HippoDraw를 처음부터 다시 작성하고 애플리케이션 설계만 재사용하는 대신 애플리케이션이 의존하는 NextSTEP 객체 계층을 다시 쓰기로 결정했습니다.이것이 libobjcX의 첫 번째 버전입니다.이를 통해 애플리케이션 소스를 한 줄도 변경하지 않고 X Window 시스템을 실행하는 Unix 시스템에 HippoDraw를 이식할 수 있었습니다.1994년 OpenStep 사양이 일반에 공개된 후, 그들은 새로운 API를 준수하는 새로운 objcX를 작성하기로 결정했습니다.이 소프트웨어는 "GNUstep"[4]으로 알려지게 됩니다.
소프트웨어 아키텍처
렌더링
GNUstep에는 Objective-C 프로그래밍 언어로 작성된 그래픽 제어 요소 세트가 포함되어 있습니다.
GNUMail의 그래피컬 유저 인터페이스(GUI)는 그래픽스 컨트롤 요소로 구성되어 있습니다.GNUMail은 X11이나 Wayland와 같은 윈도우 시스템과 상호 작용해야 하며 그래픽 사용자 인터페이스를 렌더링해야 합니다.GNUstep의 백엔드는 사용자 인터페이스 라이브러리가 실제 윈도우 시스템에 인터페이스하기 위해 사용하는 작은 함수 집합을 제공합니다.또한 일반적인 Postscript 함수를 에뮬레이트하는 렌더링 엔진도 있습니다.패키지 gnustep-back은 다음 백엔드를 제공합니다.
- 카이로 – 카이로 2D 그래픽 라이브러리를 사용하는 기본 백엔드.
- winlib : Microsoft Windows 시스템의 기본 백엔드.Cairo 및 Windows API 버전.
- art – Unix와 유사한 시스템의 오래된(사용되지 않는) 백엔드.벡터 기반 PostScript like 2d 그래픽 라이브러리 Libart를 사용합니다.
- xlib: 오래된(사용되지 않는) X11 백엔드.
패러다임
GNUstep은 OPENSTEP(GNUSTEP은 코코아보다 앞서지만 코코아는 OPENSTEP을 기반으로 함) 및 Objective-C 언어를 계승합니다.
기타 인터페이스
Objective-C 인터페이스 외에 GNUstep 엄브렐라 아래의 일부 소규모 프로젝트에서는 Apple의 다른 API를 구현합니다.
- 보론 라이브러리는 Carbon API를 구현하는 것을 목표로 합니다.그것은 매우 [5]불완전하다.
- CoreBase 라이브러리는 Core Foundation과 호환되도록 설계되었습니다.Base(Foundation Kit) 컴포넌트를 단순히 [6]랩퍼로 감싸는 것만으로는 충분하지 않습니다.
- QuartzCore 라이브러리는 코어 애니메이션 API를 [7]구현합니다.Opal 라이브러리는 Quartz 2D를 구현합니다.
2020년 2월[update] 현재 GNUstep Objective-C 환경에 대해 Swift 프로그래밍 언어를 구축하는 프로젝트는 없습니다.
적용들
다음은 GNUstep용으로 작성되었거나 GNUstep으로 [8]이식된 응용 프로그램의 예입니다.
처음부터 작성
- 주소, 주소/연락처 관리자
- 데스크톱 환경인 Etoilé
- GNUMail, 이메일클라이언트
- GNUstep 데이터베이스 라이브러리 2, Enterprise Objects Framework 클론
- GNUstepWeb, WebObjects 4.x와 호환되는 응용 프로그램서버
- Gorm, 인터페이스 빌더
- GWorkspace, 워크스페이스 및 파일 관리자
- Grr, RSS 피드 리더
- 엘리트의 복제품인 Oolite, 컴포넌트 트레이딩 우주 시뮬레이션 게임
- 가격, 이미징 어플리케이션
- ProjectCenter, Project Builder 또는 Xcode와 동등한 것.
- IRC 클라이언트 TalkSoup
- 터미널
- 파일 아카이브 도구인 지퍼
NextSTEP, OPENSTEP 또는 macOS에서 이식됨
GNUstep의 포크
- Universal Windows Platform - GNUstep의 다양한 부분으로 구성된 WinObjC 스위트 및 마이크로소프트 자체 구현된 코코아 [9]터치 API를 포함합니다.
클래스 기능
파운데이션 키트
Foundation Kit는 래퍼 클래스 및 데이터 구조 클래스와 같은 기본 클래스를 제공합니다.
- 줄들
- 컬렉션(로그인, 세트, 사전) 및 열거자
- 파일 관리
- 오브젝트 아카이브
- 고도의 날짜 조작
- 분산 객체 및 프로세스 간 통신
- URL 처리
- 통지(및 분산 통지)
- 간단한 멀티캐스팅
- 타이머
- 록
- 예외 처리
응용 프로그램 키트
Application Kit는 그래픽 사용자 인터페이스 기능을 중심으로 한 클래스를 제공합니다.
- 사용자 인터페이스 요소(테이블 뷰, 브라우저, 매트릭스, 스크롤 뷰)
- 그래픽스(WYSIWYG, 포스트스크립트 라이크 그래픽스, 베저 패스, 여러 표현을 사용한 이미지 처리, 그래픽 컨텍스트)
- 색상 관리(디바이스 색상과 비교하여 보정됨, CMYK, RGB, HSB, 회색 및 이름 있는 색상 표현, 알파 투과성)
- 텍스트 시스템 기능: 리치 텍스트 형식, 텍스트 첨부 파일, 레이아웃 관리자, 식자, 규칙, 단락 스타일, 글꼴 관리, 맞춤법
- 문서 관리
- 인쇄 기능: 인쇄 조작, 인쇄 패널 및 페이지 레이아웃
- 헬프 매니저
- 페이스트 보드(클립 보드라고도 함) 서비스
- 철자 검사기
- 응용 프로그램의 작업 영역 바인딩
- 드래그 앤 드롭 조작
- 애플리케이션 간의 서비스 공유
「 」를 참조해 주세요.
- Darling (소프트웨어), GNUstep에 의존하는 호환성 계층
- GNUstep 팻번들
- GNUstep 르네상스, 휴대용 GNUstep/Mac OS X 사용자 인터페이스의 XML 기술을 위한 프레임워크
- Miller Columns, GWorkspace File Viewer에서 사용하는 파일트리를 브라우즈하는 방법
- 속성 목록, 사용자 설정 저장에 자주 사용되는 파일 형식
- 스텝톡, 스크립트 프레임워크
- Window Maker는 광범위한 GNUstep 프로젝트의 일부로 NeXT GUI를 에뮬레이트하도록 설계된 윈도 매니저입니다.
레퍼런스
- ^ NextSTEP에서 이식.최근 빌드에서는 libobjc2로 빌드할 때 Mac OS X Snow Leopard에서 이식된 최신 버전을 사용할 수 있습니다.
- ^ "GNUstep Developer Tools - RIGS". www.gnustep.org. Retrieved 10 April 2018.
- ^ GScheme 2005-12-18 Wayback Machine 아카이브 완료
- ^ "GNUstep History". gnustep.made-it.com. Retrieved 10 April 2018.
- ^ "gnustep/libs-boron: Boron is the atom that comes before carbon". GitHub. GNUstep. 23 March 2019.
- ^ "gnustep/libs-corebase". GNUstep. 19 November 2019.
- ^ "gnustep/libs-quartzcore". GNUstep. 11 December 2019.
- ^ "Category:Applications - GNUstepWiki". wiki.gnustep.org. Retrieved 10 April 2018.
- ^ "GNUstep Objective-C Runtime 2.0". GitHub.
Note: Microsoft's WinObjC project contains a friendly fork of this library that includes a work around for the incremental linking issue.
외부 링크
- GNUstep.org 프로젝트 홈페이지
- GNUstep 응용 프로그램 및 개발자 튜토리얼
- GNUstep 응용 프로그램 프로젝트
- 2003년 Wayback Machine에서 GNUstep 개발자 Nicola Pero Archived 2007-01-07과의 인터뷰
- GNUstep의 Gregory Casamento와 Riccardo Motola와의 FLOSS 주간 인터뷰
- Debian, FreeBSD, MacPort에서의 GNUstep
- GNUstep 기반 NEXTPACE 데스크톱 환경