Kezdőoldal » Számítástechnika » Programozás » A Blitz Basic programban...

A Blitz Basic programban lehet operációs rendszert írni?

Figyelt kérdés
Ha nem akkor milyen programokban lehet?

2017. ápr. 23. 19:20
1 2
 1/13 anonim ***** válasza:
45%
Csak AutoIt vagy flashben lehet ilyet!
2017. ápr. 23. 19:31
Hasznos számodra ez a válasz?
 2/13 tabaki ***** válasza:
92%
Tudod egyáltalán, mi az az operációs rendszer? Szerintem nézz utána. Ez nem oltás, komolyan.
2017. ápr. 23. 20:31
Hasznos számodra ez a válasz?
 3/13 Hominida ***** válasza:

A Blitz Basic nem képes a BIOS megszakításainak meghívására, ez az egyik oka annak, hogy a válasz nem.


Egyébként pedig csak olyan nyelven lehet oprendszert írni, amely nem támaszkodik egy bizonyos oprendszerre. Tehát ha egy nyelven nem tudsz olyan programot létrehozni, amelyik nem windowsos PC-n is fut, akkor azzal technikailag nincs lehetőséged oprendszer írására.


Kezelői felületet lehet írni bármilyen általános programnyelven, akár Blitz Basicben is. Csak nem egyszerű.


Assembly, esetleg C. Ezek valók ilyen munkára.

2017. ápr. 24. 00:17
Hasznos számodra ez a válasz?
 4/13 anonim ***** válasza:
0%

"A Blitz Basic nem képes a BIOS megszakításainak meghívására,"


Nem bizony, már csak azért sem, mert a BIOS-nak nincsenek megszakításai.


Egyébként a BIOS-nak úgy kb. semmi köze az operációs rendszerhez.


Régen volt egy DOS nevű vacak, amely szinte csak a BIOS rutinjainak hívásából állt, de az régen volt, ma már nem létezik olyan hülye, aki a BIOS-ra építő, valós módú operációs rendszert kivánna fejleszteni.

2017. ápr. 24. 00:28
Hasznos számodra ez a válasz?
 5/13 Hominida ***** válasza:

Hát, ha valamit INT utasítással kell meghívnom, arra én megkockáztatom a megszakítás elnevezést.


Persze, tudom, ma már nem így megy a dolog, de a kompatibilitás nem haszontalan cifraság. Az UEFI támogatja a BIOS klasszikus szolgáltatásaira való hivatkozást. Az is a probléma a mostani rendszerekkel, hogy a szabványos interface-eket leszűkítve vagy megkerülve akarnak kommunikálni a perifériákkal, aztán jönnek a hibaüzenetek meg lefagyások, amikor egy eszköz mégiscsak a szabványos módon való kommunikációra lett felkészítve. A sok rövid út, ügyeskedés, trükközés, ezek is felelősök a mai rendszerek instabilitásáért.


Nem kell az oprendszernek alaplapi firmware? Egy bootolást valahol mégiscsak el kell kezdeni, nem?

2017. ápr. 24. 00:41
Hasznos számodra ez a válasz?
 6/13 anonim ***** válasza:
3%

Nem kell az oprendszernek alaplapi firmware?"


Nem hát! Szerencsére.


" Egy bootolást valahol mégiscsak el kell kezdeni, nem?"


Ja, de azt a bootloader intézi, ami betölti az oprét, és ráadja a vezérlést. Ennyi.

2017. ápr. 24. 04:21
Hasznos számodra ez a válasz?
 7/13 anonim ***** válasza:
49%
Utánanéztem, a blitz basic compileres nyelv, tehát igen, lehet benne oprendszert írni. Az más kérdés, hogy olyan is lesz, de a lehetőség adott.
2017. ápr. 24. 14:33
Hasznos számodra ez a válasz?
 8/13 Hominida ***** válasza:

#6: szóval szerinted az oprendszer nem használja az alaplapi firmware-t. Akkor tulajdonképpen mire is valÓ? :-))


#7: a kompilálás korántsem azt jelenti, hogy a létrehozott kód oprendszer nélkül is működik. Az oprendszer épp azért van, hogy a programok használhassák a rengeteg beépített szolgáltatásukat, közvetlenül, a kódban meghívva, nem valami felületen át adogatva parancsokat.


