2 Fragen.
-
- Beiträge: 39
- Registriert: 03.07.2006 11:17:38
2 Fragen.
Hallo.
Ich habe mir mal aus Neugier die Linux kernel Source geladen. Nun wollte ich einfach mal schauen was so passiert. Ich habe aber auch was darüber gelesen, das der »make« Code benutzt werden muss, weil dort eine "MAKEFILE" ist. Nur was genau macht der »make« Code?
Dann wollte ich gerne noch wissen, wie ich in den loader von Linux eintragen kann, das mein 2. System (minix 3, welches ich einfach nur aus test zwecken installiert habe) beim Start auch auswählbar ist.
HDD [0]
- [0] Minix 3 Partition
- [1] Debian Partition
- [2] SWAP dingens :S
So in etwa wird das sein.
Wie kann ich meine minix Partition mit eintragen?
Christian
Ich habe mir mal aus Neugier die Linux kernel Source geladen. Nun wollte ich einfach mal schauen was so passiert. Ich habe aber auch was darüber gelesen, das der »make« Code benutzt werden muss, weil dort eine "MAKEFILE" ist. Nur was genau macht der »make« Code?
Dann wollte ich gerne noch wissen, wie ich in den loader von Linux eintragen kann, das mein 2. System (minix 3, welches ich einfach nur aus test zwecken installiert habe) beim Start auch auswählbar ist.
HDD [0]
- [0] Minix 3 Partition
- [1] Debian Partition
- [2] SWAP dingens :S
So in etwa wird das sein.
Wie kann ich meine minix Partition mit eintragen?
Christian
- KBDCALLS
- Moderator
- Beiträge: 22456
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Willomen im Forum. make ist ein Befehl , der wenn es File Namens MAKEFILE vorfindet nach den drin enhaltenen Anweisungen den Sourcecode übersetzt. (gcc. Linker usw. ) Das müßte man sonst alles von Hand machen. Häufig ist es aber so das Makefile erst erstellt werden muß.
Hat Minix einen eigenen Bootloader? Und welchen Bootloader setzt du den ein ?
Hat Minix einen eigenen Bootloader? Und welchen Bootloader setzt du den ein ?
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
-
- Beiträge: 39
- Registriert: 03.07.2006 11:17:38
Danke für die schnelle Antwort.
Und wieso sind MAKEFILE Dateien so seltsam aufgebaut? Es sieht auch wie switch in C, also wie die einzelnen cases.
Ich habe momentan mit Linux den GRUB-Loader wenn ich mich nicht irre.
Christian
Ich hatte den »gcc« code benutzt und musste mit erschrecken feststellen das der code nicht funktioniert. Dannach habe ich es mit g++ versucht und es funktioniert. Den Unterschied kenn ich also nicht wirklich. Ich habe C++ und nicht C gelernt. Kann es sein das gcc für C Files ist, also normal »C« und g++ für C++ Files?KBDCALLS hat geschrieben:make ist ein Befehl , der wenn es File Namens MAKEFILE vorfindet nach den drin enhaltenen Anweisungen den Sourcecode übersetzt. (gcc. Linker usw. ) Das müßte man sonst alles von Hand machen. Häufig ist es aber so das Makefile erst erstellt werden muß.
Und wieso sind MAKEFILE Dateien so seltsam aufgebaut? Es sieht auch wie switch in C, also wie die einzelnen cases.
Ich verstehe den Aufbau leider nicht ganz. Gibt es dazu ein Tutorial? Am besten in deutsch.Makefile hat geschrieben:...........
depend::
mkdep kernel
mkdep servers
mkdep drivers
cd kernel && $(MAKE) $@
cd servers && $(MAKE) $@
cd drivers && $(MAKE) $@
............
Ich weiß nicht recht ob minix einen eigenen Loader hat. Es wird auf jeden Fall, minix automatisch gestartet wenn nur minix drauf ist.KBDCALLS hat geschrieben:Hat Minix einen eigenen Bootloader? Und welchen Bootloader setzt du den ein ?
Ich habe momentan mit Linux den GRUB-Loader wenn ich mich nicht irre.
Christian
Jepp, dem ist so...ChristianW hat geschrieben: Kann es sein das gcc für C Files ist, also normal »C« und g++ für C++ Files?
http://de.wikipedia.org/wiki/MakeChristianW hat geschrieben: Ich verstehe den Aufbau leider nicht ganz. Gibt es dazu ein Tutorial? Am besten in deutsch.
Ansonsten gibts ja noch google...
mfg
mauser
-
- Beiträge: 39
- Registriert: 03.07.2006 11:17:38
Oha, das C von C++ so stark abscheift hätte ich nicht gedacht. Arbeitet C etwa nicht ohne main() Funktion?mauser hat geschrieben:Jepp, dem ist so...ChristianW hat geschrieben: Kann es sein das gcc für C Files ist, also normal »C« und g++ für C++ Files?
Hmm... Nur was ich da nicht ganz verstehe, das da etwas über Linker und sowas steht. Ich habe ein Test-Programm compiliert und es war schon "Einsatzfähig".mauser hat geschrieben:http://de.wikipedia.org/wiki/Make
Ansonsten gibts ja noch google...
mfg
mauser
Naja, ich lese den Artikel aber am besten erst bis zum Schluss durch.

