 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
leslie
Anmeldungsdatum: 01.02.2007 Beiträge: 10
|
Verfasst am: 02.02.2007, 09:51 Titel: Wer alles hat mit FreeBasic versucht ein eigenes OS zu progg |
|
|
Hallo Zusammen,
Bei der Suche nach dem Begriff 'OS Programmierung' sind mir einige Threads aufgelistet worden. Es machte sich schnell bemerkbar, dass es einige Leute hier gar, die auf dem Gebiet etwas gemacht haben und daher auch ein SUB Forum zu diesem Thema wollten, aber dass es auch ein paar Leute gab, die sehr dagegen waren! Scheinbar wurden auch 'unerwunschte' Threads zu diesem Thema gelöscht!
Daher biete ich alle, die ein eigenes OS mit FreeBasic zu coden versuchten, sich hier auch melden damit ich mir die Projekte (falls 'ne Homepage existiert) anschauen kann, oder auch Informationen holen kann (wäre natürlich auch sehr nett). Hmmm sonst mach ich ganz bestimmt die gleiche Fehler und lande vielleicht in einer Sackgasse.
OK, falls sich jemand meldet und kurz eigene Erfahrungen zum Thema OS Programmierung mit FreeBasic schildert, dann vielen Dank bereits im Voraus. Sonst in jedem Fall ein schönes Weekend.
Gruss |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 02.02.2007, 11:16 Titel: |
|
|
Hm, da wär erst ma Mao, mit seinem Exorc, was aber net FB sondern ASM is.
Dann gibs jede Menge QB-Freaks, die (angeblich) ein OS gebaut haben,
und auch ich wollt schon mehrere OS coden (jaja, früher war ich auch noch dumm )
Zunächst in QB, fing auch erst als Emulator an, dann in Profan, jedoch nur als "Vorlage" für den späteren ASM-Teil.
Ich glaub, wenn man wirklich ein OS coden will, kommt man um Assembler net rum. Gott sei Dank erzeugt FB ja ASM-Code...  |
|
Nach oben |
|
 |
Manuel

Anmeldungsdatum: 23.10.2004 Beiträge: 1271 Wohnort: Bayern
|
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 02.02.2007, 16:49 Titel: |
|
|
Ersteinmal:
es kommt immer wirklich auf die Leute an, ob man denen geglaubt hat, oder nicht. kleiner_hacker zum Beispiel: ich will jetzt damit nicht sagen, dass er nichts kann, aber er wollte auch sein eigenes Betriebssystem mit QBasic entwickeln. Mittlerweile hat er eingesehen, dass das sinnlos ist.
Mit dem FBC, den es nicht als Flat-Binary-Variante gibt, wäre es genau das gleiche. Mit freeBASIC als Sprachdefinition selbst kannst du ein OS schreiben, mit dem FBC den es so gibt (fast) nicht. Um Assembler kommst du, wie PMedia schon sagte, nie herum. Okay, ein Betriebssystem für einen Apple Handcomputer (Name entfallen ) wurde nur in C++ geschrieben. Aber da hat es die Hardwarearchitektur möglich gemacht. Die typischen, x86-kompatiblen booten im RM - ob du willst, oder nicht.
Der FBC ist ein reiner 32-Bit-Compiler. Demzufolge nur seeeehr bedingt einsetzbar. Auch mit dem dcc32 (Delphi-Kommandozeilen-Compiler) kann man Betriebssysteme schreiben. Aber auch hier braucht man ein Workaround und Assembler. Das Workaround, irgendwo im Netz gibt's da ein Programm, das den PE-Header extrahiert und Delphi-EXEn zu Flat-Binary konvertiert. Dann musst du aber auch wirklich den Kommandozeilen-Compiler nehmen, da du über die IDE nicht die Möglichkeit dazu hast, die betreffenden Switches einzustellen. Und der dcc32 ist mittlerweile nur noch bei den Professional, Enterprise und Architect-Versionen dabei - welche natürlich auch entsprechend kosten. Und dann kannst du in Delphi auch nur die eigentliche Sprach-Syntax, und vorerst kein OOP und keine vordefinierten Klassen, API-Aufrufe, Fenster, etc. verwenden, sondern beispielsweise nur das for-Statement, die while-Schleifen, etc. Halt alles, was direkt ohne große Umwege in ASM übersetzt werden kann.
Delphi bringt für ein Betriebssystem also nix, genauso wenig wie halt FB oder QB.
Ich würde mir das wirklich überlegen, denn früher oder später wirst du doch daran scheitern, sry.
PMedia hat Folgendes geschrieben: |
Hm, da wär erst ma Mao, mit seinem Exorc
|
Ich war/bin aber nicht allein. (Achtung! Liste nicht sortiert!)
ICC, A.K., s-m-n, Agent_D und Dominik waren/sind auch dabei. Sowie eigentlich Dusky_Joe, der aber noch nicht großartig zum Dokumentieren gekommen ist. (Gab/gibt halt noch nicht so viele Schnittstellen - bisher haben die Programmierer halt die Schnittstellen definiert und dokumentiert. )
PMedia hat Folgendes geschrieben: |
Gott sei Dank erzeugt FB ja ASM-Code...
|
ASM!=ASM.
Du kommst nicht drumherum, selbst ASM-Code zu schreiben. Zumindest für die HAL und den Bootloader brauchst du's.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 02.02.2007, 17:27 Titel: |
|
|
Bootloader hab ich hier als Sample von Floppy, kein Thema. Mom, ich suchs gleich raus.
Meinst du den Apple Newton? |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 02.02.2007, 17:29 Titel: |
|
|
Ja, genau, der Newton wars!
Der Bootloader ist auch nicht das Problem, aber ich mein bloß, dass du halt auch ASM brauchst.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 02.02.2007, 17:33 Titel: |
|
|
So, hier ein komplettes OS... naja, eigentlich isses ja ein Fake, aber egal
Es is aber dafür ASM...
Bootloader
Code: | ; This is a very basic example
; of a tiny Operating System.
; Directive to create BOOT file:
#MAKE_BOOT#
; This is an OS loader only!
;
; It can be loaded at the first
; sector of a floppy disk:
; cylinder: 0
; sector: 1
; head: 0
;
; The code in this file is supposed
; to load the Kernel (micro-os_kernel.asm)
; and to pass control over it.
; The Kernel code should be on floppy at:
; cylinder: 0
; sector: 2
; head: 0
; Memory table (hex):
; -------------------------------
; 07C0:0000 | Boot Sector
; 07C0:01FF | (512 bytes)
; -------------------------------
; 07C0:0200 | Stack
; 07C0:03FF | (255 words)
; -------------------------------
; 0800:0000 | Kernel
; 0800:1400 |
; | (currently 5 Kb,
; | 10 sectors are
; | loaded from
; | floppy)
; -------------------------------
; micro-os_loader.asm file produced by
; this code should be less or
; equal to 512 bytes, since this
; is the size of the boot
; sector!
; Current version is compiled to
; 101 bytes.
include 'emu8086.inc'
; Boot record is loaded at 0000:7C00
ORG 7C00h
PUSH CS ; make sure DS=CS
POP DS
; skip the data section:
JMP start
;==== data section =====================
; welcome message:
msg DB 'Welcome to micro-os', 13, 10,
DB 'Loading...', 0
;======================================
start:
; initialize the stack:
MOV AX, 07C0h
MOV SS, AX
MOV SP, 03FEh ; top of the stack.
; set Data Segment:
PUSH CS
POP DS
; set default video mode 80x25:
MOV AH, 00h
MOV AL, 03h
INT 10h
; print welcome message:
LEA SI, msg
CALL print_string
;===================================
; load the Kernel at 0800h:0000h
; 10 sectors starting at:
; cylinder: 0
; sector: 2
; head: 0
; BIOS passes drive number in DL,
; so it's not changed:
MOV AH, 02h ; read function.
MOV AL, 10 ; sectors to read.
MOV CH, 0 ; cylinder.
MOV CL, 2 ; sector.
MOV DH, 0 ; head.
; DL not changed! - drive number.
; ES:BX points to receiving
; data buffer:
MOV BX, 0800h
MOV ES, BX
MOV BX, 0
; read!
INT 13h
;===================================
; pass control to Kernel:
JMP 0800h:0000h
;===========================================
DEFINE_PRINT_STRING
END
|
Kernel:
Code: | ; This is a very basic example
; of a tiny operating system.
;
; This is Kernel module!
;
; It is assumed that this machine
; code is loaded by 'micro-os_loader.asm'
; from floppy drive from:
; cylinder: 0
; sector: 2
; head: 0
; Directive to create BIN file:
#make_BIN#
; where to load (for emulator)?
#LOAD_SEGMENT=0800#
#LOAD_OFFSET=0000#
; set these values to registers on load,
; actually only DS, ES, CS, IP, SS, SP are
; important. In real world these values
; are left by "micro-os_loader":
#AL=0B#
#AH=00#
#BH=00#
#BL=00#
#CH=00#
#CL=02#
#DH=00#
#DL=00#
#DS=0800#
#ES=0800#
#SI=7C02#
#DI=0000#
#BP=0000#
#CS=0800#
#IP=0000#
#SS=07C0#
#SP=03FE#
include 'emu8086.inc'
; Kernel is loaded at 0800:0000
ORG 0000h
; skip the data section:
JMP start
;==== data section =====================
; welcome message:
msg DB 'Welcome to micro-os!', 13, 10,
DB 'type help if you need it', 0
cmd_size EQU 10 ; size of command_buffer
command_buffer DB cmd_size DUP('x')
clean_str DB cmd_size DUP(' '), 0
prompt DB '>', 0
; commands:
cHELP DB 'help', 0
cCLS DB 'cls', 0
cQUIT DB 'quit', 0
cEXIT DB 'exit', 0
cREBOOT DB 'reboot', 0
help_msg DB 'Thank you for using micro-os!', 13, 10
DB 'List of supported commands:', 13, 10
DB 'help - print out this list.', 13, 10
DB 'cls - clear the screen.', 13, 10
DB 'reboot - reboot the machine.', 13, 10
DB 'quit - same as reboot.', 13, 10
DB 'exit - same as reboot.', 13, 10
DB 'more to come!', 13, 10, 0
unknown DB 'Unknown command: ' , 0
;======================================
start:
; set data segment:
PUSH CS
POP DS
; set default video mode 80x25:
MOV AH, 00h
MOV AL, 03h
INT 10h
; clear screen:
CALL clear_screen
; print out the message:
LEA SI, msg
CALL print_string
eternal_loop:
CALL GET_COMMAND
CALL PROCESS_CMD
; make eternal loop:
JMP eternal_loop
;===========================================
GET_COMMAND PROC NEAR
; set cursor position to bottom
; of the screen:
MOV AX, 40h
MOV ES, AX
MOV AL, ES:[84h]
GOTOXY 0, AL
; clear command line:
LEA SI, clean_str
CALL print_string
GOTOXY 0, AL
; show prompt:
LEA SI, prompt
CALL print_string
; wait for a command:
MOV DX, cmd_size ; buffer size.
LEA DI, command_buffer
CALL get_string
RET
GET_COMMAND ENDP
;===========================================
PROCESS_CMD PROC NEAR
;//// check commands here ///
; set ES to DS
PUSH DS
POP ES
CLD ; forward compare.
; compare command buffer with 'help'
LEA SI, command_buffer
MOV CX, 5 ; size of ['help',0] string.
LEA DI, cHELP
REPE CMPSB
JE help_command
; compare command buffer with 'cls'
LEA SI, command_buffer
MOV CX, 4 ; size of ['cls',0] string.
LEA DI, cCLS
REPE CMPSB
JNE not_cls
JMP cls_command
not_cls:
; compare command buffer with 'quit'
LEA SI, command_buffer
MOV CX, 5 ; size of ['quit',0] string.
LEA DI, cQUIT
REPE CMPSB
JE reboot_command
; compare command buffer with 'exit'
LEA SI, command_buffer
MOV CX, 5 ; size of ['exit',0] string.
LEA DI, cEXIT
REPE CMPSB
JE reboot_command
; compare command buffer with 'reboot'
LEA SI, command_buffer
MOV CX, 7 ; size of ['reboot',0] string.
LEA DI, cREBOOT
REPE CMPSB
JE reboot_command
;////////////////////////////
; if gets here, then command is
; unknown...
MOV AL, 1
CALL SCROLL_T_AREA
; set cursor position just
; above prompt line:
MOV AX, 40h
MOV ES, AX
MOV AL, ES:[84h]
DEC AL
GOTOXY 0, AL
LEA SI, unknown
CALL print_string
LEA SI, command_buffer
CALL print_string
MOV AL, 1
CALL SCROLL_T_AREA
JMP processed
; +++++ 'help' COMMAND ++++++
help_command:
; scroll text area 9 lines up:
MOV AL, 9
CALL SCROLL_T_AREA
; set cursor position 9 lines
; above prompt line:
MOV AX, 40h
MOV ES, AX
MOV AL, ES:[84h]
SUB AL, 9
GOTOXY 0, AL
LEA SI, help_msg
CALL print_string
MOV AL, 1
CALL SCROLL_T_AREA
JMP processed
; +++++ 'cls' COMMAND ++++++
cls_command:
; clear screen:
CALL clear_screen
JMP processed
; +++ 'quit', 'exit', 'reboot' +++
reboot_command:
; store magic value at 0040h:0072h:
; 0000h - cold boot.
; 1234h - warm boot.
MOV AX, 0040h
MOV DS, AX
MOV w.[0072h], 0000h ; cold boot.
JMP 0FFFFh:0000h ; reboot!
; ++++++++++++++++++++++++++
processed:
RET
PROCESS_CMD ENDP
;===========================================
; scroll all screen except last row
; up by value specified in AL
SCROLL_T_AREA PROC NEAR
MOV DX, 40h
MOV ES, DX ; for getting screen parameters.
MOV AH, 06h ; scroll up function id.
MOV BH, 07 ; attribute for new lines.
MOV CH, 0 ; upper row.
MOV CL, 0 ; upper col.
MOV DI, 84h ; rows on screen -1,
MOV DH, ES:[DI] ; lower row (byte).
DEC DH ; don't scroll bottom line.
MOV DI, 4Ah ; columns on screen,
MOV DL, ES:[DI]
DEC DL ; lower col.
INT 10h
RET
SCROLL_T_AREA ENDP
;===========================================
DEFINE_PRINT_STRING
DEFINE_GET_STRING
DEFINE_CLEAR_SCREEN
END
|
Es entstammt dem Emu8086, und ist ab selbigen (8086) lauffähig.[/url][/code] |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 02.02.2007, 17:41 Titel: |
|
|
k, vlt. ist es ein bissel lang
Es startet komplett im RealMode, und bootet von Floppy.. wer will kann auch eigene Befehle adden...
Und warum sollte man von FreeBasic nicht die PE-Header (bzw. MZ-Header unter DOS) wegschneiden können?
Also ich hab hier ein paar (uralte) magische Büchlein, da is die Größe des Headers und einiger anderer Sachen drin. Die sind noch aus CP/M-Zeiten
Somit isses zumindest für die DOS-Version möglich. Man muss nur Interupt 20 vermeiden (war glaub ich der, oder doch 21?), dann sollts auch funzen... |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 02.02.2007, 18:20 Titel: |
|
|
Na, das ist aber wirklich ein kurzes Beispiel.
Aber versteh es bitte:
Compiler benutzen nun mal so gut wie immer betriebssystemspezifische Funktionen, dafür ist ein Betriebssystem da.
Und "nur Interrupt 0x20 und 0x21 vermeiden" is' nich'.
Du kannst dir natürlich aber alles nachbauen und dann als Interrupt einklinken. (Macht jedes RM-OS (und auch exorc) so.)
'Türlich kannst du den PE-Header entfernen. Hab ja nicht gesagt, dass es nicht geht. Aber das geht meist nur für eine bestimmte Programmiersprache, oder es wird relativ viel aufwand. Es kommt z.B. darauf an, wieviele API-Befehle zwischen den Code gestreut werden, wenn so gut wie keiner (außer Console-Managment) drin ist.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Georgp24
Anmeldungsdatum: 30.06.2006 Beiträge: 81 Wohnort: Ahlen
|
Verfasst am: 03.02.2007, 10:38 Titel: |
|
|
Ein Basic, mit dem man ein Betriebssystem schreiben kann ist BASM. Dies ist ein einfaches Basic, daß den Code nicht sofort compiliert sondern in Assembler umwandelt. Der generierte Assembler-Code ist anschließend (meine Empfehlung) mit TASM zu compilieren.
Dieses Basic läßt sich am besten verwenden, wenn man Assembler programmieren kann. Man kann damit aber schneller programmieren als direkt in Assembler.
Den Boot-Loader muß man aber direkt in Assembler schreiben oder GRUB verwenden.
Für ein protected mode OS dürfte BASM aber nicht geeignet sein
http://www.antonis.de/qbdown/qbtools.htm |
|
Nach oben |
|
 |
Georgp24
Anmeldungsdatum: 30.06.2006 Beiträge: 81 Wohnort: Ahlen
|
Verfasst am: 03.02.2007, 13:40 Titel: |
|
|
Es gibt sehr viele Projekte, ein OS zu schreiben. Hier ist eine bei weitem nicht vollständige Liste:
http://www.osdev.org/wiki/Projects
In der Regel verlieren der/die Programmierer früher oder später das Interesse und es bleibt ein unbrauchbarer und undokumentierter Torso zurück.
Es gibt auch praktisch keine Anwender, die ein solches OS einsetzen wollen. Spätestens nach dem Test des vierzigsten OS dürfte ein Interessent aufgeben und wieder mit Windows arbeiten. Es gibt außer dem Betriebssystem in aller Regel keine Compiler - außer Assembler - mit denen sich Anwendungen für diese Betriebssysteme schreiben ließen. Es gibt damit keine fertigen Anwendungen, nur manchmal einen Editor oder eine GUI-Demo. Also lassen sie sich überhaupt nicht verwenden. |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 03.02.2007, 13:48 Titel: |
|
|
Es gibt aber durchaus erwähnenswerte Beispiele. Natürlich sind diese schon einige Jahre in Entwicklung, aber die Leistung muss man doch einmal hervorheben. Zu nennen wären:
- ReactOS (imho atm recht funktionsfähiger Win NT-Clone)
- Haiku (ganz guter BeOS-Clone)
- SkyOS (sehr gute Mischung aus Eigenentwicklung und "Abschauen")
- MenuetOS (sehr kleines, aber leistungsfähiges 64-Bit-Betriebssystem nur in Assembler, auch mt Internet-Unterstützung)
- V2_OS (Leider tot, aber war recht interessant. Zum Beispiel nur Microkernel, aber Moduele für VESA, TCP/IP, etc.)
Btw, BASM erzeugt größtenteils nur DOS-Code. Es wird der Int 0x21 und das MZ-Executable-Format verwendet. Könnte man natürlich alles nachbilden, aber dann hätte man ja schon wieder ein DOS.
Bin allerdings nur kurz über die Sourcen drüber geflogen. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Georgp24
Anmeldungsdatum: 30.06.2006 Beiträge: 81 Wohnort: Ahlen
|
Verfasst am: 03.02.2007, 14:19 Titel: |
|
|
Mit Deiner Liste hast Du natürlich die "Highlights" angegeben. Aber bei SkyOS und MenuetOS gibt es glaube ich auch nur wenige, vom Programmierer mitgelieferte Anwendungen. Außer daß man sich diese OS mal ansieht und testet, werden sie aber wohl nicht eingesetzt.
Mit BASM hast Du recht, ich hatte nicht an die Befehle gedacht, die int21 verwenden. Also Datei öffnen und schreiben sowie DOS Funktionen wie "KILL Datei" kann man für ein OS nicht verwenden. Aber man kann sich ja den Assembler Code ansehen, ob ein int21 darin auftaucht.
Ich habe mal angefangen ein 16bit OS in BASM zu schreiben und nur die Befehle verwendet, die keinen int21 aufrufen und natürlich viel Inline Assembler. Darum hatte ich nicht an diese Befehle gedacht. Mein Boot Loader konnte MZ Exe Dateien laden, das war kein Problem. |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 03.02.2007, 14:32 Titel: |
|
|
Bei MenuetOS gabs doch sogar schon Doom, wenn ich richtig informiert bin..  |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 03.02.2007, 15:02 Titel: |
|
|
@Georgp24:
Ich wollte ja auch einige der erfolgreichsten nennen.
Vom Programmierer selbst werden nur wenige Programme mitgeliefert, aber das gleicht sich überall wieder aus.
Zum Beispiel unterstützt ReactOS ja (na klar) PE-EXEn. SkyOS ist auch nicht gerade schlecht: Eine Menge gnu-Tools laufen drauf und es gibt OpenGL-Anbindung. Außerdem noch einige interessante andere Features, insbesondere im Dateisystem.
Tjoar, und Haiku...eine Art BeOS halt.
Georgp24 hat Folgendes geschrieben: |
Außer daß man sich diese OS mal ansieht und testet, werden sie aber wohl nicht eingesetzt.
|
Aber auch das "nur mal kurz testen" hilft. Denn dadurch behält man's im Hinterkopf und schaut vllt. so alle 2-3 Monate mal wieder, was es neues gibt.
Dass man heutzutage nicht mehr gegen die 3 Riesen Linux, Windows und Mac OS X ankommt, ist klar.
Aber eine kleine Community kann man sich allemal anbauen, und nicht zu vergessen sind halt die beiden Hauptgründe für's OS-Deven: Spaß und Lernen.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Georgp24
Anmeldungsdatum: 30.06.2006 Beiträge: 81 Wohnort: Ahlen
|
Verfasst am: 03.02.2007, 15:51 Titel: |
|
|
Zitat: | Hauptgründe für's OS-Deven: Spaß und Lernen |
Wenn man diese Ziele im Auge behält und solange diese Ziele erreicht werden, kann es sinnvoll sein ein Hobby-OS zu schreiben.
Allerdings verbringt man den größten Teil der Zeit mit Käfersuche und dies ist nicht nur spaßig.
Ich denke immer, ein Programm ist dann erfolgreich, wenn es von vielen Anwendern eingesetzt wird. Unter diesem Gesichtspunkt ist das Verhältnis Aufwand/Erfolg bei einem Hobby-OS sehr schlecht.
Aber mir ist es noch nie gelungen, Hobby-OS Programmierer von ihrem Vorhaben abzubringen....  |
|
Nach oben |
|
 |
Manuel

Anmeldungsdatum: 23.10.2004 Beiträge: 1271 Wohnort: Bayern
|
Verfasst am: 03.02.2007, 20:34 Titel: |
|
|
Es kommt ja auch drauf an, wie der Programmierer den Aufwand empfindet. Manche schütteln ein einfaches (Fake-)OS einfach mal aus dem Ärmel*, andere könnten - sagen wir - Jahrhunderte kein Ergebnis bringen . Würde allerdings jeder Programmierer auf Kosten/Nutzen schauen, hätten wir wohl kaum Freeware- und OpenSource-Programme, von daher...
* Ich definiere hier absichtlich keinen konkreten Wert btw. ;P _________________ DL Walk (Denkspiel) | DL Malek (Denkspiel) | DL Warrior (ASCII-Adventure) | DL Sokodos (Sokoban-Klon)
---
www.astorek.de.vu |
|
Nach oben |
|
 |
leslie
Anmeldungsdatum: 01.02.2007 Beiträge: 10
|
Verfasst am: 03.02.2007, 22:12 Titel: RE: |
|
|
Vielen Dank allen für die sehr ausführliche Hinweise und Informationen zu diesem Thema.
Wenn man das alles so liest, erkennt man schnell, dass alle OS daran scheitern, dass sie keine Anwendungen haben. Ist ja klar, ein Auto nutzt nix wenn man kein Benzin hat, oder!
Also müsste man das Ziel etwas undefinieren. Man muss ein OS erstellen, für den man auf sehr einfache Art und Weise eine Applikation erstellen kann.
Wir haben Milionen von Programmierer, jedoch hat sich das Profil eines Programmierers sehr stark verändert. Das heutige Ziel ist 'schnell' und 'einfach' eine Applikation zu proggen. Entsprechend muss man mit sogenannten Black-Boxes arbeiten, und somit entfernt man sich unweigerlich vom Ursprung. Man kennt nicht einmal die Prozessorstrukturen oder Art wie eine Programmiersprache arbeitet. Es sind nur noch wenige, die über diesen KnowHow verfügen, aber auf die sorte der Programmierer kann man nicht zählen wenn man ein eigenes OS entwickelt für das man nur in Assembler die Applikationen entwickeln kann! Also muss man neben eigenen OS noch ein Entwicklungstool a la BASIC entwickeln. Wenn nur ein paar Tausend von diesen 100 Milionen Programmierer dann etwas für das OS schreiben, dann wird es sicher nicht so enden wie die 99.99% allen unfertigen OS.
Gruss |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 03.02.2007, 22:21 Titel: |
|
|
?
Das sind meine Worte, hab ich von Anfang an gesagt...  |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 04.02.2007, 13:17 Titel: |
|
|
Aber du wirst es nie so leicht schaffen, "ein paar Tausend Programmierer" dazu zu bewegen, ein Programm zu schreiben, für ein System, das so gut wie keiner hat. Sicher, von Zeit zu Zeit klappt das. Man muss nur an einflussreiche Leute kommen, die andere "mitreißen". Siehe Linux. Daraus löst sich dann, wenn man Glück hat, eine kleine Lawine aus.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|