Jump to content

L3v14than

Mitglieder
  • Gesamte Inhalte

    7
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    1
  1. Klares "Jein". Es ist praktisch, das LOW nicht auf 0V zu legen, weil dann dann ein fehlendes Signal mit 0V erkannt werden kann, aber es ist nicht zwingend nötig. Du hast insofern Recht, als dass man nicht nur von "Spannung liegt an oder nicht" sprechen sollte, sondern von definierten Spannungspegeln, die als LOW oder HIGH definiert werden. In der Signalübertragung finden sich dann ja auch noch weitere Spannungspegel um z.B. die Datenrate zu erhöhen.
  2. Genau! Und jetzt wollte ich "einfach" nur ganz allgemein Wissen wie ein Computer diese benötigte Spannung aufbaut/ansetzt/ableitet. Also versteh mich nicht falsch, ich möchte es nur ganz abstrakt und ganz allgemein wissen. Weil jedesmal wenn es um Transistoren geht, komm ich unverweigerlich zur "benötigten Gate-Spannung". Aber wie die allgemein generiert und geschalten wird, habe ich bis heute leider nicht so den schimmer. Also einfach gesagt: die logische "Eins" wird doch erst generiert bei einem Transistor, wenn eine (genügend große) Spannung anliegt damit Strom fließen kann oder nicht? Und wie legt er diese Spannung an und woher bekommt er diese Informationen (ganz allgemein), dass er jetzt an Transistor XY eine Spannung anlegen muss. Eigentlich möchte ich bei der Frage überhaupt nicht so in die Details reingehen. Stellt euch vor eure Mutter/Vater/Schwester fragt euch wie verarbeitet ein Computer Informationen, dann sagt ihr "über Nullen und Einsen". Und wie generiert er diese? "Über verschiedene Spannungszustände, Strom fließt, Strom fließt nicht". Und wie weiß der Computer wann er eine Spannung anlegen muss und wie macht er das? Da ist ja kein Männchen und dreht am Drehknopf und stellt mal eben 10V, 3,3V oder was auch immer ein. [Eure Antwort hier] Also alles was nach der Generierung von Nullen und Einsen (bzw. Spannung liegt an oder nicht] passiert, möchte ich an dieser Stelle hier, gar nicht so wissen, sondern eher: Wie generiert er, ganz allgemein, die benötigten Spannungszustände für "Strom fließt, Strom fließt nicht".
  3. Der Schlüssel ist, dass es an keiner Stelle konkrete Einsen und Nullen gibt, sondern nur anliegende Spannungen oder eben nicht, erst der Mensch nennt das dann 1 oder 0. Da sind wir uns schon einig, oder? Und dass es nicht beliebige Spannungen sein dürfen, sondern dass jene Spannung, die benötigt wird, um einen Schalteffekt zu erreichen, vom konkreten Bauteil abhängt, auch. Oder? Ich glaube, du stehst tatsächlich auf dem Schlauch und ärgerst dich vielleicht insgeheim, dass du noch vor einem gigantischen Haufen Arbeit stehst um deine (mit Verlaub) naive Frage beantworten zu können. Wenn du fragst "Wie macht der Computer das...", beschwörst du sehr umfassende Antworten herauf, denn um all die Gründe zu nennen, weshalb nun Transistor x in Komponente y geschaltet wird, müsste man das gesamte System betrachten und man müsste auch ein konkretes System betrachten. Das ist in etwa wie "Ich habe gehört, dass Räder rollen, woher wissen nun die Räder am Auto, dass sie nach München rollen sollen?". Wenn du verstehen möchtest, wann wo welche Spannung anliegt, dann antworte ich, dass die Frage zu generell ist um von mir beantwortet werden zu können. Da könnte man exemplarisch an beliebiger Stelle eines Computers genau hinschauen und nachvollziehen was passiert. Mit dem oben verlinkten Video hast du die Möglichkeit dazu, denn zu jedem Teilsystem gibt es ein eigenes Erklärvideo. Und das solltest du glaube ich tun, an diesem Beispiel werden sich deine Schuppen vor den Augen nach und nach lösen, schätze ich. Ich denke hier ist eine Schlüsselerkenntnis, dass das "Herz" einer CPU der Schwingkreis ist, der die Takte vorgibt und dadurch immer wieder bestimmte Abläufe angestoßen werden, die dann in weiteren Teilsystemen umfassende Auswirkungen haben. Wie beim Auto: Wenn die Zündkerzen (unter bestimmten Bedingungen) zünden, geht die Kraft aus der Explosion viele Wege und stößt diverse Abläufe an bis sie schließlich dafür sorgt, dass die Räder rollen. Und dass sie nach München Rollen, hat nochmal viele andere Gründe. Der Fahrer schaut nämlich auf veraltetes Kartenmaterial und hatte außerdem Krach mit seiner Ehefrau.... 😉
  4. Hallo du interessierter! 🙂 Die Weisheit mit Löffeln gefressen habe ich leider auch nicht, aber ich war immerhin schon mal an dem Punkt, dass ich einzelne Takte eines Mikroprozessors in Assembler programmiert habe, was ich mir damals auch autodidaktisch beigebracht habe. Nun absolviere ich eine Ausbildung und spüre, wie großartig viel leichter es ist, diese hochkomplexe Thematik systematisiert zu lernen. Das sollte nun einen Tipp für dich darstellen. Aber zu deinen Fragen: Da will ich ein wenig ausholen, um die Dinge im Zusammenhang erklärbar zu machen: In "allerletzter Konsequenz", auf die "Elementareteile" runtergebrochen, sind Befehle (meiner Einschätzung nach zumindest, mach aber mal ein vorbehaltliches Sternchen dran, weil ich selbst noch keinen gesehen habe) Schaltkreise. Die von dir schon genannten Addierer sind Komplexe aus Transistoren, die in ein Prozessorsystem eingebettet sind. Als solches System zusammengestellt gehen sie mit auf die "Prozessorplatine" und können als "Befehle" von weiteren Schaltkreisen benutzt werden Du kannst dir übrigens selbst einen bauen, ich empfehle dir das tatsächlich zu tun. Mit meiner bescheidenen Lebenserfahrung weiß ich, dass es einen mitunter signifikanten Unterschied macht über Dinge zu sprechen oder sie zu erleben. Auf einer noch komplexeren, wenn auch immer noch recht elementaren Ebene hat hier mal jemand "einen Computer" nachgebaut: Das soll dir zumindest zeigen, dass sehr viele Komponenten beteiligt sind um eine simple Addition durchzuführen und man das besser versteht, wenn man die einzelnen Teilsysteme eines Prozessors versteht, schau dir dazu mal folgende Architekturen an: https://de.wikipedia.org/wiki/Von-Neumann-Architektur https://de.wikipedia.org/wiki/Harvard-Architektur Neben den Befehlen enthält ein Prozessor auch Register, wo schlicht Werte, also Folgen von Bits, gespeichert werden können. Auch diese elementaren Befehle, die man mit der Sprache Assembler (empfehle ich dir auch zu lernen) steuert, verknüpfen oft mehrere Operanden. Das läuft in mehreren Takten ab. Ich fange also mal ganz von vorne an und beziehe mich auf meine Erfahrungen mit dem Mikrocontroller/-prozessor ATTiny 2313: Ein Mikrocontroller (µC) hat einen Programmspeicher, der ist ein paar kB groß. Dort wird ein Programm, das vorher in Assembler verfasst worden ist, reingeschrieben, man sagt auch "gebrannt" oder "geflasht". Assembler sagt, welche Befehle mit welchen Operanden ausgeführt werden sollen, wobei die Befehle schließlich die Adressen der oben schon genannten Schaltkreise sind. Damit man die in Adressen ansprechen kann, ist übrigens noch einiges vonnöten, was ich aber hier nicht erklären kann und will. Ist jetzt mal so. 🙂 Wenn danach der µC eingeschaltet wird, resettet er zunächst seinen Befehlszähler, sodass dieser auf 1 steht. Und nun wird der Programmcode Zeile für Zeile, d.h. dann Speicheradresse für Speicheradresse abgearbeitet, nach (fast) jedem Befehl wird der Befehlszähler um 1 erhöht. Die einzelnen Befehle beanspruchen unterschiedlich viele Prozessortakte. Aber immer wird zunächst der Befehl gemäß dem Inhalt der aktuellen Programmspeicheradresse von dort geladen, dann werden die Operanden herausgesucht, z.B. konstante Werte in Arbeitsregister geschrieben, z.B. die zwei Werte einer Addition, dann werden diese Beiden Werte z.B. verglichen. Und hier kannst du nun mal tatsächlich mal einen einzelnen Transistor bei der Arbeit sehen. Werden die beiden Werte z.B. über eine AND-Verknüpfung verglichen, werden die jeweiligen Bits als Eingänge an die Basen jeweils eines Transistors gehangen und das Ausgangssignal dieser Schaltung zeigt dann an, ob beide Werte "true" sind, sprich: Ob Spannung anliegt. Zum Verständnis können dir Schaltpläne von bool'schen Schaltungen helfen, ich traue dir googlen hier mal zu 😉 Naja, in den nächsten Takten könnten dann z.B. noch Überlaufbits gesetzt werden. Danach wird der Befehlszähler erhöht und der nächste Befehl ausgeführt. Ich hoffe, du verstehst nun, dass hinter deiner harmlosen Frage sehr komplexe Vorgänge stehen, die man nach und nach verstehen muss, um dann simple Effekte wie dass auf die Eingabe 1+1 das Ergebnis 2 auf dem Display eines Taschenrechners angezeigt wird, zu verstehen. 1 und 0 sind logische Denkarten und werden im Computer durch das Anliegen einer kontextabhängig bestimmten Spannung repräsentiert. Bei einem Arduino auf einem 3,3V-Board ist diese bestimmte Spannung 2V. Wir Menschen nennen das dann HIGH oder "true" oder sagen einfach 1 dazu. Und nun kann auch deine zweite Frage beantwortet werden, nämlich wie das mit den Nullen ist: Ein Programm kann eine Verzweigung davon abhängig machen, ob diese bestimmte Spannung anliegt oder nicht, sprich 1 oder 0 ist. Der Grund, weshalb simple Effekte hier oft schwer zu erklären sind, sind die vielen Ebenen der Absraktion. Es gibt ja Hoch- und Maschinensprachen, wobei auch die Hochsprachen unterschiedlich maschinennah sind. Oben hast du schon gesehen, dass Schaltkreis-Befehle von anderen Schaltkreisbefehlen benutzt werden können und auch, dass diese die Bauteile von Programmen darstellen. Nun kann solch ein Programm wiederum als Befehl verwendet werden, damit daraus ein sogenanntes "Instruction Set" entstehen kann, hier mal für die x86-Familie https://en.wikipedia.org/wiki/X86_instruction_listings Diese wiederum kann man nach demselben Prinzip immer weiter abstrahieren, sodass daraus dann die Programmiersprache C entsteht, daraus bastelt man dann Java und schon hat der Programmierer absolut keine Ahnung mehr von der Hardware. 😄 Hoffe, das war nicht zu viel Overhead und ich hoffe, die Fragen treffend beantwortet zu haben. Wenn nicht, hak gerne nochmal nach. LG
  5. L3v14than

    Programmieren lernen

    Hinter den Tabellennamen werden Aliasse festgelegt, das ist das "Kürzel", das du meinst. Nur wurde dort das "AS" weggelassen. https://en.wikipedia.org/wiki/Alias_(SQL) Man sieht dann im "WHERE"-Teil, dass diese Aliasse wiederum benutzt werden um sich auf die Spalten der Tabellen zu beziehen. Darauf gekommen bin ich über die API-Dokumentation über SELECT: https://dev.mysql.com/doc/refman/8.0/en/select.html Musste dann aber noch nach "SQL Table name alias" googlen, weil sich mir dort nicht erschloss, dass das "AS" auch weggelassen werden konnte. ___ Was das Lernen der Grundlagen angeht: Es gibt unterschiedliche Lerntypen, dementsprechend gibt es zum Glück auch unterschiedliche Lernangebote. Du bist motiviert, das ist eine ideale Voraussetzung, nun gilt es das für dich passende Lernangebot zu finden. Die YouTube-Tutorials, die du bislang gesehen hast, waren vielleicht nur von der falschen Art und Weise. Probier es mit anderen, die unterscheiden sich schon durch die Tutoren und deren Präsentationsweisen erheblich. Oder besuch die Stadtbücherei oder den Buchladen und schau nach entsprechender Fachliteratur, ich persönlich mag die "Von Kopf bis Fuß"-Reihe. Oder versuch's "Learning by Doing", indem du dir ein in deinen Maßstäben etwas größeres Projekt vornimmst und Hindernisse dabei googlest, sobald sie auftreten. Und als gute Lernsprache erachte ich Java, BASH-Skripte lösen bei mir bis heute Unbehagen aus, finde die Sprache grässlich. 😄 C finde ich mittlerweile wieder nützlich, denn an Low-Level kommt man schneller als man denkt. (--> Internet of Things, Arduino & Co). Als ich mit Java damals begonnen habe, hatte ich nicht geglaubt je so tief einsteigen zu müssen. Aber immerhin ist Java in C++ geschrieben und so fällt es leichter Java zu lernen, wenn man C schon kann und umgekehrt. (Java beinhaltet C++, das wiederum C) Vielleicht ist es klug, Anfänger gleich auf mehrere Programmiersprachen zu trimmen, denn tatsächlich haben alle ihre Vor-/Nachteile und dementsprechenden Einsatzgebiete. Der YouTuber Stefan Mischook sagte mal, dass auch Programmiersprachen quasi Werkzeuge sind und je mehr man hat, desto situationsgerechter kann man agieren. Das Gegenteil ist, wenn jedes Problem zum Nagel wird, weil man nur einen Hammer besitzt, also z.B. einen riesigen Programmieroverhead erzeugt, weil man objektorientert in Java eine Aufgabe löst, die sich mit wenigen Zeilen prozeduraler C-Programmierung lösen ließe. Und noch ein Paar Ratschläge, die ich zwar aus meiner Situation (Lehrling) nicht so gerne gebe, sie aber doch nenne, weil sie mir geholfen haben und auch wenn sie hier teils schon genannt wurden, unterstreiche ich sie mit: Lies die Dokumentationen! Ein Befehl tut nicht was er soll oder du verstehst ihn nicht? API-Referenz aufschlagen! RTFM! 🙂 Ich persönlich fand und finde immer wieder auch Dokumentationen kryptisch und nicht gerade hilfreich. Dann frage ich in 'nem Forum nach oder google, dann macht oft auch die Doku wieder Sinn und ich kann weitere Teile dieser verstehen. So richtig gut fand ich bislang eigentlich nur die Java-API und die ein oder andere Man-Page. Aber die PHP-Doku z.B. halte ich für schrecklich und erst nützlich, wenn man die Inhalte ohnehin verstanden hat. Aber naja, trotzdem: RTFM. Frag die richtigen Leute auf die richtige Art und Weise. Deine SQL-Frage wäre prima in einem SQL-Forum aufgehoben gewesen. Beim Fragen sollte man darauf achten, das Problem prägnant und reproduzierbar zu beschreiben und auch zu erwähnen, welche Lösungsansätze genau man selbst bislang unternommen hat und ggF. auch, woran sie gescheitert sind. Google ist dein FREUND. Nun, zumindest in seiner Funktion. Bestimmt gab es dein Problem schonmal, also google es. Wenn du es findest, hast du nicht nur die Lösung, sondern auch den Beleg dafür, dass du mit deiner Frage kein Exot bist. Hab Spaß. Klappt bei mir nicht immer, aber immer öfter. Manchmal kann ich beschließen, unangenehme Pflichten einfach zu genießen. Letztlich wächst du ja an so ziemlich jedem Problem. Auch wenn die ersten Meter einer Lernkurve bisweilen steil und mühsam sind, wirst du schon bald mit mächtigen Fertigkeiten belohnt. Wende sie an und genieße die Früchte deiner Arbeit.
  6. Hi, "sinnvoll" hängt freilich von den Anforderungen ab. 🙂 Zum Kauf eines NAS haben mich folgende Kriterien bewogen: Filehosting 24/7 Zugriff auf Speicher von verschiedenen Geräten Zunächst habe ich mit einem Raspberry Pi und einer USB-Platte daran angefangen, aber ich war dann nicht mehr sicher, ob das nicht an irgendeiner Stelle Flaschenhälse bezüglich der Bandbreite geben könnte. Also habe ich 150,-€ für eine WD MyCloud ausgegeben. Darin hält die Daten eine WD "Red" vor, die für den Serverbetrieb hinsichtlich der Lebensdauer ausgelegt ist. Mit einer zweiten könnte ich dort im RAID-Betrieb fahren. Gut gefällt mir daran: geringerer Stromverbrauch als mein ausgewachsener Desktop-PC optimierte Hardware für den Job vorkonfiguriertes OS und Interface mit Dienst-, Freigabe- und Benutzerverwaltung Option im Cloud-Betrieb auch externen Zugriff zu erlauben (wobei meine Daten dann aber wohl über den WD-Server laufen würden, was ich nicht mögen würde) Support von WD Backup via USB möglich Man könnte direkt Joomla oder Wordpress hosten, das geht aus dem WD-Shop Hätte ich 'nen Mac, könnte ich Timemaschine für Backups nutzen Nachteilig finde ich: Betriebssystem lässt sich nicht ohne Garantieverlust anpassen Betriebssystem ist ein ganz seltsam angepasstes Debian, für das ich keine Dokumentation finde Mehr als zwei Festplatten kann ich nicht einbauen Bis heute habe ich nicht herausfinden können, wie ich dort einen Apache Web- oder SQL-Server betreiben kann Es gab wohl ein Problem mit dem Leak eines Backdoor-Zugangs, auf das ich zufällig nach dem Kauf gestoßen bin. Dafür benutze ich es: Media-Streaming in der Wohnung (via Handy steuere ich einen MusicPlayerDaemon auf 'nem RasPi, an dem Lautsprecher angeschlossen sind oder direkt aufs Handheld) Filehosting Dateispeicher für alles, was keine allzu kurzen Latenzen braucht Worauf ich beim nächsten Kauf achten würde: OS soll auch ein normales Debian sein können Vier Festplatten-Slots ermöglichen dann doch die Option vier Platten im RAID zu fahren ein Display am NAS kann vorteilhaft sein, wenn man die Temperaturen/Auslastung im Blick behalten will Vor dem Kauf nach bekannten Sicherheitslücken suchen. Backups müssen nach meinem Geschmack automatisch passieren und mir gelang es nicht das in Windows 10 zu realisieren, wusste nicht wie man das einstellen kann. Also gehen kritische Daten halt direkt ins NAS, von dort könnte ich dann, wann immer ich alle halbe Jahre mal dran denke, Backups manuell erstellen oder halt auf RAID wechseln. Insgesamt finde ich aber, dass sich die Anschaffung gelohnt hat, zumal ich an dem Setup einiges gelernt habe und künftig noch einiges ausprobieren kann. Hoffe, das hat dir geholfen. Zu VM-Betrieb kann ich leider nix sagen, aber: Brauchst du das wirklich?
  7. L3v14than

    Eine Frage zur Projektpräsentation + Doku.

    Hi, wo findet man diese IHK-Vorgaben?

Fachinformatiker.de, 2018 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung