Nuevo en el software libre

Me estoy metiendo un poco en el mundillo de la programación y tengo un par de dudas.

Tengo un PIII a 1000mhz con 512 de ram. Me gustaria instalar Linux.Es muy complicado de manejar?(existe alguna guia que te explique?)Donde puedo encontra uno que se ajuste a lo que necesito?

El ordenador lo quiero basicamente para programar(para la uni) en C y para probar software libre.Cual me recomendais?Como editor de texto he oido hablar del openoffice.Cuales más me recomendais?Conoceis alguno tipo photoshop, tipo matlab y tipo AUTOCAD?

Que libro me recomendias para aprender a programar en C?

Muchisimas gracias

Un saludo
Si de entrada no quieres comerte la cabeza con el S.O. te recomendaría Ubuntu, no porque te dé nada que las demás no te ofrezcan sino porque tiene una guía clarísima y supermascada que te facilitará mucho los primeros pasos.

Sobre si es muy complicado, en mi opinión es MUCHO MÁS SENCILLO que Windows, como prueba sólo tienes que ver cómo se instalan los programas. Aunque por supuesto no es Windows, y por lo tanto al principio puede parecerte que algunas cosas no están donde estás acostumbrado a encontrarlas.

No sé mucho de programación ni de Autocad, así que a ese respecto no puedo aconsejarte gran cosa. Lo siento.
En Ubuntu los drivers se instalan igual o me pueden dar problemas los componentes?

La lista de hardware compatible es tan minima? [agggtt] Por me gustaria dejar el ordenador tal cual(sin gastarme más dinero).

Que version me recomendais?
tipo photoshop (editor gráfico) tienes gimp, no es igual, pero suele ser suficiente

para mathlab tienes octave, que además creo que es bastante compatible con mathlab

de autocad ni idea

oppenoffice es una suite informática, tiene bastantes más cosas que editar documentos (editor de textos se le llama al bloc de notas y cosas parecidas)
Lo programas del hilo de software libre para windows son tambien compatibles con ubuntu?Los programas creados para windows son compatibles con ubuntu?¿

Que programas considerias vosotros indispensables?
XresaX escribió:En Ubuntu los drivers se instalan igual o me pueden dar problemas los componentes?


Normalmente no necesitarás drivers para que te funcionen los componentes, ya que el kernel de Linux lleva muchísimos integrados. En otras palabras, lo más probable es que no tengas que tocar NADA.

Para instalar drivers propietarios, que no pueden distribuirse con el kernel, suele usarse Synaptic. Pero como te digo, seguramente ni siquiera te hará falta.

XresaX escribió:La lista de hardware compatible es tan minima? [agggtt] Por me gustaria dejar el ordenador tal cual(sin gastarme más dinero).


La lista es muy, muy extensa, pero no tanto como en Windows, por supuesto. Lo mejor que puedes hacer para ver si tu hardware funciona con Ubuntu es bajar el live CD y probar si todo va bien, ya que no sólo vale para instalar sino también probar el sistema desde el CD y la RAM, sin tocar el disco duro.

XresaX escribió:Que version me recomendais?


La 7.04, que salió hace días. Te he enlazado directamente a la imagen, así que no tienes pérdida [Ooooo]

Lo programas del hilo de software libre para windows son tambien compatibles con ubuntu?


Unos sí, otros imagino que no.

Los programas creados para windows son compatibles con ubuntu


No. Pero Ubuntu "se busca la vida" y te ofrece Wine, un "emulador" que te permite correr muchos programas de Windows.

Que programas considerias vosotros indispensables?


Yo a día de hoy no puedo vivir sin Tomboy.
Podre jugar a juegos de windows?A mis amigos y a mi nos a dado por volver al diablo II y mi duda era si podre instalarlo y jugar.

El wine ralentiza?exactamente q hace?

Que diferencias hay entre bajarse el codigo fuente o un paquete binario?
XresaX escribió:Que diferencias hay entre bajarse el codigo fuente o un paquete binario?

