Kezdőoldal » Számítástechnika » Programozás » Operációs rendszert más...

Tamas2000 kérdése:

Operációs rendszert más nyelvben lehet írni?

Figyelt kérdés
Tudomásom szerint az operációs rendszert alapját assembly-ben írják és arra épül fel a grafikus felület és a többi amit C/C++-ban írnak meg, ha mindezt jól tudom. Lehetséges más nyelvben is pl: Java, C#.

2017. okt. 29. 14:30
1 2
 1/16 anonim ***** válasza:
57%
Volt mindkettőre kísérlet, például C#-ban írták a Singularity-t, Java-ban pedig a JX-et.
2017. okt. 29. 14:38
Hasznos számodra ez a válasz?
 2/16 anonim ***** válasza:
Linux kernelt C-ben írták. Elvileg a GO-t erre fejlesztették ki nem hallottam róla sokat.
2017. okt. 29. 14:40
Hasznos számodra ez a válasz?
 3/16 anonim ***** válasza:
100%

Tisztán Java vagy C# nyelven elég nehéz lenne, mivel mindkettő egy speckó környezetben fut, ami pedig az op.rendszeren fut. Amúgy lehetne akár Pascalban is írni, de a C/C++ fordító igen jól optimalizálható, hatékony kódot generál (főleg a C).


"Singularity is an experimental operating system..."

"The lowest-level x86 interrupt dispatch code is written in assembly language and C. Once this code has done its job, it invokes the kernel, which runtime system and garbage collector are written in Sing# (an extended version of Spec#, itself an extension of C#) and runs in unprotected mode. The hardware abstraction layer is written in C++ and runs in protected mode. There is also some C code to handle debugging."

[link]

2017. okt. 29. 16:03
Hasznos számodra ez a válasz?
 4/16 anonim ***** válasza:
57%
Az Assembly, C és C++ mellett Java, C#, Modula-3, Ada, D, Nim, Rust, Python, Common Lisp, Haskell.
2017. okt. 29. 17:49
Hasznos számodra ez a válasz?
 5/16 A kérdező kommentje:
Köszönöm a válaszokat. Szóval lehet csak nehezebben, gondolom ahoz a fordítót is át kell egy kicsit alakítani.
2017. okt. 30. 10:13
 6/16 anonim ***** válasza:

"Szóval lehet csak nehezebben, gondolom ahoz a fordítót is át kell egy kicsit alakítani."


Lehet, csak sokkal könnyebben, de a végeredmény sz.rabb lesz.

Attól is függ, hogy az oprendszer milyen célra készül, mert nem minden a sebesség.

Egy magas szintű programnyelven bármit könnyebb megírni. Az ASM és a C nem magas szintű programnyelv, de hatékony, ha a hardvert akarja az ember elérni és gyors kódot szeretne.

2017. okt. 30. 17:26
Hasznos számodra ez a válasz?
 7/16 A kérdező kommentje:
hmm értem köszi a válaszokat.
2017. okt. 30. 23:19
 8/16 anonim ***** válasza:

C#-ban tudsz olyan alkalmazást írni, amit a BIOS tölt be (nevezhetjük bootolható alkalmazásnak is).


Ettől függetlenül nem operációs rendszer, viszont lehet, hogy amire szükséged van, arra pont alkalmas.


[link]

2017. nov. 6. 08:01
Hasznos számodra ez a válasz?
 9/16 anonim ***** válasza:
Elvileg bármiben meg lehet írni egy operációs rendszert, amiből tudsz futatható binárist csinálni. Más kérdés, hogy az mennyire lesz hatékony, és hogyan fog működni. A kulcskérdés igazán azon van, hogy a fordító mennyire képes úgy fordítani, hogy gyorsan fusson. Ezért jó pl. az assembly erre mert ott viszonylag a fordító azt fordít amit leírsz neki. A C is elég "tömörre" fordítható, azaz ott is nagyjából az fordul amit leírsz. A nagyon OOP-knél nagyon kérdéses, hogy mit fordít be a fordító, és hogyan történik meg az objektumok kezelése. A most használt procik nem támogatják az OOP-t, viszont van egy halom olyan HW támogatás adott esetben amelyet érdemes lehet kihasználni. Gondolok itt olyanra, hogy sok esetben DMA-zható az IO, láttam olyan "bátor próbálkozót" aki úgy gondolta, hogy egy fájl másolást úgy old meg, hogy megcsinálja az 1 byte másolását, majd eköré alkot egy objektumot és ezzel megoldja a fájl másolást. Ezzel az a baj, hogy a hardver nem képes 1 byteot olvasni a diszkről, csak blokkokat (hw. függő a blokk méret). Ezek után egy fájl másolása beláthatatlan ideig tartott. Nyilván ez egy csúnya programozási hiba, de az OOP-ben ha az ember nem figyel könnyű ilyeneket elrontani. Szintén fontos, hogy a jelenlegi procik még a "klasszikus" strukturált programozást sem támogatják (ld. pl. Pascal nyelv). Tulajdonképpen az intel x86 procik (de a többi se nagyon) még az IF...THEN...ELSE... szerkezetet sem támogatja, legfeljebb az IF...GOTO szerkezetet. Ma nem így programozunk (néhány olyan elvadultat leszámítva akik beágyazott rendszereket assemblyben programoznak). Ezek után érdemes olyan programnyelvet keresni OS írására amelyik jól optimalizálható erre a formára, és nem fog örült hosszú kódokat befordítani oda ahova nem kell. Pl. egy HW interrupt rutinnak az a része ahol nem lehet újabb megszakítás (legfeljebb NMI) annak gyorsnak kell lennie, különben a HW nem fog műküdni rendesen. Ezt nem lehet olyan nyelven megírni ami eleve "hablatyol" és a "hello word!" lefordított futattható binárisa 600kByte.
2017. nov. 9. 17:07
Hasznos számodra ez a válasz?
 10/16 anonim ***** válasza:
0%

"Szintén fontos, hogy a jelenlegi procik még a "klasszikus" strukturált programozást sem támogatják "


"Tulajdonképpen az intel x86 procik (de a többi se nagyon) még az IF...THEN...ELSE... szerkezetet sem támogatja, legfeljebb az IF...GOTO szerkezetet."


"Pl. egy HW interrupt rutinnak az a része ahol nem lehet újabb megszakítás (legfeljebb NMI) annak gyorsnak kell lennie, különben a HW nem fog műküdni rendesen."


"Ezt nem lehet olyan nyelven megírni ami eleve "hablatyol" és a "hello word!" lefordított futattható binárisa 600kByte."


Bocs, de ezeket az irgalmatlan nagy hülyeségeket te honnan veszed?

2017. nov. 9. 19:18
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!