Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión

 
Búsqueda Avanzada

15.707 Mensajes en 3.130 Temas- por 371 Usuarios - Último usuario: lasfirrot
Mayo 18, 2012, 05:45:41
Foro de Hispabyte.netSistemas operativos y SoftwareSistemas OperativosCreación de un Sistema Operativo (Moderador: JMA_SP)Tema: Indice recursos Crear OS
Páginas: [1]   Ir Abajo
Imprimir
Autor Tema: Indice recursos Crear OS  (Leído 2074 veces)
0 Usuarios y 2 Visitantes están viendo este tema.
JMA_SP
Moderator
Miembro Imprescindible
*****
Mensajes: 739



Ver Perfil
« : Diciembre 07, 2006, 11:59:01 »


INDICE DE RECURSOS PARA CREAR OS:


BIOS (Basic Input Output System):

Se debe destacar que si bien cada equipo tiene una BIOS, cada vez que le acoplamos por ejemplo una tarjeta de video, una controladora SCSI, un chip adiciona eprom.... estos son tambi?n parte del BIOS y cada uno tiene un ?rea en la memoria (estas ?reas de memoria en EPROM o ROM se pueden mover a RAM en lo que se conoce como SHADOW RAM  que es m?s r?pida y realojable).

El proceso de arranque de un ordenador lo describen en:

http://www.comptechdoc.org/hardware/pc/pcboot.html

- AREA DE DATOS BIOS (BDA: Bios Data Area):

Es un ?rea de la BIOS donde podemos encontrar una gran cantidad de informaci?n sobre el equipo, basta con que observeis las descripciones para darse cuenta de la utilidad que tiene.
Se debe tener en cuenta que muchas interrupciones INTXX leen y escriben datos en ella :

http://heim.ifi.uio.no/~stanisls/helppc/bi..._data_area.html

- AREA DE DATOS BIOS EXTENDIDA (EDBA):

http://www.kryslix.com/nsfaq/Q.6.html

A las ?reas de memoria BIOS podemos acceder con instrucciones de lectura-escritura desde un ensamblador, o instrucciones de un compilador como en TurboPascal  puertocom1 := mem [$40:0]
ya que 40:00   word que es la direcci?n de memoria que alberga el valor del puerto COM1.
Podemos acceder al equipo mediante interrupciones que son m?s sencillas o mediante el uso de puertos directamente (instrucciones de ensamblador in / out ) o de TurboPascal dato:=port[numero de puerto]
Ejmplos:
http://www.geocities.com/SiliconValley/Par...s/pasl2011.html
http://www.doc.ic.ac.uk/~ih/doc/par/doc/data/tp.html

Muchos compiladores os permiten llamar a interrupciones (bios interrupt call) dentro de su c?digo estandar o bien mediante c?digo ensamblador embebido (por ejemplo en TurboPascal, C, C++........).
De modo m?s directo se emplea en los ensambladores en los cuales su uso es habitual (NASM, FASM...)
Este tipo de interrupciones es de tipo software y suelen ser estandares en ordenadores compatibles, y por citar algunas la int 33h que gestiona el mouse o la int 16h del teclado, 13h de disco, 10h de video, 1Ah reloj, 14 comunicaciones,  otras como la int 15h suelen depender del fabricante del equipo.

Cabe decir que en torno a las BIOS han surgido una serie de estandares que han ido evolucionando a trav?s de versiones llegando a fundirse en nuevas especificaciones, algunas de ellas son:

BIOS BOOT SPECIFICATION:

http://www.phoenix.com/NR/rdonlyres/56E38D...specsbbs101.pdf

Ver tambi?n http://members.tripod.com/~Vitaly_Filatov/...asm_001.12.html relativa a la int 19h bootstrap loader service.

STANDARD BIOS 32:

http://www.phoenix.com/NR/rdonlyres/ECF22C...ecsbios32sd.pdf

SYSTEM MANAGEMENT BIOS:

http://www.phoenix.com/NR/rdonlyres/51EEA1...specssmbios.pdf

http://www.dmtf.org/standards/smbios/

ENHANCED DISK DRIVE SPECIFICATION:

http://www.phoenix.com/NR/rdonlyres/19FEBD.../specsedd30.pdf

Plug and Play BIOS Specification:

http://www.osdever.net/documents/PNPBIOSSp...0apdf?the_id=51

DMI:

http://www-pc.uni-regensburg.de/ hardware/TECHDOK/BIOS_DMI_20.PDF

EMBEDDED BIOS USER MANUAL:

http://www.embeddedarm.com/Manuals/EBIOS-UM.PDF


Muy relacionada con la BIOS tenemos la CMOS que es un chip o circuito integrado de muy bajo consumo que nos permite mantener entre un arranque y otro valores como la hora, la fecha, tipo de disco duro instaldo......Para ello se env?a al puerto 70h el registro indice que nos interesa y a continuaci?n leemos o escribimos en el puerto 71h. Ante la duda cuidado si no se sabe lo que se est? haciendo y en cualquier caso es mejor practicar en un principio solamente con la lectura, para ver que uso tiene cada registro vienen bien los siguientes enlaces.
Si buscais un poco mejor en internet probablemente encontrareis algo m?s de informaci?n sobre todo en el aspecto de que cada fabricante le puede haber a?adido alguna funcionalidad.

