• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 16, 2025, 21:54:43 pm

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 16, 2025, 21:54:43 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[Today at 19:49:00]

[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[Today at 16:56:56]

[Εφ.Θερμοδυναμική] Γενικέ...
by Λαμπτήρας
[Today at 15:55:08]

[Αρχές Οικονομίας] Να επι...
by _Trob
[Today at 13:28:21]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[Today at 12:13:45]

Αποτελέσματα Εξεταστικής ...
by Nikos_313
[Today at 12:01:53]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by George_RT
[Today at 10:22:18]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[Today at 01:56:37]

Ισραήλ - Ιράν: Πόλεμος στ...
by Katarameno
[June 15, 2025, 20:08:49 pm]

Αντικατάστασης πυκνωτή σε...
by nmpampal
[June 15, 2025, 16:25:56 pm]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]

ΠΡΟΣΟΧΗ στο ανέβασμα θεμά...
by tzortzis
[June 14, 2025, 16:54:08 pm]

Ρυθμίσεις Θεμάτων της Ανώ...
by el mariachi
[June 14, 2025, 11:56:45 am]

Πότε θα βγει το μάθημα; -...
by Nikos_313
[June 14, 2025, 10:00:55 am]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]

Αλέξης Τσίπρας, η επιστρο...
by Yamal
[June 14, 2025, 04:42:23 am]

Έναρξη Δηλώσεων Συμμετοχή...
by IEEE SB
[June 14, 2025, 00:10:19 am]

[Δυναμική Συμπεριφορά ΣΗΕ...
by soko_freta
[June 13, 2025, 01:05:36 am]
Στατιστικά
Members
Total Members: 9960
Latest: valco08
Stats
Total Posts: 1426676
Total Topics: 31711
Online Today: 226
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 71
Guests: 80
Total: 151
Nekt
dimitrisblioumis
ThanosV
apsathas
Fotis
kouf
filkilkis
valco08
George15
ggalamat
tsaliki
picklebeanburger
elischat
Carot1456
mixkats
giorgos_skl
gpapailio
Tasaras
RedSkyline
Gaspard
Captain
pliroforikarios
evangeliaap
Σταυρος23
pavlos2003
immo
kaskas12
aalmpanb
iliaspapas
Roidos
AgaG
kkotsopo
aachmet
gkougeor
akoil
1234
glavdakis
soph553
Pcsc
0restis
Deviate
alexlemp
themis01
thathas12
ppapadoe
johnk
jojos
kpapama
Toaoutplasedakitoubiseswa
atampakc
dleivadi
BossiTsif
Argiris
ellimoschou
theofr
gkyrodi
stolieras
theresnocur3
amprozos
DK06
dorapangeiou
ΦΙδανης Αριστοτελης
alexbaroutes
stefpapa21
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Πληροφορίες Καθηγητών
THMMY.gr > Forum > Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα > Περί Υπολογιστών... > Software (Moderators: chatzikys, PolarBear) > Ξέρει κανείς να γράφει bootloaders για x86? Γιατί κόλλησα...
0 Members and 1 Guest are viewing this topic.
Pages: [1] Go Down Print
Author Topic: Ξέρει κανείς να γράφει bootloaders για x86? Γιατί κόλλησα...  (Read 2146 times)
nmpampal
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 633



View Profile
Ξέρει κανείς να γράφει bootloaders για x86? Γιατί κόλλησα...
« on: August 10, 2020, 23:38:42 pm »

PS: Ποιος καθηγητής κάνει το μάθημα για operating systems?;Έρχομαι από άλλη σχολή για αυτό ρωτά, το πέρασα στην Κρήτη αυτό το μάθημα.
Θα με βοηθούσε αν του έστελνα ένα email η θα με γράψει στα τέτοια του;


Επειδή έχω ένα παλιό pc αυτήν την στιγμή και δυσκολεύεται πολύ όταν δουλεύεις με web apps και android
και έτσι κάθομαι και μαθαίνω πως να φτιάξω ένα os από το μηδέν.

Τώρα έχω κολλήσει σε μια έννοια που ονομάζεται segments initialization και πρέπει όταν φορτώνεται ο boot loader να
κάνω initialize τους registers ds, es, ss και τους registers bp και sp.

Ένας εύκολος τρόπος είναι να δηλώσεις το directive [org 0x7c00] για τον nasm assembler και να κάνεις   es, ss = 0 και στην συνέχεια να βάλεις τους bp = sp = με μια διεύθηνση που
είναι ελέυθερη. Στο github repo που θα σας δώσω παρακάτω, αυτό το κάνω στο master branch.

Ο δεύτερος τρόπος, είναι να βάλεις τον ds = 0x7c0 το οποίο νομίζω είναι αυτό που κάνει αυτόματα το directive του assembler nasm [org 0x7c00].

To θέμα είναι ότι όταν χρησιμοποιώ τoν δεύτερο τρόπο κάτι παθαίνει το stack μου και δεν δουλεύει τίποτα.

Εδω: babaliaris/bootloader μπορείτε να δείτε και να κάνετε clone. Ο κώδικας είναι πολύ μικρός.

Υπάρχουν 3 branches: master, noorg-50kb και noorg-50bytes
Στο  master χρησιμοποιώ τον πρώτο τρόπο για segment initialization, ενώ στα άλλα 2 τον δεύτερο.
Το 3ο branch είναι ακριβώς το ίδιο με το noorg-50kb , αλλά κάνει allocate στο stack λιγότερα bytes (50bytes αντί 50kb)

1) Το master δουλεύει μια χαρα και ως output θα πρέπει να δείτε: 0xabcd. Hello World! Disk Error!
2) To noorg-50kb δεν δουλεύει σωστά, εμφανίζει άκυρους χαρακτήρες που λογικά σημαίνει ότι κάτι δεν πάει καλά με το stack, γιατι οι print ρουτίνες μου χρησιμοποιούν το stack.
3) To noorg-50bytes δουλεύει, εμφανίζει το output όπως και στο master, με την διαφορά ότι έχω κάνει λιγότερο allocation στο stack.

