• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Fork

    Przeczytaj także...
    Widżet – podstawowy element graficznego interfejsu użytkownika (np. okno, pole edycji, suwak, przycisk). Termin ten jest szczególnie popularny wśród użytkowników systemów operacyjnych z rodziny UNIX, natomiast użytkownicy systemów MS Windows używają w tym kontekście terminu kontrolka lub element kontrolny. W produktach firmy Microsoft (Visual Studio, .NET, Office itp.) używana jest nazwa formant. W pewnych kontekstach synonimem widżetu jest okno.Compiz – menedżer okien i kompozycji stworzony z myślą o wykorzystaniu możliwości XGL, opublikowany na otwartej licencji. Wypuszczony po raz pierwszy przez Novella w styczniu 2006. Oferuje różnorodne efekty graficzne, w minimalnym stopniu obciążając jednocześnie procesor (efektami zajmuje się karta graficzna). Niektóre z jego funkcji to wirtualne pulpity w formie sześcianu, galaretowate zachowanie okien podczas ich przesuwania, podgląd wszystkich okien programu/z konkretnego pulpitu/wszystkich otwartych.
    Eksperyment (łac. experimentum - doświadczenie, badanie) – w naukach przyrodniczych i społecznych zbiór działań wzbudzających w obiektach materialnych określone reakcje i zjawiska w warunkach pozwalających kontrolować wszelkie istotne czynniki, które poddaje się dokładnej obserwacji.

    W informatyce, słowo Fork (z angielskiego, dosłownie rozwidlenie) ma dwa znaczenia:

    1. Sytuacja, gdy twórcy projektu informatycznego decydują się na jego podzielenie i dalszy rozwój w dwóch różnych kierunkach
    2. W programowaniu: utworzenie dwóch bliźniaczych kopii procesu, działających równolegle

    Podział projektu informatycznego[]

    Fork to sytuacja, w której rozwój projektu nie prowadzi już jedną drogą, ale rozwidla się na dwie lub więcej gałęzi.

    Beryl – otwarty menedżer okien i kompozycji dla środowiska graficznego X Window System. Jest odgałęzieniem projektu Compiz, a obecnie znów się z nim scalił, tworząc projekt Compiz Fusion.XEmacs - edytor tekstu, który jest oparty na edytorze GNU Emacs. Poprzez zastosowanie GUI w X Window jest on bardziej przyjazny dla użytkownika od swego poprzednika. Jednak od wersji 22 również GNU Emacs posiada GUI, które oparte jest na bibliotece GTK. Istnieje wiele wersji edytora XEmacs na różne odmiany UNIX-a, a także na platformę Windows oraz Mac OS X.

    Jedna grupa forków dotyczy projektów, których zasięg stał się z praktycznego punktu widzenia za duży. Przykładowo na potrzeby projektu GIMP powstał zbiór widżetów, który został oddzielony od GIMP-a i przeniesiony do GTK+. GTK+ ulegało potem dalszym podziałom, odłączyły się od niego m.in. GLib i Pango.

    Unix Time-Sharing System (pisane również jako UNIX, choć nie jest to skrót – nazwa „UNIX” jest kalamburem określenia Multics, który był wzorem dla Uniksa) – system operacyjny rozwijany od 1969 r. w Bell Labs (UNIX System Laboratories, USL) przez Dennisa Ritchie i Kena Thompsona. W latach 70. i 80. zdobył bardzo dużą popularność, co zaowocowało powstaniem wielu odmian i implementacji. Część z nich, w szczególności Linux oraz OS X, jest w użyciu do dziś. UNIX jest zarejestrowanym znakiem towarowym The Open Group.OpenBSD – wolnodostępny system operacyjny typu UNIX z rodziny BSD zgodny z normą POSIX. Projekt powstał w 1995 roku jako efekt rozłamu w zespole NetBSD, jego inicjatorem był kanadyjski programista Theo de Raadt.

    Inną grupą są specjalne wersje projektu, rozwijane jednak we współpracy z "główną gałęzią", np. wersje Apache, jądra Linuksa używane w różnych dystrybucjach czy też CinePaint (dawniej Film Gimp), który odłączył się od GIMP-a.

    Trzecią grupę stanowią sytuacje, kiedy wskutek konfliktów, co do właściwego kierunku rozwoju projektu powstaje kilka różnych gałęzi. Zwykle jedna z gałęzi powstałych po rozpadzie szybko ginie, np. EGCS odłączyło się od GCC, po czym stało się jedyną oficjalną wersją, gdyż programiści GCC przeszli do projektu EGCS (który od tego czasu ponownie nosi nazwę GCC). Czasem różne gałęzie istnieją obok siebie przez bardzo długi czas, pozostając ze sobą w różnych stosunkach. Tak jak np. XEmacs i GNU Emacs, czy różne wersje systemu BSD - FreeBSD, OpenBSD, NetBSD itp.

    Apache – otwarty serwer HTTP dostępny dla wielu systemów operacyjnych (m.in. UNIX, GNU/Linux, BSD, OS X, Microsoft Windows).NetBSD – wysoce przenośny, dostępny na wiele architektur system operacyjny z rodziny BSD (Unix), zgodny z normą POSIX.

    Podobna sytuacja miała miejsce w znanym menedżerze okien do Linuksa - od projektu Compiz odłączyła się gałąź eksperymentalna - Beryl. W drugiej połowie roku 2007 liderzy grup programistycznych dwóch gałęzi postanowili połączyć swoje projekty w jeden - Compiz Fusion.

    Fork w programowaniu[]

    Funkcja fork() i fork1() jest funkcją w systemie operacyjnym Unix (i nie tylko) powodującą, że pojedynczemu programowi, któremu do jego wykonania przypisany jest pojedynczy proces w systemie operacyjnym, przypisuje się dwa procesy poprzez rozwidlenie: rodzic i dziecko - czyli tworzy nowy proces. W chwili utworzenia, proces-dziecko jest kopią procesu-rodzica (kopiowane są obszary pamięci, wartości zmiennych i część środowiska). Aby umożliwić zróżnicowanie dalszego działania obu procesów, konieczne jest ustalenie, który z nich jest dzieckiem, a który rodzicem. W tym celu testuje się wartość zwracaną przez funkcję fork() lub fork1(), która wynosi:

    Proces – jedno z podstawowych pojęć w informatyce, definiowane jako egzemplarz wykonywanego programu. Każdy nowo powstały proces otrzymuje unikatowy numer, który go jednoznacznie identyfikuje, tzw. PID (od (ang.) process identifier).Pango jest biblioteką udostępnianą na zasadach Wolnego i Otwartego Oprogramowania, odpowiedzialną za wygląd i renderowanie tekstu. Biblioteka Pango wykorzystywana jest głównie w środowisku graficznym GNOME w powiązaniu z biblioteką GTK+.
  • -1 w rodzicu, kiedy nie powiedzie się stworzenie nowego procesu (dziecka)
  • 0 w dziecku
  • id_procesu dziecka (czyli jakaś liczba naturalna większa od zera) w rodzicu, który się rozwidlił
  • i uzależnia podjęcie dalszych działań od uzyskanego wyniku. Fragment przykładowego kodu w C:

     
    switch(fork())
    {
      case -1:
        //jesteśmy w rodzicu, ale niepowodzenie
     
      case 0:
        //jesteśmy w dziecku
     
      default:
        //jesteśmy w rodzicu
    }
    

    Zobacz też[]

  • Fork-bomba
  • EGCS (Experimental/Enhanced GNU Compiler System) – fork projektu GCC powstały w roku 1997. Projekt EGCS był odpowiedzią części twórców GCC na wolne tempo rozwoju tego projektu i utrudnienia związane z przyjmowaniem nowego kodu do jego oficjalnej wersji, stał się więc miejscem na początkowo eksperymentalne ulepszenia i modyfikacje tegoż kompilatora. W skład EGCS weszły inne forki takie jak Pentium-optimised GCC oraz wersje GCC dla nowych architektur komputerów i nowych języków programowania (między innymi Fortran) i zostały złączone w jednym miejscu.FreeBSD — system operacyjny z rodziny Unix. Do wersji 2.0 wywodził się z systemu 4.3BSD, kolejne wersje wywodziły się z 4.4BSD Lite2; obu stworzonych przez Computer Systems Research Group (CSRG) na Uniwersytecie Kalifornijskim w Berkeley. Podobnie jak NetBSD, jest bezpośrednią pochodną 386BSD – systemu będącego pierwszą próbą przeportowania systemu Unix z gałęzi BSD na architekturę IA-32.Początkowo znany pod nazwą Unofficial 386BSD Patchkit.



    w oparciu o Wikipedię (licencja GFDL, CC-BY-SA 3.0, autorzy, historia, edycja)

    Warto wiedzieć że... beta

    BSD (ang. Berkeley Software Distribution, czasami nazywany Berkeley Unix) – odmiana systemu operacyjnego Unix wywodząca się ze stworzonych na Uniwersytecie Kalifornijskim Berkeley rozszerzeń dla systemu rozwijanego przez firmę AT&T. Także potoczna nazwa licencji BSD, na której te systemy są wydawane oraz pokrewnych licencji tego typu (np. licencja MIT).
    Menedżer okien — w graficznym interfejsie użytkownika jest to program zarządzający rozmieszczeniem, zachowaniem i rysowaniem okien w obrębie systemu okien. Większość menedżerów okien jest elementem kompletnego środowiska graficznego dla systemu operacyjnego. Są przeważnie napisane z wykorzystaniem jednej z istniejących bibliotek kontrolek (np. Qt, GTK+).
    GCC (ang. GNU Compiler Collection) - zestaw kompilatorów do różnych języków programowania rozwijany w ramach projektu GNU i udostępniany na licencji GPL oraz LGPL.
    GLib (G Library) - niskopoziomowa, narzędziowa biblioteka funkcji dla programistów języka C, dostarczająca jednolite API.

    Reklama