Re: Implementierung von malloc und free unter FreeBSD

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Mon, 13 Sep 2004 18:35:35 +0200

On Mon, Sep 13, 2004 at 05:31:07PM +0200, Oliver Fromme wrote:
> Bernd Walter <ticso(at)cicely12.cicely.de> wrote:
> > On Mon, Sep 13, 2004 at 02:40:06PM +0200, Oliver Fromme wrote:
> > > Bernd Walter <ticso(at)cicely12.cicely.de> wrote:
> > > > C ist bestenfalls in anbetracht des heutigen Gigabyte Wahns überholt.
> > > > Wenn dein Kühlschrank aber zukünftig in was anderem als C oder
> > > > Assembler programmiert werden soll, dann wird der letzlich auch spürbar
> > > > teurer - und wird letzlich auch mehr Strom brauchen.
> > >
> > > Nein. Er muß weder teurer sein, noch muß er mehr Strom
> > > ziehen.
> >
> > Doch natürlich - Leistung gibt es nicht umsonst.
>
> Was für Leistung? Für ein Programm in einer ML-Sprache
> brauchst Du nicht mehr (elektrische) Leistung als für ein
> Programm, das in C geschrieben wurde.

Wenn ich dafür mehr RAM oder sonstwas brauche dann schon.
Welche Sprache wäre denn deiner Meinung nach für derartige Aufgaben
geeignet?

> > > Wenn ich die Wahl hätte zwischen einem Kühlschrank für 500
> > > Euro, der auf Windows-CE basiert und dessen Anwendungen in
> > > C oder Java geschrieben sind, und einem Kühlschrank für 600
> > > Euro, der auf (z.B. Net-)BSD basiert und dessen Anwendungen
> > > in O'Caml oder Haskell geschrieben sind -- was meinst Du,
> > > welchen ich nehmen würde? Welchen würdest Du nehmen?
> >
> > Keinen von beiden - ich würde den kaufen in dem ein angemessener
> > Controller steckt und kein Hochleistungsrechner.
>
> Ein integrierter Prozessor mit 12 oder 16 Mhz ist kein
> »Hochleistungsrechner«. Und es wird nicht mehr lange
> dauern, bis sowas Standard bei einem Kühlschrank ist.

12MHz 8051 basierte sind in Kühlschränken bereits heute Standard.
Eigendlich antikes und oftmals stromfressendes Zeug - mein Bosch wird
in der Controllerecke jedenfalls spürbar warm.

> > Schließlich erwarte ich vom Kühlschrank nicht, dass er Apfelmänchen
> > berechnet.
>
> Das vielleicht nicht, aber er könnte z.B. seinen Inhalt in
> einer Datenbank erfassen und mich informieren, wenn ich
> neue Milch kaufen muß, oder wenn beim Bierschinken das MHD
> abgelaufen ist. Es gibt bereits Kühlschränke, die das tun.

Oder dem Nachbar den Inhalt veraten - ich bin überzeugt, dass es
Kühlschränke gibt, die auch das bereits tun.
Offengesagt halte ich es für Unsinn, dass der Kühlschrank das macht
und nicht ein zentraler Leitrechner fürs ganze Haus.
Ich mag mir nicht vorstellen was für ein Chaos es ergibt, wenn man
zusätzlich noch eine Gefriertruhe eines anderen Herstellers hat
und damit das ganze Sinn macht braucht natürlich auch der Gewürz-
schrank einen Stromanschluß...

> > Das Dingen muss doch letzlich nur die Temperatur überwachen,
> > ein paar Schalter abfragen und den Motor schalten.
>
> Dafür braucht man keinerlei Elektronik, auch keinen dummen
> Controller.

Nein - brauchen tut mans nicht, aber so ein Controller hilft einen
schon, indem er sich ums Stromsparen beim eigendlichen Kühlkreis
kümmert, anfällige Bimetalschalter ablöst, etc.

> > Und selbst wenn das Dingen Ethernet und einen Webserver hätte wäre
> > ein für moderne Hochsprachen oder gar BSD tauglicher Rechner
> > vollkommen überdimensioniert.
>
> Wäre mir jedenfalls lieber als Windows. Und das _wird_
> kommen, verlaß Dich drauf.

Es gibt die ja leider schon, ebenso wie Waschmaschinen...
>
> > Beides sind nette Sprachen und für viele Anwendungen die bessere
> > Wahl, aber es gibt einfach Anwendungen für die diese Sprachen
> > vollkommen untauglich sind, während C wunderbar funktioniert.
>
> Das sehe ich überhaupt nicht so. Überall, wo man C ver-
> wenden kann, kann man ebesogut eine besser designte Sprache
> verwenden. Möglicherweise ist das am Ende sogar billiger,
> weil man beim Debuggen und im Bereich Q/A sowie bei der
> Pflege viel Zeit sparen kann.

Wenn man in großen Stückzahlen rechnet spielt die Entwicklungszeit eine
weniger große Rolle.

