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 13:00 | Komunita

Do 30. října se lze přihlásit do dalšího kola programu Outreachy (Wikipedie), jehož cílem je přitáhnout do světa svobodného a otevřeného softwaru lidi ze skupin, jež jsou ve světě svobodného a otevřeného softwaru málo zastoupeny. Za 3 měsíce práce, od 4. prosince 2018 do 4. března 2019, v participujících organizacích lze vydělat 5 500 USD.

Ladislav Hagara | Komentářů: 54
21.9. 22:22 | Komunita

Společnost Purism představila kryptografický token Librem Key. Koupit jej lze za 59 dolarů. Token byl vyvinut ve spolupráci se společností Nitrokey a poskytuje jak OpenPGP čipovou kartu, tak zabezpečení bootování notebooků Librem a také dalších notebooků s open source firmwarem Heads.

Ladislav Hagara | Komentářů: 8
21.9. 20:33 | Nová verze

Společnost NVIDIA oficiálně vydala verzi 10.0 toolkitu CUDA (Wikipedie) umožňujícího vývoj aplikací běžících na jejich grafických kartách. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
21.9. 20:00 | Upozornění

Příspěvek Jak přežít plánovanou údržbu DNS na blogu zaměstnanců CZ.NIC upozorňuje na historicky poprvé podepsání DNS root zóny novým klíčem dne 11. října 2018 v 18:00. Software, který nebude po tomto okamžiku obsahovat nový DNSSEC root klíč, nebude schopen resolvovat žádná data. Druhým důležitým datem je 1. února 2019, kdy významní výrobci DNS softwaru, také historicky poprvé, přestanou podporovat servery, které porušují DNS standard

… více »
Ladislav Hagara | Komentářů: 8
21.9. 15:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 156. brněnský sraz, který proběhne v pátek 21. září od 18:00 v restauraci Na Purkyňce na adrese Purkyňova 80.

Ladislav Hagara | Komentářů: 0
21.9. 13:22 | Nová verze

Alan Griffiths z Canonicalu oznámil vydání verze 1.0.0 display serveru Mir (GitHub, Wikipedie). Mir byl představen v březnu 2013 jako náhrada X serveru a alternativa k Waylandu. Dnes Mir běží nad Waylandem a cílen je na internet věcí (IoT).

Ladislav Hagara | Komentářů: 0
20.9. 22:00 | Nasazení Linuxu
Stabilní aktualizace Chrome OS 69 (resp. Chromium OS), konkrétně 69.0.3497.95, přináší mj. podporu linuxových aplikací. Implementována je pomocí virtualizace, a proto je tato funkce také omezena na zařízení s dostatkem paměti a podporou hardwarové akcelerace, tudíž nejsou podporovány chromebooky s 32bitovými architekturami ARM, či Intel Bay Trail (tzn. bez Intel VT-x).
Fluttershy, yay! | Komentářů: 5
20.9. 21:32 | Zajímavý projekt

Došlo k uvolnění linuxové distribuce CLIP OS, vyvíjené francouzským úřadem pro kybernetickou bezpečnost ANSSI, jako open source. Vznikla za účelem nasazení v úřadech, kde je potřeba omezit přístup k důvěrným datům. Je založená na Gentoo.

Fluttershy, yay! | Komentářů: 1
20.9. 16:00 | Komerce

Zjistěte více o bezpečné a flexibilní architektuře v cloudu! IBM Cloud poskytuje bezpečné úložiště pro Vaše obchodní data s možností škálovatelnosti a flexibilitou ukládání dat. Zároveň nabízí prostředky pro jejich analýzu, vizualizaci, reporting a podporu rozhodování.

… více »
Fluttershy, yay! | Komentářů: 12
20.9. 12:22 | Nová verze

V dubnu letošního roku Mozilla představila webový prohlížeč pro rozšířenou a virtuální realitu Firefox Reality (GitHub). V úterý oznámila vydání verze 1.0. Ukázka na YouTube. Firefox Reality je k dispozici pro Viveport, Oculus a Daydream.

Ladislav Hagara | Komentářů: 2
Na optické médium (CD, DVD, BD aj.) jsem naposledy vypaloval(a) data před méně než
 (13%)
 (15%)
 (21%)
 (23%)
 (25%)
 (4%)
 (1%)
Celkem 393 hlasů
 Komentářů: 33, poslední 16.9. 11:55
Rozcestník

Dotaz: Inline assembler

3.4. 17:38 Marco
Inline assembler
Přečteno: 719×
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
4.4. 06:18 pc2005 | skóre: 36 | 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: 36 | 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: 61 | 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: 19 | 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.