http://www.gilanet.com/ohlandl/config/cmos..._registers.html

http://www.plasma-online.de/textual/downlo..._registers.html

http://bochs.sourceforge.net/doc/docbook/d...t/cmos-map.html

http://www.codepedia.com/1/CMOS_C

http://www.bioscentral.com/misc/cmosmap.htm

LISTADO DE PUERTOS DE UN EQUIPO (no confundir con puertos de red)

http://heim.ifi.uio.no/~stanisls/helppc/ports.html

BUSES:

ISA:


PCI (Peripheral Component Interconnect)
PCI Configuration Address Register: 0CF8h puerto entrada/salida de 32 bits.
PCI Configuration Data Register: 0CFCh  puerto de entrada salida de 8 16 y 32 bits

- salvo error u omisi?n.........claro.

De todos modos aqu? teneis un interesante documento donde explica bastante bien todo esto:

http://www2.dis.ulpgc.es/~itis-byp/NotasDe...nfiguracion.doc

Una forma mas c?moda de acceder es mediante el estandar BIOS 32 citado anteriormente:

http://www.phoenix.com/NR/rdonlyres/ECF22C...ecsbios32sd.pdf

?Accediendo a PCI desde modo protegido?

http://www.osdev.org/osfaq2/index.php/I heard you can do PCI calls with the BIOS in Protected Mode%3F

C?digo relacionado con PCI del sistema operativo RDOS:

http://www.koders.com/assembler/fidE1B4D38...CCD2BD9E14.aspx

Tambi?n podeis acceder a la web de Craig Hart que es uno de los pocos sitios aceptables que se han mantenido con informaci?n de este tipo a lo largo de bastante tiempo, ofrece programas y lo que es m?s importante podeis estudiar su c?digo fuente:

http://members.datafast.net.au/dft0802/

Mediante interrupciones:

http://www.ctyme.com/intr/int-1a.htm

- PCI Express:
  Historia: http://zone.ni.com/devzone/cda/tut/p/id/3767

CONTROLADOR DE INTERRUPCIONES:

http://atc.ugr.es/docencia/udigital/1204.html

MEMORIA:

SPD (Serial Presence Detect) de la memoria:

http://www.simmtester.com/page/news/showpu...ews.asp?num=101

http://www.jedec.org/download/search/4_01_02_00R9.PDF

http://www.intel.com/design/chipsets/memor...ry/spdsd12a.pdf

http://www.st.com/stonline/products/ promlit/pdf/brserind0406.pdf

Relacionado hasta cierto punto con memoria podriamos considerar EDID:

http://en.wikipedia.org/wiki/EDID

Por si se les ha olvidado poner una forma de leer esta informaci?n de EDID:

http://www.ctyme.com/intr/rb-0307.htm

http://www.ctyme.com/intr/rb-0308.htm

Y de paso VDIF:

http://www.ctyme.com/intr/rb-0309.htm

(Gracias Ralf por la dedicaci?n en reunir tanta documentaci?n sobre interrupciones).

Del m?todo para leer dicha informaci?n SPD pues NPI solo decir que puede ser a trav?s del bus I2C / SMBUS sobre los cuales no tengo esperiencia, y que al igual que los sensores de temperatura, de rpm de ventiladores y similares est?n muy determinados por cada tipo de placa base.
PUERTOS:

SERIE:

Pines:

http://www.connectworld.net/rs232.html

PARALELO :

Registros de estado,control, datos:

http://heim.ifi.uio.no/~stanisls/helppc/pa...allel_port.html

http://www.beyondlogic.org/spp/parallel.htm

http://www.epanorama.net/circuits/parallel_output.html

http://www.hackcanada.com/blackcrawl/elctr...rnic/tomlpt.txt

http://www.geocities.com/nozomsite/parallel.htm

http://www.ctv.es/pckits/tutorial.html

http://www.osdever.net/documents/ PNP-Parellel-v1.0b.pdf?the_id=55

 IEEE1284

- Pines:

http://www.connectworld.net/ieee1284.html

Centronics:

 http://www.connectworld.net/centronics.html

USB:

http://www.usb.org/developers/docs/

http://www.lvr.com/usbcenum.htm

http://www.delcom-eng.com/downloads/USBIODS.pdf

http://www.computer-engineering.org/index....title=USB_Notes

USB ID:

http://www.linux-usb.org/usb.ids

Pines:

http://www.connectworld.net/usb.html

PERIFERICOS:

TECLADO:

http://www.computer-engineering.org/ps2keyboard/

http://www.beyondlogic.org/keyboard/keybrd.htm

http://www.idlebox.net/2006/apidocs/HelpPC...ip/hw-8042.html

http://www.computer-engineering.org/index....yboard_Protocol

http://www.computer-engineering.org/index....board_Interface

