Todas las ramas del sistema Unix BSD se encuentran afectadas por un agujero de seguridad que ha estado presente en su código desde hace un cuarto de siglo sin haber sido detectado y utilizado o al menos esto es lo que se piensa.
Guillem Alsina (guillem@imatica.org) - Todo empezó hace unos pocos días cuando Marc Balmer, desarrollador del proyecto OpenBSD, recibió un mensaje de correo electrónico de un usuario que se quejaba de un problema con Samba cuando trataba de acceder a los ficheros almacenados en un servidor Unix desde MS-DOS. Samba es la implementación del protocolo SMB para sistemas Unix (Linux, Mac OS X, Solaris,…) que permite a éste entenderse con máquinas Windows e intercambiar recursos cómo ficheros o utilizar impresoras. La tarea de Marc en OpenBSD consiste inicialmente en ocuparse de ciertos aspectos de la estabilidad del sistema cuando ejecuta cambios entre las aplicaciones que está ejecutando, pero al ser un usuario de Samba él mismo se interesó por el tema y realizó las pruebas correspondientes. Lo que descubrió a continuación ha dejado perpleja a la comunidad de desarrolladores de software.
Puesto en contacto con los desarrolladores de Samba, estos explicaron a Balmer que el código fuente utiliza una función común a todas las variantes de la rama BSD de Unix para acceder a los ficheros del servidor. Un bug presente en éste código sería el causante del fallo experimentado por el usuario.
Investigando un poco más, el programador llegó a la conclusión que el fallo había estado presente en el código desde la concepción de éste y su inclusión en la versión 4.2 de BSD en el lejano año de 1983 (lejano en términos informáticos, claro). Los detalles técnicos del problema son explicados por Balmer en su weblog.
En todo éste “curioso” asunto solamente queda un tema por resolver: ¿realmente el bug ha estado todo ese tiempo ahí sin ser descubierto y utilizado, o bien ha sido explotado durante algún tiempo (incluso años) por grupos de hackers/crackers sin ser descubiertos? Pese a que el bug haya podido permanecer oculto, una explotación masiva de estos agujeros de seguridad es detectable aunque sus causas puedan no ser establecidas, así es que si la comunidad hacker lo hubiera detectado con anterioridad, sin lugar a dudas hubiera salido a la luz de alguna manera. El peor temor es que lo haya aprovechado algún cracker (hacker que asalta sistemas informáticos solamente por interés propio, sin observar las reglas éticas y morales del hacking) para colarse esporádicamente en algún sistema comprometedor cómo computadoras gubernamentales o grandes servidores de Internet. Es una incógnita que probablemente estará ahí durante mucho tiempo.
Tampoco hay pruebas fehacientes de que éste bug pueda ser explotable para un ciberataque. No todos los problemas del software conllevan un problema de seguridad.
La forma de corregir éste fallo es, en palabras de Balmer, trivial, y expone la solución al final de la entrada correspondiente de su weblog, la misma en la que explica la historia del descubrimiento del ya famoso bug.
Mantenemos esta definición de software libre para mostrar claramente qué debe cumplir un programa de software concreto para que se le considere software libre.
El “Software Libre“ es un asunto de libertad, no de precio. Para entender el concepto, debes pensar en “libre“ como en “libertad de expresión“, no como en “cerveza gratis“ [N. del T.: en inglés una misma palabra (free) significa tanto libre como gratis, lo que ha dado lugar a cierta confusión].
“Software Libre’“ se refiere a la libertad de los usuarios para ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. De modo más preciso, se refiere a cuatro libertades de los usuarios del software:
La libertad de usar el programa, con cualquier propósito (libertad 0).
La libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades (libertad 1). El acceso al código fuente es una condición previa para esto.
La libertad de distribuir copias, con lo que puedes ayudar a tu vecino (libertad 2).
La libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie. (libertad 3). El acceso al código fuente es un requisito previo para esto.
Un programa es software libre si los usuarios tienen todas estas libertades. Así pues, deberías tener la libertad de distribuir copias, sea con o sin modificaciones, sea gratis o cobrando una cantidad por la distribución, a cualquiera y a cualquier lugar. El ser libre de hacer esto significa (entre otras cosas) que no tienes que pedir o pagar permisos.
También deberías tener la libertad de hacer modificaciones y utilizarlas de manera privada en tu trabajo u ocio, sin ni siquiera tener que anunciar que dichas modificaciones existen. Si publicas tus cambios, no tienes por qué avisar a nadie en particular, ni de ninguna manera en particular.
La libertad para usar un programa significa la libertad para cualquier persona u organización de usarlo en cualquier tipo de sistema informático, para cualquier clase de trabajo, y sin tener obligación de comunicárselo al desarrollador o a alguna otra entidad específica.
La libertad de distribuir copias debe incluir tanto las formas binarias o ejecutables del programa como su código fuente, sean versiones modificadas o sin modificar (distribuir programas de modo ejecutable es necesario para que los sistemas operativos libres sean fáciles de instalar). Está bien si no hay manera de producir un binario o ejecutable de un programa concreto (ya que algunos lenguajes no tienen esta capacidad), pero debes tener la libertad de distribuir estos formatos si encontraras o desarrollaras la manera de crearlos.
Para que las libertades de hacer modificaciones y de publicar versiones mejoradas tengan sentido, debes tener acceso al código fuente del programa. Por lo tanto, la posibilidad de acceder al código fuente es una condición necesaria para el software libre.
Para que estas libertades sean reales, deben ser irrevocables mientras no hagas nada incorrecto; si el desarrollador del software tiene el poder de revocar la licencia aunque no le hayas dado motivos, el software no es libre.
Son aceptables, sin embargo, ciertos tipos de reglas sobre la manera de distribuir software libre, mientras no entren en conflicto con las libertades centrales. Por ejemplo, copyleft [``izquierdo de copia``] (expresado muy simplemente) es la regla que implica que, cuando se redistribuya el programa, no se pueden agregar restricciones para denegar a otras personas las libertades centrales. Esta regla no entra en conflicto con las libertades centrales, sino que más bien las protege.
Así pues, quizás hayas pagado para obtener copias de software GNU, o tal vez las hayas obtenido sin ningún coste. Pero independientemente de cómo hayas conseguido tus copias, siempre tienes la libertad de copiar y modificar el software, e incluso de vender copias.
‘Software libre’ no significa “no comercial“. Un programa libre debe estar disponible para uso comercial, desarrollo comercial y distribución comercial. El desarrollo comercial del software libre ha dejado de ser inusual; el software comercial libre es muy importante.
Es aceptable que haya reglas acerca de cómo empaquetar una versión modificada, siempre que no bloqueen a consecuencia de ello tu libertad de publicar versiones modificadas. Reglas como “Si haces disponible el programa de esta manera, debes hacerlo disponible también de esta otra pueden ser igualmente aceptables, bajo la misma condición. (Observa que una regla así todavía te deja decidir si publicar o no el programa). También es aceptable que la licencia requiera que, si has distribuido una version modificada y el desarrollador anterior te pide una copia de ella, debas enviársela.
En el proyecto GNU, utilizamos “copyleft“ para proteger de modo legal estas libertades para todos. Pero el software libre sin “copyleft también existe. Creemos que hay razones importantes por las que es mejor usar copyleft, pero si tus programas son software libre sin ser copyleft, los podemos utilizar de todos modos.
Visita la página Categorías de Software Libre (18.000 caracteres) para ver una descripción de las diferencias que hay entre el “software libre“, “software con copyleft (`izquierdo` de copia)“ y otras categorías de software se relacionan unas con otras.
A veces las normas de control de exportación del gobierno y las sanciones mercantiles pueden restringir tu libertad de distribuir copias de los programas a nivel internacional. Los desarrolladores de software no tienen el poder de eliminar o sobrepasar estas restricciones, pero lo que pueden y deben hacer es rehusar el imponerlas como condiciones de uso del programa. De esta manera, las restricciones no afectarán a actividades y gente fuera de las jurisdicciones de estos gobiernos.
Cuando se habla de software libre, es mejor evitar términos como: “regalar“ o “gratis“, porque esos téminos implican que lo importante es el precio, y no la libertad. Algunos términos comunes tales como “piratería“ conllevan opiniones que esperamos no apoyes. Visita la página Palabras y frases confusas que vale la pena evitar, donde encontrarás una discusión acerca de estos términos. También tenemos una lista de traducciones de “software libre“ a varios idiomas.
Por último, fíjate en que los criterios establecidos en esta definición de software libre requieren pensarse cuidadosamente para interpretarlos. Para decidir si una licencia de software concreta es una licencia de software libre, lo juzgamos basándonos en estos criterios para determinar si tanto su espíritu como su letra en particular los cumplen. Si una licencia incluye restricciones contrarias a nuestra ética, la rechazamos, aun cuando no hubiéramos previsto el problema en estos criterios. A veces un requisito de una licencia plantea una situación que necesita de una reflexión minuciosa, e incluso conversaciones con un abogado, antes de que podamos decidir si la exigencia es aceptable. Cuando llegamos a una conclusión, a veces actualizamos estos criterios para que sea más fácil ver por qué ciertas licencias se pueden calificar o no como de software libre.
Si te interesa saber si una licencia concreta es de software libre, mira nuestra lista de licencias. Si la licencia que te preocupa no está en la lista, puedes preguntarnos enviándonos un correo electrónico a <licensing@gnu.org>.
Otros textos para leer
Otro grupo ha comenzado a usar el término open source [código abierto] para designar algo parecido (pero no idéntico) a “free software“ [Software Libre]. Preferimos el término “software libre“ porque, una vez que sabes que se refiere a libertad y no a precio, llama a pensar en la libertad.
Por favor envía tus comentarios y preguntas sobre la FSF y el Proyecto GNU a: gnu@gnu.org. Hay también otras maneras de contactar con la FSF.
Por favor, envía tus comentarios respecto a estas páginas web a webmasters@www.gnu.org, y envía tus otras preguntas a gnu@gnu.org.
Aqui les dejo este diagrama creado por Éric Lévénez, en el cual mediante informacion logro plasmar la historia de los lenguajes de programacion detalladamente y muy claro.
¿ Que es POO ( OOP en Ingles ) ?
La Programación Orientada a Objetos (POO) es una forma de enfocar la tarea de programación. Los enfoques de la programación han cambiado drásticamente desde la invención de las computadoras, la creciente complejidad de los programas, antes se realizaban mediante una consola las instrucciones máquina en binario. Esto funcionaba porque los programas sólo tenían unos pocos cientos de instrucciones. Cuando crecierón los programas, se invento el lenguaje ensamblador para que el programador pudiera manejar programas más largos y complejos usando una representación simbólica de las instrucciones máquina.
Los lenguajes de alto nivel aparecierón para proporcionar al programador más herramientas con las cuales gestionar esa complejidad. En los años sesenta nace la programación estructurada, este es el método alentando por varios lenguajes como pascal, y C. Con los lenguajes estructurados fue posible escribir programas moderadamente complejos de una forma bastante sencilla. Sin embargo, usando incluso la programación estructurada, cuando los proyectos Alcanzan cierto tamaño, su complejidad se vuelve demasiado difícil para ser controlada por un programador
La Programación Orientada a Objetos toma las mejores ideas de la programación estructurada la combina con nuevos y poderosos conceptos que animan o alientan una nueva visión de la tarea de la programación. La Programación Orientada a Objetos permite descomponer fácilmente un problema en subgrupos de partes relacionadas. Entonces, puede traducir estos subgrupos en unidades autocontenidas llamadas Objetos.
Origenes de la Programacion Orientada a Objetos
Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard del Centro de Cómputo Noruego en Oslo. Al parecer, en este centro, trabajaban en simulaciones de naves, y fueron confundidos por la explosión combinatoria de cómo las diversas cualidades de diversas naves podían afectar unas a las otras. La idea ocurrió para agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus propios datos y comportamiento. Fueron refinados más tarde en Smalltalk, que fue desarrollado en Simula en Xerox PARC (y cuya primera versión fue escrita sobre Basic) pero diseñado para ser un sistema completamente dinámico en el cual los objetos se podrían crear y modificar “en marcha” en lugar de tener un sistema basado en programas estáticos.
La programación orientada a objetos tomó posición como el estilo de programación dominante a mediados de los años ochenta, en gran parte debido a la influencia de C++, una extensión del lenguaje de programación C. Su dominación fue consolidada gracias al auge de las Interfaces gráficas de usuario, para las cuales la programación orientada a objetos está particularmente bien adaptada. En este caso, se habla también de programación dirigida por eventos.
Las características de orientación a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal, entre otros. La adición de estas características a los lenguajes que no fueron diseñados inicialmente para ellas condujo a menudo a problemas de compatibilidad y a la capacidad de mantenimiento del código. Los lenguajes orientados a objetos “puros”, por otra parte, carecían de las características de las cuales muchos programadores habían venido a depender. Para saltar este obstáculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en métodos orientados a objetos, pero permitiendo algunas características imperativas de maneras “seguras”. El Eiffel de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esos objetivos pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la aparición de Internet, y a la implementación de la máquina virtual de Java en la mayoría de navegadores. PHP en su versión 5 se ha ido modificando y soporta una orientación completa a objetos, cumpliendo todas las características propias de la orientación a objetos.
De nuevo me despedi del horrible windows y estoy de vuelta en los rumbos de un verdadero desarollador, aqui se aprende mucho mas aparte de que los problemas que aqui se presentan aportan mucha mas experiencia a una persona que realmente quiera aprender a manejar un sistema.
Estuve probando muchos distros pero como mi maquina es de fabricacion mexicana me dio muchos problemas con drivers de los perifericos; probe con diferentes distribuciones :
* Fedora 9 y 8
* Debian
* BackTrack 2
* Ubuntu
De todos estos los unicos que me dieron problemas fueron los distros Fedora y Debian por lo cual termine instalando OpenSuse 11 y la verdad es que me ha gustado bastante pero tengo que actualizarlo en muchas cosas ya que ni siquiera tiene GCC y es algo que utilizo muy amenudo. Aqui les dejo una captura :
C++ es un lenguaje de programación, diseñado a mediados de los ochenta, por Bjarne Stroustrup, como extensión del lenguaje de programación C.
Es un lenguaje híbrido, que se puede compilar y resulta más sencillo de aprender para los programadores que ya conocen C. Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes como ROOT (enlace externo). Las principales características del C++ son: el soporte para programación orientada a objetos y el soporte de plantillas o programación genérica (templates). Por ende, se puede decir que C++ es un lenguaje que abarca tres paradigmas de la programación: La programación estructurada, la programación genérica y la programación orientada a objetos.
Además posee una serie de propiedades difíciles de encontrar en otros lenguajes de alto nivel:
* Posibilidad de redefinir los operadores (sobrecarga de operadores)
* Identificación de tipos en tiempo de ejecución (RTTI)
C++ está considerado por muchos como el lenguaje más potente, debido a que permite trabajar tanto a alto como a bajo nivel, sin embargo es a su vez uno de los que menos automatismos trae (obliga a hacerlo casi todo manualmente al igual que C) lo que “dificulta” mucho su aprendizaje.
El nombre C++ fue propuesto por Rick Masciatti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre “C con clases”. En C++, “C++” significa “uno más de C” y se refiere a que C++ es una extensión de C.
C es un lenguaje de programación creado en 1969 por Ken Thompson y Dennis M. Ritchie en los Laboratorios Bell basándose en los lenguajes BCPL y B. Al igual que sus dos predecesores, es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.
Se trata de un lenguaje fuertemente tipado de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.
La primera estandarización del lenguaje C fue en ANSI, con el estándar X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo que, si los programas creados lo siguen, el código es portable entre plataformas y/o arquitecturas. En la práctica, los programadores suelen usar elementos no-portables dependientes del compilador o del sistema operativo.
Esta tarde me encontraba navegando , cuando de pronto me encontre con una noticia de un distro realmente elegante , vistozo y bueno. El nombre del distro es Elive, para obtenerlo se tienen que hacer diferentes cosas en dado caso de que no se pueda donar cierta cantidad esa es la unica desventaja.
Como pueden notar en el video tiene una vista muy elegante, aparte de un toque de modernismo , el desarollador tiene buenas ideas asi que he decidido ayudarlo un poco distribuyendo esta informacion en la red tal y como el lo pide a cambio de una descarga del distro linux.
Informacion :
General Features
Windows: Your Windows partitions are now recognized on /mnt like windows_c, windows_d, etc… instead of hda, hdb, etc…
Graphical Grub: A very nice graphical Grub boot menu selector
Webcams: When you plug in a webcam, a webcam viewer is launched if it’s supported, you can play with special effects and you can scare your friends in aMSN
The Elive User Guide added to your Documents directory, (not finished but useful)
aMSN: in the last version, more webcams supported, looks a lot better, aliased fonts, better skin, etc…
Applications: All applications renamed and re-ordered to be more intuitive for the end-user
7z: Elive now supports .7z (7zip) compressed files, in other words… open it directly :).
Fonts! a set of 20 misc TTF fonts has been added to Elive by default for the user to play with and use on the themes and look’n'feel.
GTK Icons Theme selector In the GTK configurator of Elpanel, you now have an icons theme selector, Thanks LinuxNIT for coding this nice application.
Firefox 2: Now called iceweasel is fully implemented, remember that thunderbird is now called icedove too
Flash 9: Supported
Enlightenment Related Features
Entrance Themes: Both themes (Elive and Night look’s), were revamped and enhanced for a better look
Enlightenment: Disabled the flip desktops when mouse is at screen edge feature by default because it confuses the less-experienced users, you can enable it from the enlightenment configuration menu (e16 and e17).
Hotkeys: A lot of hotkeys were added and also for some multimedia keyboards. You can find a good list of HotKeys that will enhance your Elive experience in your Documents directory
Night look: New background like this video, very nice for use on dual or more monitors.
Installer Features
Swap File: Added a system to make Swap files if the memory is less than 128 Mb, only for FAT filesystems (Patches for ntfs-3g welcome)
Installer: Better and more correct fine-tuned system (post-install), launched from the graphical system when user logs in
Languages in the installer: Added thanks to the translator collaborations (soon more things available to translate)
Boot menu: ‘Vista’ detected and added in the boot menu after the installation
Boot menu: A much better list of other OS’s
Select manual partitions when the installer asks you for your desired partitions, you can enter it manually now, even ones not included on the list
JFS support: You have a new FileSystem of choice, JFS, a great filesystem that many users love.
Extra Help: Now you have a extra help in the installer, which is perfect for the non-experienced users…explaining how to partition the hard disk better etc… Translators needed here
Installer Features: If you have broken the grub on your MBR thanks to windows, the installer autodetects it and ask you to recover the one from your Elive system instead of installing again. So, if you want to recover the grub for any reason, just launch the installer from root like: eliveinstaller recover my grub please
Hardware support
Kernel 2.6.18:
CK patches: Those patches make the priority of and the memory between process work much better.
1000 Hz: Better for desktop usage, better reply of the applications
Realtime usage: This is especially good for musical compositors
Low Latency mode: Applications don’t have lag if you load your system with many processes.
Kqemu added: The kernel accelerator module for qemu is added in Elive by default thanks to the permission of the author
Epson Scanner: A new Scanner application for some Epson scanners
iPod: Supported in the better way
Swiss keyboards: Supported in the configurator of Elpanel, for french and german variants
Resolution 1440×900 Added
DV Video Camera: Permission enabled to use kino with your cam-recorder for a normal user.
Bugs fixed
NTFS and FAT32: Everybody can write, read, and modify, you can do anything
Entrance: The no-login problem that some users have experienced when they try to login on entrance and don’t enter a wrong password. Fixed
DVD autolaunchement: Oxine didn’t play DVD’s. Fixed
Autolaunchers: not all the USB cards, SMC or SD cards are autolaunched. Fixed
Gimp can’t print. Fixed
Burners: not possible to make an image of a DVD. Fixed
Gparted: hang due to the module floppy. Fixed
Gimp: not launching and freezing on the step xsane. Fixed
Usb sticks: problem of the very slow speed in transfer of archives. Fixed
Audio CDs: just some Audio CD’s work. Fixed
Mplayer: Zoom, Fullscreen, and Play, doesn’t work Fixed
More: Many more bugs were fixed and things made better…not listed here, but you can explore all the bugs in the BTS of Elive
More things
CDROM ejects when closing the liveCD system
Anti War: Section ‘Anti War’ of the bookmarks of Elive removed due to misc reasons, if you want it, see it in the Revolution version of Elive
Cinelerra updated: With some fixes and new hotkeys added (up/down - left/right in compositor/viewer), list of hotkeys
More: A lot more of features and minor things, not listed here
Aqui les dejo este codigo que lo que hace es mover algunos valores del registro para intentar darle un empujon a Windows XP y acelerar algunos de sus procesos, les dejare el codigo fuente que es de mi autoria. Si ustedes desean pueden modificarlo bajo la licencia en la que se encuentra este blog tambien.
Aviso: No puse b-quote , ni code porque se perdia parte del codigo haciendo el formato que deberia tener, por lo cual para obtener el codigo fuente normal copien y peguenlo en el bloc de notas y despues pasenlo a su compilador para que funcione bien.
#include “iostream”
#include “windows.h”
int main()
{
using namespace std;
int opc;
cout << “====================================” << endl;
cout << “# FXP by JR #” << endl;
cout << “====================================” << endl;
HKEY hkey1;
int value = 4;
RegOpenKey(HKEY_CURRENT_USER,”Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings”,&hkey1);
RegSetValueEx(hkey1,”MaxConnectionPerServer”,0,REG_DWORD,(BYTE *)&value,sizeof(DWORD));
RegCloseKey(hkey1);
La filosofía del Open Source centra su atención en la premisa de que al compartir el código, el programa resultante tiende a ser de calidad superior al software propietario, es una visión meramente técnica. Por otro lado, el Software Libre funciona bajo un ideal: el software propietario, al no poder compartirse, es antiético dado que prohibir compartir entre seres humanos va en contra de las leyes naturales.
El movimiento Open Source tiene un decálogo que debe cumplir un código para poder llamarse “Open Source” (es de hacer notar que estas 10 premisas son completamente equivalentes con las 4 libertades o principios del Software Libre), éstas son :
1. Libre redistribución: el software debe poder ser regalado o vendido libremente. 2. Código fuente: el código fuente debe estar incluido u obtenerse libremente. 3. Trabajos derivados: la redistribución de modificaciones debe estar permitida. 4. Integridad del código fuente del autor: las licencias pueden requerir que las modificaciones sean redistribuidas sólo como parches. 5. Sin discriminación de personas o grupos: nadie puede dejarse fuera. 6. Sin discriminación de áreas de iniciativa: los usuarios comerciales no pueden ser excluidos. 7. Distribución de la licencia: deben aplicarse los mismos derechos a todo el que reciba el programa 8. La licencia no debe ser específica de un producto: el programa no puede licenciarse solo como parte de una distribución mayor. 9. La licencia no debe restringir otro software: la licencia no puede obligar a que algún otro software que sea distribuido con el software abierto deba también ser de código abierto. 10. La licencia debe ser tecnológicamente neutral: no debe requerirse la aceptación de la licencia por medio de un acceso por clic de ratón o de otra forma específica del medio de soporte del software.
Este es uno de los pioneros de la informatica , aparte de eso tambien sabe hablar español el señor por lo cual pudo conceder una entrevista en españa, aqui dejo ambos videos.
Hasta donde yo tengo entendido no existe una funcion que venga dentro del estandar del lenguaje C++ utilizando por ejemplo la WInApi para verificar la existencia de un archivo, asi que voy a presentar 2 funciones que pueden servirles en dado caso de que necesiten un tipo de funcion como esta :
int FileExists(const TCHAR *fileName)
{
DWORD fileAttr;
Linus Torvalds nació un 28 de Diciembre de 1969 en Finlandia sin saber que iba a plantar la semilla de una revolución informática.
Se puede decir que nació hacker; ya en su primera adolescencia se entretenía programando en ensamblador un Commodore. Era cosa de pocos años que acabara estudiando en la Universidad de Tecnología de Helsinki.
En la primavera del 91, mientras estaba en la Universidad, este finlandés de 21 años empezó a trabajar en el desarrollo de un kernel basado en el sistema operativo propietario UNIX para computadoras con microprocesadores de Intel. Una vez creado, lo puso a disposición del público a través de un servidor FTP de la Universidad finlandesa.
Linux era el nick de Linus en la Universidad. Para evitar que le acusaran de egocéntrico, quiso llamar a su creación Freax (Free + Freak + X), pero el gestor del servidor decidió que le gustaba más el nombre de trabajo de su amigo y decidió usar Linux. El resto ya es historia.
Linus pronto se sumó a la filosofía del proyecto GNU de la Free Software Foundation, convirtiendo Linux en un producto de licencia GPL, y consiguiendo que numerosos desarrollos ya existentes le arroparan y que muchos programadores generaran otros nuevos; es decir, lo que Linus desarrolló fue el corazón de los actuales sistemas operativos Open Source, que actualmente también se conocen por extensión con el nombre de Linux, pero que son obra del trabajo conjunto de miles de desarrolladores de todo el mundo.
Tu eres libre de:
# Copiar, distribuir, comunicar y ejecutar públicamente la obra.
# Hacer obras derivadas
Bajo las siguientes condiciones:
# Atribución. Debes reconocer y citar la obra de la forma especificada por el autor o el licenciante.
# No Comercial. No puedes utilizar esta obra para fines comerciales.
# Licenciar Igual. Si alteras o transformas esta obra, o generas una obra derivada, sólo puedes distribuir la obra generada bajo una licencia idéntica a ésta.