El código fuente suele venir en un .tar.gz (comprimido) y aún no está compilado (lo tienes que compilar, a menudo es bastante difícil y tienes que instalar muchas dependencias). Por lo que aunque puedas tener la ÚLTIMA versión con el código fuente, no te aconsejo que intentes compilarlo por lo de los problemas e incompatibilidades. Te aconsejo que bajes un paquete binario, que pueden ser archivos .deb (Ubuntu, Debian, Guadalinex, etc...), .rpm (Red Hat, Fedora Core,...) o algunos más como .run (instalable en línea de comandos). Vienen YA COMPILADOS y su instalación no suele tener dificultades, además si hace falta en algunos sistemas como Debian o Ubuntu también te baja las dependencias (eso en el caso de usar apt-get, aptitude, Adept o Synaptic). En resumen, ELIGE PAQUETES BINARIOS aunque tu versión sea un poco más vieja.
XresaX escribió:Podre jugar a juegos de windows?A mis amigos y a mi nos a dado por volver al diablo II y mi duda era si podre instalarlo y jugar.


En este blog explican cómo instalar Diablo II en Linux, y según el bloguero en cuestión va a la perfección. Ya sería cuestión de que lo instales y lo pruebes.

XresaX escribió:El wine ralentiza?exactamente q hace?


Se supone que "engaña" a los programas para hacerles creer que están rulando en Windows. Algunos programas pueden ir más lentos, de otros he oído decir que van mejor que en Windows. Yo no soy jugón, conque poco puedo decirte.

XresaX escribió:Que diferencias hay entre bajarse el codigo fuente o un paquete binario?


Imagina que quieres una mesa para tu comedor. El código fuente es una mesa del Ikea, que tienes que montar tú mismo. Te vienen las piezas y los tornillos y necesitas ciertos conocimientos para montarla, o al menos leer el manual. El binario es una mesa comprada en el carpintero de tu barrio: la pides y te la trae un chaval a casa, montada y barnizada, y hasta te la pone en su lugar.

Elige binario siempre que sea posible.
XresaX escribió:Podre jugar a juegos de windows?A mis amigos y a mi nos a dado por volver al diablo II y mi duda era si podre instalarlo y jugar.

El wine ralentiza?exactamente q hace?


Wine es una implementacion de la API de Windows para poder hacer correr los programas de Windows. Algunos programas iran bastante bien (e incluso mas rapido que en Windows) y otros ni se llegaran a ejecutar.
En http://appdb.winehq.org podras ver una base de datos con muchos programas para saber que tal funcionar.

En concreto, el Diablo II funciona en Wine perfectamente (en AppDB le han puesto de calificacion Platinum, vamos, no deberias tener ni un solo problema).

Bou escribió:Imagina que quieres una mesa para tu comedor. El código fuente es una mesa del Ikea, que tienes que montar tú mismo. Te vienen las piezas y los tornillos y necesitas ciertos conocimientos para montarla, o al menos leer el manual.


Pero a veces faltan cosas como los tornillos y los tienes que obtener aparte (dependencias) XD
Waninkoko escribió:Wine es una implementacion de la API de Windows para poder hacer correr los programas de Windows.


Ya que estamos y por quitarme esa espina, ¿puedes explicarme como si fuera para un crío de tres años qué es una API y por qué Wine No Es un Emulador?
Bou escribió:
Ya que estamos y por quitarme esa espina, ¿puedes explicarme como si fuera para un crío de tres años qué es una API y por qué Wine No Es un Emulador?


Es un poco dificil de explicar y tal vez diga alguna que otra burrada xD

Una API digamos que seria como un sistema para comunicar aplicaciones entre si. Las API incluyen funciones, etc.
En el caso de las aplicaciones de Windows, estas tienen que utilizar la API de Windows para hacer varias cosas.

Por ejemplo:
Una aplicacion tiene que crear una ventana. Para hacer eso tiene que realizar una serie de llamadas a la API de Windows para que este genere una ventana y pueda ser utilizada por la aplicacion.

El problema al ejecutar el codigo de una aplicacion de Windows (wine es capaz de interpretar el contenido de un ejecutable de Windows) son las llamadas que se hacen a la API de Windows (y a la API de DirectX, etc.). Estas funciones a las que la aplicacion llama logicamente no existen en Linux. Para solucionar esto Wine proporciona muchas de estas funciones para que las aplicaciones llegen a ejecutarse en Linux.

Normalmente cuando alguna aplicacion no se ejecuta correctamente con wine es porque falta alguna funcion o la funcion a la que llama el programa no esta implementada al 100%.

:D

