Entschuldigung für meine verwirrte Frage. Ich suche nach Hinweisen.
Bisher habe ich hauptsächlich mit Java und Python auf der Anwendungsebene gearbeitet und ich habe nur ein vages Verständnis für Betriebssysteme und Hardware. Ich möchte viel mehr über die niedrigeren Computerebenen verstehen, aber es wird irgendwie wirklich überwältigend. An der Universität nahm ich an einem Kurs über Mikroprogrammierung teil, dh wie Prozessoren fest verdrahtet werden, um die ASM-Codes zu implementieren. Bisher dachte ich immer, ich würde nicht mehr erledigen, wenn ich mehr über das "niedrige Niveau" erfahren würde.
Eine Frage, die ich habe, ist: Wie ist es überhaupt möglich, dass Hardware fast vollständig vor dem Entwickler verborgen bleibt? Ist es richtig zu sagen, dass das Betriebssystem eine Softwareschicht für die Hardware ist? Ein kleines Beispiel: Beim Programmieren bin ich nie auf die Notwendigkeit gestoßen, zu verstehen, was L2- oder L3-Cache ist. Für die typische Geschäftsanwendungsumgebung muss man Assembler und die niedrigeren Rechenebenen fast nie verstehen, da es heutzutage für fast alles einen Technologie-Stack gibt. Ich denke, der springende Punkt dieser niedrigeren Ebenen ist es, eine Schnittstelle zu höheren Ebenen bereitzustellen. Andererseits frage ich mich, wie viel Einfluss die unteren Ebenen haben können, zum Beispiel diese ganze Grafik-Computing-Sache.
Auf der anderen Seite gibt es diesen theoretischen Zweig der Informatik, der an abstrakten Computermodellen arbeitet. Ich bin jedoch auch selten auf Situationen gestoßen, in denen ich es als hilfreich empfand, in den Kategorien Komplexitätsmodelle, Beweisverifizierung usw. zu denken. Ich weiß irgendwie, dass es eine Komplexitätsklasse namens NP gibt und dass sie irgendwie unmöglich zu lösen sind eine große Anzahl von N. Was mir fehlt, ist eine Referenz für einen Rahmen, um über diese Dinge nachzudenken. Es scheint mir, dass es alle möglichen Lager gibt, die selten miteinander interagieren.
In den letzten Wochen habe ich über Sicherheitsprobleme gelesen. Hier kommen irgendwie viele der verschiedenen Schichten zusammen. Angriffe und Exploits finden fast immer auf der unteren Ebene statt. In diesem Fall müssen Sie sich mit den Details der OSI-Schichten, dem Innenleben eines Betriebssystems usw. vertraut machen.