Αλλά δεν μπορώ να βγάλω άκρη. Γιατι η μέθοδος 3) δουλεύει ενώ η 2) όχι;

Στην 1) όσο stack και να κάνω allocate, ακόμα και αν πέφτει πάνω στην μνήμη που είναι φορτωμένο το bios πάλι δουλεύει που με κάνει να κοπανάω το κεφάλι μου, εκτός και αν τυχαίνει να κάνω
override την μνήμη του bios που δεν χρησιμοποιώ. Χρησιμοποιώ μόνο τα interupts 0x10 (γράψε ένα χαρακτήρα στην οθόνη) και 0x13 για manipulation του hard drive.

Στο noorg-50kb θα δείτε κάτι περίεργο.
« Last Edit: August 10, 2020, 23:46:08 pm by nmpampal » Logged
koumanas
Θαμώνας
****
Posts: 323



View Profile
Re: Ξέρει κανείς να γράφει bootloaders για x86? Γιατί κόλλησα...
« Reply #1 on: August 11, 2020, 19:23:06 pm »

Νομίζω ο Καλογιάννης μπορεί να σε βοηθήσει. http://users.auth.gr/gkalogiannis/
Logged
nmpampal
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 633



View Profile
Re: Ξέρει κανείς να γράφει bootloaders για x86? Γιατί κόλλησα...
« Reply #2 on: August 11, 2020, 23:36:15 pm »

Quote from: koumanas on August 11, 2020, 19:23:06 pm
Νομίζω ο Καλογιάννης μπορεί να σε βοηθήσει. http://users.auth.gr/gkalogiannis/

Καθηγητής στην σχολή μας είνα;
Logged
koumanas
Θαμώνας
****
Posts: 323



View Profile
Re: Ξέρει κανείς να γράφει bootloaders για x86? Γιατί κόλλησα...
« Reply #3 on: November 01, 2020, 18:14:32 pm »

Quote from: nmpampal on August 11, 2020, 23:36:15 pm
Καθηγητής στην σχολή μας είνα;

Υπ. Διδ.
Logged
Σοκοφρέτας
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 117



View Profile
Re: Ξέρει κανείς να γράφει bootloaders για x86? Γιατί κόλλησα...
« Reply #4 on: November 18, 2020, 03:51:00 am »

μπες στο slack του μαθήματος "λειτουργικά συστήματα " και μίλα με όποιον θες (σε προσωπικό μήνυμα θα πρότεινα)
sent from mTHMMY 
Logged
Pages: [1] Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...