A natív gépi kódú program nem csak a processzorral kommunikál. Sőt, egy jó programkód sokat használja az oprendszer függvényeit, ezzel teremtve meg azt a nagyon is fontos helyzetet, hogy az oprendszer cseréje, frissítése esetén is működőképes marad. Hiszen az oprendszer írójának felelőssége és kötelessége az, hogy a változatlan belépési pontok mögött úgy rendezze el az oprendszer kódját, hogy a program irányából nézve ne változzon semmi, a paraméterezés sem, csak a hívási pont mögötti kód változhat, bővülhet, javulhat. Ha a program szabályosan hívja meg az oprendszer szolgáltatásait, akkor a működése nem fog az oprendszer verzióitól függeni. Ez lenne az egész célja. És régen ezt be is tartották, a kompatibilitás alapkövetelmény volt. (Mellesleg ettől sokkal gyorsabb a fejlesztés, hiszen nem a program fejlesztőjének kell mindent újra kitalálnia. És a kód is sokkal kisebb, bár ezzel ma már szinte senki nem törődik.


Egy oprendszer viszont nem hívhatja meg egy másik oprendszer függvényeit, hiszen az a cél, hogy olyan ne is legyen. Maga a program az oprendszer, csak saját magára, és az egy szinten lejjebb levő BIOS megszakításokra támaszkodhat, valamint a még egy-két szinttel lejjebb levő processzor saját utasításainak lehetőségeire. De a kompilálás csak akkor állít elő ilyen kódot, ha a compiler kifejezett úgy van megírva, hogy az utasításokat csakis a gép saját firmware- és hardverszolgáltatásait felhasználó rutinokkal helyettesíti. Ez rendkívül ritka dolog, mert alig van rá szükség.

2017. ápr. 24. 14:51
Hasznos számodra ez a válasz?
 9/13 anonim ***** válasza:

"#6: szóval szerinted az oprendszer nem használja az alaplapi firmware-t. Akkor tulajdonképpen mire is valÓ? :-)) "


Nem hát! Hogy használná a védett módú win vagy lin a valós módban - és csak abban - elérhető BIOS-t?


"#7: a kompilálás korántsem azt jelenti, hogy a létrehozott kód oprendszer nélkül is működik."


Nem azt jelenti, de én nem is állítottam ilyet. Csak annak lehetőségét teremti meg, hogy opre független kódot írj.

Könyörgöm, gondolkozz..

A C-ben és pascalban fejlesztett rendszereim egyike sem használ SEMMIT a library-kból, a libc-t is én írtam meg. Ez az opre fejlesztésnél így megy.


" Az oprendszer épp azért van, hogy a programok használhassák a rengeteg beépített szolgáltatásukat,"


Ja, csak nem akkor ha oprendszert akarsz írni.


" De a kompilálás csak akkor állít elő ilyen kódot, ha a compiler kifejezett úgy van megírva, hogy az utasításokat csakis a gép ..."


Lásd feljebb. Bármikor írok neked bármit mezei ansi C compilerrel lefordítom és az fut magában.

2017. ápr. 24. 15:02
Hasznos számodra ez a válasz?
 10/13 anonim ***** válasza:

#include "vga.h"


u8bit *vga_mem ;

u8bit vga_attr ;

u16bit cur_pos ;

char *string;



inline unsigned char inb(u32bit port)

{

u8bit u1;

asm volatile ("inb %%dx,%%al":"=a"(u1):"d"(port));

return u1;

}


inline void outb(u32bit port,u8bit value)

{

asm volatile (" outb %%al,%%dx ": : "d"(port),"a"(value));

}


inline void outw(u32bit port,u32bit value)

{

asm volatile (" outw %%ax,%%dx ": : "d"(port),"a"(value));

}


void update_cursor_position(void)

{

u16bit offset = cur_pos >> 1;

outb(0x3d4,0x0f); // 3d4 = command port

outb(0x3d5,offset & 0x0ff);

outw(0x3d4,0x0e);

outb(0x3d5,offset >>8);


}


void move_cursor(u8bit x,u8bit y)

{

if(x>=80) return;

if(y>=25) return;

cur_pos = (y*160) + (x*2) ;

update_cursor_position();

}

2017. ápr. 24. 15:09
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!