Leute gesucht!!!
-
Ich wiederhole meine Frage, da ich noch keine Antwort entdeckt habe:
Gibt es im Internet eine Anleitung zur Erstellung von OS?
-
@Erhard: Grundsätzlich, nein. Aber du wirst jede Menge Informationen dafür finden. Die du dir dann selbst zusammenstricken musst. Aber komplette Tutoriale werden Mangelware sein.
Gabs nicht mal in der ASM-FAQ was darüber?
MfG SideWinder
-
Original erstellt von Erhard Henkes:
Ich wiederhole meine Frage, da ich noch keine Antwort entdeckt habe:
Gibt es im Internet eine Anleitung zur Erstellung von OS?Ja, sicher gibt es das irgendwo!
-
Da!
http://warpserv.fh-bielefeld.de/teamos2/tricks.html
und
http://w3.aces.uiuc.edu/OS2/tricks.html
und
http://www.netlabs.org/
und da
http://www.edm2.com/
oder da:
http://www.ibm.com/us/mfg
Programmer
PS: Ich glaub, da werden sich sicher sehr hilfsreiche und nützliche "Sachen" herauschreiben![ Dieser Beitrag wurde am 09.07.2002 um 17:51 Uhr von Programmer85 editiert. ]
-
Zwei Beispiele von der EDM, die OS Codesnippets anbieten:
(NAtürlich wird die neue HEader process.h und OS2.h und Os.h benötigt!)Restaurieren und Speichern von aktuellen OS Einstellungen:
VOID GetStartupData(HWND hWndFrame) { HAB hab; CHAR szIniPath[64]; HINI hMyHini; SWP Swp; ULONG ulSwpSize = sizeof(SWP); ULONG SwpOptions = SWP_ACTIVATE | SWP_MOVE | SWP_SIZE | SWP_SHOW; USHORT RestoreValues[6]; ULONG ulRestoreValuesSize = sizeof(RestoreValues); /* ======================================================================== Load the physical pathname from the resource file. It should be defined something like this. STRINGTABLE LOADONCALL MOVEABLE BEGIN ID_INIPATH "C:\\APP.INI" END ======================================================================== */ hab = WinQueryAnchorBlock(hWndFrame); WinLoadString(hab, 0, ID_INIPATH, sizeof(szIniPath), szIniPath); if ((hMyHini = PrfOpenProfile(hab, szIniPath))!=NULLHANDLE) { if (PrfQueryProfileData(hMyHini, "App", "WindowSize", (PVOID)&Swp, (PULONG)&ulSwpSize)) { if (Swp.fl & SWP_MAXIMIZE) SwpOptions |= SWP_MAXIMIZE; else if (Swp.fl & SWP_MINIMIZE) SwpOptions |= SWP_MINIMIZE; WinSetWindowPos(hWndFrame, NULLHANDLE, Swp.x, Swp.y, Swp.cx, Swp.cy, SwpOptions); /* ======================================================================== Set the following flags in the frame window extra data. This will tell the frame what size it should restore itself to if you restart minimized or maximized. ======================================================================== */ if (PrfQueryProfileData(hMyHini, "App", "RestoreValues", (PVOID)&RestoreValues, (PULONG)&ulRestoreValuesSize)) { WinSetWindowUShort(hWndFrame, QWS_XRESTORE, RestoreValues[0]); WinSetWindowUShort(hWndFrame, QWS_YRESTORE, RestoreValues[1]); WinSetWindowUShort(hWndFrame, QWS_CXRESTORE, RestoreValues[2]); WinSetWindowUShort(hWndFrame, QWS_CYRESTORE, RestoreValues[3]); WinSetWindowUShort(hWndFrame, QWS_XMINIMIZE, RestoreValues[4]); WinSetWindowUShort(hWndFrame, QWS_YMINIMIZE, RestoreValues[5]); } } else WinSetWindowPos(hWndFrame, 0, 0L, 40L, 800L, 560L, SwpOptions); } else WinSetWindowPos(hWndFrame, 0, 0L, 40L, 800L, 560L, SwpOptions); PrfCloseProfile(hMyHini); return; } VOID SaveStartupData(HWND hWndFrame) { HAB hab; CHAR szIniPath[64]; HINI hMyHini; SWP Swp; USHORT RestoreValues[6]; WinQueryWindowPos(hWndFrame, &Swp); RestoreValues[0] = WinQueryWindowUShort(hWndFrame, QWS_XRESTORE); RestoreValues[1] = WinQueryWindowUShort(hWndFrame, QWS_YRESTORE); RestoreValues[2] = WinQueryWindowUShort(hWndFrame, QWS_CXRESTORE); RestoreValues[3] = WinQueryWindowUShort(hWndFrame, QWS_CYRESTORE); RestoreValues[4] = WinQueryWindowUShort(hWndFrame, QWS_XMINIMIZE); RestoreValues[5] = WinQueryWindowUShort(hWndFrame, QWS_YMINIMIZE); hab = WinQueryAnchorBlock(hWndFrame); WinLoadString(hab, 0, ID_INIPATH, sizeof(szIniPath), szIniPath); if ((hMyHini = PrfOpenProfile(hab, szIniPath))!=NULLHANDLE) { PrfWriteProfileData(hMyHini, "App", "WindowSize", (PVOID)&Swp, sizeof(Swp)); PrfWriteProfileData(hMyHini, "App", "RestoreValues", (PVOID)&RestoreValues, sizeof(RestoreValues)); } PrfCloseProfile(hMyHini); return; }
Eine Einfahche benutzung und erstellen des TELNETS mit PIPES
--------------------------------SERV.C------------------------------ #define INCL_DOSQUEUES #define INCL_DOS #include <os2.h> #include <process.h> #define PIPESIZE 256 #define HF_STDIN 0 #define HF_STDOUT 1 #define HF_STDERR 2 HPIPE hpOutR, hpOutW; HPIPE hpInR, hpInW; HPIPE hpErrR, hpErrW; HPIPE NmPipeHandle; RESULTCODES resc; CHAR szFailName[CCHMAXPATH]; void read( void *dummy ) { ULONG cbRead, cbWritten; CHAR achBuf[PIPESIZE]; do { DosRead( hpOutR, achBuf, sizeof(achBuf), &cbRead ); DosWrite( NmPipeHandle, achBuf, cbRead, &cbWritten ); } while ( cbRead ); } void write( void *dummy ) { ULONG cbRead, cbWritten; CHAR achBuf[PIPESIZE]; do { DosRead( NmPipeHandle, achBuf, sizeof(achBuf), &cbRead ); DosWrite( hpInW, achBuf, cbRead, &cbWritten ); } while ( cbRead ); } main(int argc, char *argv[], char *envp[]) { APIRET rc; HFILE hfSaveOut = -1, hfNewOut = HF_STDOUT; HFILE hfSaveIn = 10, hfNewIn = HF_STDIN; DosDupHandle( HF_STDOUT , &hfSaveOut ); DosDupHandle( HF_STDIN , &hfSaveIn ); DosCreatePipe( &hpOutR, &hpOutW, PIPESIZE); DosCreatePipe( &hpInR , &hpInW , PIPESIZE); DosDupHandle( hpOutW, &hfNewOut ); DosDupHandle( hpInR, &hfNewIn ); DosExecPgm( szFailName, sizeof(szFailName), EXEC_ASYNC, (PSZ) NULL, (PSZ) NULL, &resc, "C:\\OS2\\CMD.EXE"); DosClose(hpOutW); DosClose(hpInR); DosDupHandle( hfSaveOut, &hfNewOut ); DosDupHandle( hfSaveIn, &hfNewIn ); rc = DosCreateNPipe( "\\\\W304743B\\PIPE\\CMDPIPE", &NmPipeHandle , NP_ACCESS_DUPLEX, NP_WMESG | NP_RMESG | 0x01, 256 , 256 , -1 ); if ( rc ) return 0; rc = DosConnectNPipe( NmPipeHandle ); if ( rc ) return 0; _beginthread( &write , NULL, 64000, NULL ); read( NULL ); return 1; } ---------------------------------------CLNT.C--------------------- #define INCL_DOSQUEUES #define INCL_DOS #include <os2.h> #include <process.h> #include <string.h> #include <stdio.h> #define PIPESIZE 256 #define SERVER_PIPE_NAME "\\PIPE\\CMDPIPE" #define HF_STDIN 0 #define HF_STDOUT 1 HPIPE hp; ULONG ulAction; APIRET rc; void read( void *dummy ) { ULONG cbRead, cbWritten; CHAR achBuf[PIPESIZE]; do { DosRead( hp, achBuf, sizeof(achBuf), &cbRead ); DosWrite( HF_STDOUT, achBuf, cbRead, &cbWritten ); } while ( cbRead ); } void write( void *dummy ) { ULONG cbRead, cbWritten; CHAR achBuf[PIPESIZE]; do { DosRead( HF_STDIN, achBuf, sizeof(achBuf), &cbRead ); DosWrite( hp, achBuf, cbRead, &cbWritten ); } while ( cbRead ); } main(int argc, char *argv[], char *envp[]) { CHAR ServerPipe[CCHMAXPATH]; if ( argc != 2 ) return 0; strcpy( ServerPipe, "" ); strcpy( ServerPipe, "\\\\" ); strcat( ServerPipe, argv[1] ); strcat( ServerPipe, SERVER_PIPE_NAME ); printf( "%s\n", ServerPipe ); rc = DosOpen( ServerPipe, &hp, &ulAction, 0, FILE_NORMAL, FILE_OPEN, OPEN_ACCESS_READWRITE | OPEN_SHARE_DENYNONE, NULL ); if ( rc ) return 0; _beginthread( &write , NULL, 64000, NULL ); read( NULL ); DosClose( hp ); return 0; }
[ Dieser Beitrag wurde am 09.07.2002 um 17:58 Uhr von Programmer85 editiert. ]
[ Dieser Beitrag wurde am 09.07.2002 um 18:01 Uhr von Programmer85 editiert. ]
-
Der will uns verschaukeln.
-
Wirklich? volkard du musst so intelligent sein, wenn du das sofort kapiert hast!
MfG SideWinder
-
@Erhard
Schau hier mal:
http://www.linuxgazette.org/issue79/index.html
http://www.linuxgazette.org/issue77/index.html
-
wenn ich "Restaurieren und Speichern von aktuellen OS Einstellungen:" mal korrigieren darf:
also dsa sieht eher nach einem beispiel aus, wie man ein windows fenster an der selben position und mit der selben grösse öffnet, wie es geschlossen wurde.. (machen das nicht fast alle durchschnittsprogramme)das zweite ist schon verwunderlich, wieso nen telnet client mit pipes machen? fliegt ihr täglich mit dem flugzeug zur schule/arbeit?
also ich hab mal nen billig(telnet)client gecodet und der sah weitaus einfacher aus, als das und war vernünftig per tcp/ip zu benutzen... so nebenbei frage ich mich, ob man nicht sofort einen pipes-telnet-server coden müßte, damit das läuft...rapso->greets();
ps. naja, vielleicht liege ich total daneben mit allem, aber hab eh keine lust mir sowat richtig anzuschauen.
-
Danke für die Links. Das Thema finde ich nämlich nicht uninteressant. Aus diesem Thread werde ich mich aber ab sofort verabschieden.
-
Original erstellt von Erhard Henkes:
Danke für die Links. Das Thema finde ich nämlich nicht uninteressant. Aus diesem Thread werde ich mich aber ab sofort verabschieden.Aha!
Erst interessant finden, lesen, machen und tun, dann OHNE GRUND und STINKFRECH ohne zu Fragen abhauen!! *gemein*!
-
PS: Wenn ich hier von der ARBEIT aus Poste, dann bin ich immer unregistered!!! Von zuhause bin ich Mitglied! WIRKLICH!! Aber ich frag mich: Was hat dies nun mit LEUTE GESUCHT und OS zu tun? lol
-
Danke für die Links zur Linux-Gazette. Gibt es ähnliches ausgehend vom Windows-Betriebssystem?
@Programmer85:
Wieso zeigst Du diese Links auf IBM und OS/2? Willst Du Dich lächerlich machen? Ich dachte, Du wolltest ein eigenes OS entwickeln.
Ich sehe bei Dir momentan kein tragfähiges Konzept, noch nicht einmal im Ansatz. Vielleicht solltest Du die anderen Links lesen, damit Du begreifst, was es bedeutet, ein solches Projekt zu beginnen.Deine Beleidigungen habe ich aufgrund Deines jugendlichen Alters überhört. Ich werde diesen Thread ab jetzt nur noch beobachten, bis er mehr Substanz gewinnt.
-
@Erhard Henkes: (Ich tippe mal, dass man bei diesen Links Infos zur OS-Erstellung bekommt), dann kann es sowas basierend auf Windows gar nicht geben - immerhin ist Windows ClosedSource.
MfG SideWinder
-
Original erstellt von Erhard Henkes:
**
Deine Beleidigungen habe ich aufgrund Deines jugendlichen Alters überhört. Ich werde diesen Thread ab jetzt nur noch beobachten, bis er mehr Substanz gewinnt. :D**Meinste, das war Ernst?
EIne Beleidigung ist bei mir NUR ERNSTE Sache, wenns KEIN EINZIGES ( )-Smile Dabei hat!
-
Original erstellt von SideWinder:
**@Erhard Henkes: (Ich tippe mal, dass man bei diesen Links Infos zur OS-Erstellung bekommtMfG SideWinder**
Stimmt! Warum sonst hätte ich die Links hier gepostet`??
-
Ich geb's auf. Hier geht ja alles kreuz und quer.
-
Original erstellt von Erhard Henkes:
Ich geb's auf. Hier geht ja alles kreuz und quer.Was können wir denn dafür, dass hier alles durcheinandergeht, wenn andere (NICHT AUF DICH GEMEINT! ) alles durcheinander bringen??
Ne. Wir wollen doch nur auf die Fragen antworten oder?PS: Wär cool, wenn dieser Thread nen REKORD aufstellen würde!!
-
Original erstellt von Erhard Henkes:
Danke für die Links zur Linux-Gazette. Gibt es ähnliches ausgehend vom Windows-Betriebssystem?
Möglich! Ich such mal danach.
-
Original erstellt von Erhard Henkes:
Danke für die Links zur Linux-Gazette. Gibt es ähnliches ausgehend vom Windows-Betriebssystem?
Möglich! Ich such mal danach.