(En HelpPC podeis encontrar informaci?n sobre como enviar y recibir informaci?n del teclado, adem?s tambi?n os recuerdo que en el ?rea de datos de la BIOS citada anteriormente m?s arriba tambi?n se puede interactuar con el mismo, podeis encontrar por ejemplo que visualizando la secci?n correspondiente "desde el DOS" se encuentra el buffer del teclado, ese que cuando se dejaba una tecla apretada mucho rato pitaba tanto......si se llenaba).
Un peque?o programilla t?pico es el que altera los leds del teclado

Una especificaci?n de teclado:

http://www.electronic-engineering.ch/micro...ts/kbd_spec.pdf
http://www.electronic-engineering.ch/micro...yboard_V3xx.pdf

RATON:

http://www.computer-engineering.org/ps2mouse/

CONTROLADOR DE DISQUETES NEC 765:

http://atc.ugr.es/docencia/udigital/1206.html

http://lamagra.digibel.be/projects/ftape/d...ocs/floppy.html

http://www.ousob.com/ng/hardware/ngd127.php

http://www.ukcpu.net/index.asp

IDE/ATAPI/ DISCOS

http://home.arcor.de/wzwz.de/wiki/interrupt/i13_en.htm

EL TORITO BOOTABLE CD-ROM FORMAT SPECIFICATION 1.0

http://www.phoenix.com/NR/rdonlyres/98D321.../specscdrom.pdf

TECHNICAL COMMITEE T13 AT ATTACHMENT:

http://t13.org/Standards/Default.aspx?DocumentType=3

SATA:

http://www.sata-io.org/

SCSI:

http://www.t10.org/

Pines:

http://www.connectworld.net/scsi.html

FIBRE CHANNEL:

http://www.t11.org/index.html

Informaci?n sobre sectores de arranque, particiones, .........

http://thestarman.pcministry.com/asm/mbr/M...R_in_detail.htm

REDES:

NETBIOS:

http://www.ctyme.com/intr/rb-6395.htm

(ni idea de si puede llegar a funcionar con alguna tarjeta moderna)

Sensores:

http://www.lm-sensors.org/wiki/HardwareHacking

Bueno lo dicho de nuevo relacionados con el tema del I2C y SMBUS........


MISCELANEA:

ENERGY STAR:

http://www.eu-energystar.org/es/es_000.htm

Espero que os sea de utilidad, creo que en definitiva ahorrar? tiempo a la hora de buscar documentaci?n que ya es algo.
De todo esto apenas logro entender unas pocas cosas, lo cual os puede indicar la magnitud de tratar de implementar un sistema operativo, solos ante el hardware........
Como vereis muchas veces se encuentra documentaci?n detallada sobre algunos temas pero la gran pregunta ?como acceder a tal o cual dispositivo.......) muchas veces algo tan simple como tener m?s de 40 hojas de contenido y ni siquiera poder saber a que puerto llamar para obtener esa informaci?n o un ejemplo "simple" de como hacer lo m?s m?nimo. Sin ir m?s lejos es como querer obtener el n?mero de serie de un disco duro y no saber a que puerto indicarselo, que por cierto es una t?pica pregunta en internet y la m?s de las veces le responden con el n?mero se serie del volumen l?gico :greenface: cuando con unos simples ejemplos se podr?a explicar hasta como obtener su revisi?n de firmware, fabricante....... considero que hay mucha desinformaci?n interesada, pero ?nimo se trata de aprender y aunque no lo parezca hay mucha gente en peque?os proyectos que ya ha recorrido los primeros pasos.

TO BE CONTINUED........
« Última modificación: Septiembre 30, 2007, 01:04:44 por JMA_SP » En línea
JMA_SP
Moderator
Miembro Imprescindible
*****
Mensajes: 739



Ver Perfil
« Respuesta #1 : Marzo 11, 2007, 01:35:48 »

Cody ha escrito un corto pero muy interesante documento sobre el acceso a unidades de disco en modalidades LBA28 y LBA48, mediante el acceso directamente a puertos tanto para lectura como para escritura, aqu? os dejo el enlace.

http://www.osdever.net/tutorials/lba.php

Son modalidades actuales frente a los antiguos accesos mediante CHS que se han quedado desfasados.

Un saludo.
En línea
JMA_SP
Moderator
Miembro Imprescindible
*****
Mensajes: 739



Ver Perfil
« Respuesta #2 : Julio 06, 2008, 11:46:50 »

Documentación que ayuda a portar un driver de NE2000 a vuestro sistema operativo:

http://www.acm.uiuc.edu/sigops/eoh98/howto_ne2k.htm
En línea
Páginas: [1]   Ir Arriba
Imprimir
Foro de Hispabyte.netSistemas operativos y SoftwareSistemas OperativosCreación de un Sistema Operativo (Moderador: JMA_SP)Tema: Indice recursos Crear OS
Ir a:  


Tema diseñado por RJ-45 para Hispabyte.net basado en el
theme famouspadexx v.09 designed by Formado Comprido
Downloable here. My present to padexx.de