Programmierung in C

  • Hallo Leute,


    bin neu hier im Forum. Hab mir die Tage einen Raspberry Pi bestellt.
    Erstmal ein paar Worte zu mir. Bin Etechnik Student und habe mich eher die ganze Zeit mit AVRs beschäftiggt und Windows benutzt. Also Linux Kenntnisse sind nicht wirklich vorhanden. Kann aber C/C++ programmieren.


    Naja das Linux zum laufen zu bekommen, scheint ja mittweiler nicht mehr besonders schwer, so wie ich es gelesen hab.


    Ich hab folgendes vor: Den Raspberry hab ich mir geholt, da normale AVRs für den ganzen Netzwerk kram zu langsam sind. Der Pi soll mir Motoren steuern und Sensoren auslesen. Das hatte ich vor als Webinterface und/oder normales Programm, mit dem man sich am Pi anmelden kann, zu realisieren.


    Jetzt meine Frage...


    Welche Entwicklungsumgebung kann ich benutzen, damit man bequem fürs Pi programmieren kann? In C am besten. Phxyton lernen will ich nicht.
    D.h nette GUI Elemente, Netzwerkssockets etc....?
    Habe immer viel mit .NET gearbeitet, bzw Visual Studio und da war sowas ja super gelöst. Gibt es sowas auch für Raspberry?
    Kann man die Steuerungswebseite auch in HTML machen? Habe mir sowas, wie der bei FRitzbox gedacht?


    Dann noch eine Frage zur Sicherheit. Kann man das hinbekommen, dass der Pi im Heimnetzt läuft, aber von aussen niemals angreifbar ist? Also keinen Traffivc über den Router hinweg senden oder empfangen kann?


    Vielen Dank für eure Hilfe!
    Flocki

  • Hi und Willkommen im Forum Flocki,


    ich denke du wirst mit Codeblocks deinen Spaß haben c zu programmieren ;)



    liebe Grüße
    Turael

    Ich bin ein gefallener Engel namens Turael.

    Einst vor langer Zeit rebelierte ich im Himmel bis Gott mich auf die Erde verbannte.

    Doch meine taten werden kein ende finden....

    Edited once, last by Turael ().

  • Hallo Flocki,


    RPi im (Heim-)Netz heisst nicht unbedingt Zugriff aus dem globalen Cyberspace ;) ...
    Solange Du da nichts umkonfigurierst, bist Du erstmal auf der sicheren Seite.


    Ich hatte bisher mit grafischen Oberflächen (gott sei dank) nicht viel zu tun. ein bisschen X-Toolkit und Motif und ein bisschen Visual-Studio. Jetzt brauch ich eine ... und suche ebenfalls nach was komfortablem ohne viel Aufwand. der Hauptteil wird dann wieder in ganz normalen C-Files sein.


    Ich hatte in dem Zusammenang mal Qt4-Designer ausprobiert ... ist schon mal ganz ok, aber nicht so ganz mein Ding.
    Dann bin ich jetzt mal Turaels Tipp mit Code::Blocks gefolgt.
    Das hat mich eher überzeugt, u.a. weil auch andere Projekte damit realisierbar sind.
    In Verbindung mit wxFormBuilder lohnt sich das imho mal anzuschauen.


    Falls Du mit einer IDE für AVRs liebäugelst ... mich hat Luna überzeugt.


    cheers,
    -ds-

  • Hi erstmal danke für eure Antworten!


    Da hätte ich noch ne genauere Frage zu Internetsicherheit. Da mir das doch schon sehr am Herzen liegt.


    Wenn ich nichts umkonfiguriere? Wenn da das Linux drauf isrt kann ich doch einfach im Internet surfen oder?


    Ich habe ne Fritz. Die 7290. Da kann man Filter einstellen, so das bestimmte Sachen verboten sind. Wenn ich das mache, kann dann niemand mehr auf das Teil zugreifen? Oder irgendeinen Schaden anrichten?
    Damit ich im Heimnetz die IOs steuern kann muss man ja einen Http Server aufsetzten, also lighttp oder so. Stellt der dann kein Sicherheitsrisiko da?



    Gruß
    Flocki

  • ich fange auch gerade auf dem PI in gcc an, komme auch vom Atmel AStudio
    ist leichter als ich dachte
    nutze aber noch gcc und nano



    Da hätte ich noch ne genauere Frage zu Internetsicherheit. Da mir das doch schon sehr am Herzen liegt.
    Damit ich im Heimnetz die IOs steuern kann muss man ja einen Http Server aufsetzten, also lighttp oder so. Stellt der dann kein Sicherheitsrisiko da?


    wie das mit lighttp ausschaut weiss ich nicht aber apache2 sollte doch per .htaccess
    http://de.selfhtml.org/servercgi/server/htaccess.htm


    gehen



    Ich habe ne Fritz. Die 7290. Da kann man Filter einstellen, so das bestimmte Sachen verboten sind. Wenn ich das mache, kann dann niemand mehr auf das Teil zugreifen? Oder irgendeinen Schaden anrichten?


    du könntest Portregeln erstellen oder Ports sperren damit keiner von draussen reinkommt, halte ich aber für unpraktisch, momentan nutze ich alles auch von ausserhalb der Fritzbox, was schon mal hilft, die Standardports dichtmachen und umlegen und von aussen nicht über die üblichen reingehen (80 8080 5900 21 22) eventuell sogar die inneren ändern und von der Fritzbox umrouten lassen, aber das können andere hier besser beantworten, vielleicht Georg bondkramer ?





    und wie ? kannst du das bitte ausfühlicher beschreiben ?

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Moin,


    also hinter der Fritzbox ist der Raspberry Pi erst einmal sicher, da Pakete aus dem Internet nicht bis zum Pi durchkommen.


    Du willst den HTTP-Server ja nur im internen Netz verfügbar machen. Dann werden Anfragen aus dem Internet auch nicht bis zum Pi durchgeleitet. Ausser Du machst über Port-Forwarding Port 80 den Pi aus dem Internet erreichbar.


    cya

  • Gut, also solange ich kein Forwarding mache kann keiner dem Pi was.


    Was ist aber wenn die Verbindung vom Pi aus gestartet wird. Gibt es da hintergrund Prozesse, die ins Internet wollen und dann irgendwie ausgenutzt werden können? Dann ist ja ein Port offen.


    Windows z.B hat ja tausend Hintergrundprozesse, die was im Netz veranstalten....

  • du vergleichst hier äpfel mit birnen.....kollege der E-technik ;)


    vorweg ich bin kein IT fachman aber tüftel seit jahren mit heimnetzwerken rum.


    du kannst dir das so vorstellen.....auf ner straße gibt es zwei spuren hin und zurück bzw auf den computer bezogen raus(inet) und rein(heimnetz).....
    auf den ports die rausgehen kann nix reinkommen diese gehen wie die fahrbahn aufer straße nur in eine Richtung.


    Diese könnten höchstens benutzt werden wenn schon ein trojaner auf deinem rechner installiert ist da dieser raus telefoniert.
    Solange aber keine schadsoftware von dir ob nun bewusst oder unbewusst auf deinem rechner installiert wurde kann dir nix passsieren solange du kein portforwarding in deinem router einstellst da dein Router eine firewall integriert hat und unautorisierte anfragen von aussen konsequent abblockt.
    Es sei denn du richtest halt ausnahmen im Router für bestimmte anfragen auf bestimmtenports ein.


    Router müssen standardmäßig so konfiguriert sein das nix ins inet geht weil eben nur sehr wenig menschen sich mit den einstellungen auskennen und sonst ja jeder der keine ahnung hat seine sensiblen daten ohne schutz dem internet preis geben würde.


    hoffe es ist nun etwas klarer ^^


    PS: windows ist auch kein vergleich zu einem raspberry aber auch dein windows pc ist über deinen router geschützt. Viren kommen nur auf windows pcs weil die user dateien von dubiosen seiten downloaden oder auf seiten gehen welche selbst spezielle sicherheitslücken ausnutzen und sich so auf den pc runterladen.

  • Hi Flocki,


    also solange dein RasPi in einem privaten Netzwerk läuft (also z.B. in einem privaten C-Netz, z.B. 192.168.1.0) kann man erstmal von außerhalb überhaupt nicht darauf zugreifen. Dank NAT hast du ja dein eigenes privates Netzwerk und dieses ist von außen abgeschottet, d.h. von außen kannst du standardmäßig erstmal gar nicht auf einen internen HTTP-Server zugreifen, da dieser über eine private IP-Adresse verfügt und damit kannst du von außerhalb überhaupt nichts anfangen. Anders wird das ganze wenn du DynDNS, Portweiterleitungen etc. benutzt.


    Wenn du allerdings keinen Zugriff von außerhalb auf deinen Webdienst benötigst, dann brauchst du dir erstmal keine Sorgen machen. Anders wird das natürlich wie schon treeshort erwähnt hatte, wenn du im Internet damit surfst und dir dann irgendwelche Viren oder Trojaner einfängst.


    Also wenn wir mal annehmen, dass du Programme in C/C++ schreiben möchtest, die dann gewisse Routinen ausführen sollen, seien dies Steuerungen von irgendwelchen Motoren oder das Auslesen von Sensoren ist erstmal wurscht, und das ganze über ein Webinterface steuerbar/abfragbar ist, dann ist der lighty (lighttpd) eine sehr gute Wahl. Ich habe selber schon mit dem lighty gearbeitet und das funktionierte hervorragend. Du kannst dir dann einfach eine Website basteln und diese so gestalten wie du sie brauchst. Dann kannst du ganz bequem im Webinterface deine Steuerungen/Abfragen tätigen und diese werden dann vom lighty per FastCGI an deine vom lighty selbst verwalteten Prozesse weitergeleitet Die Prozesse sind dann deine implementierte Logik, also deine in C/C++ geschriebenen Programme. Der lighty bekommt eine interne private IP-Adresse und ist von außerhalb erstmal überhaupt nicht erreichbar.



    Beste Grüße
    Heliox

    Nur durch Zeit vermag die Frucht zu reifen.......oder zu verfaulen!