Leute gesucht!!!



  • 3 - 4 Jahre?
    Kein Problem - da brauchste nur 3 Leute die 8 Stunden täglich mit 10 Zeichen pro Sekunde ohne Pause oder nachzudenken schreiben... :p



  • 3 bis 4 jahre. in der zeit könnte er informatik studieren und sich das nötige grundwissen schritchenweise aneignen und sofort im os mit einbauen.

    als aller ersten schritt Würd ich sehen. erkundung des makrtes und analyse dises. was ist gut und was ist schlecht. was kann man úbernehmen. und was sollte man gleich durch eigene konzepte ersetzen.

    vorschlag. POSIX wird über bord geworfen. wer braucht das schon. win-API sieht ja ganz toll aus. nur die die portierbarkeit innerhalb der versinen is zu gut. da sollte man abstriche machen.

    na ja wigentlich das gegenteil währe vileicht sinnfoll

    gruss termite



  • scherzkeks & volkard: Also ich habe um 13:00 Uhr 'n Zahnartzttermin, aber bis dahin sollte ich mit der ersten Version von unserem OS fertig sein. Ich schick euch das dann und ihr guckt mal, dass ihr die ganzen Feinheiten macht. Dann können wir heute abend an die Börse gehen 😃



  • Linux hat nun bereits über 10 Jahe auf'm Pukel und basiert auf einem noch viel älteren Unix. Und da haben nicht nur 10 Mann mitgearbeitet, sondern eine gigantische Gemeinschaft. Und erst jetzt finde ich, dass es ein Richtig gutes OS ist.

    Linux hat sich durchgesetzt, weil es das GPL-Prinziep verfolgt und relativ stabiel ist. Zudem ist es kostengünstig.

    MacOS hat sich durchgesetzt, da es das einzige wirklich sinnvoll auf dem Mac einsetzbare OS ist. Und Macs sind nunmal Quasistandard in Sachen Audiobearbeitung.

    Windows hat sich durchgesetzt, weil ... kein Ahnung. Das ist mir immer noch unverständlich.

    Geht man von Windows aus, hast du gute Chancen. Schreib einfach gut aussehenden Schrott und du wirst steinreich.



  • @Helium: Warum sich Windows durchgesetzt hat? Es war am einfachsten zu bedienen. Und 80% aller Computeruser sind eben keine Profis, sondern Anfänger.

    MfG SideWinder



  • 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





  • 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! 😉 😃 😃 😃 😃


Anmelden zum Antworten