Lowlevel
Lowlevel => Das Wiki => Thema gestartet von: Cobi am 03. August 2004, 18:33
-
Hi,
Ich hatte grade eine (geniale ;)) Idee fürs Magazin:
Ein Os das vom Bootloader bis zum Multithreading in jeder Ausgabe um einen kleinen aber lehrreichen Teil bereichert wird und man somit jede menge lernen kann :D
Hoffe ihr wisst was ich meine :)
mfg. Cobi
-
Naja, wir haben diese Idee schon bis ins Letzte diskutiert und haben festgestellt, dass es keine gute Idee ist...
Oder was meint Roshl?
-
Bin da auch dagegen, da ist dann die Gefahr zu gross dass, sich jeder einfach alles zusammenkopiert, einfach us Faulheit heraus, das würden sehr viele machen auch wenn sie jetzt gross niemals schreien;-)
Was ich eher für sinnvoll halten würde wäre folgendes, ein paar Leute, die schon nicht grade die schlechtesten sein sollten, setzten sich zusammen und arbeiten gemeinsam an DEM Lowlevel OS, sozusagen als Paradebeispiel für den Erfolg des Magazins. Aber auch das ist nicht unbedingt leicht durchzuführen da über Internet nich immer alles sofort abgestimmt werden kann, dann ist einer nicht online geht wieder nichts weiter...
Besser wärs dann wenn man im selben Ort wohnt, so wie ein Kumpel von mir der demnächst ein meinem OS mit einsteigen wird. Da kann man dann schnell mal vorbeikommen und bisl was bequatschen.
-
Naja ich wär bei nem gemeinsamen OS dabei, Kontrolle könnt man halt durch CVS erreichen. Kommunikation durch ICQ und IRC. Ich fänds ne gute Idee man müsste sich nur zusammensetzen und nen gemeinsames Konzept erarbeiten und klare Rollen verteilen. Würde mich freuen wenn wir sowas auf die beine kriegen.
-
Um himmels willen bitte nicht!
Ein OS im Rahmen von LowLevel zu entwickeln, das dann immer wieder veröffentlich wird halte ich für nicht so prickelnd.
Weil es IST leider einfach so, das viele Leute sich zu "bequem" sind und einfach Zeilenweise Code kopieren.
Dagegen selbst spricht ja erstmal nix.....aber dann kapieren sie nicht was da drin steht und versuchen diesen Code mit ihrem zu mixen und merken dann das da ständig Probleme auftauchen.
Und natürlich ist es dann so, das der Code der vom LowLevel-Team bereitgestellt wird falsch ist ... *G*
Will um Himmels Willen niemanden angreifen, aber mich haben schon etliche Leute angeschrieben und gemeint das mein Bootloader nicht gehen würde, weil deren Kernel nicht korrekt geladen wird......
Und was soll ich sagen.....nach einigen hin und her mussten bisher eigentlich alle eingestehen das der Fehler nicht beim Bootloader lag *g*.
Es ist ja kein Übel anderen Code zu benutzen. Aber man muss wissen und akzeptieren das gerade ASM Code von verschiedenen Leuten sich nicht immer vertägt :)
Dann gibt es auch noch einige die den ASM-Teil komplett überspringen möchten und gleich mit C oder sogar ner GUI (<- *g*) anfangen wollen, weil sie keine Lust haben ASM zu lernen......
Ich denke es ist schon Hilfe genug wenn immer mal wieder Tuts mit Beispielcode bereitgestellt werden.
Was man aber machen könnte, ist das man sich an größerer Tuts wie Multitasking, Floppy-Treiber usw. zusammen ransetzet und daran arbeitet und den Code dafür entwickelt.
mfg
TeeJay
-
Naja ich muss ganz ehrlich sagen wer einfach nur kopiert ist selber schuld der copyright liegt ja trotzdem bei den erfindern.
-
Vom Copyright kannste dir auch nix kaufen!
-
komm lasst uns anfangen alles zu patentieren. hmm... ich patentier mir den Befehl mov *gg*
-
sehr (c) interessant (tm) *g* (r)
-
Ja ne und ich bin Gott und hab ein Patent auf die Welt is klar^^
-
He, wer hat eigentlich Roshl erlaubt, hier Adminstrator(R) zu sein????????ßßß
Ich bin hier immer noch der Lowlevel-Gott(tm)!!!!!!!!!!11111111eintausendhundertelf
...
Hören wir lieber auf ;)
-
Das warst du:P (naja eigentlich hab ich bisl nachgeholfen^^ aber psst sagmer keinem)
-
Man ihr seit fiess ;)
Ich wollt ja nur ausdrücken das das nen richtiges Os-Projekt dann sein soll, und nich für Lernzwecke.
-
Also ich bin jedenfalls nich dafür, auch bei nem gemeinsamen steh ich nich als Programmierer zur Verfügung, ich hab mein eigenes bei dem Mein Kumpel bald einsteigt und dabei würde ich auch gerne bleiben, höchstens als Berater der alles schlecht macht bin ich zu haben^^
-
naja, ich fände die idee gut! ich habe auch am anfang alles zusammenkopiert, das geb ich zu! aber es ist auch dumm, wenn man mit OSDEV anfängt und nix kann... ich meine hier macht es sicher keiner des ASMs wegen, oder ;-)? sondern weil man ein EIGENES OS machen will. und wenn man dann den anfang kopiert, und schnell was vorzuzeigen hat (auch wenns zusammenkopiert ist) dann ermuntert es einen und regt einen an, weiter zu machen. wenn man aber zuerst sich dur zigtausende manuals und tuts und ASM-bücher durchlesen muss, um einen bootloader zu schreiben vergeht einem die lust selber! und später dann formt man sowieso alles um und schreibt teile neu und verbessert und optimiert andere teile.
-
Also ich finds es gerade doof irgendwelchen Code zu kopieren, weil mir gerade dabei die Lust vergeht, weil ich einfach das Gefühl dabei habe das ich es nicht selbst gemacht habe.
Und genau dann fang ich an zu lesen, damit ich es verstehe. Und dann mach ich es selbst nochmal. Und wenn es dann funzt, bin ich zufrieden :)
-
Also irgendwann sollte man lernen das die Reise wichtiger ist als das Ziel;) Also mit anderen Worten, ich will nicht das alles funzt weil es funzt, sonder ich will das es funzt weil ich es geschaffen und verstanden habe. Wenn mans nicht selbst macht weiss man das und ein Erfolg ist das sicher nicht etwas zu kopieren, das ist nicht schwer marken+rechtklick+copy fertig;) das kann jeder. Mein lernt dabei rein garnix^^
-
also ich denk Roshl hat schon recht wenn er sagt die Reise ist das wichtigste.
Man sollte sich auch wenn man nen Thema wirklich lernen will alles was man findet durchlesen. Und dann auch alles was man nicht versteht nachschauen im Internet usw.. Es gibt so viele Quellen.
Das kopieren von Code mag am Anfang total schön sein aber spätestens dan wenn man keinen Code mehr zum kopieren hat dann wird es schwer weiterzukommen, vor allem weil man dann schon viell. 100 Zeilen Code hat und vielleicht von einer richtig weiß was sie macht.
Man Code aber dennoch schon übernehmen aber man sollte ihn dann selbst abtippen und nicht alles blind kopieren !
-
naja auch abtippen is nich das wahre, dadurchv ersteht mans net zwangsläufig.
Und 100 Zeilen is nich viel, das is garnix!
-
Also, ich muss jetzt einfach auch noch meinen Senf dazugeben ;)
Ich gebe auch joachim_neu recht denn ich denke man sollte vielleicht kleine Erfolge haben die motivieren, in den meisten C/C++-Kursen wird ja auch erst ein Hello-World-Programm getippt und dann erklärt. Ich finde es Ideal wenn die Anfänge so gemacht werden wie in Lowlevel Ausgabe 1, das erst ein WENIG code abgetippt und dabei erklärt. Ich bin also fürs abtippen am Anfang muss aber dazu sagen das man sich, wie Vampire bereits sagte, den Code zumindest nacher (nach dem Ausführen) ansehen sollte. Denn wer will als erste Os-dever-handlung die Intel-Manuals durchlesen oder so? Nacher kann man ja immer noch Theorie lernen denn dann weis man zumindest schon wie das ungefähr funktioniert (oder eher man GLAUBT es zu wissen ;) ). Ich habe auch mit der 1. Lowlevel-Ausgabe angefangen und fange jetzt erst an Tanenbaum's Modern Operatingsystems zu lesen (meine Mutter hat es mir vor ca. 10 Minuten aus der Universitätsbibliothek Wien mitgebracht)
-
Nun ja, es ist ja nicht so, dass der Newbie die Intel-Manuals kriegt und irgendwas drauflos coden muss. Dafür gibts ja Lowlevel & Co. Wir zeigen euch die Ansätze, wie ihr etwas zu programmieren habt, wenn ihr etwas nicht versteht, könnt ihr gerne hier im Forum fragen, aber wir können euch keinen fertigen Code geben, das müsst ihr verstehen. Es ist nicht der Sinn dieses Magazins.
-
Achso ;) wir scheinen nur ziemlich verschiedene Maßstäbe zu haben :) ich finde ihr gebt uns genug Beispielcode :)
-
Ich finde die Idee ansich nicht schlecht, aber richtig helfen tut es einem Anfänger auch nicht so wirklich, da man viel zu viel erklären müsste um später selber was dran zu machen.
Ich hab anfangs auch immer zusammenkopiert und dann ließt man irgendwann die Tuts gar nimmer mit und wundert sich warum nix klappt, bis man dann entdeckt das der Schreiber kleine Gemeinheiten eingebaut hat die man ändern muß, was man aber erst bemerkt wenn man ließt was da steht ^^
Außerdem bringt einem kopieren eh nicht viel, denn spätestens am Ende der Tutorials sitzt man dann dumm davor weil man nicht weitermachen kann, nix ändern und vor allem nicht weiß wofür was überhaupt da ist.
-
Die Tutorials und vor allem der Code darin ist ja auch mehr dazu gedacht eine Anregung zu haben wie etwas funktioniert.
Natürlich darf man das gerne kopieren, aber ich empfehle es lieber selber nochmal zu schreiben oder bestenfalls nur bruchstücke aus dem Code zu kopieren.
Der Lerneffekt ist höher und man kann es auf eigene Bedürfnisse zuschneiden.
-
Jo vor allem ist es bie mir zum Beispiel so wenn ich sinngemäss was verstehe es aber net selber schreibe mir die übung fehlt
-
ich melde mich dann auch mal wieder: ich finde es wie gesagt gut, wenn man ein codebeispiel hat, und mit dem aus weiter machen kann. später, wenn ich mein OS erweiter stoße ich immer wieder auf teile, die ich damals kopiert habe, und dann kann ich aber keinen code mehr kopieren, weil ich es dann anpasse. dann muss ich mir eben anschauen, was der code macht. ich habe am anfang den kompletten code aus lowlevel kopiert, und? was ist daraus geworden? eine shell. ich habe den getkey befehl erweitert, ich habe abfragen eingebaut, ich habe sektorfunktionen gelernt, und alles andere. allerdings glaube ich nicht, dass ich OS-Dev gemacht hätte, wenn ich erstmal 10 stds. an meinem bootloader gehockt währe. man braucht einfach eine gewisse basis, denke ich. aus 0 kann nichts werden, dass ist nunmal so. wenn ich nix weiß, kann ich keinen bootloader coden, dass kann KEINER anfechten, oda? also. und dann gibts entweder die möglichkeit, dass ich manuals habe, oder code. das zweite ist schneller, und ermutigt mehr. genauso bei der API. zuerst habe ich nur den beispielcode kopiert. mitlerweile verstehe ich ihn, weil ich mehr über interruptvektoren gelernt habe, als ich gewusst habe. ich weiß jetzt, wie und wo sie angeordnet sind, und wie das geht. ich weiß, dass es nur "pointer" auf die funktionen sind. davor habe ich immer die API versucht an die stelle zu schreiben, was natürlich nicht funktioniert hat. mittlerweile habe ich meine API auf mehrere Interrupts ausgeweitet, die zusammen über 30 funktionen haben.
lange rede, kurzer sinn: man braucht meiner meinung eine grundlage, und die ist meiner meinung nach am besten code.
diese benutzt man dann, und weil man sich mehr mit ihr beschäftigt, und dem ganzen überhaupt, versteht man irgendwann, wie sie geht, und schreibt die funktion um, weil jeder seine eigene funktion für besser findet. allerdings sollte nur so viel code da sein, wie gebraucht wird, um was zu machen, was z.B. heißt, dass nur eine "API-Init-Funktion" da ist, aber noch keine API. dann hat man eine grundlage, und macht trotzdem noch etwas. deswegen finde ich solche sachen, wie ein LowlevelOS zwar als idee ganz gut ist, aber trotzdem sollte keiner davon abschreiben. wir könnten es aber auch so machen, wie die von linux, und erzählen, jeder kann den code haben, den schreiben wir dann aber so, dass keiner die wichtigen stellen findet, wenn er nicht versteht, was der code macht ;-))) was ich denke, was bei tuts am besten ist, währe zum beispiel, dass man bei einem fat12-tut eine funktion als code reinmacht, die einem mit jedem aufrufen einen dateinamen des rootdirs und wenn keiner mehr da ist 0 zurück gibt. dann hat man einen code, ein manual und muss nicht bei 0 anfangen. mit der funktion könnte man dann schon eine dir-funktion bauen, allerdings müsste man für eine write-funktion noch mehr können, als diese funktion, also muss man sich mehr damit beschäftigen, und es dann verstehen. und das halte ich für optimal.
-
Und was glaubst du haben die Leute gemacht die im OS-Dev waren bevor es Bootloadererklärung im Netz gab? Genau, die haben sich selbst dran gesetzt auch wenns 2 Monate gedauert hat (das ist nich unrealistisch ohne jede Grundlage). Ergo kann man schon anfechten das man aus 0 angeblich nix schaffen kann.
-
ok, aber die, die erste erklärung zu dem thema gemacht haben waren erbauer der CPU => sie kannten sich damit aus. und du kannst nicht anfechten, dass du etwas, wovon du NICHTS weißt auch nicht machen kannst. die ersten hatten wenigstens das wissen, wie ihr PC funktioniert, weil sie ihn selber gebaut haben.
-
Also ich hab den ersten Bootloader aus Lowlevel auch kopiert. Einfach um auszuprobieren wie es geht.
Mir war das ständige copieren mit Rawwrite aber zu lästig.
Also hab ich mir das FAT12 Manual besorgt und mich halt mal ein paar Tage hingesetzt und meinen eigenen Bootloader geschrieben.
Es geht alles. Man muss halt ein bissl Geduld haben. Und ohne lesen geht halt nix...
-
Die CPU Bauer können dir da auch wenig helfen, im Prinzip kann die CPU erstmal gar nichts. Erst durch die Controllert die der Prozessor über Ports ansprechen kann wird was draus. Und die Dokus kommen meist von anderen Herstellern. Also mussten sich die ersten OS-Dever(auf heutigen x86 CPU's auf anderen Architekturen (Alpha...) kannst du das alles schon fast vergessen) durch viele Dokus kämpfen damit ein funktionierender Bootloader (oder auch ein BIOS, das ja auch erstmal programmiert werden musste) zu stande kam. Mit etwas aus dem nichts schaffen meine ich ja nicht irgendwelche Befehle an die CPU zu schicken und mal schauen was rauskommt, sondern anhand der Dokus von vielen verschiedenen Herstellern etwas zu kreiren das funktioniert.
Und wenn ich von etwas nichts weiß, und auch nichts dazu finde, dann suche ich mir etwas aus dem ich mir selbst etwas ableiten kann, habe ich schon oft gemacht, nicht nur im OS-Dev, sondern auch in Mathe, wo ich mir schon viele Formeln, die es so garnicht gibt, zur Vereinfachung selbst "gebastelt" habe. Man (zumindest ich) braucht nicht bei jedem Thema einen "Lehrer" der einem das haarklein erklärt, sondern sollte sich vieles auch aus dem Wissen das man hat selbst herleiten können, wäre das nicht so, dann würde kein Wissenschaftler etwas neues erfinden können, weil ihm kein andrer sagen kann wie es geht, eben weil's noch nicht erfunden ist.
Ich möchte ja auch nicht abstreiten, das ich meinen ersten Bootloader kopiert habe, aber mir hat das nicht ausgereicht was der konnte und da es wenig Tuts gibt, die über einen einfachen Bootloader hinausgehen, musste ich einiges an Dokus durchgehen um weiter zu kommen.
Als kurzes Fazit: Wir können froh sein, dass es vor uns Leute gab, die sich schon damit beschäftigt haben und uns so die mühselige Arbeit eines (sehr einfachen, d.h. ohne viele Funktionen) Bootloaders abgenommen haben. Anhand dessen konnten wir dann unser Verständniss aufbauen. Aber es gibt noch sicher sehr viele Algorythmen die gefunden werden wollen, um damit der Nachwelt zu helfen, aber einer muss sich erst die Arbeit machen und diese suchen und dabei kann ihm keiner helfen, er hat nur sein eigenes Wissen, und ich sage immer: "Wenn ich es nicht mache macht es keiner." Solchen und ähnlichen Philosophien ist es denke ich zu verdanken, dass wir vom Wissen heute da sind wo wir sind und wir müssen dafür Sorge tragen das die Menschheit in 50 Jahren, aufgrund unserer Hilfe, noch viel weiter ist und dafür wird es noch oft so sein das wir etwas, nehezu, aus dem Nichts schaffen müssen.
PS: Verzeiht mir meine Schachtelsätze, die sind eine Spezialität von mir und tragen oftmals zum Unverständniss unter der Leser/Hörerschaft bei
-
Ich persöhnlich bin auch immer froh wenn ich neben einem Tutorial noch ein wenig Code zu sehen bekomme.
Aber nicht ums einfach zu kopieren, sondern damit ich einen Einstieg habe. Also mehr nur ein Sprungbrett damit ich weiß wo ich Anfangen/Ansetzen muss.
-
@roshl: stimmt auch wieder... aber wir reden von OS-Dev, und nicht von Mathe. in Mathe ist das was anderes, da geht es um Formeln, und die sind gleich aufgebaut. Aber wenn du ASM, C und Java kannst kannst du dir nicht herleiten, wie ein Bootloader geht.
-
Hab ich auch nicht behauptet, aber man kanns auch rausfinden ohne, dass man einen von anderen erst nehmen müsste. Und Formeln in Mathe sind auch nicht wirklich immer gleich aufgebaut, aber das ist ein anderes Thema^^.