Nauka programowaniaw Linuxie by stworzyć dysytrybucję linuxa


(słabeusz) #1

Więc chcę się nauczyć programować by umieć:

  • stworzyć od podstaw dystrybucję linuxa

  • tworzyć mini programiki dla linuxa, własny notepad, paint, music player itd.

  • stworzyć nowy typ pakietów na wzór .pbi w PC-BSD

Jakiego języka się powinienem uczyć i jak go się nauczę to skąd mam wiedzieć... jak się za to zabrać? Przecież w kursach języków nie ma tutoriali jak zrobić np. środowisko graficzne czy menu start itd.


(RubasznyRumcajs) #2

powodzenia.

to będzie tylko 156364 dystrybucja linuksa- a sądząc po tym, że nie wiesz jakiego języka się uczyć- a więc również nie masz pojęcia co chcesz napisać- toto będzie kolejna, nic nie wnosząca dystrybucja. ale proszę bardzo- twój czas

co do języków- zacząłbym od skryptów (bash, posix shell), przez pythona do c++

ps. rozumiem, że 'przerobiłeś' już kompletnie LFS :?


(fiesta) #3

słabeusz , proszę zatytułować wątek konkretnie (bez dziwolągów językowych).

Zignorowanie prośby topic :arrow: Śmietnik.


(nintyfan) #4

A może chcesz od razu stworzyć własny system operacyjny od podstaw? Z własnym jądrem, itd.? Tworzenie dystrybucji, to nie umiejętność programowania, a raczej zarządzania projektem i kompilacji rzeczy. Z programowanie, to musisz jedynie znać się na flagach kompilacji - które pod jaką architekturę. Musisz poza tym nawiązać współpracę z twórcami jakiś projektów, by przyjmowali twoje raporty o błędach, przekazywali Ci pewne informację, i w ogóle poświęceli Ci swój czas.

Napisz lepiej, jakie to mają być programiki. Może ktoś się przyłączy do ich rozwoju i wydacie je normalnie? Do pisania mini programów nie musisz tworzyć własnej dystrybucji :wink:

Jeżeli to zrozumiesz, to pojawiają się kolejne pytania:

  • Ile chcesz na to czasu poświęcić?

  • Ile materiału jesteś w stanie opanować?

  • Chcesz pisać naprawdę dobre programy, czy tylko te działające?

  • Mają to być bardziej programy użytkowe - na słabe komputery - skrypty w bash, itd.

Ja poleciłbym zacząć od nauki Pythona.

PS: to nie odpowiedni dział na zadawanie takich pytań.

Jeżeli chcesz robić tego typu rzeczy, jak śtodowisko graficzne, to jeden język może nie wystarczyć. Od dawien dawna w środowisku OS panuje moda na umożliwianie oskryptowania/oprogramowania różnych elementów systemu w wielu różnych językach. Zjawisko te się nasiliło, kiedy Microsoft podążył tą samą ścieżką. Jeżeli chcesz tworzyć środowisko graficzne samemu, to dobrze byłoby znać kilka języków programowania. Jeżeli chcesz tworzyć bardzo mało złożone środowisko graficzne, z małą ilością opcji, to wystarczy znajomość C. Do tworzenia środowiska graficznego koniecznie poznaj XLib. Musisz też poznać GTK+ lub QT. Bardzo przydatna jest też znajomość DBus-a, jak i usług systemowych, typu menadżer sesji(ConsoleKit), serwer drukowania(CUPS), itd. Koniecznie musisz się zapoznać z obecnymi menadżerami okien, jak i menadżerami pulpitów.

Do tworzenia środowiska graficznego bardzo pomocna jest znajomość standardów. Wiele z nich znajdziesz na stronach freedesktop.

Co do tworzenia menu start, to nie jest to nic trudnego. Zwyczajnie tworzysz jakiś przycisk, który obsługuje odpowiednie zdarzenia. Podczas wyświetlania przechwytuje(wywołuje XGrabMouse) kursor, by się ukryć w razie kliknięcia w inne miejsce. Menu start, to normalne menu - działa tak samo, jak menu dostępne pod prawym klawiszem myszki. Może QT4 ma już odpowiednią klasę, jak menu - na pewno ma. GTK+ ma, bo sprawdzałem.

Zastanów się najpierw, co chcesz robić, bo jedna osoba, to chyba za mało.

-- Dodane 22.09.2010 (Śr) 11:42 --

Ja się dalej nie będę wtrącać. Podejrzewam, że chcesz utworzyć dystrybucję przypominające do złudzenia Windows. Zajrzyj najpierw na Mandrivę, Linspire, a także Linpus XP. To są wielcy przegrani, gdyż chceli się upodobnić do Windows.

Na programowaniu środowiska graficznego się mało znam - większość elementów pewnie się programuje, jak normalne aplikacje. Jedynie menadżer okien i sesji są rzeczmi specyficznymi. Menadżer okien decyduje nieco o charakterze środowsika graficznego - to on zarządza oknami, a więc również oknami twojego środowiska(paski, pulpit, menu, itd.). Menadżer sesji jest wymagany, by to wszystko jakoś działało.

Zdecydowanie menadżer sesji i okien są najtrudniejszymi elementami do wykonania.

Jeżeli chcesz nadal się interesować tworzeniem własnego środowiska graficznego, to spytaj się na forum programowania, z jakich bibliotek graficznych korzystać.

Jeżeli chcesz tworzyć własną dystrybucję - np. zbliżoną do Windows - zainteresuj się lepiej przerobieniem obecnego środowiska graficznego(KDE4) tak, by tobie odpowiadało. Jeżeli nie chcesz korzystać z obecnych środowisk graficznych, to najpierw zajmij się stworzeniem własnego środowiska, a nie całej dystrybucji. Wtedy w razie problemów będziesz mieć szansę osiągnąć przynajmniej połowę sukcesu.