[gelöst] Beeinträchtigt C-Programmierung die Stabilität...

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
thomas235
Beiträge: 71
Registriert: 28.04.2012 14:36:19

[gelöst] Beeinträchtigt C-Programmierung die Stabilität...

Beitrag von thomas235 » 26.01.2013 19:46:43

Hallo zusammen,

ich wollte nur mal kurz nachfragen, ob das Programmieren in einer so systemnahen Sprache (und vor allem das Debuggen ohne Programmierumgebung) Instabilitäten im System verursachen können.
Es kann ja mal vorkommen, dass man an einem undefinierten Speicherbereich schreibt oder ähnlichen Unfug macht.
Es ist nämlich ziemlich nervig immer in einer VM programmieren zu müssen :wink: , deswegen wollte ich nur auf Nummer sicher gehen, dass ich mir am Ende nicht doch die Mühe einer Neuinstallation machen muss.

gruß thomas235
Zuletzt geändert von thomas235 am 26.01.2013 20:14:00, insgesamt 1-mal geändert.

Benutzeravatar
schorsch_76
Beiträge: 2630
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: Beeinträchtigt C-Programmierung die Stabilität von Debia

Beitrag von schorsch_76 » 26.01.2013 20:08:46

Nein, du hast deinen eigenen Prozess. Hier gibt es shared Objects (bsp. glibc) welche aber RO sind und nicht verändert werden können. Ein Userprozess darf und kann (theoretisch*) nicht das System zum Crash bringrn wie es unter Dos noch der Fall war.

* Manchmal passiert dies aber schon, aber meist nur durch Bugs in Treibern.

Edit: Lass dein Zeug als normaler User laufen, dann hast du keine Probleme ;)

Gruß
schorsch

thomas235
Beiträge: 71
Registriert: 28.04.2012 14:36:19

[gelöst] Re: Beeinträchtigt C-Programmierung die Stabilität.

Beitrag von thomas235 » 26.01.2013 20:11:44

Danke für die Antwort!
Dann bin ich ja beruhigt :)

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Beeinträchtigt C-Programmierung die Stabilität von Debia

Beitrag von Cae » 26.01.2013 20:14:20

wtf? Nein, tut es nicht.

Debuggen tut man nicht als root, sondern als ein unprivilegierter Benutzer. Daraus folgt, dass eine eine moeglicherweise kaputte Anwendung z.B. nicht
  • den Kernel oder sonstigen Speicher irgendwie ueberschreiben und zum Absturz bringen,
  • beliebige andere Anwendungen abschiessen oder manipulieren,
  • /dev/sda oder sonstige Devices nullen oder
  • /etc/ oder /bin/ kaputtschreiben
kann.

Die Anwendung koennte im worst case irgendwelche Prozesse killen oder kaputtschreiben, die unter demselben Benutzer laufen. Ebenso Dateien, auf die der Benutzer Schreibzugriff hat. Wenn sie auf nicht zugewiesenen (virtuellen) Speicher zuzugreifen versucht, wird sie automatisch mit SIGSEGV abgeschossen. Falls ein syscall verwendet wird, um z.B. fremde Prozesse zu manipulieren, wird dies ebenfalls zu einem Fehler fuehren.

Systemweit relevante Blockierung von Ressourcen, z.B. CPU (for (;;) { a = b; }), RAM (fnord = malloc((size_t)(1024*1024*1024*4);) oder Speicherplatz (z.B. dauerhaftes Fluten eines Logs), kann man mit ulimit und Quota weitgehend in de Griff bekommen.

Eine VM ist ueberdimensioniert. Ein eigener Benuzter fuer die Entwicklung ist dagegen nachvollziehbar, man besorgt sich dann ueber su oder sudo eine Shell und gut ist.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

DeletedUserReAsG

Re: Beeinträchtigt C-Programmierung die Stabilität von Debia

Beitrag von DeletedUserReAsG » 26.01.2013 20:19:51

Was sind für dich Instabilitäten? Speicher vollaufen lassen bis es swapt, während die CPU-Kerne durch irgendwas dauerhaft ausgelastet sind, kann das System schon soweit beeinflussen, dass man in der Zeit nicht sinnvoll arbeiten kann.

Wenn du nicht als root testest, können wichtige Dateien außerhalb vom ~ nicht auf mysteriöse Weise verschwinden, und solange du nicht am Kern bastelst, sollte ein Fehler bei der Speicherverwaltung lediglich das Programm selbst betreffen. Entweder Segfault, oder halt was anderes machen, als es sollte. Sicherheitslücken, die du in dein Programm baust, ermöglichen natürlich alle Schäden, die mit der verwendeten UID angerichtet werden können. Solltest du als normaler User den Kernel abschießen können, wäre ein Bugreport nach kernel.org wohl angebracht.

Allerdings ist das nur meine unqualifizierte Sichtweise, Richtigstellungen und Ergänzungen sollten nun die User posten, die sich detaillierter damit auskennen. (da ich arg langsam war, ist das schon geschehen. Egal.)

cu,
niemand

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: [gelöst] Beeinträchtigt C-Programmierung die Stabilität.

Beitrag von cronoik » 27.01.2013 19:26:02

Guten Abend,

noch eine schüchterne Frage. Bei Windows könnte ich dies doch, oder? Also mit einer Schleife über einen Array hinaus alles überschreiben?
niemand hat geschrieben:...Allerdings ist das nur meine unqualifizierte Sichtweise, Richtigstellungen und Ergänzungen sollten nun die User posten, die sich detaillierter damit auskennen...
Das verdient vielleicht einen Platz in deiner Signatur, so oft wie ich das lese. :lol:
Hilf mit unser Wiki zu verbessern!

Benutzeravatar
schorsch_76
Beiträge: 2630
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: [gelöst] Beeinträchtigt C-Programmierung die Stabilität.

Beitrag von schorsch_76 » 28.01.2013 10:24:23

Auch unter Windows ist die Prozesstrennung ähnlich wie unter Linux. Wenn du über Arraygrenzen schreibst, crasht halt die Anwendung aber nicht das System.

Gruß
schorsch

Antworten