Creando Programas para Luxur 0.0.5 (sistema operativo)

Iniciado por taul, 2 Diciembre 2010, 09:04 AM

0 Miembros y 2 Visitantes están viendo este tema.

taul

Programar Software Para Luxur 0.0.5
Bueno en este paper les explicare como desarrollar aplicaciones para luxur...sus ventajas y desventajas.

Ventajas:

No hay restricción en cuanto a programación a diferencia de Windows o Linux...en Luxur podes acceder a la totalidad de la memoria de vídeo,interrupciones del teclado,etc...Todo lo que decidas hacer dependerá solamente de tu imaginación y conocimientos.

Todo el hardware y memoria se dedica a ejecutar tu programa lo que aumenta notablemente la velocidad de ejecución.

Dispones de las librerias de Luxur para utilizar en tu programa con total libertad, tales como printf,kprintf,scanf,strlen,etc,etc (explicacion mas adelante)

Desventajas:

Luxur no limita al programador en cuanto a memoria,accesos a ficheros,etc lo cual es un terrible problema de seguridad...si soy conciente de ello..pero luxur fue creado con el fin de brindar un sistema operativo libre y sin restricciones a la hora de crear software necesario...si bien un software mal programado podria hacer que luxur funcione mal,sea inestable,etc. Todo lo que programes sera responsabilidad tuya ok? si el sistema falla no le heches la culpa a Luxur..el manko eres tu jajaja.

los programas deberan ser escritos en C..El software que escribas debera ser en C ya que se compila junto con el kernel.


OK Comenzamos?

Descargamos el source de la version 0.0.5 desde http://luxur.comoj.com/sources/luxur.0.0.5

para crear un programa es muy facil...dare un ejemplo a continuacion de como crear un holamundo para luxur.

1)creamos el programa..

#include <prototipo.h> //prototipo contine las funciones de la libc..como printf,scanf

int holamundo(){
printf("Hola mundo en luxur\n");
return 0;
}


guardamos ese código en un archivo en la carpeta programas quedaria:

/home/usuario/Luxursource0.0.5/programas/holamundo.c

una vez guardado abrimos el archivo declaracion.h hubicado en la carpeta programas y le agregamos el nombre de nuestra funcion ejemplo:

int holamundo();

guardamos y cerramos.

luego abrimos handle.c y le agregamos un if como este:

if(strcmp(programa,"holamundo.exe")==0){
holamundo();
}


guardamos y cerramos y listo..abris una terminal en luxursource0.0.5 y ejecutas scons:

root@ubuntu:~/Descargas/luxursource0.0.5# scons

se compila y genera el archivo Luxur..luego descargamos la .iso de luxur...abrimos el .iso con un editor de .iso como por ejemplo Ultraiso...remplazamos el kernel y guardamos..y ya tenemos nuestro luxur con el programa o los programas.

si lo ejecutamos en una maquina virtual:

usuario@luxur:su
password:luxur
root@luxur:holamundo.exe
Hola mundo en luxur
root@luxur:


Librerias disponibles:

printf es igual que en linux,windows

kprintf...podes escribir un texto en cualquier parte de la pantalla..es recomendable borrar la pantalla antes de escribir...la borras con cls();
uso:
kprintf(linea,columna,texto,color);
ejemplo:
kprintf(2,30,"Luxur..sistema Operativo en C",0x07);

scanf(variable)...espera que se ingrese una cadena y se presione enter...en la variable se guarda la cadena...ejemplo
char variable[200];
scanf(variable);
variable ahora contiene la cadena que hallamos ingresado.

strlen igual que en linux

strcpy igual que en linux

strcmp igual que en linux

strcat igual que en linux

cls() borra la pantalla

sleep(milisegundos) detiene la ejecucion segun los milisegundos ingresados.
uso:
sleep(3000); //detiene la ejecucion por 3 segundos

arquitectura(); //retorna el valor de la arquitectura donde luxur se esta ejecutando
posible valores de retornos de tipo int:
si retorna 1 significa que es intel,2 es amd,3 error
uso:
int arquitect = arquitectura();

putchar() igual que en linux

memcpy igual que en linux

si vas a crear ficheros deberas incluir aparte de <prototipo.h>...el archivo <fs/file.h>

extern struct files file[200]; //extructura FILE para acceder a los ficheros de Luxur
extern int nf; //contiene la direccion del ultimo fichero creado

