맨위로가기

그누스텝

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

그누스텝은 넥스트스텝용 히포드로를 다른 환경에서 실행하기 위해 개발이 시작된 객체 지향 응용 프로그램 개발 프레임워크이다. 1994년 오픈스텝 사양이 공개된 후, 새로운 API를 준수하는 GNUstep이 등장했다. GNUstep은 파운데이션 킷과 애플리케이션 킷으로 구성되며, 다양한 그래픽 사용자 인터페이스 요소와 백엔드를 제공한다. 또한, GNUMail, GWorkspace, Gorm 등 자체 애플리케이션과 넥스트스텝, 오픈스텝, macOS에서 포팅된 애플리케이션을 포함한다.

더 읽어볼만한 페이지

  • 오브젝티브-C로 작성된 자유 소프트웨어 - 월드와이드웹
    월드와이드웹은 팀 버너스리가 개발한 최초의 웹 브라우저이며, 1993년 CERN이 소스 코드를 공개하여 웹 기술 발전에 기여했다.
  • 오브젝티브-C로 작성된 자유 소프트웨어 - 파이어폭스 포커스
    파이어폭스 포커스는 모질라에서 개발한 모바일 웹 브라우저로, 웹 추적기를 차단하여 개인 정보를 보호하고 브라우징 속도를 향상시키며, iOS에서는 사파리와 통합되어 콘텐츠 차단기로, 안드로이드에서는 자체 엔진을 사용하여 작동한다.
  • 호환성 계층 - 와인 (소프트웨어)
    와인(Wine)은 유닉스 계열 운영체제에서 윈도우 응용 프로그램을 실행하기 위한 호환성 계층으로, 윈도우 API를 직접 구현하여 윈도우 프로그램이 리눅스, macOS 등에서 실행되도록 지원하며, 여러 기업의 후원을 받아 꾸준히 발전해왔다.
  • 호환성 계층 - 시그윈
    Cygwin은 윈도우에서 유닉스 시스템과 유사한 환경을 제공하는 소프트웨어로, POSIX API 구현 및 다양한 개발 도구를 통해 유닉스 기반 소프트웨어의 개발, 빌드, 실행을 지원한다.
  • MacOS API - 오픈스텝
    오픈스텝은 넥스트와 선 마이크로시스템즈가 개발한 객체 지향 프로그래밍 환경 및 API 표준으로, 넥스트스텝을 기반으로 다양한 운영체제에서 실행 가능하도록 설계되었으며, macOS, iOS의 Cocoa API 및 GNUstep과 같은 자유 소프트웨어 구현체의 기반이 되었다.
  • MacOS API - 코어 오디오
    코어 오디오는 macOS의 오디오 프레임워크로서 낮은 레이턴시와 유연한 설계를 특징으로 하며, 오디오 유닛 플러그인, 다양한 오디오 포맷, 그리고 하드웨어 추상화 계층 등의 서비스로 구성된다.
그누스텝 - [IT 관련 정보]에 관한 문서
일반 정보
이름GNUstep
종류위젯 툴킷
라이선스GNU GPL (애플리케이션), GNU LGPL (라이브러리)
웹사이트GNUstep 공식 웹사이트
개발
개발자GNUstep 개발자
프로그래밍 언어Objective-C
릴리스
최신 안정 버전make 2.9.2, base 1.30.0, gui 0.31.1, back 0.31.0
최신 미리보기 버전GitHub 소프트웨어 저장소에서 확인 가능
시스템
운영 체제크로스 플랫폼

2. 역사

스탠퍼드 선형 가속기 센터(SLAC)의 폴 쿤츠 등이 넥스트스텝용 히포드로를 다른 환경에서 실행하기 위해 그누스텝을 만들기 시작했다.[1] 이들은 히포드로를 처음부터 새로 만들고 겉모습(외형)만 유지하는 대신, 히포드로가 사용하는 넥스트스텝 라이브러리를 새로 만들기로 했다.[1] 이렇게 만들어진 첫 판이 'libobjcX'이며, 이를 통해 히포드로의 코드를 변경하지 않고도 유닉스의 X 윈도 시스템에서 실행할 수 있었다.[1]

2. 1. 초기 개발

스탠퍼드 선형 가속기 센터(SLAC)의 폴 쿤츠 등이 HippoDraw를 NeXTSTEP에서 다른 플랫폼으로 포팅하고자 하면서 그누스텝 개발이 시작되었다.[1] HippoDraw를 처음부터 다시 작성하고 애플리케이션 디자인만 재사용하는 대신, NeXTSTEP의 객체 계층을 다시 작성하기로 결정했다.[1] 이것이 ''libobjcX''의 첫 번째 버전이다.[1] 이를 통해 HippoDraw 소스 코드를 변경하지 않고도 X 윈도 시스템을 실행하는 유닉스 시스템으로 포팅할 수 있었다.[1] 1994년 OpenStep 사양이 공개된 후, 새로운 API를 준수하는 ''objcX''를 작성하기로 결정했고,[1] 이 소프트웨어가 "GNUstep"으로 알려지게 되었다.[1]

2. 2. 오픈스텝 표준 채택

1994년 오픈스텝 사양이 공개된 후, 그누스텝은 이 표준을 따르는 새로운 API를 개발하기 시작했다.[1] 이들은 기존의 'libobjcX'를 오픈스텝과 유사하게 새로 만들기로 결정했고, 그 결과 오늘날의 그누스텝이 탄생했다.[1]

3. 소프트웨어 아키텍처

GNUstep은 Objective-C로 작성된 일련의 그래픽 제어 요소들을 포함하고 있다. GNUMail의 그래픽 사용자 인터페이스(GUI)는 그래픽 제어 요소로 구성되며, 윈도우 시스템(X11, 웨이랜드 등)과 상호 작용하고 렌더링되어야 한다.

Objective-C 인터페이스 외에도 GNUstep의 일부 소규모 프로젝트는 Apple의 다른 API를 구현한다.


  • Boron 라이브러리는 Carbon API 구현을 목표로 하지만, 아직 완성되지 않았다.
  • CoreBase 라이브러리는 Core Foundation과 호환되도록 설계되었지만, Base (Foundation Kit) 구성 요소가 래퍼가 되기에는 충분히 완성되지 않았다.
  • QuartzCore 라이브러리는 Core Animation API를 구현하며, Opal 라이브러리는 Quartz 2D를 구현한다.


현재 GNUstep Objective-C 환경에 대해 Swift 프로그래밍 언어를 빌드하는 프로젝트는 없다.

GNUstep은 NeXT의 OPENSTEP 사양과 완벽하게 호환되는 플랫폼 독립적인 객체 지향 개발 환경을 갖추고 있으며, NeXT는 애플 컴퓨터(Apple Computer)에 인수되었다. 애플과 마찬가지로 GNUstep은 자바 인터페이스를 가지며, 루비[8]나 Scheme과도 연결할 수 있다.

GNUstep의 응용 소프트웨어 인터페이스는 macOS의 Cocoa 인터페이스와 근본적으로 같다. GNUstep은 Cocoa보다 먼저 나왔다.

GNUstep은 OPENSTEP의 사양을 충족하는 것을 목표로 개발되었으며, macOS가 구현하고 있는 프레임워크의 많은 부분을 갖추고 있지 않지만, GNUstep 개발자는 호환성을 위해 애플 Cocoa의 추가 기능에 따르려고 노력하고 있다. 단, Cocoa와 GNUstep은 ABI가 전혀 다르기 때문에, 애플리케이션의 바이너리 수준 호환성은 기대할 수 없다.

3. 1. 파운데이션 킷 (Foundation Kit)

Foundation Kit(파운데이션 킷)은 래퍼 클래스 및 데이터 구조 클래스 등 기본적인 클래스들을 제공한다. 여기에는 다음과 같은 기능들이 포함된다.[8]

기능
문자열
집합 (배열, 세트, 사전) 및 열거자
파일 관리
객체 보관
확장된 데이터 조작
분산 객체와 프로세스 간 통신
URL 처리
알림 및 분산 알림
간단한 멀티 스레딩
타이머
예외 처리


3. 2. 애플리케이션 킷 (Application Kit)

리눅스 데스크톱의 소프트웨어 구성 요소에는 디스플레이 서버, 그래픽 제어 요소 라이브러리, 그래픽 셸 등이 포함된다.


애플리케이션 킷(Application Kit)은 그래픽 사용자 인터페이스(GUI) 기능과 관련된 클래스들을 제공한다. 여기에는 다음과 같은 다양한 기능이 포함된다.

기능 종류세부 기능
사용자 인터페이스 요소테이블 뷰, 브라우저, 매트릭스, 스크롤 뷰
그래픽스WYSIWYG, 포스트스크립트 풍 그래픽스, 베지어 곡선, 이미지 처리, 그래픽 컨텍스트
컬러 관리보정 색상과 물리적 색상(CMYK, RGB, HSB), 회색 및 명명된 색상 표현, 알파 블렌딩
텍스트다양한 텍스트 형식, 첨부 파일, 레이아웃 매니저, 타이프세터, 규칙, 단락 스타일, 글꼴 관리, 맞춤법 검사
문서 관리문서 관리 기능
인쇄 기능인쇄 조작, 인쇄 패널 및 페이지 레이아웃
기타도움말 관리, 페이스트보드 (클립보드와 같은 것), 맞춤법 검사기, 애플리케이션의 워크스페이스 속박, 드래그 앤 드롭 조작, 애플리케이션 간 공통 서비스


3. 3. 백엔드

GNUstep의 백엔드는 사용자 인터페이스 라이브러리가 실제 윈도우 시스템과 인터페이스하는 데 사용되는 기능 집합을 제공한다. 또한 일반적인 포스트스크립트 기능을 에뮬레이션하는 렌더링 엔진도 있다. gnustep-back 패키지는 다음 백엔드를 제공한다.

  • cairo - 카이로 2D 그래픽 라이브러리를 사용하는 기본 백엔드.
  • winlib - Microsoft Windows 시스템의 기본 백엔드. 카이로 및 윈도 API 변형.
  • art - 유닉스 계열 시스템의 이전 (더 이상 사용되지 않음) 백엔드. 벡터 기반의 PostScript와 유사한 2D 그래픽 라이브러리인 Libart를 사용.
  • xlib - 이전 (더 이상 사용되지 않음) X11 백엔드.

3. 4. 디자인 원칙

그누스텝은 OPENSTEP의 설계 원칙과 Objective-C 언어를 상속한다. 다음과 같은 개념을 사용한다.

4. 애플리케이션

GNUstep용으로 작성되었거나 이식된 응용 프로그램들은 다음과 같다.

분류애플리케이션설명
오리지널 애플리케이션주소록주소/연락처 관리자
Étoilé데스크톱 환경
GNUMail이메일 클라이언트
GNUstep 데이터베이스 라이브러리 2Enterprise Objects Framework 클론
GNUstepWebWebObjects 4.x와 호환되는 애플리케이션 서버
Gorm사용자 인터페이스 빌더 애플리케이션. NeXTSTEP, OPENSTEP, Mac OS X의 Interface Builder와 유사하며, .nib.gorm 파일 형식을 지원한다.
GWorkspace작업 공간 및 파일 관리자
GrrRSS 피드 리더
Oolite무역 요소가 있는 우주 시뮬레이션 게임인 Elite의 클론
PRICE이미지 처리 애플리케이션
ProjectCenterProject Builder 또는 Xcode에 해당
TalkSoupIRC 클라이언트
터미널터미널 에뮬레이터
포팅된 애플리케이션아둔
바이오코코아
체스
세논
둠 에디터
이든 매스
에그플랜트
이맥스
포튜네이트
고모쿠
넥스트고
피코픽셀


  • Zipper, 파일 보관 도구
  • Window Maker는 OpenStep 호환 환경으로 NeXTSTEP그래픽 사용자 인터페이스를 에뮬레이트하는 윈도우 매니저이다.[4] 1997년에 AfterStep의 설계를 개선하여 출시되었다.[5]
  • 텍스트 편집기
  • 타임몬

4. 1. 오리지널 애플리케이션


  • 주소록, 주소/연락처 관리자
  • Étoilé, 데스크톱 환경
  • GNUMail, 이메일 클라이언트
  • GNUstep 데이터베이스 라이브러리 2, Enterprise Objects Framework 클론
  • GNUstepWeb, WebObjects 4.x와 호환되는 애플리케이션 서버
  • Gorm, 사용자 인터페이스 빌더 애플리케이션으로 GNUstep 개발 도구의 일부이다. Gorm은 원래 NeXTSTEP, OPENSTEP, 마지막으로 Mac OS X에서 발견된 Interface Builder와 동등하다. 오래된 ''.nib'' 파일과 자체 ''.gorm'' 파일 형식을 지원한다.
  • GWorkspace, 작업 공간 및 파일 관리자
  • Grr, RSS 피드 리더
  • Oolite, 무역 요소가 있는 우주 시뮬레이션 게임인 ''Elite''의 클론
  • PRICE, 이미지 처리 애플리케이션
  • ProjectCenter, Project Builder 또는 Xcode에 해당한다.
  • TalkSoup, IRC 클라이언트
  • 터미널
  • Zipper, 파일 보관 도구
  • Window Maker는 OpenStep 호환 환경으로 NeXTSTEP그래픽 사용자 인터페이스를 에뮬레이트하는 윈도우 매니저이다.[4] 1997년에 AfterStep의 설계를 개선하여 출시되었다.[5]

4. 2. 포팅된 애플리케이션


  • 아둔
  • 바이오코코아
  • 체스
  • 세논
  • 둠 에디터
  • 이든 매스
  • 에그플랜트
  • 이맥스
  • 포튜네이트
  • 고모쿠
  • 넥스트고
  • 피코픽셀
  • 텍스트 편집기
  • 타임몬

참조

[1] 웹사이트 GNUstep Developer Tools - RIGS http://www.gnustep.o[...] 2018-04-10
[2] 웹사이트 GScheme https://web.archive.[...] 2005-12-18
[3] 웹사이트 GNUstep History http://gnustep.made-[...] 2018-04-10
[4] 웹사이트 Window Maker Live: Cool Retro Look, Even Cooler Performance https://www.linuxins[...] 2017-08-28
[5] 웹사이트 The best old-school Linux window managers that still hold up https://www.zdnet.co[...] 2024-10-01
[6] 웹사이트 GNUstep Objective-C Runtime 2.0 https://github.com/g[...]
[7] 웹사이트 https://github.com/g[...]
[8] 웹사이트 http://www.gnustep.o[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com