> > > (Und wie gesagt: Es gibt keinen Grund, warum der BSD-Kühl-
> > > schrank nicht ebenfalls 500 Euro kosten sollte, wenn die
> > > Hardware sonst technisch identisch ist.)
> >
> > In deiner Maus läuft doch auch weder Windows-CE, noch BSD, weil
> > beides einfach nicht angemessen ist.
>
> Das ist nur eine Frage der Zeit. In zehn Jahren haben Mäu-
> se ihre eigene IPv6-Adresse (weil _alles_ eine hat), und
> da bietet es sich doch an, daß da ein eigenes OS drauf
> läuft. Vermutlich kostet ein kompletter Prozessor dann
> nur noch ein paar Cent.

Warten wir mal ab, ob wir in 10 Jahren überhaupt schon IPv6 haben.
Ich befürchte aber, dass wir bis dahin noch etliche inkompatible
Wundermittelchen auf Funkbasis erleben müssen.

> In meiner real-existierenden Maus daheim läuft aber auch
> nichts, was in C geschrieben ist.

Ich vermute, dass meine in Assembler programmiert wurde.

> > > In bestimmten besseren Sprachen kannst Du zahlreiche typi-
> > > sche Fehler gar nicht machen (auch nicht als Anfänger),
> > > z.B. Typfehler, unitialisierte Variablen, Pufferüberläufe,
> > > unbeabsichtigte Seiteneffekte etc. Unter bestimmten Um-
> > > ständen kann man sogar das korrekte Verhalten von Funktio-
> > > nen mathematisch beweisen und diesen Beweis vom Compiler
> > > verifizieren lassen. Von sowas kann C nur träumen.
> >
> > Ja sicher - nur solange man dann einen Speicherbedarf hat, welcher sich
> > nur durch DRAM wirtschaftlich decken lässt ist das unwesentlich.
>
> Ob man DRAM nimmt oder etwas anderes (SRAM, Flash, sonst-
> was), hängt von der jeweiligen Anwendung ab. Die Wahl des
> Speichers schränkt dann aber noch lange nicht die Auswahl
> der möglichen Programmiersprachen auf C ein.

OK - mit welcher Sprache würdest du jetzt den Kühlkreis eines
Kühlschrankes programmieren?

> > DRAM funktioniert nämlich beweisbar eben nicht zuverlässig
>
> Naja, nicht die übertakteten Non-name-DIMMs vom Kisten-
> schieber an der Ecke, da gebe ich Dir recht. Aber hoch-
> wertige DRAMs sind schon hinreichend verläßlich.

DRAM funktioniert nicht 100% - das ist eine prinzip bedingte Tatsache.
Die Qualität macht sich nur in der Fehlerrate bemkerbar.

> > und ECC,
> > womit sich das DRAM Problem deutlich entschärfen lässt ist für einen
> > Kühlschrank oder gar Maus erst recht vollkommen übertrieben.
> > Und solange es wahrscheinlicher ist, dass ein Kühlschrank durch Strom-
> > ausfall, oder Kompressorschaden ausfällt ist es mir ziemlich egal ob
> > die Software beweisbar Fehlerfrei ist oder nicht.
>
> Hardware (insbesondere mit mechanischen Komponenten) unter-
> liegt Verschleiß und kann somit immer ausfallen, wenn sie
> nicht redundant ist. Das ist aber kein Grund, daß man bei
> der Software ebenfalls Fehler in Kauf nehmen muß.

ECC RAM ist keine Sache der Redundanz, sondern eine zwingende
Notwendigkeit um die Fehlerrate auf ein brauchares Maß zu reduzieren.
Dabei geht es nicht um Ausfall, sondern um den normalen Betriszustand.
Es ist kein Geheimniss, dass ein typischer PC mehrere Bitfehler pro
Jahr macht - es trifft nur meistens nichts wesentliches, sodass die
Fehler nicht auffallen.

> Ich dachte eigentlich bisher immer, daß sich diese Fatalis-
> mus-Mentalität überwiegend bei den Windows-Usern verbreitet
> hat ... »Ach Gott, Software hat nunmal Fehler, da kann man
> nix machen, außer Reboot, und wenn's sein muß, Neuinstalla-
> tion.« Ich dachte, wir BSDler wüßten es besser, und nehmen
> es nicht als gottgegeben hin, daß Software Bugs hat und man
> seine Crashes und Reboots mit stoischer Geduld ertragen muß.

Es ist eine Frage der Verhältnissmässigkeit.
Irgendwann ist es halt gut genug - nahezu alle User - auch BSD User
nehmen es ja sogar hin, dass ein Rechner ohne ECC ab und an Komentarlos
Daten verändert - von IDE Festplatten will ich jetzt gar nicht erst
anfangen.
Solange die Software besser ist als die Hardware fällt das irgendwann
nicht mehr ins Gewicht.

> Sorry, wenn das jetzt ein bißchen theatralisch wurde, aber
> im Prinzip ist es doch so.
>
> Gruß
> Olli
>
> --
> Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
> Any opinions expressed in this message may be personal to the author
> and may not necessarily reflect the opinions of secnetix in any way.
>
> "IRIX is about as stable as a one-legged drunk with hypothermia
> in a four-hundred mile per hour wind, balancing on a banana
> peel on a greased cookie sheet -- when someone throws him an
> elephant with bad breath and a worse temper."
> -- Ralf Hildebrandt

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 13 Sep 2004 - 18:37:50 CEST

search this site