para no afectar a otros archivos aumentamos una vez nf++ para que cree un archivo

file[nf].name esta el nombre de ese archivo
file[nf].contenido esta el contenido del archivo

si queremos acceder al archivo numero 2 por ejemplo hacemos

printf("El archivo numero 2 se llama %s,"file[2].name);

Ante cualquier duda preguntar ;D

por si las dudas yo uso estos programas para programar luxur:
virtualbox,gcc,ld,scons,ultraiso(con wine),gedit


Saludos...Taul.

Debci

Me encanta!
Llevo tiempo siguiendo este proyecto y es muy, muy interesante!

Saludos

taul

varias personas de varios foros estan empesando a crear softwares para Luxur...me han enviado muchos mail a mi correo diciendome que les de tiempo para terminar bien sus programas...Luxur va creciendo de a Poco y como dije a diferencia de windows o linux no limita al programador en nada..todo depende de su imaginacion y conocimientos!!!

espero que varias personas de este foro creen software para Luxur!!!

Saludos.

Debci

Cita de: taul en  2 Diciembre 2010, 23:05 PM
varias personas de varios foros estan empesando a crear softwares para Luxur...me han enviado muchos mail a mi correo diciendome que les de tiempo para terminar bien sus programas...Luxur va creciendo de a Poco y como dije a diferencia de windows o linux no limita al programador en nada..todo depende de su imaginacion y conocimientos!!!

espero que varias personas de este foro creen software para Luxur!!!

Saludos.
Cuenta conmigo, para mi será una perfecta forma de investigar mas los sistemas operativos.

Saludos

taul

Cita de: Debci en  2 Diciembre 2010, 23:25 PM
para mi será una perfecta forma de investigar mas los sistemas operativos.
Esa es la idea !!!  :D


por mi parte me dedico a programar el kernel...muchos usuarios estan creando los programas para luxur entre todos el sistema avanza!!

Saludos...espero que se unan mas gente!!

Afsoon

Ojala supiera de C pero ahora estoy con el funcionamiento de SO empotrados y de escritorio y taul ¿esta sería una forma para saber el funcionamiento de SO? porque la parte teoríca de SO ya lo tengo leída y con ver un ejemplo estaría bien no?

gryphes

Cita de: Afsoon en  3 Diciembre 2010, 07:08 AM
¿esta sería una forma para saber el funcionamiento de SO? porque la parte teoríca de SO ya lo tengo leída y con ver un ejemplo estaría bien no?

Exactamente, es mas creo que la gran mayoria de la personas que en mayor o en menor medida nos anotamos al proyecto lo hicimos para eso, para aprender...

Saludos!


taul

claro es la base de Luxur...no competir contra otros kernel porque seria inutil decir que superara a linux o windows que son sistemas que avanzan rapidisimo...si bien linux es de codigo abierto....tiene millones de lineas de codigo...tienen idea lo que les costara leer el codigo de linux para aprender como funciona un SO?

Luxur tiene poca lineas de codigo...debe tener unas 2000 o 3000 lineas mas o menos...pero tiene una shell,detecta la ram,maneja las interrupciones del teclado, crea ficheros de texto,podes editarlos,Podes crear software para luxur e implementarlo en dos patadas...todo eso con muy pocas lineas de codigo...lo que facilita rapidamente su aprendizaje...yo creo que si se sientan un par de horas en 1 semana comprenderan completamente el codigo de luxur y podran hacer con el lo que quieran..o ajustarlo a sus necesidades.

Es lindo poder hacer con nuestro hardware lo que se nos de la Gana.!!!


Saludos.

Debci

Sin duda el siguiente paso es control del hardware de red.

Saludos

Khronos14

#9
Estoy siguiendo el proyecto, y la verdad, la versión 0.0.5 debería incorporar un administrador de memoria.

http://wiki.osdev.org/Projects

En esa página puedes encontrar muchísimos "prototipos" de Kernel y podrías emplear algún módulo para administrar la memoria para poder usar funciones como malloc() y free().

Este Kernel me gustó mucho http://www.dynacube.net/

Cuenta con Administrador de Memoria, Administrador de Procesos, Sistema de Archivos FAT12 y una pequeña GUI.

Me parece una tontería lo que estas haciendo. Son "programas" en modo kernel, que con posteriores versiones seguramente tengan que ser modificados para funcionar.
Yo que tu trabajaría primero con la memoria e intentaría hacer un administrador de procesos básico.

Saludos.