GNUstep - GNUstep

GNUstep -projektet
GNUstep logo.svg
Gnustep.png
GNUstep -skärmdump som visar Window Maker och en mängd olika applikationer som utvecklats med GNUstep -biblioteken, inklusive ett gomoku -spel, en miniräknare och TextEdit .
Utvecklare GNUstep -utvecklare
Stabil frisättning
göra 2.9.0, bas 1.28.0, gui 0.29, back 0.29 / 6 maj 2021 ; 4 månader sedan ( 2021-05-06 )
Förhandsversion
endast i SVN -programförvaret
Skrivet i Mål-C
Operativ system Plattformsoberoende
Typ Widgetverktygssats
Licens GNU General Public License för applikationerna
GNU Lesser General Public License för biblioteken.
Hemsida www .gnustep .org

GNUstep är en kostnadsfri mjukvaruimplementering av Cocoa (tidigare OpenStep ) Objective-C- ramverk , widgetverktygssats och applikationsutvecklingsverktyg för Unix-liknande operativsystem och Microsoft Windows . Det är en del av GNU -projektet .

GNUstep har en plattformsoberoende, objektorienterad IDE . Förutom standardobjekt -C- gränssnittet har GNUstep också bindningar för Java , Ruby , GNU Guile och Scheme . GNUstep -utvecklarna spårar några tillägg till Apples kakao för att förbli kompatibla. Rötterna i GNUstep -applikationsgränssnittet är desamma som rötterna i Cocoa: NeXTSTEP och OpenStep . GNUstep föregår alltså Kakao, som uppstod när Apple förvärvade NeXT : s teknik och införlivade den med utvecklingen av den ursprungliga Mac OS X , medan GNUstep inledningsvis var ett försök från GNU- utvecklare att replikera de tekniskt ambitiösa NeXTSTEP: s programmerarvänliga funktioner.

Historia

GNUstep började när Paul Kunz och andra vid Stanford Linear Accelerator Center ville överföra HippoDraw från NeXTSTEP till en annan plattform. I stället för att skriva HippoDraw från grunden och återanvända bara ansökan design, de bestämde sig för att skriva det Nextstep objektlagret då ansökan berodde. Detta var den första versionen av libobjcX . Det gjorde det möjligt för dem att överföra HippoDraw till Unix -system som kör X Window System utan att ändra en enda rad i deras applikationskälla. Efter att OpenStep -specifikationen släpptes för allmänheten 1994 bestämde de sig för att skriva en ny objcX som skulle följa de nya API: erna. Programvaran skulle bli känd som "GNUstep".

Programvaruarkitektur

Illustrerar programvarukomponenter i Linux -skrivbordsstacken som bildskärmsservern , grafikstyrelementbibliotek eller grafiska skal .

Tolkning

GNUstep innehåller en uppsättning grafiska kontrollelement skrivna på Objective-C programmeringsspråk.

Den grafiska användargränssnittet (GUI) av GNUMail består av grafik kontrollelement. GNUMail måste interagera med fönstersystemet , t.ex. X11 eller Wayland , och dess grafiska användargränssnitt måste återges . GNUsteps backend ger en liten uppsättning funktioner som användargränssnittsbiblioteket använder för att ansluta till det faktiska fönstersystemet . Den har också en återgivningsmotor som emulerar vanliga Postscript -funktioner. Paketet gnustep-back ger följande backends:

  • cairo - standardbackend med hjälp av grafikbiblioteket i Kairo 2D.
  • winlib - standardbackend på Microsoft Windows -system. Kairo och Windows API -varianter.
  • art-gammal (utfasad) backend på unixliknande system. Använder det vektorbaserade PostScriptliknande 2d-grafikbiblioteket Libart .
  • xlib - gammal (utfasad) X11 -backend.

Paradigm

GNUstep ärver vissa designprinciper som föreslås i OPENSTEP (GNUstep föregår kakao, men kakao är baserat på OPENSTEP) samt Objective-C- språket.

Andra gränssnitt

Förutom Objective-C-gränssnittet implementerar några små projekt under GNUstep-paraplyet andra API: er från Apple:

  • Boron -biblioteket syftar till att implementera Carbon API . Det är mycket ofullständigt.
  • CoreBase -biblioteket är utformat för att vara kompatibelt med Core Foundation . Det är inte tillräckligt komplett för att Base (Foundation Kit) -komponenten helt enkelt ska vara ett omslag runt den.
  • QuartzCore -biblioteket implementerar Core Animation API: er. Opal -biblioteket implementerar Quartz 2D .

Från och med februari 2020 finns det inga projekt som bygger programmeringsspråket Swift mot GNUstep Objective-C-miljön.

Ansökningar

Här är några exempel på applikationer skrivna för eller överförda till GNUstep.

Skrivet från grunden

Portad från NeXTSTEP, OPENSTEP eller macOS

Gafflar av GNUstep

Klassfunktioner

Foundation Kit

Den Foundation Kit ger grundläggande klasser såsom wrapper klasser och datastrukturklasser.

  • strängar
  • samlingar (matriser, uppsättningar, ordböcker) och räknare
  • filhantering
  • objektarkivering
  • avancerad datummanipulation
  • distribuerade objekt och kommunikation mellan processer
  • URL -hantering
  • aviseringar (och distribuerade aviseringar)
  • enkel flertrådning
  • timers
  • lås
  • undantagshantering

Applikationssats

Den Application Kit ger klasser orienterade kring grafiskt användargränssnitt kapacitet.

  • element i användargränssnittet (tabellvyer, webbläsare, matriser, rullningsvyer)
  • grafik ( WYSIWYG , efterskriftsliknande grafik, bezier-banor, bildhantering med flera representationer, grafiska sammanhang)
  • färghantering (kalibrerade kontra enhetsfärger; CMYK , RGB , HSB , grå och namngivna färgåtergivningar; alfa -transparens)
  • textsystemets funktioner: rich text -format , textbilagor, layouthanterare, skrivmaskin, regler, styckeformat, typsnittshantering, stavning
  • dokumenthantering
  • utskriftsfunktioner: utskriftsfunktioner, utskriftspanel och sidlayout
  • hjälpansvarig
  • pasteboardtjänster (aka klippkort)
  • stavningskontroll
  • arbetsytans bindningar för applikationer
  • dra och släpp -operationer
  • delning av tjänster mellan applikationer

Se även

Referenser

externa länkar