abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 19:55 | Nová verze

Byla vydána verze 3.11 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Řešena je řada bezpečnostních chyb.

Ladislav Hagara | Komentářů: 0
včera 15:22 | Nová verze

Byl vydán Mozilla Firefox 64.0. Přehled novinek v poznámkách k vydání a na stránce věnované vývojářům. Nejnovější verze tohoto webového prohlížeče přináší například ovládání více panelů, nebo správce úloh, který lze otevřít v nabídce Firefoxu > Více > Správce úloh, nebo napsáním about:performance do adresního řádku.

Ladislav Hagara | Komentářů: 4
včera 13:00 | Zajímavý článek Ladislav Hagara | Komentářů: 0
10.12. 22:33 | Nová verze

Po 3 měsících vývoje od vydání verze 14 byla vydána nová stabilní verze 15 open source systému Nextcloud, forku ownCloudu, umožňujícího provoz vlastního cloudového úložiště. Přehled novinek i s náhledy v příspěvku na blogu. Pro vyzkoušení Nextcloudu je k dispozici demo.

Ladislav Hagara | Komentářů: 4
10.12. 18:00 | IT novinky

Počítačová hra Doom slaví 25 let. Společností id Software ji vydala 10. prosince 1993. Zahrát si ji lze například na Internet Archive.

Ladislav Hagara | Komentářů: 14
9.12. 23:55 | Zajímavý článek

Nakladatelství Raspberry Pi vydalo 244 stránkového průvodce pro úplné začátečníky s jednodeskovým počítačem Raspberry Pi The Official Raspberry Pi Beginner’s Guide (pdf). Programování ve visuálním programovacím jazyce Scratch je věnována nová příručka Code Club Book of Scratch Volume 1 (pdf). Vydáno bylo také třetí číslo časopisu věnovaného počítačovým hrám Wireframe (pdf).

Ladislav Hagara | Komentářů: 0
9.12. 23:44 | Nová verze

U příležitosti oslav jednoho roku prací na debianím balíčku, vyšlo GPXSee 7.0. Nová verze přináší zejména podporu vektorových map (Mapbox PBF) pomocí nově vzniklého Qt pluginu.

Martin Tůma | Komentářů: 8
7.12. 23:33 | Nová verze

UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch (seznam podporovaných zařízení), oznámila vydání nové verze Ubuntu Touch OTA-6. Zdůrazněna jsou například vylepšení webového prohlížeče Morph.

Ladislav Hagara | Komentářů: 0
7.12. 21:33 | Komunita

Richard Hughes na svém blogu informuje, že se společnost AMI (American Megatrends Incorporated), největší dodavatel firmwarů a BIOSů (AMIBIOS, Aptio, ...), zapojila do projektu LVFS (Linux Vendor Firmware Service). Seznam projektem podporovaných zařízení by se měl tedy časem rozšířit.

Ladislav Hagara | Komentářů: 0
7.12. 20:11 | Komunita

Nadace pro svobodný software (FSF) informuje, že seznam doporučených svobodných distribucí GNU/Linuxu byl rozšířen o distribuci Hyperbola GNU/Linux-libre. Hyperbola vychází z Arch Linuxu a na rozdíl od něj splňuje požadovaná kritéria.

Ladislav Hagara | Komentářů: 7
Chystáte se přejít na Wayland na „desktopu“?
 (26%)
 (7%)
 (11%)
 (30%)
 (26%)
Celkem 105 hlasů
 Komentářů: 14, poslední 10.12. 12:19
Rozcestník

Dotaz: Inline assembler

3.4. 17:38 Marco
Inline assembler
Přečteno: 723×
Ahojte, v CentOS-e robim program v C-cku a potrebujem zistit aktualny cas a datum, vyuzitie procesora pripadne pamate, nazov stroja, OS a architektury.

Nechcem pri tom vyuzit kniznicne funkcie ako napr. time.h....... Najlepsie by bolo cez inline assembler, len uz hodiny hladam na internete k tomu nieco a nic neviem najst.Vedeli by ste poradit(hoci len stranku kde su instrukcie ktore by som mohol pouzit, lebo neviem nic najst).

Odpovědi

Bedňa avatar 3.4. 19:32 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Inline assembler
Nebolo by lepšie využiť systémové volania? Prípadne GNU core utils? (date, top, free, hostname, uname)
KERNEL ULTRAS video channel >>>
3.4. 20:05 NN
Rozbalit Rozbalit vše Re: Inline assembler
debuger by nestacil?
3.4. 22:54 rastos | skóre: 61 | blog: rastos
Rozbalit Rozbalit vše Re: Inline assembler
potrebujem zistit aktualny cas a datum, vyuzitie procesora pripadne pamate, nazov stroja, OS a architektury.
head  -2 /proc/driver/rtc
cat /proc/loadavg
head -3 /proc/meminfo
cat /proc/sys/kernel/hostname
a možno niečo z /proc/cpuinfo
Jendа avatar 4.4. 01:10 Jendа | skóre: 75 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Inline assembler
https://mojefedora.cz/pouziti-assembleru-v-linuxu-volani-sluzeb-nabizenych-jadrem/

Nicméně na čas nejspíš chceš zavolat správnou funkci z VDSO.
Bojíte se, že když umřete, nebudete nikomu chybět? Pište kód bez komentářů a dělejte nedokumentované změny!
4.4. 06:18 pc2005 | skóre: 37 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Inline assembler
Proč v assembleru? To chceš napsat virus? :-D

Bez time.h tedy znamená bez libc?

Jinak existují kernely zkompilovaný bez VDSO podpory, takže se pak musí volat klasicky syscall. To se pak můžeš inspirovat zdrojákama libc.

Jinak assembler znamená nulovou portabilitu a na zjištění architektury potřebuješ volat kernel :-D.

4.4. 08:42 Jardik
Rozbalit Rozbalit vše Re: Inline assembler
Volat kernel nepotrebuje, ten elf soubor ma architekturu v sobe a se spatnou se mu to jen tak nespusti
5.4. 15:12 pc2005 | skóre: 37 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Inline assembler
Hmm to je fakt, nejdřív by se to musel snažit přeložit. I když tím voláním kernelu jsem myslel i čtení flagů v cpuinfo.
5.4. 20:37 lertimir | skóre: 62 | blog: Par_slov
Rozbalit Rozbalit vše Re: Inline assembler
Proboha proč bez knihovních funkcí? Právě na toto jsou knihovny operačního systému udělány. Programátor aplikace přistupuje k systému v nějaké úrovni abstrakce a nemusí řešit, kde v systému informace na hw nebo kernel levelu je. Samozřejmě vždy můžete vzit zdroják příslušných funkcí a použít z něj tu část, která se s přístupem zabývá.
Bedňa avatar 5.4. 21:18 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Inline assembler
Možno úloha v škole ktorú nepochopil.
KERNEL ULTRAS video channel >>>
6.4. 11:55 Marco
Rozbalit Rozbalit vše Re: Inline assembler
Příloha:
Ahojte, pouzil som teda kniznicu. Toto mi funguje pre cas v Ubuntu, ale nie v CentOS-e. Resp. CentOS mi uvedie: Date: 01.01.1970 01:00:00

Neviete co moze byt za problem?
6.4. 12:18 Kit | skóre: 42 | Brno
Rozbalit Rozbalit vše Re: Inline assembler
V C++ sice nedělám, ale na první pohled tam máš příliš mnoho nesmyslných přetypování. Nech se inspirovat třeba tímto: http://www.cplusplus.com/reference/ctime/localtime/
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
6.4. 12:31 pc2005
Rozbalit Rozbalit vše Re: Inline assembler
A to se ti povede zkompilovat? Mě gcc vyhodí tak 8 chyb.
6.4. 12:35 Marco
Rozbalit Rozbalit vše Re: Inline assembler
Ano, samozrejme nemam to len tak samostatne, ale tato cast mi zisti cas.
6.4. 19:19 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Inline assembler
Nemůžu teď najít tabulku s přehledem volacích konvencí, ale jsem si skoro jistý, že i v případě syscallu by se první parametr měl předat v %rdi, ne v %rbx.
7.4. 11:41 MadCatX | skóre: 20 | blog: dev_urandom
Rozbalit Rozbalit vše Re: Inline assembler
První parametr syscallu; v tvém případě pointer na struct timeval; se musí předat v registru RDI, pokud buildíš pro x86-64. Na x86 by ti ten kód fungovat měl. Víc si přečti třeba tady: https://stackoverflow.com/a/2538212

Na x86-64 mi funguje toto:
#include <sys/syscall.h>
#include <sys/time.h>
#include <time.h>
#include <stdio.h>
#include <string.h>

int main()
{
	const long SYSCALL_NO = SYS_gettimeofday;

	long ret;
	struct timeval tv;

	char date[65], time[65];

	asm("syscall;"
	    : "=a"(ret)
	    : "a" (SYSCALL_NO), "D" (&tv)
	    : "rcx", "r11"
	    );

	if (ret != 0) {
		printf("FAIL: %s\n", strerror(ret));
		return 1;
	}

	strftime(date, 65, "%d.%m.%Y", localtime((time_t *) &tv.tv_sec));
	strftime(time, 65, "%T", localtime((time_t *) &tv.tv_sec));
	printf("Date: %s %s \n", date, time);

	return 0;
}
7.4. 12:01 Marco
Rozbalit Rozbalit vše Re: Inline assembler
super, dik :)
vlastikroot avatar 7.4. 23:12 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
Rozbalit Rozbalit vše Re: Inline assembler
Proc je potreba volat syscall rucne? Libc je snad pritomna vsude, kde je pritomne linuxove jadro (i kdyby to byla uclibc nebo treba musl).
Sg1-game | We will destroys the Christian's legion ... and the cross, will be inverted | IP 80.188.182.6
10.4. 14:56 martin-ux
Rozbalit Rozbalit vše Re: Inline assembler
Je dobre vediet neico o ABI/calling conventions. MadCatX spravil typo pri kladani linku, ta linka ale naozaj stoji za precitanie: linux calling conventions.
Na zaciatok mozno prilis vela info, ale Intel devel handbooks je naozaj dobre mat poruke.
Dobry sumar x86 asm instrukcii: mas tu aj tu. Co sa tyka gcc ak chces pouzit Intel syntax tak pridaj -masm=intel do CFLAGS.
No a zoznam syscallov najdes (aj) tu: x86-64, i386

Zadanie znie naozaj ako domaca uloha. Som za, na naucenie je to fajn. MadCatX ti dal aj ukazku ako nato, tak do toho! :)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.