|
Mostrar Temas
|
Páginas: [1]
|
1
|
Sistemas Operativos / GNU/Linux / Proyecto: Nuevo sistema operativo basado en el núcleo Linux
|
en: 20 Agosto 2013, 03:33 am
|
Bueno, estoy desarrollando un proyecto bastante innovador en torno al nucleo Linux. El tema es que, me gusta linux, me gustan muchas de sus distros, especialmente Fedora, pero encuentro que para el usuario promedio se vuelve un tanto engorroso su uso, ademas de que sistemas operativos "de juguete" (como yo los llamo c:) como iOS y Android son muy básicos para un usuario acostumbrado a linux. Es por todo esto que estoy desarrollando un SO basado en Linux, pero que tenga un diseño interno bastante particular y fácil de usar. ¿La idea? Separar las aplicaciones de escritorio con las aplicaciones de base. Así, un simple usuario va a manejar y trabajar con las aplicaciones de escritorio. La gracia es que instalar una aplicación de escritorio será tan fácil como poner un archivo *.app en la carpeta /app y poner una carpeta con todos los archivos que necesite la aplicación, inclusive el ejecutable. Como se habrán dado cuenta, esto es similar a lo que ocurre en Android. Lo importante es no depender de la máquina Java que relentiza el sistema como vil demonio, y aprovechar el potencial de la arquitectura Linux. Un detalle importante sería la capacidad de poseer tanto apps nativas como de webapps. De esta forma, el directorio raíz del sistema seguirá siendo el tipico, pero habrá un sistema de archivos (por asi decirlo) virtual, que se compondrá de los siguientes directorios: /apps -> aquí van las aplicaciones de escritorio /documents /music /pictures /system -> aquí iran las aplicaciones del sistema, como los paneles del escritorio, las utilidades como la consola, etc /videos Bueno, fuera de todo esto mas teórico, tengo ya un panel hecho, con el cual se pueden lanzar aplicaciones previamente instaladas en las carpetas /apps y /system, y además se pueden mantener tray icons. Una captura de la barra:3 Para tamaño completo: https://lh6.googleusercontent.com/-PaI6knzFk88/UhLFn-MJ4KI/AAAAAAAAAIg/aVRAM0kOL6I/w1275-h797-no/s.pngBueno, eso era todo, ya les presenté mi trabajo. La verdad es que no necesito colaboradores para el sistema en si, sino que me gustaria que la gente en el foro propusiera sus aplicaciones para usarlas en este sistema. Además, me gustaria que dieran sugerencias. Por cierto, hasta ahora, la unica aplicación que está por defecto es lxappearance para gestionar la apariencia de las aplicaciones Gtk2 y Gtk3. Eso, adios! PD: El panel funciona como un standalone, es decir, puedo iniciar una sesión del desktop manager con el panel solamente.
|
|
|
2
|
Programación / Programación General / Sistema Operativo Fnx
|
en: 21 Abril 2012, 19:58 pm
|
Hola a todos! Queria presentarles a todos los avances en el sistema operativo Fnx, que vengo desarrollando desde hace algun tiempo. También queria invitar a todos lo que deseen ayudar a completar este sistema operativo. pues la historia no es muy larga, hace un tiempo, buscando sistemas operativos "de juguete" me encontre con FreeNOS, un sistema operativo simple y a la vez completo. Sin embargo, el creador original ya no seguia programando en el. Decidi hacer un fork. De a poco, cada vez que puedo, reviso el codigo, traduzco comentarios, añado algunas cosas... pero por sobre todo he entendi como funciona un verdadero sistema operativo. Ahora... Fnx puede ejecutar binarios, posee multitarea, gestion de memoria, gestion de dispositivos (llamados servidores). Les mostrare algunas capturas. Tambien se puede redirigir la salida hacia la biblioteca curses, como se puede ver en las siguientes capturas: En estos momentos deseo que la gente se anime a crear aplicaciones para Fnx y colaboren. La página oficial es http://armizh.10h.us/ y los repos se encuentran en https://github.com/armizh/FnxEspero se interesen y cualquier cosa solo pregunten o diganme. Saludos
|
|
|
3
|
Programación / Programación C/C++ / Problema GRUB2 cargando kernel
|
en: 25 Febrero 2012, 22:56 pm
|
Bueno, la verdad es que no sabia si postear en esta sección o en GNU/linux ya que no estoy seguro si el problema es de programacion o dle proceso de compilacion, pero buee... me decidi por este y ya esta. Les cuento, estoy reescribiendo el kernel que programe hace un tiempo para hacerlo mas legible, pero me encontre con un gran problema recien empezando. Bueno, las funciones mas basicas como el printk y el scanf (que en realidad se parece mas a un getchar) las tome tal cual del codigo que ya tenia y ahora me dan problemas... pero no en compilacion ni en tiempo de ejecucion, sino que simplemente no se ejecuta. El trabajo anterior lo cargaba con GRUB Legacy, pero ahora lo hago con GRUB2, y pues he aislado el problema. Lo mas extraño es que al parecer, el problema esta en la longitud del switch que hago para traducir scancodes en chars. Esto lo digo porque no importa el orden que tome, ni los cases que comente, el resultado siempre es el mismo. La funcion funciona (valga la redundancia) hasta que supera los 7 u 8 cases (sin importar cual sea) y probe hacerlo con un if...else y pues lo mismo, supera los 7 u 8 y no lo carga. El error que me da Grub2 es: error: no multiboot header found error: no loaded kernel Y mas extraño aun es que apenas compilo sin esa parte del codigo no me da ningun error. He buscado muchisima informacion, he revisado mas de 10 paginas en google y muchas mas en Bing y he probado miles de cosas y nada Espero alguien sepa algo o tenga alguna idea de que puede estar sucediendo. El codigo de la funcion lo dejo en pastebin porque es muy largo. http://pastebin.com/7aB0NjcdGracias por adelantado y saludos a todos.
|
|
|
4
|
Programación / Programación C/C++ / Duda en conversion de 24 bits a 32 bits
|
en: 22 Enero 2012, 23:53 pm
|
Hola pues tengo aqui una pequeña duda, que a pesar de buscar en internet en miles de paginas (cortesia de google) no he podido solucionar. Es un pequeño dilema que me he ganado por el tema del endianness. Pues quiero convertir un entero de 24 bits a uno de 32 ya que estoy trabajando con el LBA para el acceso a las unidades de discos soportadas por ATA/ATAPI e IDE. Partimos de la base de que ya tengo separados en bytes el entero. Bueno, dentro de la etiqueta 'code' esta lo que he entendido buscando informacion. De antemano, gracias. // Inicialmente tengo el numero 0xA0B0C0 el cual es de 24 bits. // Las i386 y superiores son little endian por lo que un esquema de bytes queda asi // Byte 3 | Byte 2 | Byte 1 // C0 | B0 | A0 // Y debo convertirlo a su equivalente de 32 bits el cual debiese ser asi // Byte 4 | Byte 3 | Byte 2 | Byte 1 // C0 | B0 | A0 | 00 // ¿Es correcto el esquema? // En tal caso, esta correcto el código? word lba_conv(byte b1, byte b2, byte b3) { word val = 0; val = val | b1; val = val << 8; val = val | b2; val = val << 8; val = val | b3; } Gracias a todos. Saludos
|
|
|
5
|
Programación / Programación General / Avances de mi proyecto en C
|
en: 19 Enero 2012, 03:16 am
|
Hola a todos, como ta vez algunos sepan, estoy creando un sistema operativo desde cero en C, y quiero compartir con ustedes mis avances. Ahora estoy tratando de comentar mas el codigo fuente, porque hay gente que se ha empezado a interesar en mi so Bueno, a continuacion las caracteristicas del so: - Funciona bajo arquitecturas basadas en x86
- Liviano y sencillo, pudiendo ser comprendido en un par de horas
- Soporta resoluciones de 1024x768, 1280x768 y 1280x800
- Funciona en modo de texto
- Detecta el microprocesador del PC (En AMD detecta solo el hecho de ser AMD)
- Basico sistema de archivos virtual
- Detecta la cantidad de memoria con un limite de 63MiB
- Implementada parte de la libc
Bien, el bicho este tiene problemas con GRUB, ya que aveces este ultimo no logra cargar al kernel en la memoria ya que supuestamente no hay suficiente espacio en la memoria, incluso con 128 MB de RAM pero estoy trabajando en arreglar ese tema. Por cierto, alguien sabe como utilizar GRUB2? Gracias por adelantado Si alguien esta dispuesto a colaborar, bienvenido sea, sera de gran ayuda. Ahora vamos a los links de descargas, pueden descargarlo como gzip o como bzip: Acá dejo un enlace a una screenshot del so: http://nuos-project.10h.us/screenshot0.03dev4.png(El tamaño de la imagen es superior al permitido por el foro) Tengan en cuenta que por tema de compatibilidad, la resolucion con la que esta compilado es de 1024x768 (la de la imagen es 1280x768). Aviso que esta version es la 0.03 dev1, que no es la final ya que aun faltan muchas cosas que añadir e implementar. Cualquier idea, pregunta, duda, consulta haganla, respondere cualquier cosa que tenga que ver con el so Saludos a todos.
|
|
|
6
|
Programación / Programación General / [Aporte] Controlador para el modo de texto de VGA/SVGA
|
en: 17 Enero 2012, 16:12 pm
|
Bueno, hola a todos, hoy quiero mostrarles la primera versión del controlador VGA para el modo de texto que estoy desarrollando. Está basado en el tutorial de que se encuentra en la página http://geezer.osdevbrasil.net/osd/graphics/modes.c, pero adaptado solo al modo de texto, además de añadir soporte para altas resoluciones y no depender ni de DOS ni de Turbo C. Las características que posee son: - Es posible utilizarlo incluso sin sistema operativo
- Suministra una función printk que soporta parcialmente el formato
- Soporta dos resoluciones: 160x46 (1280x768) y 160x50 (1280x800), las cuales son realmente monstruosas. Estoy trabajando para añadir mas resoluciones
Bueno este es mi aporte para los nostálgicos que deseen programar una consola de comandos (o sistema operativo de consola de comandos, como yo) o para los que, como yo, no tienen recuerdos de los tiempos en que MS-DOS y UNIX estaban en la cúspide de la fama. Dejo una screenshot del sistema operativo en el que estoy trabajando y desarrollando llamado NuOS, utilizando este driver. http://nuos-project.10h.us/screenshot0.03dev3.pngAhora para descargarlo lo pueden hacer de la siguiente página: http://nuos-project.10h.us/descargas/vgatxtdrvr/driver.tar.bz2Si hay gente interesada en el proyecto del controlador o del sistema operativo, me puede avisar por aquí o por mp. Llevo 3 semanas en este proyecto y voy avanzando, pero aveces siento que se necesita un equipo, varias veces me he quedado hasta tarde programando, este proyecto es muy importante para mi. Aviso: el controlador esta totalmente creado en C, excepto por pequeñas partes de ASM inline (para las funciones inb y outb). Por favor no se ofrezcan diseñadores gráficos porque el fin de estos proyecto no es promover el modo gráfico, de hecho ni siquiera planeo utilizarlo. Revivamos los sistemas de consolas de comandos! PD: Me falto decir que funciona bajo la arquitectura x86 y es soportado por x86-64, además de funcionar sin la BIOS por lo que se puede utilizar en el modo protegido
|
|
|
7
|
Programación / ASM / Problema al cargar segundo sector del floppy
|
en: 18 Diciembre 2011, 00:14 am
|
Hola a todos, estoy programando un bootloader y un programa, ambos en ASM, el boot inicia la computadora, muestra uno mensaje y luego deberia cargar el programa, y este ultimo muestra un mensaje, llama al modo protegido y estoy trabajando en un arcaico sistema de E/S. Cabe destacar que inicialmente era un solo programa, que funcionaba perfectamente, pero separe lo que era el sector de booteo y el programa en si, ya que el programa iba creciendo en tamaño. El problema es que no carga el programa que se encuentra en el segundo sector, ¿que es lo que esta sucediendo? ¿que error estoy cometiendo? ¿que se puede hacer para que funcione correctamente? Ademas tengo una duda, ¿es necesario iniciar el modo protegido para llamar al programa que se encuentra en el segundo sector del floppy? Porque solo he encontrado informacion para modo real, y he usado la Int 13h ya que no encuentro informacion sobre cargar sectores de discos en modo protegido, porque no se pueden usar las interrupciones en el modo protegido. He buscado informacion en muchisimas paginas, en google, en osdev.org y nada. De antemano, gracias. ;boot.asm [BITS 16] [ORG 7C00h]
jmp main
mesg db 'Cargando el programa... espere... ',0Ah,0Dh,0
init: cli sti ret
clrscr : mov ax,0600h mov cx,0000h mov dx,174Fh mov bh,0 int 10h ret
print_hello: mov ah,13h mov al,01h mov bx,0007h mov cx,21h mov dx,0000h mov bl,07h mov bp,mesg int 10h ret
reset_floppy: mov ah,00h mov dl,00h int 13h ret
load_app: mov ah,02h mov al,13 mov ch,02 mov cl,02 mov dh,01 mov dl,00h int 13h jmp 0800h:0000h
main: call init call clrscr call print_hello call reset_floppy call load_app
times 510-($-$$) db 0 db 0x55 db 0xAA
|
|
|
8
|
Programación / ASM / Duda sobre bootloader en paso a modo protegido
|
en: 11 Diciembre 2011, 16:08 pm
|
Bueno la verdad, la duda no es sobre el paso a modo protegido, sino que no estoy seguro si esta funcionando como deberia. He buscado muchisima información pero nada ayuda a salir de mi duda. Ahora explicando, pues el bootloader es bastante simple, arranca el sistema, muestra un mensaje, luego pasa a modo protegido y muestra otro mensaje, el problema es que el segundo mensaje no se imprime en la pantalla al 100 %. Cree un blog en el que voy publicando cualquier avance, y ahi esta mi duda. Por cierto, el código está publicado y recién estoy empezando, la publicación del blog es INNECESARIA. Esto lo estoy haciendo para aprender y para que otras personas se animen a aprender. ;----------------boot.asm------------------; [BITS 16] [ORG 0x7c00] jmp main bootmesg db "Loading... please wait... " pm_mesg db "Switching to protected mode. " init: mov ax, cs mov ds, ax mov es, ax ret print_mesg : mov ah,0x13 mov al,0x00 mov bx,0x0007 mov cx,0x20 mov dx,0x0000 int 0x10 ret clrscr : mov ax,0x0600 mov cx,0x0000 mov dx,0x174f mov bh,0 int 0x10 ret switch_protected: cli mov eax, cr0 or eax, 1 mov cr0, eax jmp 0x08:protected_main main: call init call clrscr mov bp,bootmesg call print_mesg call switch_protected jmp main [BITS 32] protected_main: mov bp,pm_mesg call print_mesg jmp protected_main times 510-($-$$) db 0 db 0x55 db 0xAA
|
|
|
|
|
|
|