Lo siento, por mi pregunta confusa. Estoy buscando algunos consejos.
Hasta ahora he estado trabajando principalmente con Java y Python en la capa de aplicación y solo tengo una vaga comprensión de los sistemas operativos y el hardware. Quiero entender mucho más sobre los niveles más bajos de computación, pero de alguna manera se vuelve realmente abrumador. En la universidad, tomé una clase sobre microprogramación, es decir, cómo los procesadores se conectan para implementar los códigos ASM. Hasta ahora siempre pensé que no podría hacer más si aprendiera más sobre el "nivel bajo".
Una pregunta que tengo es: ¿cómo es posible que el desarrollador se oculte casi por completo del desarrollador? ¿Es correcto decir que el sistema operativo es una capa de software para el hardware? Un pequeño ejemplo: en la programación nunca me he encontrado con la necesidad de comprender qué es la caché L2 o L3. Para el típico entorno de aplicaciones empresariales, casi nunca es necesario comprender el ensamblador y los niveles más bajos de computación, porque hoy en día existe una pila tecnológica para casi cualquier cosa. Supongo que el objetivo de estos niveles inferiores es proporcionar una interfaz a los niveles superiores. Por otro lado, me pregunto cuánta influencia pueden tener los niveles inferiores, por ejemplo, todo este asunto de la informática gráfica.
Entonces, por otro lado, existe esta rama teórica de la informática, que funciona en modelos informáticos abstractos. Sin embargo, rara vez me encontré con situaciones, en las que me pareció útil pensar en las categorías de modelos de complejidad, verificación de pruebas, etc. Sé que hay una clase de complejidad llamada NP y que es imposible resolverlas. una gran cantidad de N. Lo que me falta es una referencia para un marco para pensar sobre estas cosas. Me parece que hay todo tipo de campamentos diferentes, que rara vez interactúan.
Las últimas semanas he estado leyendo sobre problemas de seguridad. Aquí de alguna manera, muchas de las diferentes capas se unen. Los ataques y exploits casi siempre ocurren en el nivel inferior, por lo que en este caso es necesario conocer los detalles de las capas OSI, el funcionamiento interno de un sistema operativo, etc.