Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: 4v1dy4 en 30 Octubre 2023, 13:28 pm



Título: ¿Por que hay tan poco C++ en los sistemas operativos?
Publicado por: 4v1dy4 en 30 Octubre 2023, 13:28 pm
Esa es la pregunta.

Nunca me lo habia cuestionado pero ahora me ha entrado la duda.

En todas partes leo que C++ es mas rapido que C (Aun no se si fiarme de esa afirmacion).

Ademas C++ tiene perfecta amistad con ensamblador. Es tan facil integrarlo como en C.

Entonces, si todo son ventajas, ¿Se ha hecho algo al respecto de que nos estamos perdiendo de un mejor rendimiento programando los kernels en C?


Título: Re: ¿Por que hay tan poco C++ en los sistemas operativos?
Publicado por: kub0x en 31 Octubre 2023, 03:34 am
Hola,

En Windows existe la posibilidad de escribir drivers KMDF en C++ (y probablemente WDF) son drivers pnp o no-pnp es decir con o sin dispositivo.
Ahora en Linux, empezando por Linus Torvalds, que literalmente se caga en C++ para el desarrollo de kernel, pues no sigue el espíritu de DIY, así como el "overhead" y el tamaño del runtime (libstdc++ y demás). Se supone que uno tiene que escribir el código "justo" para que el componente funcione.

Todo parte de ser "buen" programador, seguir buenas prácticas como código "ordenado y limpio", conteo de referencias y liberación de memoria. Detección de condiciones de carrera, cuelgues (deadlocks), no llamar punteros previamente liberados (use-after-free), escritura controlada en memoria etc

https://harmful.cat-v.org/software/c++/linus

Citar
C++ is a horrible language. It's made more horrible by the fact that a lot
of substandard programmers use it, to the point where it's much much
easier to generate total and utter crap with it. Quite frankly, even if
the choice of C were to do *nothing* but keep the C++ programmers out,
that in itself would be a huge reason to use C.

C también se usa para sistemas embebidos, y bueno en mi ámbito, la criptografía. Ahora, uso mucho C++ también sobre todo para desarrollo de software y evasión de EDR/AV. No son incompatibles. En Windows como dije puedes aventurarte a usarlo para kernel drivers. Y si buscas probablemente en Linux igualmente, aunque se salga de la filosofía de Mr. Torvalds. Pero bueno ahí tenemos a RustLang  que lo quieren meter a la fuerza... :silbar: :laugh:

Saludos.


Título: Re: ¿Por que hay tan poco C++ en los sistemas operativos?
Publicado por: 4v1dy4 en 31 Octubre 2023, 12:38 pm
Citar
C++ is a horrible language

Ah. Okay.

Sinceramente a mi tampoco me gusta C++. Especialmente porque nunca estuve de acuerdo con la programacion orientada a objetos; siempre me parecio una cosa forzada.

Una pregunta al respecto,

¿Tienes idea de a que se refiere con esto?

Citar
you can write object-oriented code (useful for filesystems etc) in C

¿Como que puedes escribir codigo orientado a objetos en C? (Obviamente habla de algun tipo de generalizacion pero no se a que se refiere con eso exactamente)


Título: Re: ¿Por que hay tan poco C++ en los sistemas operativos?
Publicado por: Danielㅤ en 31 Octubre 2023, 16:10 pm
Hola, yo creo que los de la vieja escuela están acostumbrados a usar C, han aprendido con ese lenguaje además creo que C++ aunque sea la evolución de C pero es básicamente C con más cosas implementadas, sería algo parecido a jQuery es basado en javascript.


Saludos


Título: Re: ¿Por que hay tan poco C++ en los sistemas operativos?
Publicado por: 4v1dy4 en 1 Noviembre 2023, 16:17 pm
La cuestion es que pintan a C++ como un lenguaje avanzado, solo porque cuenta con orientacion a objetos.

No se por que la orientacion a objetos es considerada un concepto avanzado.

Y bueno, al ser considerada como tal, me daba curiosidad por que los sistemas no estan implementados en el...