Der lange Weg zum Linux Programmierer - wo fängt er an?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    die Frage ist natürlich allgemein und nicht auf den RP bezogen. Wenn ich zurückblicke in mein Berufsleben und
    mein Hobby war folgendes bisher Sache.

    0. 1995: Studium der E-Technik: 2 komplexe DOS Computerviren geschrieben in Assembler ( ohne Schadfunktion:-),
    war der Reiz des verbotenen. Hilfsmittel PC Intern und Turbo Assembler. Int21 und INT13, mehr brauchte man nicht
    zu wissen und wie eben ein dateisystem aufgebaut ist, wie eine FAT usw. Das BIOS und das DOS hatten alles an
    Bord was man brauchte.. Assembler eben. Ich kannte einen 386 wie meine Westentasche. PC-Intern war ein geniales
    Buch!!!! Das Thema Viren war dann aber schnell erledigt :)

    1. Microcontroller von PIC bis ARM7 "from scratch", also weisse Edotorseite und los! Treiber etc
    alles selbst geschrieben nach dem OSI/ISO Modell mit C und C++. Jahrelang! Der ARM7TDMI
    ist einer der besten Controller die ich kenne für komplexe Anwendungen. Hilfsmittel KEIL Tools, GNU
    und Debugger. Allerdings alles Payware, nicht ganz billig.Dafür aber "professionell".

    2. Visual Basic: Komplexe Maschinensteueurngen realisiert mit grafischer Oberfläche.
    Einfach und schnell, in 6 Wochen ist man drin wenn man das jeden Tag macht. Später
    dann Excel Programmierung. Die Produktiondaten der Fertigung liefen in Tabellen rein, Excel ist voll
    programmierbar.

    3. Arduino: Alles, auch Libs geschrieben. War schnell ausgereizt das Thema, ist aber nett für was
    Tolles zum Basteln.

    3. Einfache Programme unter Linux, die nur die Standardbibliotheken in C verwenden. Ausgabe in Konsole
    mit Abfrage über A = ? und Augabe über printf. Ok, komme ich nicht weiter so. Das habe ich schon vor 25
    Jahren auf dem Apple II gemacht, mit UCSD Pascal. Textprogramme eben, nix mit Grafik. Das kam später
    mit Turbo C erst und den blauen Shells, wie der Norton Commander sie hat. Das war Standard in den 90igern.

    4 ..... jetzt den nächsten Schritt:

    Wie fängt man an unter Linux Software zu schreiben, die Betriebssystemfunktionen verwendet? Woher kriege
    ich überhaupt die API? Da sind doch abertausende von Funktionen. Und alles bitte noch grafisch!

    Wenn ich sehe was Leute schaffen, die zb komplexe Bot-Netz Software schreiben, auch wenn nicht legal,
    so sind das geniale Stücke Software. Das lernt man nicht auf der Strasse und das sind auch keine Script kiddies
    die sowas schreiben.Aber lassen wir Netzwerke erstmal weg, das ist ein eigenes Gebiet und sehr komplex.

    Bleiben wir bei dem PC als Standalone Lösung, der irgendwas berechnet oder steuert.

    Sind das Lehrgänge die man irgendwo besuchen kann, damit man nicht alles immer wieder neu erfindet und
    alle Fallen mitnimmt? Ich möchte keine 2 Jahre brauchen sondern 3 Monate, bis die ersten Programme auf der
    LXDE starten können, die etwas Gescheites tun. Welche Werkzeuge und Literatur brauche ich? Bevorzugt
    ist allerdings immer noch ein Lehrgang, kann auch ein paar Tausener kosten, das würde die Firma bezahlen,
    weil ich dort Linux als OS für Steuergeräte verwenden möchte.

    Hat jemand diesen Weg schon beschritten?

    Gruss,
    Christian

    Einmal editiert, zuletzt von Superhobel (1. Dezember 2013 um 01:24)

  • Der lange Weg zum Linux Programmierer - wo fängt er an?? Schau mal ob du hier fündig wirst!


  • Wie fängt man an unter Linux Software zu schreiben, die Betriebssystemfunktionen verwendet? Woher kriege
    ich überhaupt die API? Da sind doch abertausende von Funktionen. Und alles bitte noch grafisch!

    Hallo Christian,

    nachdem Du soweit Profi bist, ist Dir sicher klar, daß Du Dich intensiv mit dem Kernel und dessen Struktur auseinandersetzen musst. Das ist alles sehr umfangreich, einen guten Einstieg findest Du hier:

    http://kernelnewbies.org/

    Viel Erfolg!

    Gruß, mmi

  • Hallo,

    (au mann.... auf dem Raspberry hier tippen ist echt laaaaaaaaangsam....., da trauen sich die Buchstaben
    kaum hervor. Suche noch den Browser für die Konsole a la ALPINE :)-)

    Erstmal Danke fürden Kernel Link. Ich spreche zwar Englisch aber in deutsch wäre das schon
    verständlicher wegen der Fachausdrücke. Allerdings läuft alles über linux in Englisch ab in den Foren
    und auch jeder Code, der irgendwo bei sourforge oder github veröffentlicht wird muss 100% in Englisch sein.

    Habe das was gefunden: Linux Hotel: http://www.linuxhotel.de/kurs/shell/

    "Wer vorankommen will, kann nicht alles im Selbststudium erarbeiten - im eigenen Betrieb gibt es zuviele Störungen, und jeder Neuanfang ist eine Überwindung. Gehen Sie ab und an auf eine Schulung! Das Linuxhotel ist ein nach dem Vorbild eines der besten Hotels Deutschlands gebautes Luxushotel (vorher ein Kloster), das jedoch auf SB-Basis arbeitet und deshalb sehr preiswert ist. Sie lernen und übernachten in einer integrierten Gesamtanlage (bitte dieses Video anschauen), die ausgiebigen Erfahrungsaustausch mit Kollegen und Dozenten zwanglos anregt. Zu allen Tages- und Nachtzeiten steht alles kostenlos bereit (Technik, Materiallager, Literatur, Essen, Trinken,...), und in unserem ebenfalls offenen Netzwerk können Sie die Konfiguration frei zugänglicher virtueller Testserver (DNS, Mail, LDAP, Datenbanken, ...) einsehen und probeweise verändern. Das Linuxhotel ist ein Gesamtkonzept, das Ihre Einarbeitung in OpenSource-Software schnell, erfolgreich und mit viel Freude ermöglichen soll."

    Die Kosten sind überschaubar, 3 - 4 Kurse nacheinander würde mein AG schon bezahlen, wenn er dafür was zurück bekommt.
    Qt von Trolltech ist propriätäre Software glaube ich, GTK+ wurde von den KDE Leuten als pendant entwickelt. Sehe noch
    Code Blocks und Lazarus aber die sind auch wieder so mächtig dass ein Lehrgang besser ist als endlos selbst zu hacken.

  • Zu den speziellen Kursen im "Hotel" kann ich nichts sagen, jedenfalls bestehen die schon einige Jahre und bei den Preisen kann man eigentlich von Qualität ausgehen.

    Es ist halt die Frage, ob Du eigene Kernelmodule schreiben willst oder (zunächst) mit den gängigsten Funktionen des Kernels auskommst. Die wichtigste library, ohne die kein Linuxsystem läuft, ist "libc" - "The GNU C library". Eine gute Beschreibung der Funktionen findest Du hier:

    http://www.gnu.org/software/libc/manual/

    Es versteht sich von selbst, daß C dann die optimale Programmiersprache ist. ;)

    Ohne ausreichende Englischkenntnisse hat man wenig Chancen auf gute Dokus, da die OpenSource community weltweit agiert und selbst deutsche Systementwickler ihre Dokus ausschliesslich in Englisch verfassen. Systemnahe Dokus in Deutsch rentieren sich aufgrund des geringen Interesses vermutlich kaum.
    Grundsätzlich sind die meisten Programmierer zu faul, gute oder überhaupt Dokus selbst zu schreiben - das kenne ich aus langer Erfahrung und nicht zuletzt von mir selbst. ;)

    Gruß, mmi

  • Ich glaube dieser Thread ist ein wenig "überzogen" ... Wenn ich mir den ersten Beitrag durchlese kommt mir sofort in den Sinn das derjenige Professionel und somit Beruflich programmierer ist oder sein möchte

    Programmieren bedeutet nicht zwangsläufig das man die super komplexen und mächtigen Programmiersprachen wie Assembler oder C/C#/C++ verwenden muss!

    Es lassen sich durchaus auch Dinge programmieren die mit einfachen Mitteln erstellt werden - die durchaus auch komplex sein können


    Allerdings verstehe ich nicht so recht wieso Superhobel die ersten 3 Punkte, die eigentlich schon recht komplex waren, machen konnte aber nun nicht weiss was er zum Programmieren "unter Linux" benötigt :huh:
    Aber doch: Das kann man durchaus auf der Strasse lernen - viele haben sich das was sie können selber bei gebracht (wozu auch ich gehöre) und eben sehr viel gelesen und selber probiert haben bis etwas funktioniert...
    Oder wie hast du dir das schreiben von zB Libs beigebracht?


    Wer Professionel und Beruflich programieren möchte sollte sich vorher unbedingt im klaren sein in welche Richtung (und Kombination) es gehen soll und heutzutage am besten eine entsprechende Ausbildung absolvieren - "Java-Entwickler", "C++-Programmierer", "Website-Frickler" oder "Backend-Architekt" sind nur einige der Möglichkeiten, hinter denen sich "Software-Entwickler" verstecken
    Sich heutzutage alles selber in seiner Freizeit bei zu bringen und ist imho nicht mehr möglich, früher sah das völlig anders aus da dieser Bereich auch bei weitem nicht so umfangreich war


    Also: Wichtig zu wissen ist in welche Richtung es gehen soll, also was du programmieren willst - danach richtet sich Womit man anfängt und welche Sprache sinnvoll wäre

  • Also das Linux Hotel kann ich nur empfehlen, aber ich glaube für deinen Anspruch etwas zu "wenig".

    Hast du dir die Kursbeschreibung von deinem Link mal durch gelesen ?

    Das kannst DU dir , sofern man deinen ersten Beitrag durch liest, mit Sicherheit selbst beibringen.
    Für diese sachen findest du im Netz mehr als genug Material um dich einzulesen.

  • Hallo,

    der grosse Unterschied ist der, dass ich bisher nur mit Hardware zu tun hatte, also Controllern. Niemals aber mit
    einem Runtime OS auf der Maschine, das die hardware abstrahiert und dessen Komplexität die der Hardware
    vermutlich übersteigt.

    Viele Tools, zb KEIL nehmen dem Programmierer heute das Lästige ab, zb Startup Code in Assember, Interrup Handling
    usw. Das Problem ist zu lösen, nicht der Overhead für die Maschine, die bevor sie Pieps sagt ertsmal tausend Register
    gesetzt haben will. Ich wäre freq = 16E6 aus und die IDE erzeugt den Code, der dafür zuständig ist. Manuell habe ich
    das auch al gemacht, das sieht für den ARM7 so aus:

    Wie eine RS232 Konfiguration aussieht sage ich lieber nicht, die ist noch einiges länger und komplexer. Um jeden Scheiss muss
    man sich kümmern, refresh Zyklen für DRAM, Bus Adressierung, Big Endian oder nicht, Memory Timing, Wait States ..... aaaaargh.
    Und abends platzt einem der Schädel davon.

    Der ganze Rotz NUR damit die CPU ihren Takt bekommt. Ich habe Jahre low-level Code geschrieben zb für Automotive im
    Steuergerät des Motors. Und dazu fehlt mir heute der Nerv sowas zu schreiben, das muss mit setfreq = 16.00000 etc gehen
    oder ähnlich.

    Und das kann nur ein OS leisten. Linux läuft mit minimaler Hardware, die einem egal sein kann, allein die GPU ist schon
    ein Wunderwerk aber es muss mich nicht interessieren wie die arbeitet, sie tut es einfach.

    Einmal editiert, zuletzt von Superhobel (3. Dezember 2013 um 00:37)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!