Es wäre aber nett, wenn du, oder jemand anderen mir das mit der Eintragung im Loader erklären könntest, weil ich nicht gerne Linux nachdem ich Minix getestet habe extra neu installieren wollte.
Christian
- KBDCALLS
- Moderator
- Beiträge: 22456
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Falls Minix die möglichkeit besitzt seinen Bootloader in die Partiton zu schreiben wo mans hininstalliert ,als nicht nur in den MBR
dann könntest du Minix über den chainloader von Grub starten. Das könnte dann so aussehen.
Ne zeitlang habe ich mal den Grub von SuSE so gestartet.
C war als erstes da , und C++ ist eine Erweiterung davon.
dann könntest du Minix über den chainloader von Grub starten. Das könnte dann so aussehen.
Code: Alles auswählen
title minix
root (hd0,1)
chainloader +1
Ne zeitlang habe ich mal den Grub von SuSE so gestartet.
C war als erstes da , und C++ ist eine Erweiterung davon.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.
ich weiss zwar nicht was minix ist aber normal kannste in deiner /boot/grub/menu.lst
unter
das andere OS eintragen musst natürlich wissen wo es liegt.
und oben
stellste ein welches als default gebootet werden soll.
unter
Code: Alles auswählen
### END DEBIAN AUTOMAGIC KERNELS LIST
# This is a divider, added to separate the menu items below from the Debian
# ones.
# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/hda1
title debian hda1
oot (hd0,5)
kernel /vmlinuz-2.6.17.1-s root=/dev/hda1 ro
boot
und oben
Code: Alles auswählen
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
default 0
Kernel/OS Linux 2.6.31.5-s64 [ Debian sid ]
CPU Info AMD Athlon 64 X2 Dual Core 6000+
Memory 2027.1MB
XFX GeForce 9600 GT
CPU Info AMD Athlon 64 X2 Dual Core 6000+
Memory 2027.1MB
XFX GeForce 9600 GT
-
- Beiträge: 39
- Registriert: 03.07.2006 11:17:38
Ich habe mal versucht eine Makefile zu erstellen, was aber irgendwie nicht ganz funktionieren will ^^mauser hat geschrieben:Jepp, dem ist so...ChristianW hat geschrieben: Kann es sein das gcc für C Files ist, also normal »C« und g++ für C++ Files?
http://de.wikipedia.org/wiki/MakeChristianW hat geschrieben: Ich verstehe den Aufbau leider nicht ganz. Gibt es dazu ein Tutorial? Am besten in deutsch.
Ansonsten gibts ja noch google...
mfg
mauser
Code: Alles auswählen
CC?= c++
LD?= ld
prog: test1.obj test2.obj
$(LD) -o prog test1.obj test2.obj
test1.obj: test1.c
$(CC) -o test1.c test1
test2.obj: test2.c
$(CC) -o test2.c test2
Wäre nett wenn du mir sagen könntest, wie es richtige wäre.make: *** Keine Regel vorhanden, um das Target »test1.c«,
benötigt von »test1.obj«, zu erstellen. Schluss.
-------------------
Zu dem anderen mit den Loader.
Ich werde es mal versuchen es in die Menu Liste mit einzutragen.
Danke

Christian
-
- Beiträge: 39
- Registriert: 03.07.2006 11:17:38
Ich bin die Datei gerade am editieren, aber ich scheitere an »boot« und an »initrd«Schlingel hat geschrieben:ich weiss zwar nicht was minix ist aber normal kannste in deiner /boot/grub/menu.lst
unterdas andere OS eintragen musst natürlich wissen wo es liegt.Code: Alles auswählen
### END DEBIAN AUTOMAGIC KERNELS LIST # This is a divider, added to separate the menu items below from the Debian # ones. # This entry automatically added by the Debian installer for a non-linux OS # on /dev/hda1 title debian hda1 oot (hd0,5) kernel /vmlinuz-2.6.17.1-s root=/dev/hda1 ro boot
und obenstellste ein welches als default gebootet werden soll.Code: Alles auswählen
# You can specify 'saved' instead of a number. In this case, the default entry # is the entry saved with the command 'savedefault'. default 0
Habe diesen Text schon hinzugefügt:
Code: Alles auswählen
title Minix 3
root (hd0,0)
kernel /
initrd /
savedefault
boot
Aber weil es Automatisch gestartet ist, kann es sein, das ich das einfach weglassen kann?

Achja, als ich auf der Suche nach dem passenden Kernel Zeugs und so war, habe ich mal unter den Source von Minix geschaut. Hier sind die Files die in dem Ordner /minix/src/boot bestehen:
Code: Alles auswählen
. bootblock.s bootimage.c jumpboot.s mkfile.c
.. boot.c doshead.s Makefile rawfs.c
addaout.c boot.h image.h masterboot.s rawfs.h
a.out2com boothead.s installboot.c mkfhead.s
Christian