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 , deswegen wollte ich nur auf Nummer sicher gehen, dass ich mir am Ende nicht doch die Mühe einer Neuinstallation machen muss.
gruß thomas235
[gelöst] Beeinträchtigt C-Programmierung die Stabilität...
[gelöst] Beeinträchtigt C-Programmierung die Stabilität...
Zuletzt geändert von thomas235 am 26.01.2013 20:14:00, insgesamt 1-mal geändert.
- 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
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
* 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
[gelöst] Re: Beeinträchtigt C-Programmierung die Stabilität.
Danke für die Antwort!
Dann bin ich ja beruhigt
Dann bin ich ja beruhigt
Re: Beeinträchtigt C-Programmierung die Stabilität von Debia
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
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
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
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
Re: Beeinträchtigt C-Programmierung die Stabilität von Debia
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
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
-
- 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.
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?
noch eine schüchterne Frage. Bei Windows könnte ich dies doch, oder? Also mit einer Schleife über einen Array hinaus alles überschreiben?
Das verdient vielleicht einen Platz in deiner Signatur, so oft wie ich das lese.niemand hat geschrieben:...Allerdings ist das nur meine unqualifizierte Sichtweise, Richtigstellungen und Ergänzungen sollten nun die User posten, die sich detaillierter damit auskennen...
Hilf mit unser Wiki zu verbessern!
- 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.
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
Gruß
schorsch