Java a unixové doménové sokety, FD, systemd a xinetd
vydáno: 4. 6. 2019 16:32,
aktualizováno: 18. 2. 2024 01:10
Internet běží sice převážně na TCP/IP, ale v rámci jednoho počítače máme i vhodnější způsoby komunikace. V tomto článku se podíváme na unixové doménové sokety a jejich použití v Javě. Předáme si souborové popisovače (FD) z rodičovského procesu potomkovi a ukážeme si princip socket activation. Nakonfigurujeme si služby v klasickém xinetd i moderním systemd a nakonec propojíme Jetty a Apache HTTPD pomocí unixového soketu.
HiFive1 – deska s otevřeným čipem RISC-V
vydáno: 4. 8. 2018 23:23,
aktualizováno: 2. 3. 2020 01:14
Zatímco v oblasti softwaru jsme se dostali do stavu, kdy všechny běžné potřeby uživatele lze uspokojit svobodným softwarem (operační systém, nástroje, aplikace…), a uživatel má tak plnou kontrolu nad svým systémem, v oblasti hardwaru jsou stále uživatelé většinou závislí na tom proprietárním-uzavřeném. Uzavřenost – jak softwaru, tak hardwaru – má řadu negativních dopadů. Jde buď o těžko odhalitelné a často neopravitelné chyby nebo o záměrně škodlivé vlastnosti. Poslední roky jsou v tomto ohledu zvlášť bohaté: Intel AMT/ME (trojský kůň přímo v procesoru, před kterým nás FSF varovala už někdy v roce 2014) nebo Spectre a Meltdown. Ať už jde o chybu, záměrně škodlivou vlastnost nebo kombinaci obojího, důsledky jsou stejné – počítač přestává poslouchat svého uživatele/vlastníka a řídí se pokyny někoho jiného, komu buď předává naše data (šifrovací klíče, citlivé soubory…) nebo nám zabrání v používání počítače (např. DRM), pozmění či smaže data. Tohle je jednoznačně nežádoucí stav – a to bez ohledu na to, zda jste běžný uživatel, banka, výrobní firma, vládní organizace nebo armáda. Současná situace v oboru je hodně špatná. Nicméně i v případě hardwaru se situace zlepšuje. Cestou, jak z toho ven, je otevřenost a veřejná kontrola – nad zdrojovým kódem i nad hardwarovými návrhy. Máme poměrně silné hnutí tvůrců otevřeného hardwaru, vzniká spousta desek a zařízení, ke kterým jejich autoři zveřejňují schémata a seznamy součástek, zdrojové kódy firmwarů, návrhy pro FPGA a návody na výrobu. Ale i v těchto případech zůstává většinou zásadní část systému – procesor počítače nebo MCU (microcontroller) menšího zařízení – uzavřená. Není to vinou autorů těchto návrhů, ale tím, že otevřené součástky na trhu chybí – nebo alespoň donedávna chyběly. Ovšem i tady jsme na dobré cestě: máme architekturu OpenPOWER pro výkonné servery a pracovní stanice a máme RISC-V a lowRISC pro menší zařízení.
Přepisování parametrů příkazové řádky
vydáno: 25. 11. 2017 20:26,
aktualizováno: 16. 12. 2017 22:07
Obecně se nedoporučuje předávat citlivá data (např. hesla) programům jako parametry na příkazové řádce. Důvodem je jednak to, že se spuštěné příkazy ukládají do historie, a jednak to, že by se k parametrům mohli dostat jiní uživatelé resp. procesy na témže počítači. Bezpečnější je proto citlivé údaje předávat buď ve formě souborů (kterým lze nastavit práva) nebo přes standardní vstup (rouru). Řada programů možnost zadat heslo na příkazové řádce zrušila nebo nikdy nenabízela – podporují pouze interaktivní režim nebo předání souborem či rourou. Některé programy zadání hesla parametrem stále umožňují a některé v sobě mají jakousi ochranu, která zabrání tomu, aby takto zadané heslo šlo snadno zjistit z výpisu procesů. V následujícím článku se podíváme, jak si takový program skrývající hesla můžeme napsat sami.
Paralelní port jako generátor signálu
vydáno: 11. 6. 2017 19:05,
aktualizováno: 5. 7. 2020 16:39
Dnes oprášíme zase jednu starou dobrou technologii – paralelení port – a ukážeme si, jak ji softwarově ovládat. Protože je to dost nízkoúrovňová záležitost, nebude to tentokrát v Javě ale v C++. Cíl bude poměrně skromný: generovat obdélníkový signál s frekvencí 10 000 Hz a zadanou střídou (což zde neznamená střed chleba). Ve výsledku budu signál generovat jiným programem, nicméně nejdřív si chci otestovat jednotlivé části systému samostatně, takže teď to bude jen LEDka a pár řádků kódu bez nějakých složitostí.
Opravujeme chyby v softwaru: inotify-tools
vydáno: 4. 10. 2015 12:25,
aktualizováno: 26. 8. 2018 14:13
V pátek jsem narazil na chybu v programu inotifywait a dneska jsem ji ze zvědavosti trochu prozkoumal. Program za určitých okolností padal (SIGSEGV, core dump). Jedná se o celkem banální chybu, kterých je všude plno, a rád bych na ní ukázal, jak v takovém případě můžeme postupovat.