Autor
|
Tema: Pregunta sobre ASM y WinAPI (Leído 9,459 veces)
|
Shrick
Desconectado
Mensajes: 259
Yo no se nada, sino ¿porque pregunto?
|
Tengo la curiosidad de saber que si siempre que se va a crear programillas como por ejemplo pues el notepad mismo, es totalmente necesario usar la WinAPI o ¿hay otras formas de hacerlo?.
Un Saludo.
|
|
|
En línea
|
Ubuntu User Pascal (2008/2009) C/C++ (2009/¿?) 8080 Assembler (2009/2010) MIPS I Assembler (2010/¿?) Todo lo que yo haga o diga esta bajo: No pertenece ni a mi ni a nadie .
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
Si, independientemente del lenguaje tenes que usar los servicios del S.O. (o en su defecto una libreria que los encapsule).
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Shrick
Desconectado
Mensajes: 259
Yo no se nada, sino ¿porque pregunto?
|
Imagínate que quiero usar desde ensamblador la librería stdio, esto luego lo traduciría a funciones de WinAPI?
Un Saludo.
|
|
|
En línea
|
Ubuntu User Pascal (2008/2009) C/C++ (2009/¿?) 8080 Assembler (2009/2010) MIPS I Assembler (2010/¿?) Todo lo que yo haga o diga esta bajo: No pertenece ni a mi ni a nadie .
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
Si, en realidad la RTL esta programada de tal manea que usa los servicios del S.O. en cuestion siempre que sea necesario, podes comprobarlo depurando un programa escrito en C/C++.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Shrick
Desconectado
Mensajes: 259
Yo no se nada, sino ¿porque pregunto?
|
Es bueno saberlo , supongo que esto también se aplicara a lo mismo en los demás sistemas operativos que harán uso de API de POSIX, si estoy en GNU/Linux. Era por curiosidad porque no tenia ni idea de que esto funcionaba así, ni no hacia más que ver código en ASM, las cuales todas usaban la API de Windows, por lo que veo los lenguajes con librerías, solo nos proporcionan una abstracción del ensamblador y de la API del SO, respectivamente. Yo la verdad es que de sistemas operativos a un nivel profundo ni papa, dentro de un año si todo sale como debiera me voy a comprar y leer el libro de sistemas operativos de Tenambaum y me entero un poco más del tema. Un Saludo.
|
|
|
En línea
|
Ubuntu User Pascal (2008/2009) C/C++ (2009/¿?) 8080 Assembler (2009/2010) MIPS I Assembler (2010/¿?) Todo lo que yo haga o diga esta bajo: No pertenece ni a mi ni a nadie .
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
Exactamente, en GNU/Linux podes ver como pthread usa los servicios futex o clone por ejemplo.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Shrick
Desconectado
Mensajes: 259
Yo no se nada, sino ¿porque pregunto?
|
Una última pregunta. Tomemos por ejemplo la función opendir() dentro de dirent.h (POSIX). Cuyo prototipo es: DIR* opendir(const char* dirname)
Se supone que como es una función que esta incrustado dentro del kernel tengo total libertad para programar esta función. Esto se podría programar en C, así a pelo o ¿se usa ensamblador?, es decir por ejemplo: Tengo en el VTOC (o como se llame la tabla de contenidos, que tiene referencias a ficheros), voy a la dirección donde este el VTOC, que estará puesto a pelo en el disco duro, y supongo que para acceder al disco duro habrá una dirección o direcciones que puedo usar como referencia estando esta en la RAM(si mal no recuerdo esto era mapeo de memoria) y a través de esa referencia llegar al VTOC, mediante el cambio de valor de esa referencia, que apuntaría VTOC, y luego buscaría la linea que correspondiera con dirname, el bloque que esta al lado, que se supone que es la dirección y tamaño, entonces cambiaría el puntero de disco duro a esa dirección y devolveria el valor del puntero. ¿Seria algo así no?. Puedo deducir que si esto es así, las demás las podría deducir, y asi he aprendido un poquito más sobre sistemas operativos xD . Un Saludo.
|
|
|
En línea
|
Ubuntu User Pascal (2008/2009) C/C++ (2009/¿?) 8080 Assembler (2009/2010) MIPS I Assembler (2010/¿?) Todo lo que yo haga o diga esta bajo: No pertenece ni a mi ni a nadie .
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
No veo que opendir sea un servicio. ¿Lo encontras en /usr/include/asm/unistd.h?
Practicamente nada se programa en ensamblador ya que no es portable.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Shrick
Desconectado
Mensajes: 259
Yo no se nada, sino ¿porque pregunto?
|
No solo encuentro un montón de #define con valores estilo: #define __NR_eventfd 323 #define __NR_fallocate 324 #define __NR_timerfd_settime 325 #define __NR_timerfd_gettime 326 #define __NR_signalfd4 327 #define __NR_eventfd2 328 #define __NR_epoll_create1 329 #define __NR_dup3 330 #define __NR_pipe2 331 #define __NR_inotify_init1 332 #define __NR_preadv 333 #define __NR_pwritev 334 #define __NR_rt_tgsigqueueinfo 335 #define __NR_perf_counter_open 336
Entonces cuales son exactamente los servicios, es decir, los prototipos de las funciones de la API del SO? Lo puse porque ponía que estaba dentro del estándar POSIX, y de hay deduci malamente eso.
|
|
« Última modificación: 22 Noviembre 2009, 20:56 pm por Shrick »
|
En línea
|
Ubuntu User Pascal (2008/2009) C/C++ (2009/¿?) 8080 Assembler (2009/2010) MIPS I Assembler (2010/¿?) Todo lo que yo haga o diga esta bajo: No pertenece ni a mi ni a nadie .
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
Lo servicios son esos justamente, con sus respectivos numeros en la version especifica del Kernel que tengas. Como te decia antes en GNU/Linux podes ver como pthread usa los servicios futex o clone por ejemplo. No soy un experto en *NIX justamente pero supongo que habra funciones POSIX que sean servicios directamente implementados y otras que esten basadas en otros servicios.
|
|
« Última modificación: 22 Noviembre 2009, 22:55 pm por Eternal Idol »
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problemas con WinApi
Programación C/C++
|
Nobody12
|
0
|
3,168
|
10 Enero 2011, 21:47 pm
por Nobody12
|
|
|
Sobre menu en winapi
Programación C/C++
|
d00ze13
|
2
|
4,033
|
29 Marzo 2011, 17:46 pm
por d00ze13
|
|
|
duda sobre strstr en c++ (WinApi)
« 1 2 »
Programación C/C++
|
xkiz ™
|
13
|
8,210
|
23 Septiembre 2011, 18:21 pm
por naderST
|
|
|
[pregunta]copiar y reescribir directorios de forma recursiva winapi
Programación C/C++
|
daryo
|
0
|
1,639
|
15 Julio 2015, 21:13 pm
por daryo
|
|
|
Mi programa WINAPI se come el 100% de la CPU. ¿Como lo reduzco?
« 1 2 »
Programación C/C++
|
Desiresportal
|
11
|
6,839
|
14 Octubre 2020, 00:09 am
por Eternal Idol
|
|