elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  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.png

Bueno, 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/Fnx
Espero 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:
Código:
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/7aB0Njcd

Gracias 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.
Código:
// 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 ;D
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 ;D
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.png

Ahora para descargarlo lo pueden hacer de la siguiente página:

http://nuos-project.10h.us/descargas/vgatxtdrvr/driver.tar.bz2

Si 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! :rolleyes:

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.
Código:
;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.

Código
  1.    ;----------------boot.asm------------------;
  2.    [BITS 16]
  3.    [ORG 0x7c00]
  4.  
  5.    jmp main
  6.  
  7.    bootmesg db "Loading... please wait... "
  8.    pm_mesg  db "Switching to protected mode. "
  9.  
  10.    init:
  11.       mov ax, cs
  12.       mov ds, ax
  13.       mov es, ax
  14.       ret
  15.  
  16.    print_mesg :
  17.       mov ah,0x13
  18.       mov al,0x00
  19.       mov bx,0x0007
  20.       mov cx,0x20
  21.       mov dx,0x0000
  22.       int 0x10
  23.       ret
  24.  
  25.    clrscr :
  26.       mov ax,0x0600
  27.       mov cx,0x0000
  28.       mov dx,0x174f
  29.       mov bh,0
  30.       int 0x10
  31.       ret
  32.  
  33.    switch_protected:
  34.       cli
  35.       mov eax, cr0
  36.       or eax, 1
  37.       mov cr0, eax
  38.       jmp 0x08:protected_main
  39.  
  40.    main:
  41.       call init
  42.       call clrscr
  43.       mov bp,bootmesg
  44.       call print_mesg
  45.       call switch_protected
  46.       jmp main
  47.  
  48.    [BITS 32]
  49.    protected_main:
  50.       mov bp,pm_mesg
  51.       call print_mesg
  52.       jmp protected_main
  53.  
  54.    times 510-($-$$) db 0
  55.    db 0x55
  56.    db 0xAA
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines