Diskuze: Programovanie vo viacerých jazykoch naraz

Volná diskuze Programovanie vo viacerých jazykoch naraz

Avatar
Juraj Mlich
Redaktor
Avatar
Juraj Mlich:

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
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Juraj Mlich
Kit:

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
Redaktor
Avatar
Odpovídá na Kit
Juraj Mlich:

A jaké jazyky sa kombinujú pre desktop?

Nahoru Odpovědět 29.6.2013 0:03
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Juraj Mlich
Kit:

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
Redaktor
Avatar
Martin Dráb:

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  +2 29.6.2013 0:45
2 + 2 = 5 for extremely large values of 2
Avatar
sonix
Člen
Avatar
sonix:

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

 
Nahoru Odpovědět  +1 30.6.2013 3:01
Avatar
Kit
Redaktor
Avatar
Odpovídá na sonix
Kit:

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:

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  +1 30.6.2013 3:26
Avatar
Kit
Redaktor
Avatar
Odpovídá na sonix
Kit:

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:

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
Redaktor
Avatar
Odpovídá na Domiy
Kit:

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:

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
Redaktor
Avatar
Odpovídá na Domiy
Kit:

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):

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  +1 30.6.2013 10:03
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Michal Žůrek (misaz)
Michael Olšavský:
  • databáze(SQL) a občas XML pro vše uvedené ;-)
 
Nahoru Odpovědět  +1 30.6.2013 10:09
Avatar
sonix
Člen
Avatar
Odpovídá na Kit
sonix:

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  +3 30.6.2013 11:09
Avatar
Kit
Redaktor
Avatar
Odpovídá na sonix
Kit:

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  +1 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:

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ͭ̈́̏:

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

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
Redaktor
Avatar
Odpovídá na H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏
Kit:

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:

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:

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
Redaktor
Avatar
Odpovídá na Juraj Mlich
Kit:

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ͭ̈́̏:

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:

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

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

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:

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ͭ̈́̏:

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 Domiy
H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏:

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
Redaktor
Avatar
Odpovídá na Domiy
Kit:

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
Redaktor
Avatar
Odpovídá na H́̌͌̋ͭ̒̍͘a̱̞͒̔͛̆̚͞c̢̰͉ͦ̃͆ͨkͭ̈́̏
Kit:

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:

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ͭ̈́̏:

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:

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
Redaktor
Avatar
Odpovídá na Domiy
Kit:

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  +1 30.6.2013 13:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Domiy
Kit:

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:

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
Redaktor
Avatar
Odpovídá na Domiy
Martin Dráb:

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  +1 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:

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
Redaktor
Avatar
Odpovídá na Domiy
Kit:

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:

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:

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
Redaktor
Avatar
Odpovídá na Domiy
Kit:

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:

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
Redaktor
Avatar
Odpovídá na Domiy
Kit:

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:

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
Redaktor
Avatar
Odpovídá na Domiy
Kit:

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
Redaktor
Avatar
Juraj Mlich:

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

Nahoru Odpovědět 30.6.2013 16:43
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Juraj Mlich
Redaktor
Avatar
Nahoru Odpovědět 30.6.2013 16:44
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Benjibs
Člen
Avatar
Odpovídá na Juraj Mlich
Benjibs:

Rozpísalo sa to kvôli tebe, tak by si to čítať mal :P

Nahoru Odpovědět  +1 30.6.2013 16:45
1 + 1 = 2
Avatar
Juraj Mlich
Redaktor
Avatar
Nahoru Odpovědět  -1 30.6.2013 16:47
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Domiy
Martin Dráb:

Zajímalo by mě, pomocí jakých příkazů ve VBR (instrukcí) ve VBR chceš zajistit, aby OS místo ovladačů používal BIOS. Předpokládám, že tím nemyslíš přesměrování vektoru přerušení č. 13h, pomocí něhož jsou načítány další boot loader. OS totiž toto přerušení využívá jen pro načtení části jádra, pak přejde k používání ovladačů disku.

Jinak by mě také zajímalo, co má s plánováním společného BIOS. Myslím v dnešní době. Pokud chceš udělat preemptivní plánování, tak je k tomu dobré mít časovač, tedy zařízení, které ti každých x jednotek času generuje daný vektor přerušení. AFAIK lze pro konfiguraci časovače využít přímo I/O portů => BIOS, tak jak jej v tomto vlákně imho chápeme, je ze hry.

Jinak fakt, že si prohlížíš na W7 materiály učitelů, nemusí nic vypovídat o bezpečnosti či nebezpečnosti OS. Záleží na tom, jak jsou natavena přístupová práva.

Nahoru Odpovědět  +1 30.6.2013 17:44
2 + 2 = 5 for extremely large values of 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Juraj Mlich
Kit:

Myslím si, že bude stačit, když si přečteš názory Martin Dráb, Michal Žůrek (misaz) a Michael Olšavský. Zbytek bylo jen dohadování, jestli assembler ano či ne a jaký význam má při dnešním programování. Pokud budeš dělat pouze uživatelské aplikace, tak se nejspíš s assemblerem ani nesetkáš. Docela dlouho jsem s ním dělal, dokonce i přímo se strojovým kódem, ale už po tom netoužím. Začátečníkům ho vůbec nedoporučuji, produktivita práce je v něm poměrně nízká.

Zkus se soustředit na tzv. vyšší jazyky, vyzkoušej si různá paradigmata (imperativní, objektové, funkcionální, deklarativní, logické, relační,...) a uvidíš, které ti bude vyhovovat nejvíc. Je dobré znát od každého trochu a jedno znát důkladně. Nejpopulárnější je objektové, málokdo ho zvládne v plné hloubce, ale i to málo obvykle stačí na slušné živobytí.

Každé z nich se hodí na trochu jiný účel: Procedurální na drcení čísel, objektové na GUI, funkcionální a deklarativní na vstupní a výstupní formáty, relační na správu a ukládání dat. Když je správně zkombinuješ, výsledek je elegantní a efektivní.

Nahoru Odpovědět  +2 30.6.2013 17:50
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Juraj Mlich
Redaktor
Avatar
Nahoru Odpovědět 30.6.2013 18:03
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Mr. Forstak
Člen
Avatar
Odpovídá na Juraj Mlich
Mr. Forstak:

Java a C# - tam teda moc rozdílů není

 
Nahoru Odpovědět  -4 2.7.2013 22:46
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Mr. Forstak
Martin Dráb:

V základu to tak nevypadá, ale řekl bych, že co se týče pokročilých vlastností se rozdílů najde dost. Například co se týče vlastností C#, které Java nemá:

  • unsafe code (u Javy lze snad jen přes nativní metody, u C# snad i v rámci bloku),
  • líné vyhodnocování (yield return).

Plus jsou tu věci jako přenositelnost, popř. výkon, které mohou rozhodovat o tom, zda použít tyto dva jazyky či ne.

Ale nejsem v této oblasti příliš zběhlý (umím prakticky jen základní syntax), takže klidně ať to někdo rozvede.

Nahoru Odpovědět 2.7.2013 23:23
2 + 2 = 5 for extremely large values of 2
Avatar
Mr. Forstak
Člen
Avatar
Odpovídá na Martin Dráb
Mr. Forstak:

kamos co dela vyhradne C# mi opravil zdrojak a to tak ze sem zalozil scanner na blbym radku 13" monitor mam standartne a psal sem to poprvy na 10" takze sem to blbe videl

 
Nahoru Odpovědět  -1 2.7.2013 23:43
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na Mr. Forstak
Juraj Mlich:

No dobre a ako tieto dva jazyky spojím? Na platforme .NET by to bolo jednoduché iba by som to exportoval ako .dll. Ale Java nebeží pod CLR. Tak ako na to? (Tým čo som napísal si niesom celkom istý)

Nahoru Odpovědět 3.7.2013 9:41
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Juraj Mlich
Kit:

Co chceš spojovat? C# a Javu? Nedělej to, nemá to smysl. Smysl má pouze spojování různých jazyků, které se mohou vzájemně doplnit.

Nahoru Odpovědět 3.7.2013 9:45
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Juraj Mlich
Redaktor
Avatar
Odpovídá na Kit
Juraj Mlich:

Ja to skúšam len čisto zo zvedavosti.

Nahoru Odpovědět 3.7.2013 9:47
Vždy je lepšie učiť sa z cudzích chýb, než z vlastných chýb.
Avatar
Mr. Forstak
Člen
Avatar
Odpovídá na Juraj Mlich
Mr. Forstak:

tim sem chtěl napsat to co napsal Kit

 
Nahoru Odpovědět 3.7.2013 9:47
Avatar
Mr. Forstak
Člen
Avatar
Odpovídá na Kit
Mr. Forstak:

sem teď v případě že to smysl má -, ale je to vyjímečná situace tak pls nepište se to v reálu nestane - Kámoš LinuxD (C#) a já (Java) chceme udělat společnej projekt a nechceme se přeučovat knihovny a našprtat rozdíly.

 
Nahoru Odpovědět 3.7.2013 9:52
Avatar
Kit
Redaktor
Avatar
Odpovídá na Mr. Forstak
Kit:

Jazyky C# a Java si konkurují. V podstatě ani jeden z nich neumí nic, co by nezvládl i ten druhý. Myslím si, že ani ta vaše kombinace valného významu mít nebude, ale mohu se mýlit. Záleží na tom, jak si rozdělíte kompetence.

Nahoru Odpovědět 3.7.2013 10:01
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Mr. Forstak
Člen
Avatar
Odpovídá na Kit
Mr. Forstak:

no jako aby to posílilo program to smysl nemá, ale chceme udělat něco společně a to bez učení jinýho jazyka
no LinuxD udělá okno a já větvení (on toho umí víc).
P. S. Možná ho dáme do inkubátoru, ale uvidíme se až ve škole :(

 
Nahoru Odpovědět 3.7.2013 11:08
Avatar
Odpovídá na Mr. Forstak
Luboš Běhounek (Satik):

GUI at dela ten, co se v danem jazyce orientuje a vykonny kod ten, co tolik ne - ten kod je temer stejny.

S Lukáš Hruda (Luckin) jsme se taky pustili do jednoho spolecneho projektu a jde mu to paradne v C#, i kdyz je to hlavne C++ programator :)

Nahoru Odpovědět  ±0 3.7.2013 11:30
:)
Avatar
Mr. Forstak
Člen
Avatar
 
Nahoru Odpovědět 3.7.2013 12:45
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 67 zpráv z 67.