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í
×
    dnes 12:33 | IT novinky

    Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.

    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | Komunita

    Wikipedie slaví 25. výročí svého založení. Vznikla 15. ledna 2001 jako doplňkový projekt k dnes již neexistující encyklopedii Nupedia. Doména wikipedia.org byla zaregistrována 12. ledna 2001. Zítra proběhne v Praze Večer svobodné kultury, který pořádá spolek Wikimedia ČR.

    Ladislav Hagara | Komentářů: 0
    dnes 04:44 | Nová verze

    Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    dnes 02:22 | Nová verze

    Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).

    Ladislav Hagara | Komentářů: 2
    dnes 01:55 | Humor

    Microsoft zveřejnil zdrojový kód XAML Studia a uvolnil ho pod MIT licencí. XAML Studio je nástroj ze světa Windows, určený pro tvorbu uživatelského rozhraní aplikací pomocí XAML (Extensible Application Markup Language). Stalo se tak zhruba po osmi letech od prvního prohlášení Microsoftu, že se tento kód chystá zveřejnit.

    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 01:44 | Zajímavý projekt

    TimeCapsule, 'časová kapsle', je jazykový model trénovaný výhradně na datech z určitých míst a časových období, aby se tak napodobila autentická slovní zásoba, způsob vyjadřování a názory dané doby. Na Hugging face jsou k dispozici modely natrénované na historických textech dostupných v oblasti Londýna mezi lety 1800 až 1875.

    NUKE GAZA! 🎆 | Komentářů: 2
    včera 17:55 | Nová verze

    Radicle byl vydán ve verzi 1.6.0 s kódovým jménem Amaryllis. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Upozornění

    Zemřel Scott Adams, tvůrce komiksových stripů Dilbert parodujících pracovní prostředí velké firmy.

    Ladislav Hagara | Komentářů: 3
    včera 13:00 | Nová verze

    Sdružení CZ.NIC vydalo novou verzi Knot Resolveru (6.1.0). Jedná se o první vydanou stabilní verzi 6, která je nyní oficiálně preferovanou a doporučovanou verzí, namísto předešlé verze 5. Více o Knot Resolveru 6 je možné se dočíst přímo v dokumentaci.

    VSladek | Komentářů: 3
    včera 01:22 | Nová verze

    Byl vydán Linux Mint 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (5%)
     (0%)
     (8%)
     (19%)
     (3%)
     (6%)
     (3%)
     (11%)
     (44%)
    Celkem 442 hlasů
     Komentářů: 12, poslední včera 21:12
    Rozcestník
    Štítky: není přiřazen žádný štítek


    Vložit další komentář
    26.10.2021 17:12 Mayhem
    Rozbalit Rozbalit vše Re: The simple custom shell
    Co s tim jako? Stringy natvrdo, jejich delky natvrdo, uchylny coding style (nepouzivani zavorek dokonce i u cyklu)...
    26.10.2021 17:42 debianův fanoušek
    Rozbalit Rozbalit vše Re: The simple custom shell
    Haters gona hate.
    27.10.2021 07:39 Rustêj
    Rozbalit Rozbalit vše Re: The simple custom shell
    To neni hejt ale konstruktivni kritika. Program bezi v nekonecne smycce - zly pattern. Dva krat includuje stejne hacko :) Memset s bufferem? To je potencialni dira a memleak. Proste smazat a prepsat do Rustu bude nejlepsi.
    27.10.2021 08:05 KKK
    Rozbalit Rozbalit vše Re: The simple custom shell
    Rust je meme.
    27.10.2021 18:11 turboPackal
    Rozbalit Rozbalit vše Re: The simple custom shell
    Pro mne za mne at je i tahounem okamurovy kampane. Kdyz je lepsi jak C, hlavne v sprave pameti tak co resis ?
    27.10.2021 18:55 KKK
    Rozbalit Rozbalit vše Re: The simple custom shell
    Rusthead fanatiky.
    27.10.2021 21:58 turboRaku
    Rozbalit Rozbalit vše Re: The simple custom shell
    Rust fanatici neexistuji, jsou proste slechta a na c-plebs hledi s despektem. Fanatici jsou Perliste, ti dokazou deseti extatickymi zpusoby ospevovat nejdokonalejsi jazyk na zemi, ktery je tak dokonaly ze na nej uz 10 let nikdo nesahnul ale bude jeste jeden ultimatni zvany Raku. Ale az v roce 2048.
    29.10.2021 10:15 Mayhem
    Rozbalit Rozbalit vše Re: The simple custom shell
    Javistum je jedno, becauseWeKnowWeAreBetter(We.THE_BEST);
    29.10.2021 18:40 Svētlo
    Rozbalit Rozbalit vše Re: The simple custom shell
    Blbost. Javiste jsou vesmes rozumni lide a vedi, ze java neni zadny zazrak. Ale da se s ni hezky vydelat tak jsou pragmaticti. Pres den javuji v korporatu a vecer rustuji open source :-) Inu uz i Linus jde s dobou a casti kernelu se zacnou delat v rustu.
    27.10.2021 09:53 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: The simple custom shell
    Memset s bufferem? To je potencialni dira a memleak.

    Mohl byste tuhle myšlenku nějak objasnit? Samozřejmě by čistší bylo

            memset(buffer, 0, sizeof(buffer));
    

    nebo raději rovnou

            char buff[BUFF_LEN] = {};
    

    nebo

            char buff[BUFF_LEN] = "";
    

    ale jak z inicializace lokální proměnné uděláte memleak, to bych si docela rád poslechl.

    Asi je to profesionální deformace, ale spíš mi vadí ten samotný nápad mít takhle velkou proměnnou na stacku.

    27.10.2021 11:04 johnyK | skóre: 2 | blog: uxblog
    Rozbalit Rozbalit vše Re: The simple custom shell
    mít takhle velkou proměnnou na stacku.
    napr. u funkce, ktera pise do logu a jako parametr dostane vetsi text se s ti neco udelat musi.

    Co pouzivate potom. Static, malloc, extern ?

    Ja pouzivam static uvnitr funkce a priznam se, ze jsem vlastne nikdy nezkousel, kde se to uklada :-) , ja jsem si myslel, ze tyhle permanentni veci by mely skoncit v datovem segmentu, ale jisty si vlastne nejsem. Vi to nekdo na 100%? Co pouzit kdy?
    27.10.2021 11:24 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: The simple custom shell
    Záleží na konkrétní situaci, ale většinou bych upřednostnil dynamickou alokaci, tj. malloc() apod. V jádře je vzhledem k velikosti stacku tlak na šetření hodně velký, ale ani v userspace není dobré si představovat, že je stack nekonečný. Resource limit na velikost stacku (ulimit -s) sice bývá něco jako 8 MB, ale to je pro všechny thready dohromady, takže u multithreadových programů běžně používám stack o velikosti 64 KB nebo dokonce 16 KB - a pak už si rozmyslíte, jestli tak velkou část zaplácnout nějakým bufferem.
    27.10.2021 18:19 Rustêj
    Rozbalit Rozbalit vše Re: The simple custom shell
    Kdyz uz bastlis v Ccku tak si neco precti o alokaci pameti, jedine dynamicka je bezpecna. I staticka je delana pres pointry a kdyz ti tam nekdo natriska 1000 emoji tak ani Kernighan s Richiem nebudou vedet kam ta pamet ustreli kamarade. Dej na mou radu, prepis to do Rustu a tohle resit pak nemusis.
    27.10.2021 20:04 johnyK | skóre: 2 | blog: uxblog
    Rozbalit Rozbalit vše Re: The simple custom shell
    kdyz se v nejake funkci misto stovek lokalnich definec nejakych bufferu udelaji malloc-y, a ta funkce se milionkrat vyvola, tak to ma dve vyhody:

    - je mozne si jit udelat kafe, protoze to trochu trva

    - to kafe je mozno si ohrat hned na tom procesoru

    Kdyz se navic ty malloc-y trochu parametrizujou, tak je mozno takovy program nasadit jako memtest utilitu ...

    at zije Rust a vsechny moderni programy

    P.S. jeste takovou PERLicku:

    my dodavame programy do firmy, ktera se nachazi v obci Rust a kolega kdysi delal nekolik excelovych zpracovani pro mestsky urad v obci Perl. Je zajimave, ze pro radu programu existuje obec, ktera se zrovna tak jmenuje :-)
    27.10.2021 20:35 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: The simple custom shell
    my dodavame programy do firmy, ktera se nachazi v obci Rust a kolega kdysi delal nekolik excelovych zpracovani pro mestsky urad v obci Perl. Je zajimave, ze pro radu programu existuje obec, ktera se zrovna tak jmenuje :-)
    + ještě Kotlin a Java.

    Lua, Saint-Python, Cobol, Fortran, Scala, C++, Ruby, …
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    27.10.2021 21:52 Rustêj
    Rozbalit Rozbalit vše Re: The simple custom shell
    S necim si to pletes. Jak malloc tak memset ma svou alokacni rezii, ktera je (z hlediska OS) temer stejna. Tebou popisovany pripad je blbost uz sama o sobe, nikdo by to takhle nedelal a pouzil by globalnejsi store. A v Perlu jim vypust pythona :-)
    Heron avatar 27.10.2021 22:22 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: The simple custom shell
    Když je tu tolik Rustařů, nechcete o tom napsat nějaký motivační / bootovací článek? Používám golang, jsem s ním spokojený, dokonce už jsem si zvykl na hroznou syntax, ale tak nějak cítím, že vlastně chci rust, ale s jednoduchostí golangu / pythonu.

    Golang je super v několika věcech. Jedna statická binárka. Crosscompilace v základu (vůbec ty tools jsou navržené dobře). Na widlích pomocí dvou příkazů udělám binárky pro freebsd i linux. Velmi snadný koncept paralelizace. Kanály jsou tak nějak přesně to, co chci. Statické a silné typování. Rád vytvářím specifické typy a k nim metody (i když syntaxe func receiver je teda hrozná). Automatická správa paměti.

    Teď odvrácená strana. Výkon rustu je 3x větší (což je mi vlastně jedno, před dvěma lety jsem to měl v pythonu), ale proč si ho nevzít. Rust má skvělý borrow checker. Resp. celý systém varování kompilátoru. Tohle mne zaskočilo asi nejvíc, golang má statickou silnou kontrolu a přes to mu zjevné věci unikají. Nějak jsem se tomu vyhnul, ale jednou to přijde. (Ve skutečnosti největší problém, na který jsem na počátku narážel bylo to, kdo a kdy má uzavírat channel. Někde jsem viděl, že rust compiler dokáže detekovat deadlock už během kompilace.)

    Největší problém rustu vidím v komplikované cross compilation. Možná se to pohlo, nemám čas to sledovat. Vůbec nevím, jak je to se standardní knihovnou. Vždy se, pokud je to možné, vyhýbám externím závislostem. Jasně, driver pro databázi tak nějak potřebujete vždy. Knihovnu pro escape sekvence pro barvičky v terminálu importovat nechci. (To si ji raději napíšu sám.)

    Potom syntax. Moc se mi nelíbí to označování mut, move, (borrow) apod. Podle mého názoru by si to měl vyřešit compiler. V golangu je garabge collector, všechno se by default kopíruje (bohužel i pointery) a kdo chce, může používat reference (ale zase, každou proměnnou označovat hvězdičkou... prostě ta syntax je divná).
    28.10.2021 10:07 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: The simple custom shell
    Co se týče cross-kompilace, tak mám s Rustem celkem dobré zkušenosti (asi letošní březen) – nainstaloval jsem toolchain (kompilátor + std + …), zkompiloval pro armv7 (na amd64) a fungovalo to.

    Jinak jsem v opačné situaci – používám Rust, ale neustále si říkám, že bych měl zkusit Golang.

    move s Vámi soublasím – to by měl řešit spíš kompilátor. Na druhou stranu, proti let mut/mut nic nemám (pořád hezčí než const v C++) – alespoň si v tom musím udělat jasno předem. (Kotlin má val (jako let) a var (jako let mut) a tam mě to spíš obtěžuje, zčásti protože si tato klíčová slova jsou tak podobná, že se snadno spletou.)
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    Heron avatar 28.10.2021 12:50 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: The simple custom shell
    Ano, ten koncept, že je všechno immutable a je nutné označit mutable se mi líbí víc, než naopak psát const a potom na to někde zapomenout.
    29.10.2021 17:24 Martin Tůma | skóre: 39 | blog: RTFM | Praha
    Rozbalit Rozbalit vše Re: The simple custom shell
    Asi je to profesionální deformace, ale spíš mi vadí ten samotný nápad mít takhle velkou proměnnou na stacku.

    Mě teda spíš vadí to, že má takhle velkej buffer, když do něj čte maximálně 4 byty... Víc commandů za sebou to neumí, zbytek načteného bufferu stejně zahazuje. Kdyby tam měl odpovídající - 4 bytovej buffer - tak si ho dovedu na stacku klidně představit i v kernelu :-). Celkově bych to nazval jako "céčko od ne-céčkaře" (vyloženě z toho čiší neznalost základních principů, jako co je v C string a jak je reprezentovaný, co je stream a jak funguje standardní vstup, ...). Nějak takhle asi vypadaj moje programy v pythonu ;-).

    Každý má právo na můj názor!
    vlastikroot avatar 1.11.2021 12:08 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
    Rozbalit Rozbalit vše Re: The simple custom shell

    Asi je to profesionální deformace, ale spíš mi vadí ten samotný nápad mít takhle velkou proměnnou na stacku.

    Podle me 1000 bytu je mala promena, pokud se bavime o platforme, kde nejmensi velikost pridelene pameti na stack je jedna stranka (takze da se rict kazda platforma s MMU). Pokud uz je stack naalokovany, je to nejefektivnejsi metoda, jak ziskat docasnou pamet - jen se navysi stack pointer (proto ma alloca obcas svuj smysl, treba kod llvm je toho plny).
    We will destroys the Christian's legion ... and the cross, will be inverted
    1.11.2021 12:39 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: The simple custom shell
    Podle me 1000 bytu je mala promena, pokud se bavime o platforme, kde nejmensi velikost pridelene pameti na stack je jedna stranka (takze da se rict kazda platforma s MMU).

    A taková proměnná vám zabere čtvrtinu té stránky, to je docela dost, aby se nad tím vývojář aspoň řádně zamyslel. Nemluvě o tom, že v civilizovaném programu těch 1000 nebude natvrdo zadrátovaná konstanta, čímž se problém posouvá na novou úroveň. (Viz např. čistka VLA v jádře pár let zpátky.)

    proto ma alloca obcas svuj smysl, treba kod llvm je toho plny

    Snad jsou aspoň trochu prozíravější než autor resolveru v glibc, který také miluje alloca(), ale bohužel má malou představivost ohledně toho, jak velká může být odpověď nebo kolik IPv6 adres může host používat, takže ten zásobník tu a tam přeteče…

    vlastikroot avatar 1.11.2021 18:25 vlastikroot | skóre: 24 | blog: vlastikovo | Milevsko
    Rozbalit Rozbalit vše Re: The simple custom shell
    To jakoze ten glibc resolver dokaze vyzrat ten defaultni nekolikamegovy stack ? :-D Nebo se jedna o nejaky nedefaultni runtime?
    We will destroys the Christian's legion ... and the cross, will be inverted
    1.11.2021 19:10 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: The simple custom shell
    V tom případě, který jsem řešil, to stačilo to na přetečení stacku v nějaké javové aplikaci. Velikost byla IIRC 256 KB a podle všeho to byl default, nijak s jeho velikostí nehýbali.
    26.10.2021 18:10 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: The simple custom shell
    Co s tim jako?
    Reakce na tohle: https://www.abclinuxu.cz/poradna/linux/show/473630
    debian.plus@protonmail.com
    NUKE GAZA! 🎆 avatar 26.10.2021 18:44 NUKE GAZA! 🎆 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: The simple custom shell

    jaktože to jakoby má jenom 23 zobrazení ale už 12 hlasů :D

    26.10.2021 19:18 z_sk | skóre: 34 | blog: analyzy
    Rozbalit Rozbalit vše Re: The simple custom shell
    Zo začiatku bol v náhľade o blogu aj kód, teraz už nie je.
    debian.plus@protonmail.com
    NUKE GAZA! 🎆 avatar 26.10.2021 19:19 NUKE GAZA! 🎆 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: The simple custom shell
    26.10.2021 20:24 Bherzet | skóre: 19 | blog: Bherzetův blog
    Rozbalit Rozbalit vše Re: The simple custom shell
    A (skoro) všechny pozitivní. Od té doby průměr klesá.
    27.10.2021 12:02 _
    Rozbalit Rozbalit vše Re: The simple custom shell
    Zbytečné:
    while(1)
            if(loop()==1)
                break;
    Stačí naspat:
    while(loop() != 1)
    nebo == 0, ale to může mít jiný význam v závislosti na tom, jaké hodnoty vracíš.
    NUKE GAZA! 🎆 avatar 27.10.2021 17:22 NUKE GAZA! 🎆 | skóre: 37 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
    Rozbalit Rozbalit vše Re: The simple custom shell

    while(!loop());

    29.10.2021 07:59 Mayhem
    Rozbalit Rozbalit vše Re: The simple custom shell
    Hlavne pouzivani cisel jako pravdivostnich mi prijde prasarna v dobe, kdy mame stdbool.h. Take vracet cislo je prasarna, kdyz v stdlib mame EXIT_*..
    29.10.2021 08:53 bul
    Rozbalit Rozbalit vše Re: The simple custom shell
    EXIT* jsou jen konstanty pro cisla :) Nekdo ma pamet na vyrazy, nekdo zas na cisla. Ve vysledne binarce to bude stejne.
    29.10.2021 10:12 Mayhem
    Rozbalit Rozbalit vše Re: The simple custom shell
    Ja vim, ale radeji vidim true/false a EXIT_* nez return 0/1, while(1), atd. Pro citelnost kodu mi to prijde zasadni. O globalni promenne, literalech natvrdo, delkach na tvrdo, zavorkach, mega polech na stacku, atd. radeji pomlcim. Pak ma to cecko nejak vypadat, kdyz zacatecnici vidi toto a povazuji to za normu.
    29.10.2021 10:13 Mayhem
    Rozbalit Rozbalit vše Re: The simple custom shell
    Na druhou stranu, nechci hanet autora kodu. Pokud mu jeho dilo plni ucel a nepada, pak je vsechno v poradku. Priste uz napise kod jiste citelneji.
    29.10.2021 18:43 sojovy uherak
    Rozbalit Rozbalit vše Re: The simple custom shell
    Ale my nehanime autora. My delame code review tomu paskvilu co vyprodukoval, to je rozdil :-)
    1.11.2021 15:38 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: The simple custom shell
    … radeji vidim true/false a EXIT_* nez return 0/1, while(1), atd.
    Souhlasím. Mám také raději „ukecanější” kód ze kterého je jasné co se kdy děje, než rébusy, u kterých lze návratovou hodnotu snadno zaměnit. Číselné hodnoty využívám jako návratovou hodnotu jen tam, kde potřebuji odchytnout konkrétní místo.

    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.