NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Programovanie vo viacerých jazykoch naraz

Aktivity
Avatar
Juraj Mlich
Tvůrce
Avatar
Juraj Mlich:28.6.2013 23:41

Dobrý večer (noc), chcem sa opýtať je to vlastne možné, napr. jazyky VB a C# alebo Java a C#, C# a C++. Predom ďakujem za odpoveď.

 
Odpovědět
28.6.2013 23:41
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Juraj Mlich
Kit:28.6.2013 23:59

Jazyky se běžně kombinují, např. při tvorbě webu se setkává i 6 jazyků. Jen je poměrně neobvyklá kombinace jazyků stejného typu.

Uvedené kombinace jsou sice možné, ale nepříliš vhodné.

Nahoru Odpovědět
28.6.2013 23:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Juraj Mlich
Tvůrce
Avatar
Odpovídá na Kit
Juraj Mlich:29.6.2013 0:03

A jaké jazyky sa kombinujú pre desktop?

 
Nahoru Odpovědět
29.6.2013 0:03
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Juraj Mlich
Kit:29.6.2013 0:21

Běžně se kombinuje např. Java, XML a SQL. Aplikaci si rozdělíš do vrstev, které na sebe navazují přes rozhraní. V každém jazyku pak řešíš jen ten specifický úkol, který ten jazyk umí nejlépe.

Nahoru Odpovědět
29.6.2013 0:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Martin Dráb
Tvůrce
Avatar
Martin Dráb:29.6.2013 0:45

Ahoj,

já osobně nejčastěji kombinuju C/C++ a Delphi. Přesně tím stylem, jak píše Kit.
* C na psaní driverů,
* C/C++ na psaní nízkoúrovňových knihoven (obvykle komunikujících s drivery),
* Delphi na tvorbu GUI.

Také mám zkušenost s kombinováním Javy a C++.

Obecně lze asi říci, že je vhodné kombinovat jazyky tak, abys v každé situaci využil vždy přednosti daného jazyka, které potřebuješ. Pokud od určité komponenty potřebuješ vysoký výkon, asi ji zkusíš napsat v C/C++. Pokud se má jednat o grafické uživatelské rozhraní, tak jej sice můžeš napsat v C, ale bude ti to trvat řádově déle, než když použiješ C++ a např. Qt... či jiný jazyk, který má v IDE již tvorbu GUI rozumně zabudovánu. Stejně tak má obvykle při komunikaci s databázemi využít SQL, protože v něm lze snadno vyjádřit věci jinak vyjadřitelné hodně špatně. A dá se jít i do větších detailů (práce z řetězci, rychlost vývoje...).

Moje poznámka se asi týká hlavně programování věcí blíže systému. U webových aplikací je to množství používaných jazyků větší.

Nahoru Odpovědět
29.6.2013 0:45
2 + 2 = 5 for extremely large values of 2
Avatar
sonix
Člen
Avatar
sonix:30.6.2013 3:01

taky dost často se kombinuje C/C++ a assembler.

 
Nahoru Odpovědět
30.6.2013 3:01
Avatar
Kit
Tvůrce
Avatar
Odpovídá na sonix
Kit:30.6.2013 3:13

To už je ale hodně velká specialita v aplikacích, kde je požadován skutečně maximální výkon i za cenu vyšších nákladů na vývoj.

Nahoru Odpovědět
30.6.2013 3:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
sonix
Člen
Avatar
sonix:30.6.2013 3:26

ani ne tak speciální - v reverzním inženýrství, vývojáři antivirů, nízko úrovňové programování (ovladače, komunikační protokoly ve firemní sféře) je tato kombinace stále nepostradatelnou součástí. To že tuto kombinaci jazyků nepoužívá kde jaký student ještě neznamená, že toto není používané. Mimo jiné se tato kombinace používá i při psaní virů, trojanů a jiné havěti - nahrávání payloadů, DLL injection atp atp atp. :) A né nepoužívá se tato kombinace pro maximální výkon - v dnešní době X jádrových processorů se výkon skutečně řešit nemusí ani v profesionálním nasazení. Tato kombinace jazyků je spíše nezastupitelná z toho hlediska, kdy člověk potřebuje napsat aplikaci, která nějakým způsobem upravuje například binární soubory jiných aplikací (například)

Editováno 30.6.2013 3:26
 
Nahoru Odpovědět
30.6.2013 3:26
Avatar
Kit
Tvůrce
Avatar
Odpovídá na sonix
Kit:30.6.2013 3:39

Promiň, ale binární soubory jiných aplikací se dají upravovat i (a nejen) v PHP a to docela pohodlně. Vytváření virů a reverzní inženýrství není legální záležitost.

Prostě ti programátoři používají assemblery proto, aby byli "in".

Nahoru Odpovědět
30.6.2013 3:39
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Kit
Domiy:30.6.2013 6:57

Vyšší jazyk nikdy nedosáhne do RT režimu. (Real-Time) Už jen proto, že většina nejpoužívanějších OS jsou PT - protected-mode. A ještě k tomu PHP? Ne to opravdu nepůjde. Jako první se musí najít ulička k BIOSu. A tak se dostat k jeho přerušením. A tam se pak dají dělat zázraky. A chtěl bych vidět, jak se PHP hrabe v clusterech disku... :) (Pomocí 13h se dá snadno ukrást cokoliv.)

V běžných programech se kombinuje jen kolem databází - viz zmíněná kombinace programovacího jazyka a dotazovacího jazyka. Nejrozmanitější jsou weby a hry. Do obou se dělají různé funkce/scripty, zase ono ovládání databází atd. Smysl to má pouze a jen v případě, že daný blok bude fungovat jako samostatná jednotka a my pouze chceme sdílet jeho proces. (Pak tyto jazyky poběží ve vlastních vláknech.) A tedy ne jen jako doplněj jazyka - takové to inline mísení atd. Inline beru jen ASM jelikož ten vpodstatě nelze aplikovat jinde, než v hlouby cca. C a tam toho moc nezaprasí.

 
Nahoru Odpovědět
30.6.2013 6:57
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:30.6.2013 9:19

Protected mode a BIOS? Ne, to mi opravdu nejde dohromady :)

S PHP se normálně dá hrabat v clusterech disku. Žádné přerušení na to nepotřebuji, stačí mi k tomu standardní knihovna PHP. Jenom se to nedělá, protože to s PHP není ani elegantní, ani efektivní. Ani se nedoporučuje obcházet souborový systém za chodu. Klidně bych napsal formátování HDD v PHP, ale nemám k tomu důvod.

A že vyšší jazyky nikdy nedosáhnou do RT režimu? To je k smíchu. Některé vyšší jazyky jsou pro RT přímo vytvořeny. PHP na to samozřejmě používat nebudu, schválně jsem ho uvedl jako extrém. Systémové aplikace se v něm psát dají, jen to (naštěstí) skoro nikdo nedělá.

RT režim se stejně používá jen ve speciálních aplikacích, ve kterých potřebujeme zajistit včasnou odezvu systému na přerušení. Vyšší náklady na vývoj nám v takových případech obvykle nevadí a proto je i použití nějakého makroassembleru na místě.

Nahoru Odpovědět
30.6.2013 9:19
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Kit
Domiy:30.6.2013 9:34

Nikdy - zásadně nikdy nečteš co kdo píše. PT režim právě, že neumožňuje používat nižší registry atd. PHP nemůže pracovat RT - a nemůže přistupovat k nižším funkcím. Nějaké knihovny jistě může mít. Vtip je v tom, že ti Windows a jiné PT OS nedovolí zasahovat RT. To znamená, že každou operaci daný OS kontroluje - dané PHP knihovny nejsou vykonávány BIOSem, ale OS a až ten pak na základě toho co uzná za vhodné zavolá BIOS. Co se týče Windows tak ten ještě provádí nepřímé volání BIOSu - však je to mikrojádro. (Tedy nejen Windows ale cokoliv, co má oddělený kernel.) Takže binární podoba PHP knihoven jen obsluhuje stále vyšší funkce! I když si zažádá o cluster - podléhá to kontrole OS... Proto by se takto hackovat atd. nedalo. A proto je třeba požádat BIOS přímo - RT...

 
Nahoru Odpovědět
30.6.2013 9:34
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:30.6.2013 9:49

Ty také nečteš, co kdo píše:

To už je ale hodně velká specialita v aplikacích, kde je požadován skutečně maximální výkon i za cenu vyšších nákladů na vývoj

Kdo že začal psát o RT? Četl jsi vůbec předchozí příspěvky?

Nahoru Odpovědět
30.6.2013 9:49
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Juraj Mlich
Michal Žůrek - misaz:30.6.2013 10:03

Při tvorbě webu kombinuji PHP, SQL, HTML, CSS, JavaScript.

Při tvorbě aplikací pro windows 8 (8.1) kombinuji HTML, CSS, JavaScript a VB.NET.

Při programování na desktop se snažím využívat jen jedno.

Při programování mikroprocesoru jsem zatim kombinovat nemusel, ale až budu umět víc, tak asi kombinovat něco málo budu (Assembler + C).

 
Nahoru Odpovědět
30.6.2013 10:03
Avatar
Odpovídá na Michal Žůrek - misaz
Michael Olšavský:30.6.2013 10:09
  • databáze(SQL) a občas XML pro vše uvedené ;-)
 
Nahoru Odpovědět
30.6.2013 10:09
Avatar
sonix
Člen
Avatar
Odpovídá na Kit
sonix:30.6.2013 11:09

A na to jsi přišel jak, že reverzní inženýrství je ilegální ???? Lidé, kteří pracují v tzv. research laboratories na přezkoumávání virů a zjištění jeho původce a míry škodlivosti je toto legální a dokonce toto může být i dotováno státním rozpočtem pakliže se jedná o hrozbu ohrožující státní infrastrukturu ;-) to jest jedna věc. Kde jsi přišel na to, že programování virů je ilegální činnost? Pakliže vir nebudeš vypouštět do světa tak se nejedná o ilegální činnost ;-) To jen pro pořádek.

Skutečnost, že C/C++ se v jistých situacích bez kamaráda assemblera neobejde , mi nevyvrátíš.

Psát desktopové aplikace v PHP? a jinak je cítíte být zdravě smýšlející člověk? Netvrdím že to nejde, ale pro tyto účely jsou určeny poněkud jiné jazyky.

Tvrzení, že programátoři používají inline assembler aby byli "IN" je hloupost. Například při psaní vlastního OS (a že takových projektů se na internetu dá najít mraky). Jsem zvědavej, jak budete nastavovat segmenty jednotlivých registrů při bootu za použití interpretovaného PHP, jak tu zde uvádíte, že v PHP vytváříte desktopové aplikace.

Co se týče RT, tak chci vidět jednu jedinou ukázku, jak budete volat přerušení DOSu z PHP. OS Vám zkrátka nedovolí zasáhnout někam jinam, ani kdybyste použil vhodnější jazyk. Myslím že řadič DMA by Vám trochu vyhuboval a omlátil jedničky a nuly o hlavu.

Čistě pro mojí zvědavost. Odkažte mě na adekvátní knihovny, které mi umožní pohrabat se v paměti RAM :)

 
Nahoru Odpovědět
30.6.2013 11:09
Avatar
Kit
Tvůrce
Avatar
Odpovídá na sonix
Kit:30.6.2013 11:28

Pochybuji, že Juraj Mlich chce psát vlastní operační systém nebo odchytávat viry apod. Assembler zřejmě potřebovat nebude. Také všechny kecy o RT jsou zřejmě zbytečné.

V paměti RAM se mohu snadno mohu pohrabat otevřením souboru /proc/kcore. Jde to i v PHP, ale nevím, proč bych to měl dělat. Asi bych musel být vyšinutý. Pokud bych se chtěl hrabat v RAM, raději bych použil jiný nástroj.

Nahoru Odpovědět
30.6.2013 11:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Kit
Domiy:30.6.2013 11:41

To je právě ten vtip - pokud se chceš hrabat někde hlouběji - tak musíš pracovat s registry - proto RT... A PT OS to nedovolí proto se musí hledat ulička k BIOSu. U Windows je to snadné - tam je děr, že je jen otázkou času, než se k BIOSu dovoláš. Nejjednoduší je upravit VBR - tedy přepsat prvních 512byte partitionu - vpodstatě stačí přidat 12 - 14 byte - které se do VBR pro NTFS/XFS/RTFS/... vejdou vpohodě. A ano - právě, že to ve Windows jde. Samozřejmě nejjednoduší je monolitické jádro. Atd.

 
Nahoru Odpovědět
30.6.2013 11:41
Avatar
Odpovídá na Kit
H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏:30.6.2013 11:48

Reverzni inzenyrstvi je nelegalni jen pokud to zakazuje licencni ujednani.

Souhlasim se sonixem, C/C++ a asm se kombinuje jeste stale docela bezne.

Jinak opravdu bych te chtel videt napsat formatovani HDD v PHP (bez volani nejakych externich knihoven ci rozsireni).

Nahoru Odpovědět
30.6.2013 11:48
J̙͎̪̠̜̫̄͜ͅs̤̯̟ėͦ͋͊̆͗̚m͈̗ͬ͌ ̡͉͔̗͕͇̺̄̓̒ͦ̉̿ͮh͍̘̟̤͎̀a̢ͩ̐͌c̻̈́́̿ͩkͫ̑͌̊̄ͪ͗ę͍̗̜̝ͦ͛͌̾̒ͅṟ̨̘͚͕̈́̋̑ͭͤ̾ ͙͚͎̹̯͔̦̏͊̂ͥȃ͖̮̫̜̠̤̈́͘ ͟c...
Avatar
Odpovídá na Kit
H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏:30.6.2013 11:50

Jak ten soubor "/proc/kcore" otevres treba na Windows?
To ze vyuzivas neco systemoveho v jazyku neznamena, ze vyuzivas ten jazyk, takze jazyk sam o sobe ti hrabani v pameti neumozni.

Nahoru Odpovědět
30.6.2013 11:50
J̙͎̪̠̜̫̄͜ͅs̤̯̟ėͦ͋͊̆͗̚m͈̗ͬ͌ ̡͉͔̗͕͇̺̄̓̒ͦ̉̿ͮh͍̘̟̤͎̀a̢ͩ̐͌c̻̈́́̿ͩkͫ̑͌̊̄ͪ͗ę͍̗̜̝ͦ͛͌̾̒ͅṟ̨̘͚͕̈́̋̑ͭͤ̾ ͙͚͎̹̯͔̦̏͊̂ͥȃ͖̮̫̜̠̤̈́͘ ͟c...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏
Kit:30.6.2013 11:57

Zřejmě jsi četl poněkud nepozorně, tak čti ještě jednou a pomalu:

Klidně bych napsal formátování HDD v PHP, ale nemám k tomu důvod.

Nahoru Odpovědět
30.6.2013 11:57
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Kit
Domiy:30.6.2013 12:05

Nenapsal - konečně už přijmi fakt, že PHP jen poprosí OS, aby se udělalo to a to. Samotný jazyk nic neudělá. ASM sice také jen poprosí, ale BIOS. Ten interpretuje všechno - i OS, takže pracuje níže než OS a to je to o čem píši... Jakýkoliv vyšší jazyk sám nic nevykoná - jen volá do neznáma. A to jestli na druhé straně někdo poslouchá a vykonává ho nezajímá - jen když čeká na odpověď a nedočká se, tak spadne. Ale nikdy se od vyššího jazyka nečeká, že sám něco vykoná. Ono to jak jsem psal ani nejde - ale ani BIOSu se PHP nedovolá...

 
Nahoru Odpovědět
30.6.2013 12:05
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Kit
Domiy:30.6.2013 12:08

Nejlepší bude, když mi tu ukážeš, jak nastaví PHP nějaký segmentový registr, přehodí zásobník a načte jeho obsah do DI...

 
Nahoru Odpovědět
30.6.2013 12:08
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Juraj Mlich
Kit:30.6.2013 12:10

Promiň, že jsme ti tak zasvinili vlákno.

Nahoru Odpovědět
30.6.2013 12:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏:30.6.2013 12:27

Ja to po tobe napsat nechci, jen bych chtel videt, jak bys to napsal...
Ale asi te bavi slovickarit, ze?

Demagogie ti evidentne neni cizi...

Editováno 30.6.2013 12:27
Nahoru Odpovědět
30.6.2013 12:27
J̙͎̪̠̜̫̄͜ͅs̤̯̟ėͦ͋͊̆͗̚m͈̗ͬ͌ ̡͉͔̗͕͇̺̄̓̒ͦ̉̿ͮh͍̘̟̤͎̀a̢ͩ̐͌c̻̈́́̿ͩkͫ̑͌̊̄ͪ͗ę͍̗̜̝ͦ͛͌̾̒ͅṟ̨̘͚͕̈́̋̑ͭͤ̾ ͙͚͎̹̯͔̦̏͊̂ͥȃ͖̮̫̜̠̤̈́͘ ͟c...
Avatar
Homo
Člen
Avatar
Odpovídá na H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏
Homo:30.6.2013 12:30

Co by jsi chtel po ucitelovi. Ti jsou v tom vytrenovani :-)

Nahoru Odpovědět
30.6.2013 12:30
1010011 1000101 1011000
Avatar
Kit
Tvůrce
Avatar
Odpovídá na H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏
Kit:30.6.2013 12:42

Hodně zjednodušeno, např. pro FAT by to v principu vypadalo asi takto:

<?php
$disk = fopen('/dev/sda1', 'w');
fwrite($disk, $boot_record);
fwrite($disk, $fat);
fwrite($disk, $fat);
fwrite($disk, $koren);
// zde můžeš přepsat i datové bloky, ale nutné to není.
fclose($disk);

Není v tom žádná složitost, jen je potřeba vědět, jak naplnit stringy a jak je přizpůsobit velikosti diskového oddílu. Vše je v dokumentaci.

Samozřejmě je mnohem jednodušší spustit program mkfs, který to všechno udělá za mne a mnohem lépe, ale chtěl jsi to bez něho.

Doufám, že teď už nebudeš slovíčkařit.

Nahoru Odpovědět
30.6.2013 12:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Kit
Domiy:30.6.2013 12:56

Přesně o čem píši - kdepak se to vykonává? Ne v tomto programu, ale v podprogramech napsaných v něčem níže, než PHP. PHP to jen postupně spouští... Kdo dnes používá FAT?

 
Nahoru Odpovědět
30.6.2013 12:56
Avatar
Odpovídá na Kit
H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏:30.6.2013 12:57

Ale stale k tomu vyuzivas operacni system.
'/dev/sda1' neni vec PHP, ale systemu.
Pokud dany system nema takto namapovane disky (napr. Win), tak mas smulu.

Nahoru Odpovědět
30.6.2013 12:57
J̙͎̪̠̜̫̄͜ͅs̤̯̟ėͦ͋͊̆͗̚m͈̗ͬ͌ ̡͉͔̗͕͇̺̄̓̒ͦ̉̿ͮh͍̘̟̤͎̀a̢ͩ̐͌c̻̈́́̿ͩkͫ̑͌̊̄ͪ͗ę͍̗̜̝ͦ͛͌̾̒ͅṟ̨̘͚͕̈́̋̑ͭͤ̾ ͙͚͎̹̯͔̦̏͊̂ͥȃ͖̮̫̜̠̤̈́͘ ͟c...
Avatar
Odpovídá na
H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏:30.6.2013 12:59

Myslim, ze FAT jako priklad bohate staci, i kdyz jsou i novejsi souborove systemy.

Nahoru Odpovědět
30.6.2013 12:59
J̙͎̪̠̜̫̄͜ͅs̤̯̟ėͦ͋͊̆͗̚m͈̗ͬ͌ ̡͉͔̗͕͇̺̄̓̒ͦ̉̿ͮh͍̘̟̤͎̀a̢ͩ̐͌c̻̈́́̿ͩkͫ̑͌̊̄ͪ͗ę͍̗̜̝ͦ͛͌̾̒ͅṟ̨̘͚͕̈́̋̑ͭͤ̾ ͙͚͎̹̯͔̦̏͊̂ͥȃ͖̮̫̜̠̤̈́͘ ͟c...
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:30.6.2013 13:06

FAT dnes používají skoro všichni, ty určitě také, skoro si tím jsem jist. Vybral jsem FAT, protože je snadná na pochopení principu. Zřejmě jsem se mýlil :)

Je snad zakázáno knihovny používat? Je snad nutné vyrábět vlastní knihovny do skriptovacích jazyků, když už tam jsou? Kvůli tomu se přece skriptovací jazyky používají, abych nemusel až na ten nejnižší level.

A ne, BIOS k tomuto opravdu nepotřebuji, protože ten jede v real modu a přepínání do něj by silně zdržovalo. Je vidět, že ani nemáš ponětí, z čeho se skládá operační systém.

Nahoru Odpovědět
30.6.2013 13:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏
Kit:30.6.2013 13:10

Nemám důvod provozovat PHP na Windows. Také nemám důvod formátovat disky z PHP.

Vždycky se vyplatí používat služeb operačního systému místo pracného programování vlastních ovladačů.

Nahoru Odpovědět
30.6.2013 13:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Kit
Domiy:30.6.2013 13:13

Ty to stále nechápeš. Ve chvíli, kdy žádám OS o vykonání příkazu, jsem podřízen OS. Opravdu věříš, že by ti dovolil OS sahat kam nechce? Ne. Proto se vyšším jazykem nikam nedostaneš. Vyšší jazyky jsou jenom knihovny. (Či podprogramy.) Bez nich to je jen spousta slov. Zato ASM (po přeložení stroják) je pouze a jen interpretován BIOSem. (Už není parsován, nic.)

 
Nahoru Odpovědět
30.6.2013 13:13
Avatar
Odpovídá na Kit
H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏:30.6.2013 13:21

Ja vim, ze nemas duvod to delat, ale tvrdil jsi, ze to lze - hrabat se v clusterech disku v PHP, coz neni pravda.

To je podobne, jako kdybych tvrdil, ze programuji objektove formularove aplikace v batchi a pritom v batchi jen spoustel aplikaci napsanou treba v Jave.

Nahoru Odpovědět
30.6.2013 13:21
J̙͎̪̠̜̫̄͜ͅs̤̯̟ėͦ͋͊̆͗̚m͈̗ͬ͌ ̡͉͔̗͕͇̺̄̓̒ͦ̉̿ͮh͍̘̟̤͎̀a̢ͩ̐͌c̻̈́́̿ͩkͫ̑͌̊̄ͪ͗ę͍̗̜̝ͦ͛͌̾̒ͅṟ̨̘͚͕̈́̋̑ͭͤ̾ ͙͚͎̹̯͔̦̏͊̂ͥȃ͖̮̫̜̠̤̈́͘ ͟c...
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏
Domiy:30.6.2013 13:24

Všechny vyšší jazyky, jak jsem psal, jen volají hotové programy. Skutečné programy jsou až v nižších jazycích. Vpostatě jen ve strojáku. K němu se vše vrací - až do BIOSu. V BIOSu jsou vpáleny ony základní funkce, které nám umožňují vše, co s PC děláme... Takže za skutečný program považuji vlastně jen BIOS... :)

 
Nahoru Odpovědět
30.6.2013 13:24
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:30.6.2013 13:24

To si fakt myslíš? Když se budeš snažit obejít OS, tak tě do BIOSu nepustí ani v tom assembleru. To by byl hodně děravý operační systém, kdyby to dopustil.

ASM rozhodně není interpretován BIOSem. To si s něčím pleteš. BIOS pouze zavádí operační systém a poté je ihned odstaven, aby přes něj nějací vykukové nemohli sahat na HW jinak, než přes operační systém.

Nahoru Odpovědět
30.6.2013 13:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:30.6.2013 13:27

BIOS můžeš za provozu vytáhnout z desky. Provoz operačního systému to neohrozí. Pokud však k tomu nemáš vážný důvod, nedělej to.

Moderní operační systémy vůbec BIOS nepoužívají. Zdržovalo by to.

Nahoru Odpovědět
30.6.2013 13:27
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Kit
Domiy:30.6.2013 13:34

Možná jsi to vzal jinak než jsem myslel. Chtěl jsem napsat, že iniciátorem je BIOS. Tedy ne, že by vše zařizoval (celý běh programu) ale je to ten kdo má základní funkce, a také ten kdo zařizuje správu multitaskingu atd. (Samozřejmě, že multitasking je součástí OS - ale probíhá mezi obouma.) (Věci spouštěné při bootování jsou a musí být RT. PT je až shell.) Takže není možné, že by OS sám o sobě pracoval bez spolupráce s BIOSem... A to nejen pro bootování. Vyndat půjde - nemá to vliv na procesor. Ale mnohé funkce pak nebudou fungovat. Ale nemuseli bychom to ani postřehnout. Do BIOSu se ve Windows dostat dá - minimálně jak jsem již popsal. Ovšem VBR je jen z mnoha děr...

 
Nahoru Odpovědět
30.6.2013 13:34
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na
Martin Dráb:30.6.2013 13:50

Assebmler maximálně dovoluje (v dnešní době) použít systémových volání, která jsou buď nedokumentovaná, nebo je neimplementuje nějaká funkce dostupná z vyššího programovacího jazyka. Což ale neznamená, že bys například mohl pomocí Assembleru narušit bezpečnost operačního systému. Protože operační systém musí být napsán tak, aby v případě, že je bez chyby, jeho bezpečnost prostě narušit nešlo.

Jinak BIOS se dostává ke slovu hlavně ve fázích bootování. Potom už většinu práce přebírá OS a ovladače zařízení. A ovladače zařízení nekomunikují s daným zařízením přes BIOS, je to totiž pomalé, ale komunikují přímo přes sběrnici (I/O porty).

Osobně Assembler (x86, x64) používat v kombinaci s vyšším programovacím jazykem nedoporučuju, pokud pro to nemáš zásadní důvod. Pro dost věcí, které se řešily pomocí Assembleru, již existují "makra" (např. pro C) a například MS Visual Studio už pro platformu x64 ani vkládaný Assembler nedovoluje. Plus je třeba si uvědomit, že psaní v Assembleru pro některé platformy (IA64) není žádná legrace.

Že můžeš v aplikaci volat přerušení 21h, které ti provádí různé funkce DOSu, to je asi stále pravda, ale všechna tahle přerušení jsou emulována, nejedná se o přímý přístup ke službám BIOSu. A to z několika důvodů:

  1. služby BIOSu jsou snadno dostupné z reálného režimu procesu, z chráněného dost blbě,
  2. narušil by se tím bezpečnostní model OS.

Tomu s VBR a zápisem do BIOSu nerozumím. AFAIK máš na mysli úpravu tabulky vektorů přerušení, což není zápis do BIOSu, ale pouze do paměti. Tabulka vektorů přerušení je datová struktura procesoru, ne BIOSu.

Nahoru Odpovědět
30.6.2013 13:50
2 + 2 = 5 for extremely large values of 2
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Martin Dráb
Domiy:30.6.2013 13:57

Vždyť píšeš to co já... A já psal o tom, že do VBR napíši pár příkazů, kterými si do OS otevřu vrátka. A to jde... Pak právě nebudou ta přerušení emulována, ale skutečne se dostanu k BIOSu. Stačí si třeba do RAM načíst vektor kernelu, či cokoliv jiného... (Pak přečíst tento údaj a najít tak počátek OS.)

 
Nahoru Odpovědět
30.6.2013 13:57
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:30.6.2013 13:59

BIOS multitasking opravdu neumí. Ten je plně v režii operačního systému a BIOS mu do toho nekecá, protože nemá jak.

Kvalitní operační systém tě na železo prostě nepustí ani s assemblerem. Protected mode je přímo součástí procesoru a nejde nijak obejít. Přístup do něj má pouze operační systém a záleží pouze na něm, zda do něj pustí někoho dalšího. Uživatel tak může pouze využívat služeb OS a žádný assembler mu nepomůže k tomu, aby ho obešel, protože ostatní cesty jsou operačním systémem blokovány přímo na úrovni HW procesoru.

Pokud je ten operační systém děravý, tak máš možná s tím assemblerem šanci. Jinak ne. Procesor neprovede instrukci, která je blokována na HW úrovni.

Pokud napadneš boot record, tak se stavíš do role operačního systému (protože ten pravý OS ještě není zaveden) a můžeš si s HW dělat co chceš. A protože v té době je BIOS ještě aktivní, můžeš ho využít.

Nahoru Odpovědět
30.6.2013 13:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Martin Dráb
Domiy:30.6.2013 14:00

Windows je napsán právě, že špatně. Jak píši - děr tam je více, než dost. Jen ve škole (Win. 7) si prohlížím materiály učitelů dle potřeby...

 
Nahoru Odpovědět
30.6.2013 14:00
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Kit
Domiy:30.6.2013 14:03

Další člověk píše, co jsem napsal. Multitasking jsem jasně přiřadil OS. Ale také píši, že bez BIOSu by to nefungovalo. Je to prostě počáteční vektor. Přesně co píšeš aplikuji - buď si pohrát s VBR - a to lze udělat i takto:

Najdu si prostor na disku, vložím tam nějaký svůj prográmek, pustím ho z VBR a původní VBR provedu až v tomto programu. Pak si v něm budu moci dělat co budu chtít. Z prvních 260b budu znát všechny údaje o disku a souborovém systému - víc potřeba není...

 
Nahoru Odpovědět
30.6.2013 14:03
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:30.6.2013 14:19

Nic nového. OneHalf to dělá stejně.

Tak jsme se dopracovali až k programování virů...

Nahoru Odpovědět
30.6.2013 14:19
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Kit
Domiy:30.6.2013 14:29

Píši něco o šifrování??? Souvisí to s možností uložit si počátek OS v RAM a následným čtení segmentů OS? Atd...

 
Nahoru Odpovědět
30.6.2013 14:29
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:30.6.2013 14:31

Co do toho pleteš šifrování? To je až sekundární činnost OneHalfa.

Nahoru Odpovědět
30.6.2013 14:31
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Domiy
Neregistrovaný
Avatar
Odpovídá na Kit
Domiy:30.6.2013 14:36

Myslím to úplně jinak - jedná se mi tu o odkonění VBR. Uživatel nic nepozná a o žádná data nepřijde. OneHalf neodkloňuje VBR - je to něco úplně jiného. Aby to bylo tuplem dokonalé - mohl by to ještě ten prográmet vrátit do původního stavu - nijak to tedy souborům neuškodí! Takže to vlastně není ani virus... (škodlivý software - ale asi v nějaké obecnější definici ano)

 
Nahoru Odpovědět
30.6.2013 14:36
Avatar
Kit
Tvůrce
Avatar
Odpovídá na
Kit:30.6.2013 14:42

Koukám, že nevíš, co je to virus a ani nevíš, jakým způsobem se OneHalf šíří. Hmm. Tak si piš dál ty své trojany. Ostatní se snad z této debaty něco dozvěděli.

Nahoru Odpovědět
30.6.2013 14:42
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Juraj Mlich
Tvůrce
Avatar
Juraj Mlich:30.6.2013 16:43

Fúha, tu sa to tak rozrástlo že sa mi to ani čítať nechce :)

 
Nahoru Odpovědět
30.6.2013 16:43
Avatar
Juraj Mlich
Tvůrce
Avatar
Odpovídá na Kit
Juraj Mlich:30.6.2013 16:44

To teda nebudem :)

 
Nahoru Odpovědět
30.6.2013 16:44
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 50 zpráv z 67.