Εντολή int86 και linux.

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Εντολή int86 και linux.

Δημοσίευσηαπό pit_haris » 22 Ιαν 2012, 18:07

Καλησπέρα σας και πάλι.

Για δεύτερη φορά ανοίγω ένα καινούργιο θέμα. Αφορά τη χρήση της εντολής int86 που για το παλιό, καλό DOS συμπεριλαμβάνονταν στο BIOS.h της C γλώσσας. Με αυτή την εντολή μπορούσα να διαβάσω και να δώσω τιμές στους καταχωρητές της cpu. Για το linux όμως δεν ισχύουν αυτά. Δεν υποστηρίζεται το BIOS.h στις εκδόσεις της C για linux.

Μήπως υπάρχει κάτι άλλο για τους καταχωρητές ώστε να μπορώ να τους χειριστώ μέσω C ή C++;;;.
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
2 Ubuntu 10.10 maverick 64bit (el_GR.UTF-8), Ubuntu 2.6.35-30-generic, Ubuntu 2.6.35-22-generic
3 Intel Core2 Duo CPU T7500 2.20GHz ‖ RAM 3962 MiB ‖ Sony Corporation VGN-SZ650N
4 nVidia G86 [GeForce 8400M GS] [10de:0427]
5 eth0: Marvell 88E8055 PCI-E Gigabit Ethernet Controller [11ab:4363] (rev 12) ⋮ wlan0: Intel PRO/Wireless 4965 AG or AGN [Kedron] Network Connection [8086:4229]
pit_haris
babeTUX
babeTUX
 
Δημοσιεύσεις: 9
Εγγραφή: 17 Δεκ 2011, 11:12
Εκτύπωση

Re: Εντολή int86 και linux.

Δημοσίευσηαπό the_eye » 22 Ιαν 2012, 18:56

Αυτό που θες δεν μπορεί να γίνει γιατί όλα τα σύγχρονα λειτουργικά συστήματα προστατεύουν τους καταχωρητές, από απευθείας επικοινωνία με τις εφαρμογές.

Μπορεί το DOS να το έκανε, αλλά τώρα κάτι τέτοιο θεωρείτε security risk.
Όσο λιγότερο κλειστό λογισμικό έχεις, τόσα λιγότερα προβλήματα.
1 Γνώσεις ⇛ Linux: Καλό ┃ Προγραμματισμός: Ναι PHP, MySQL ┃ Αγγλικά: Καλά
2 Ubuntu 24.04.2
3 Intel Core i5-6500 CPU @ 3.20GHz ‖ RAM 7836 MiB ‖ Gigabyte B150M-HD3 DDR3-CF - Gigabyte B150M-HD3 DDR3
4 Intel HD Graphics 530 [8086:1912] {i915}
5 enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Άβαταρ μέλους
the_eye
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 11724
Εγγραφή: 16 Μαρ 2010, 17:19
Launchpad: ntoulasd
IRC: the_eye_
Εκτύπωση

Re: Εντολή int86 και linux.

Δημοσίευσηαπό simosx » 22 Ιαν 2012, 23:09

the_eye έγραψε:Αυτό που θες δεν μπορεί να γίνει γιατί όλα τα σύγχρονα λειτουργικά συστήματα προστατεύουν τους καταχωρητές, από απευθείας επικοινωνία με τις εφαρμογές.

Μπορεί το DOS να το έκανε, αλλά τώρα κάτι τέτοιο θεωρείτε security risk.


Οι εφαρμογές σε Linux εκτελούνται σε δικό τους τμήμα μνήμης και είναι εφικτό να γράψουμε Assembly όπου βάζουμε τιμές σε καταχωρητές, κτλ.
Δες περισσότερα στο
http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
Αν κάνουμε κάτι λάθος και γράψουμε αλλού, κτλ, τότε το πρόγραμμα καταρρέει με Segmentation fault, και το Ubuntu μας συνεχίζει να λειτουργεί.
Αν τυχόν καταρρεύσει το Ubuntu, τότε βρήκες πραγματικό πρόβλημα ασφάλειας, και είναι σημαντικό να αναφερθεί στο φόρουμ.
Δες στους οδηγούς του φόρουμ. Γράφω τώρα ένα οδηγό για γράψιμο Assembly σε Linux.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Εντολή int86 και linux.

Δημοσίευσηαπό pit_haris » 07 Φεβ 2012, 01:25

Ευχαριστώ για τον χρόνο και τις απαντήσεις σας. Ήδη μελετάω το link του simosx. Και πάνω απ'όλα συγνώμη για την καθυστερημένη απάντηση. Δεν έχω καμία δικαιολογία, απλά το αμέλησα. Και πάλι ευχαριστώ.
1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Μέτριος
2 Ubuntu 10.10 maverick 64bit (el_GR.UTF-8), Ubuntu 2.6.35-30-generic, Ubuntu 2.6.35-22-generic
3 Intel Core2 Duo CPU T7500 2.20GHz ‖ RAM 3962 MiB ‖ Sony Corporation VGN-SZ650N
4 nVidia G86 [GeForce 8400M GS] [10de:0427]
5 eth0: Marvell 88E8055 PCI-E Gigabit Ethernet Controller [11ab:4363] (rev 12) ⋮ wlan0: Intel PRO/Wireless 4965 AG or AGN [Kedron] Network Connection [8086:4229]
pit_haris
babeTUX
babeTUX
 
Δημοσιεύσεις: 9
Εγγραφή: 17 Δεκ 2011, 11:12
Εκτύπωση

Re: Εντολή int86 και linux.

Δημοσίευσηαπό simosx » 07 Φεβ 2012, 02:49

pit_haris έγραψε:Ευχαριστώ για τον χρόνο και τις απαντήσεις σας. Ήδη μελετάω το link του simosx. Και πάνω απ'όλα συγνώμη για την καθυστερημένη απάντηση. Δεν έχω καμία δικαιολογία, απλά το αμέλησα. Και πάλι ευχαριστώ.


Δες στα
https://forum.ubuntu-gr.org/viewtopic.php?f=9&t=21855
viewtopic.php?f=9&t=21948
για το πως γράφεις σε Assembly.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση


  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι