Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

[C/C++] C y Sistemas Operativos

Participa en el tema [C/C++] C y Sistemas Operativos en el foro Programación.
El otro día un amigo comenta que no le atrae mucho la idea de aprender ...

Buscar en este tema:
1 2 >
 
  •  
    #1 [C/C++] C y Sistemas Operativos
    El otro día un amigo comenta que no le atrae mucho la idea de aprender nuevos lenguajes como JAVA, C#, Delphi. Dice que con C (ANSI C) basta.
    Se planteo esta pregunta al enterarse que Win32API estan escritas en C y lo mismo para Linux.
    Que me dicen... acaso planteo una polémica?. :o
    +
     
    0
    Me gusta
     
    | Más
  • #2 Re: C y Sistemas Operativos

    Una polémica ? lo dudo :P es bien sabido que lenguajes como Java y C# no están hechos para sistemas operativos, por algo no compilan código nativo, y Java ni siquiera tiene punteros, cosa que está bien, pero para programar un sistema operativo es una fea falencia :P El C es un lenguaje de mucho más bajo nivel que esos otros y por eso es el que se viene usando para programar sistemas operativos desde la época de UNIX
    Sin embargo hay gente que prefiere usar C++ para sistemas operativos ( creo que los de GNU Mach son el caso :P ) y hasta ha habido intentos de hacer sistemas operativos con Java ( por ej. GCC provee el compilador GCJ que es capaz de compilar código Java a código nativo ) y peor aún, he llegado a ver un sistema operativo hecho en Python !!! y no es joda !!! pero antes claro, tuvieron que hacer el soporte base en C para poder correr el intérprete xDDD
    En fin yo creo que no es ninguna polémica, esos otros lenguajes de más alto nivel no están pensados para hacer sistemas operativos pero sin embargo para el desarrollo rápido de aplicaciones son una masa.
    Y... mm... con lo de las APIs de Windows, es cierto, están en C, sin embargo escuché en algún lado que se rumoreaba que las APIs de Windows Vista ( que en realidad tienen otro nombre... algo así como WinFX creo... ) estarían implementadas en .NET O.o.
    Y Linux, la mayor parte está implementado en C, pero sin assembler no podrías hacer nada, por ej. para realizar una llamada al sistema en Linux llamas a la interrupción 0x80, y el código que se encarga de guardar el estado de la máquina y hacer todo lo relativo al cambio de contexto y manejar la primera parte de la interrupción están en assembler puro... ni siquiera C, ASM !!! puro ASM !! :P
    Como sea, si querés hacer un sistema operativo lo mejor para mi es ASM + C, pero eso no quiere decir que no te tengas que interesar por hermosos lenguajes de programación como Java que realmente son una masa !!!

    Suerte.

    P.D: Linux no usa ANSI C, usa el GCC con sus respectivas optimizaciones a más no poder !!!, si querés usar un compilador de ANSI C estricto con Linux no podés... simplemente no compila... tira montones de errores por todos lados.
    Me gusta este mensaje
  • #3 Re: C y Sistemas Operativos

    No es un rumor. Inicialmente, las APIs del Vista estuvieron escritas en .NET.

    Pero no anduvo. Iba para atras, tenian falencias en seguridad, estabilidad, velocidad, confiabilidad en fin eran un desastre.

    Asi que tuvieron que empezar de nuevo pero en C. Esa es una de las tantas razones por las cuales el vista esta seriamente retrasado. Quiseron mostrar la robustez de .NET y ni ellos mismos pueden sostener esa fachada.

    Para un S.O. no hay como C. No es una polemica, es simplemente un hecho. Esta claro que podes programar un sistema operativo en "casi" cualquier lenguaje, pero tenes que tener en cuenta el codigo generado, si es nativo, si es interpretado, bla bla bla.

    A fin de cuentas, tanto el java VM como el NET framework estan hechos en C! Todo se reduce en anteultima instancia al C y un nivel mas abajo todavia, al assembler.

    Aun asi, java es excelente para aplicaciones. Aunque el java VM se esta poniendo muy pesado con el paso de versiones...
    Me gusta este mensaje
  • #4 Re: C y Sistemas Operativos

    Leyendo lo que dicen los muchachos, que por cierto es totalmente cierto, cabe hacer un anueva pregunta.
    a que quiere dedicarse tu amigo? y vos tambien en todos casos..
    Si vas a dedicarte al desarrollo de sistemas informaticos, juegos, y todo aquello que sea de un nivel mas o menos alto, donde usas por ejemplo COM, el c puro, digamos que complica las cosas. C++ al ser orientado a objetos permite un poco mas de abstraccion ( linux esta programado en C , pero la QT esta en c++ y es orientada a objetos ).

    En mi opinion, existen podemos decir hablo a groso modo, podemos si queres ahondar mas en el tema..
    3 tipos de programacion

    lineal ( ASM , ell viejo basic de la msx , spectrum )
    estructurada ( pascal , c )
    orientada a objetos ( c++, object pasacal , java, c# )

    Aparte de los paradigmas de programacion antes nombrados , todo lenguaje en mayor y menos medida posee

    variables, estructuras de control y condicionales ( if for while ) , procedimientos y funciones.
    A partir de esa abstraccion simple... todos los lenguajes son mas o menos iguales.
    algunos deberas aprender a usar punteros en mayor medida, otros daran mayor o menos flexibiliad a los tipos de datos. pero son aprecidos.

    Sabiendo c , aprender pascal no te puede llevar mas de 10 dias.
    Sabiendo c++ , aprender java delphi o c# , tampoco es mucha ciencia ( lo que vale es el paradigma de programacion , en este caso la Programacion orientada a objetos ).
    Me gusta este mensaje
  • #5 Re: C y Sistemas Operativos

    Estoy estudiando para Ingeniero Informático y aún no encaramos el paradigma orientado a objetos (recién en 5 año) por el momento nuestro enfoque esta dado por el paradigama imperativo.
    Si con "código nativo" quieren decir lo que yo conozco como un programa compilado o interpretado que es otro caso; esto me lleva a replantear el objetivo de mi pregunta:

    ¿Que lenguaje me recomiendan para desarrollar sistemas (programas), por ejemplo, para S.O Windows?

    Debería tener conocimientos sobre Win32API, si quiero un programa compilado ¿no?.


    Por un momento olvídense de la portabilidad y de los lenguajes que traducen el código fuente a programas interpretados (vi un programa hecho en C# que solo muestra el nombre del usuario actual y consume 12 MB de RAM) más allá que en la actualidad tenemos Dual Core, DDR2 y otras tecnologías innovadoras que ejecutan estos programillas como si nada.
    Como dijo un ingeniero hace poco en una cátedra: "Los lenguajes como C# tienden a una mayor abstracción, hoy en día parece que cualquiera puede encarar el desarrollo de un sistema, arrastramos de allá, un poco de código ahí y listo..."
    Espero que entiendan hacia donde voy y no me tomen como un troll :O_O:
    Saludos.
    Me gusta este mensaje
  • #6 Re: C y Sistemas Operativos

    Originalmente publicado por ICE-MAN
    ¿Que lenguaje me recomiendan para desarrollar sistemas (programas), por ejemplo, para S.O Windows?
    Sin dudarlo Visual Basic y/o Delphi.

    Para todo lo demás, C/C++

    Saludos.
    Me gusta este mensaje
  • #7 Re: C y Sistemas Operativos

    Originalmente publicado por ICE-MAN
    Estoy estudiando para Ingeniero Informático y aún no encaramos el paradigma orientado a objetos (recién en 5 año) por el momento nuestro enfoque esta dado por el paradigama imperativo.
    Si con "código nativo" quieren decir lo que yo conozco como un programa compilado o interpretado que es otro caso; esto me lleva a replantear el objetivo de mi pregunta:

    ¿Que lenguaje me recomiendan para desarrollar sistemas (programas), por ejemplo, para S.O Windows?

    Debería tener conocimientos sobre Win32API, si quiero un programa compilado ¿no?.


    Por un momento olvídense de la portabilidad y de los lenguajes que traducen el código fuente a programas interpretados (vi un programa hecho en C# que solo muestra el nombre del usuario actual y consume 12 MB de RAM) más allá que en la actualidad tenemos Dual Core, DDR2 y otras tecnologías innovadoras que ejecutan estos programillas como si nada.
    Como dijo un ingeniero hace poco en una cátedra: "Los lenguajes como C# tienden a una mayor abstracción, hoy en día parece que cualquiera puede encarar el desarrollo de un sistema, arrastramos de allá, un poco de código ahí y listo..."
    Espero que entiendan hacia donde voy y no me tomen como un troll :O_O:
    Saludos.
    noooooooooo... de troll no tiene nada!!! Es más, está lindo este debate que armaste

    Vamos por partes:

    ¿Que lenguaje me recomiendan para desarrollar sistemas (programas), por ejemplo, para S.O Windows?
    C# y java, ya que tienen excelentes APIs, son portables y son "lo ultimo" en tecnología... A la hora de desarrollar sistemas complejos (juegos, programas muy demandantes con la memoria, etc), C++ de cajón.

    Aparte, java y c# son los lenguajes "estrella" para programar dispositivos móviles como celulares, PDAs y demás, aunque java le lleva un par de cuerpos de ventaja, .net está preparada para ser una plataforma para desarrollos móviles... Y el mercado que están abriendo estos "aparatitos" es increíble.
    Debería tener conocimientos sobre Win32API, si quiero un programa compilado ¿no?.
    Te habla alguien que no conoce la Win32API...

    Como ves, lo que más se usa actualmente para desarrollar programas de usuario son lenguajes que se basan en los paradigmas de objetos y/o aspectos, aunque aspectos es "la novedad", pero al estar basado mucho en objetos, se sitúa como otra capa más de abstracción... mientras que C tiene su espacio en programas de alta carga y que trabajan "cerca" del SO y obviamente, SO... no es descabellado en lo mas mínimo que muchos daemons de los servers unix (ej: bind para DNS, MTAs como sendmail, qmail y postfix, etc, etc, etc) estén hechos en C por un tema ppalmente de robustez y velocidad, en pos de la fiabilidad...

    En sí, cuando necesites tener un mayor control de los recursos de la máquina, más obligado te vas a ver a "bajar" y quitar abstracción a tus trabajos...

    Igual, en el peor de los casos, siempre tenés que evaluar el entorno donde va a correr tu aplicación.


    El doc
    Me gusta este mensaje
  • #8 Re: C y Sistemas Operativos

    Hola Que Tal? Estuve Leyendo Este Tema Y Esta Muy Bueno... Recien Me Estoy Iniciando En Mis Estudios Para Analista De Sistemas, Estoy En El 2 Cuatrimestre Y Lo Que Queria Preguntar Yo Era...
    Si Tienen Un Par De Compiladores Copados Para Pasarme Porque Estoy Programando En C, Pero Todavia Sobre Papel Y Ciertamente Quiero Ver Que Lo Que Estoy Haciendo Funcione. Desde Ya Muchas Gracias Y Muy Bueno Este Tema. Saludos.:d
    Me gusta este mensaje
  • #9 Re: C y Sistemas Operativos

    Originalmente publicado por Snarf
    Hola Que Tal? Estuve Leyendo Este Tema Y Esta Muy Bueno... Recien Me Estoy Iniciando En Mis Estudios Para Analista De Sistemas, Estoy En El 2 Cuatrimestre Y Lo Que Queria Preguntar Yo Era...
    Si Tienen Un Par De Compiladores Copados Para Pasarme Porque Estoy Programando En C, Pero Todavia Sobre Papel Y Ciertamente Quiero Ver Que Lo Que Estoy Haciendo Funcione. Desde Ya Muchas Gracias Y Muy Bueno Este Tema. Saludos.:d
    pegate un par de busquedas, usando las palabras claves "dev C++", "djgpp" o "eclipse CDT", que ahí vas a tener bastantes recursos sobre el tema... cualquier cosa, abrite un thread nuevo, pero por favor, no desvirtúes este thread con cosas que "nada que ver".

    Por favor, sigamos con el tema en cuestión.

    El doc
    Me gusta este mensaje
  • #10 Re: C y Sistemas Operativos

    Siguiendo el tema en cuestion, yo agregaria.
    No es cuestion de casarse con un lenguaje, la potencia en sistemas grandes esta dada por la diversidad de plataformas , hardware etc...

    Tambien todo depende mucho de los requerimientos de hardware y software que no dependen de uno.

    Por lo que no es descabellado que en una misma empresa, tengamos sistemas en C#, delphi , c y c++ todos conviviendo, haciendo tareas distintas.

    En una de la empresas que conozco , por ejemplo es todo muy mricrosofeano en cuanto a la plataforma, pero igualmente tenemos maquinas que usan QNX como sistema operativo, que toman datos en tiempo real de PLC's (para controlar maquinas herramientas ) y los programas estan hechos en c++ y c.

    Dejan datos en un Sybase para qnx y nostros replicamos los datos a sql server, dichos datos luegos se procesan junto a datos de sistemas windows con aplicacion en delphi.

    En mi caso me asignaron pc portatiles con Pocket PC que tiene Explorer y se usan como maquinas de carga de informacion en linea, usando varios acces points desperdigados por la esta fabrica, por lo que en vez de conseguir el development kit para Pocket PC y pelear con el C y las API de la POCKET, hize un sistema Web , con servlets, en JAVA con tomcat, lo aloje en un servidor web, y acceden por medio del Pocket Internet Explorer de la PDA.

    El sistema web a su vez deja la informacion en una base de datos sql server que luego se displaya en un sistema Delphi.

    Y por ultimo varios temos sistemas y visualizadores de un Datawarehouse hechos en .NET que muestran paneles de resultados operativos para toma de siciones todo programado en c#. estos programas usan para visualizar curvas operativas de datos tomados por los PLC, en controles ocx , programados en delphi, que obtienen datos de las curvas por medio de un web service, A su vez estos se comunican con sistemas de otras plantas usando web services.

    Que ensalada, pero es la realidad de un sistema grande.
    Diras es una chanchada, pero para cada problema que se presento se busco la solucion mas adecuada.

    Si tenes una PC de escritorio que tiene un sistema critico que no puede depender del funcionamiento de un switch de una red, ya que si el sistema se cualga , se para una maquina y se pierden cientos de dolares por segundo de parada, no podes poner ahi un sistema en c#, ni en JAVA.


    Saludos.
    Me gusta este mensaje
1 2 >
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 18 RESPUESTAS
  • 3656 VISTAS
  • 9 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB