Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 02:08

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Bootbares Programm

Discussion on Bootbares Programm within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
Critone's Avatar
 
elite*gold: 149
Join Date: Feb 2010
Posts: 1,298
Received Thanks: 346
Bootbares Programm

Hallo,

ich möchte ein bootbares Programm schreiben das Dateien auf einem Datenträger kopiert und umbenennt.

Leider weiß ich nicht wie genau ich das anstellen soll. Ich könnte zwar ausreichend C, C++, C# oder Java um so ein Programm für Windows zum laufen zu bringen, jedoch möchte ich ein bootbares DOS-Programm (ähnlich wie UBCD o.ä.).

Was benötige ich dazu bzw. womit muss ich mich dafür beschäftigen?

Gruß
Critone
Critone is offline  
Old 03/31/2016, 01:09   #2
 
elite*gold: 0
Join Date: Jul 2009
Posts: 211
Received Thanks: 137
Du kommst nicht drumherum ein OS zu nutzen. Du könntest z.B. Arch oder ein anderes
light-weight linux auf einen USB-Stick installieren und das Programm nach dem anmelden starten. Distributionen für sowas gibt es wie Sand am Meer, solltest du aber nichts finden kannst du dir ja deine eigene bauen. Für einfaches verschieben und umbennen reicht ein Shell-Skript aus.
Mysthik is offline  
Old 03/31/2016, 01:14   #3
 
Critone's Avatar
 
elite*gold: 149
Join Date: Feb 2010
Posts: 1,298
Received Thanks: 346
Aber genau das möchte ich ja nicht, ein Betriebssystem starten um das Programm auszuführen.

Irgendwie muss es doch möglich sein ein Programm das man booten kann zu erstellen. (Navigation über Tastatur, keine grafische Oberfläche!)
Critone is offline  
Old 03/31/2016, 01:34   #4
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by Critone View Post
Aber genau das möchte ich ja nicht, ein Betriebssystem starten um das Programm auszuführen.

Irgendwie muss es doch möglich sein ein Programm das man booten kann zu erstellen. (Navigation über Tastatur, keine grafische Oberfläche!)
Auf einem PC ohne Betriebssystem musst du dich um alles (ja genau ALLES) selbst kümmern. Es gibt nicht einmal sowas wie "printf" (zumindest nicht in dieser schönen Variante). Das heißt wenn du ein Programm bootbar machen willst musst du erst einmal ein Mini-OS selbst schreiben (bzw. dein Programm muss es beinhalten bzw. selbst eines sein).

Ein OS zu schreiben ist viel Arbeit und verdammt komplex.
Ich würde dir ganz dringend davon abraten ohne entsprechende Kenntnisse...
Schnapp dir eine Linux-Variante und bearbeite den Source-Code (Linux-Kernel ist ja Open-Source) so wie du ihn brauchst.
Du kannst mir glauben das ist deutlich einfacher als ein komplett eigenes OS zu schreiben, welches auch noch ein Programm (möglicherweise sogar noch in C#, AutoIt, Java o.ä.) "ausführen" soll.

Falls du dennoch ein eigenes kleines OS bauen willst, viel Spaß:
1.
2.

Edit:
Quote:
First of all, developing an operating system is probably one of the most challenging things you can do on a computer (next to killing the final boss in Doom on Nightmare difficulty level). Composing an operating system requires a lot of knowledge about several complex areas within computer science. You need to understand how hardware works, be able to read and write the complex Assembly language, and also a higher level language (like for instance C, C++ or Pascal). Your mind has to be able to wrap itself around abstract theory, and hold a myriad of thoughts. Feel discouraged yet? Don't fear! Because all of these things are also the things that makes OS programming fun and entertaining.

There is nothing like the feeling of accomplishment when you - finally - after hours of struggling solve the problem. And after some time you are able to look back and see all of the things you've created from scratch. Your handwritten system is able to boot, performs magic against the hardware, and gives the user a user interface and programs to play with.
There is no absolute path you have to take when creating an OS. Once you get your initial system up and running (and you do this by finding appropriate tutorials), you choose the path you want to take next. Your OS is exactly that - yours. You have ultimate control, and the sky is the limit!

Hopefully the basic fact that operating system development is a complicated and on-going process does not discourage you. The truth is, operating system development is truly unparalleled since it requires the utmost amount of patience, careful code design and returns very little to no "instant gratification" you get from the development of things like games and web based scripting.

Quelle:
Edit2:
Selbst UBCD basiert auf dem Linux-Kernel, zumindest wird es angedeutet:
Quote:
Not one to give up so easily, I tried burning DFT to a bootable CD using Nero, but for some reason that didn't work too. After some research on the Net, I discovered isolinux and memdisk, and successfully ran DFT using the combo. I was fired up from the success, and assembled a few DOS diagnostic programs to form the first release of the UBCD (Ultimate Boot CD).

Und

Quote:
The Ultimate Boot CD would not have been possible without the syslinux/isolinux/memdisk project.

Shadow992 is offline  
Thanks
1 User
Old 03/31/2016, 03:31   #5
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
Also natürlich haben die Vorposter schon recht, ein eigenes Betriebsystem zu schreiben ist viel aufwand, aber das musst du nicht unbedingt komplett machen. Prozessqueue, Multithreading oder ähnliches brauchst du ja nicht, du benötigst ja nur selektive Funktionalität, was das ganze schon einfacher macht.

Wenn du wirklich eine OS Anwendung schreiben willst such dir einen minimalistischen kernel. Es gibt viele Projekte zu Bildungszwecken online. Auf Basis dessen könntest du dann einfach dein Programm implementieren.

Das größte Problem wird dir aber wohl das Dateisystem machen, daher würde ich dir empfehlen einfach ein Bestehendes System zu verwenden.
Quote:
Du kommst nicht drumherum ein OS zu nutzen. Du könntest z.B. Arch oder ein anderes
light-weight linux auf einen USB-Stick installieren und das Programm nach dem anmelden starten. Distributionen für sowas gibt es wie Sand am Meer, solltest du aber nichts finden kannst du dir ja deine eigene bauen. Für einfaches verschieben und umbennen reicht ein Shell-Skript aus.
Meiner Ansicht nach ist das Oberon System der ETH für so etwas perfekt geeignet. Das OS ist nicht mal 2 MB groß, bietet Grafisches Layout, läuft auf i386 und x86-64 Intel und AMD Systemen, stellt eine recht einfache OOP Sprache zur verfügung, und bietet eigentlich alles was man so benötigt

Auch wenn ich nicht weiß in wie fern Oberon Dateisysteme wie NTFS unterstützt
warfley is offline  
Thanks
1 User
Old 03/31/2016, 12:56   #6
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by warfley View Post
Also natürlich haben die Vorposter schon recht, ein eigenes Betriebsystem zu schreiben ist viel aufwand, aber das musst du nicht unbedingt komplett machen. Prozessqueue, Multithreading oder ähnliches brauchst du ja nicht, du benötigst ja nur selektive Funktionalität, was das ganze schon einfacher macht.

Wenn du wirklich eine OS Anwendung schreiben willst such dir einen minimalistischen kernel. Es gibt viele Projekte zu Bildungszwecken online. Auf Basis dessen könntest du dann einfach dein Programm implementieren.

Das größte Problem wird dir aber wohl das Dateisystem machen, daher würde ich dir empfehlen einfach ein Bestehendes System zu verwenden.

Meiner Ansicht nach ist das Oberon System der ETH für so etwas perfekt geeignet. Das OS ist nicht mal 2 MB groß, bietet Grafisches Layout, läuft auf i386 und x86-64 Intel und AMD Systemen, stellt eine recht einfache OOP Sprache zur verfügung, und bietet eigentlich alles was man so benötigt

Auch wenn ich nicht weiß in wie fern Oberon Dateisysteme wie NTFS unterstützt
Naja die 100MB für den Linux-Kernel wird man doch wohl übrig haben oder? Die Zeiten von Disketten und Co sind ja vorbei und obwohl selbst CDs als leicht veraltet angesehen werden, hätte man dort noch rund 600Mb frei.

Daher meine Empfehlung: Schnapp dir einen Linux-Kernel. Damit hat man alles was man will und kann jedemenge anstellen, außerdem ist das Debugging schön, man hat viele tolle Befehle (vor allem für das Datei-System), die man verwenden kann und vieles mehr (falls man doch einmal Multithreading oder so braucht).

NTFS wird ebenso unterstützt wie Fat32 oder Fat64, was will man mehr?

Edit:
Falls es dir wirklich auf jedes Byte ankommt, ist warfleys Lösung natürlich zu bevorzugen. Dann wirst du aber sicher noch etwas an Eigenaufwand reinstecken müssen und zwar deutlich mehr als bei einem Linux-Kernel.
Shadow992 is offline  
Old 03/31/2016, 16:54   #7
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
Quote:
Originally Posted by Shadow992 View Post
Naja die 100MB für den Linux-Kernel wird man doch wohl übrig haben oder? Die Zeiten von Disketten und Co sind ja vorbei und obwohl selbst CDs als leicht veraltet angesehen werden, hätte man dort noch rund 600Mb frei.

Daher meine Empfehlung: Schnapp dir einen Linux-Kernel. Damit hat man alles was man will und kann jedemenge anstellen, außerdem ist das Debugging schön, man hat viele tolle Befehle (vor allem für das Datei-System), die man verwenden kann und vieles mehr (falls man doch einmal Multithreading oder so braucht).

NTFS wird ebenso unterstützt wie Fat32 oder Fat64, was will man mehr?

Edit:
Falls es dir wirklich auf jedes Byte ankommt, ist warfleys Lösung natürlich zu bevorzugen. Dann wirst du aber sicher noch etwas an Eigenaufwand reinstecken müssen und zwar deutlich mehr als bei einem Linux-Kernel.
100 MB du bist gut, der Linux kernel ist in Minimalistischer Form auch nur 30 MB Groß

Ich denke sogar das Oberon nicht unbedingt mehr Aufwand ist, da Oberon auch diverse Dateisysteme unterstützt (Unter anderem auch Windows Fat32 und es gibt aktuellere Projekte die auch NTFS unterstützten), und das Betriebsystem selbst deutlich einfacher anzupassen ist, da der Quellcode des Systems nur ein paar hundert Zeilen lang ist.

Außerdem kann man ein grafisches Interface sehr einfach verwenden.

Ich denke ob man jetzt Linux (mit X11 und GTK für das GUI) oder Oberon nutzt gibt sich nicht so sehr viel. Ich persönlich finde vor allem Oberon als Sprache relativ cool, und es wurde eben auch für genau so etwas entwickelt (also Programme auf einem Minimalistischen Betriebsystem zu schreiben. Oberon ist wie die JVM mit Java, nur das es auch Nativ auf einem echten PC läuft)
warfley is offline  
Old 03/31/2016, 17:31   #8
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by warfley View Post
100 MB du bist gut, der Linux kernel ist in Minimalistischer Form auch nur 30 MB Groß

Ich denke sogar das Oberon nicht unbedingt mehr Aufwand ist, da Oberon auch diverse Dateisysteme unterstützt (Unter anderem auch Windows Fat32 und es gibt aktuellere Projekte die auch NTFS unterstützten), und das Betriebsystem selbst deutlich einfacher anzupassen ist, da der Quellcode des Systems nur ein paar hundert Zeilen lang ist.

Außerdem kann man ein grafisches Interface sehr einfach verwenden.

Ich denke ob man jetzt Linux (mit X11 und GTK für das GUI) oder Oberon nutzt gibt sich nicht so sehr viel. Ich persönlich finde vor allem Oberon als Sprache relativ cool, und es wurde eben auch für genau so etwas entwickelt (also Programme auf einem Minimalistischen Betriebsystem zu schreiben. Oberon ist wie die JVM mit Java, nur das es auch Nativ auf einem echten PC läuft)
Hmm vielleicht sollte ich einmal anfangen die Paketdienste zu hinterfragen, wenn mir Ubuntu wieder versucht "100MB Kernel-Update" aufzudrehen.

Naja bleibt Geschmackssache, ich bin halt Linux liebhaber (hat man gar nicht merkt, glaub ich ).
Prinzipiell hast du aber Recht, es ist scheiß egal welchen Kernel man nimmt, solange der Kernel die entsprechenden "Basics" mitbringt.

Shadow992 is offline  
Old 04/09/2016, 17:58   #9
 
NullEisen's Avatar
 
elite*gold: 0
Join Date: Jan 2016
Posts: 26
Received Thanks: 12
Quote:
Originally Posted by Critone View Post
Hallo,

ich möchte ein bootbares Programm schreiben das Dateien auf einem Datenträger kopiert und umbenennt.

Leider weiß ich nicht wie genau ich das anstellen soll. Ich könnte zwar ausreichend C, C++, C# oder Java um so ein Programm für Windows zum laufen zu bringen, jedoch möchte ich ein bootbares DOS-Programm (ähnlich wie UBCD o.ä.).

Was benötige ich dazu bzw. womit muss ich mich dafür beschäftigen?

Gruß
Critone
Das ist eines von diesen "wenn du fragen musst wie du anfangen sollst, dann ist es zu kompliziert für dich" Themen.
Glaub mir, du willst definitiv nicht deinen eigenen Bootloader + Kernel + Dateisystem + CLI schreiben. Da hättest du vermutlich monatelang was zu tun.
Wenn du einfach nur Dateien kopieren willst ist perfekt.
NullEisen is offline  
Reply


Similar Threads Similar Threads
[Batch] start programm, wait, close programm and redo after 60sec ?!
08/06/2013 - General Coding - 1 Replies
Hallo ich versuche gerade mit Batch das im Titel genannte zu erreichen. Soweit bin ich schon: @echo off cls :start START "Mozilla Firefox" /wait "C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
[Suche] Programm das ermittelst welche ports von einem programm verwendet werden
04/06/2012 - Off Topic - 3 Replies
Hallo, ich versuche immer einen apache server auf meinen pc laufen zu lassen mit xampp nur ich kann das apache nicht starten ka warum ich denke der port wird von irgend einem anderen programm verwändet. skype alles beendet aber geht immernochnicht und jetzt suche ich ein gutes programm mit dem ich herausfinden kann welche ports von welchem programm belegt werden Wäre toll wenn mir hier einer ein Programm nennen kann MFG Benni
Erstes Deutsches All-in-One Multiboxing Programm (Offizieles Legales Programm)
07/10/2010 - World of Warcraft Trading - 2 Replies
Noch nie war Multiboxing leichter, MMObox unterstützt Sie mehrere Charaktere gleichzeit zu spielen, dabei wird nur ein PC benötigt. MMObox steuert im Hintergrund Ihre Charaktere mit Makros. Bis zu 5 Cahraktere gleichzeitig steuern Es wird nur ein PC benötigt Makrofunktionen für alle Charaktere z.b Alle folgen, essen, trinken, aufsitzen....



All times are GMT +1. The time now is 02:11.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.