PD: Seguro que he dicho alguna burrada o algo XD
Waninkoko escribió:Por ejemplo:
Una aplicacion tiene que crear una ventana. Para hacer eso tiene que realizar una serie de llamadas a la API de Windows para que este genere una ventana y pueda ser utilizada por la aplicacion.

El problema al ejecutar el codigo de una aplicacion de Windows (wine es capaz de interpretar el contenido de un ejecutable de Windows) son las llamadas que se hacen a la API de Windows (y a la API de DirectX, etc.). Estas funciones a las que la aplicacion llama logicamente no existen en Linux. Para solucionar esto Wine proporciona muchas de estas funciones para que las aplicaciones llegen a ejecutarse en Linux.


Mmmm, creo que más o menos lo entiendo aunque me hubiera gustado más mongolizado.

El problema es que más o menos eso es lo que yo entiendo como "emulador", conque ¿cuál es la diferencia?

Si puedes explicármelo con dibujitos mejor que mejor, porque no hay forma de pillarlo.
Waninkoko escribió:Pero a veces faltan cosas como los tornillos y los tienes que obtener aparte (dependencias) XD

¡APT-GET POWER!
Waninkoko escribió:Pero a veces faltan cosas como los tornillos y los tienes que obtener aparte (dependencias) XD


Bueno, creo que con ese detalle ya ha quedado la parábola redonda :P
Bou escribió:
Mmmm, creo que más o menos lo entiendo aunque me hubiera gustado más mongolizado.

El problema es que más o menos eso es lo que yo entiendo como "emulador", conque ¿cuál es la diferencia?

Si puedes explicármelo con dibujitos mejor que mejor, porque no hay forma de pillarlo.


Es dificil de explicar y encima con lo mal que explico yo XD

Un emulador es diferente.
Cuando emulamos otra arquitectura, el emulador lo que hace es traducir las instrucciones que se quieren ejecutar al lenguaje de la arquitectura sobre la que corre el emulador.
Un emulador no proporciona una serie de funciones para que la aplicacion a emular las uses. El emulador simplemente recibe instrucciones e intenta realizar lo que se quiere hacer con esa serie de instrucciones de la mejor manera que puede.

Se podria decir que:

WINE:
Aplicacion intenta ejecutar una funcion determinada -> Wine le proporciona esa funcion.

EMULADOR:
Aplicacion quiere realizar una serie de cosas -> Emulador interpreta las instrucciones e intenta realizar esas cosas como pueda.
Bou escribió:
Ya que estamos y por quitarme esa espina, ¿puedes explicarme como si fuera para un crío de tres años qué es una API y por qué Wine No Es un Emulador?


Una API no es mas que un conjunto de librerias para programar, mas o menos completa. La API Win32 que es la que Wine porta a Linux tiene funciones como creacion de ventanas de Windows, redimension de las mismas, gestion del sonido en Windows, I/O, dialogos de guardar archivos, de abrir ficheros, y muchas cosas mas.
Un emulador, al menos lo que tradicionalmente se ha entendido por emulador, se limita a reproducir una arquitectura de hardware distinta de la forma más fiel posible: el software simplemente lo "interpreta". Es por eso que un emulador implica siempre una pérdida de velocidad, que depende de diversos aspectos que no vienen al caso.
Txukie escribió:Una API no es mas que un conjunto de librerias para programar, mas o menos completa. La API Win32 que es la que Wine porta a Linux tiene funciones como creacion de ventanas de Windows, redimension de las mismas, gestion del sonido en Windows, I/O, dialogos de guardar archivos, de abrir ficheros, y muchas cosas mas.


Aaaaah ¿entonces las APIs de Win serían el equivalente a las GTK o las QT? Entonces correr un programa con Wine no distaría mucho de correr un programa KDE en Gnome ¿no?
Bou escribió:Aaaaah ¿entonces las APIs de Win serían el equivalente a las GTK o las QT? Entonces correr un programa con Wine no distaría mucho de correr un programa KDE en Gnome ¿no?


No exactamente. Las llamadas a GTK o QT dibujan ventanas, diálogos, etc. en la pantalla. Una llamada al API WIN32 puede hacer eso... crear un proceso, escribir un fichero en el disco duro, es decir, no se limita solo al entorno gráfico, sino también a llamadas de sistema. Además de eso Wine implementa una pequeña parte del API de Direct X, por eso se pueden ejecutar algunos juegos como Half Life 2 usándolo.

Saludos!
19 respuestas