V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Berkeley Humanoid Lite (Onshape, GitHub) je open source humanoidní robot. V amerických cenách jej lze sestavit do 5000 dolarů.
Jakub Jelínek oznámil vydání verze 15.1 (15.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 15. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
Byly vyhlášeny výsledky letošní volby vedoucího projektu Debian (DPL, Wikipedie). Staronovým vedoucím zůstává Andreas Tille.
Jason Citron končí jako CEO Discordu. Od pondělí 28. dubna nastupuje nový CEO Humam Sakhnini, bývalý CSO Activision Blizzard.
Článek na Libre Arts představuje baskytarový multiefekt Anagram od společnosti Darkglass Electronics. S Linuxem uvnitř (licence, GitHub).
Městský soud v Praze vyhlásil rozsudek, který vyhověl žalobě novináře Jana Cibulky, který s podporou spolku IuRe (Iuridicum Remedium) požadoval omluvu od státu za to, že česká legislativa nařizuje operátorům uchovávat metadata o elektronické komunikaci. To je přitom v rozporu s právem. Stát se musí novináři omluvit a zaplatit náklady řízení. Především je ale součástí přelomové rozhodnutí o nelegálnosti shromažďování dat a o
… více »Americké technologické firmy Apple a Meta Platforms porušily pravidla na ochranu unijního trhu, uvedla včera Evropská komise (EK). Firmám proto vyměřila pokutu – Applu 500 milionů eur (12,5 miliardy Kč) a Metě 200 milionů eur (pět miliard Kč). Komise to oznámila v tiskové zprávě. Jde o první pokuty, které souvisejí s unijním nařízením o digitálních trzích (DMA). „Evropská komise zjistila, že Apple porušil povinnost vyplývající z nařízení
… více »Americká společnost OpenAI, která stojí za chatovacím robotem ChatGPT, by měla zájem o webový prohlížeč Chrome, pokud by jeho současný majitel, společnost Google, byl donucen ho prodat. Při slyšení u antimonopolního soudu ve Washingtonu to řekl šéf produktové divize ChatGPT Nick Turley.
Ve věku 89 let zemřel Niklaus Wirth, nositel Turingovy ceny za vývoj programovacích jazyků a autor Wirthova zákona: Software se zpomaluje rychleji, než se zrychluje hardware.
Tiskni
Sdílej:
Upřímnou soustrast... TurboPascal jsem miloval na odborné škole. To bylo ještě před zavedením JAVY do škol.Takze si myslim, ze je nyni otevrena diskuze, co je nejlepsi prog. jazyk.
Copyright (c) 1994 by Borland InternationalTřicet let. Po třiceti letech to pořád žije a běží na dnešních platformách. Klobouk dolů. Na C++ nebo Javu můžeme nadávat a hledat na nich mouchy, ale vývoj softwaru není krasobruslení nebo aranžování květin, které za pár dní zvadnou. Když to porovnám s "moderními" technologiemi: máme tu několik let starou webovou aplikaci - dneska je problém ji vůbec sestavit a provozovat, lidi se na to bojí sáhnout, i přidání jednoho textového políčka do formuláře je dobrodružství s nepředvídatelným výsledkem. Najatí experti na web (z jiné firmy s velmi dobrými referencemi) se toho štítí a nechtějí na tom pracovat - protože oni přece dělají webové appky tak, jak je to "moderní" dneska, ne jak to bylo "moderní" před těmi pár lety.
Při psaní kódu potřebuju dobrý texťák, ale nedebugujuLadění v debuggeru používám relativně výjimečně, ale i tak nevidím důvod, proč bych měl kvůli tomu odskakovat někam jinam, používat jiný editor, jiné klávesové zkratky atd. Prostě vyvíjím a pak se jen připojím k běžícímu procesu a krokuji ho, ale pořád jsem v tom stejném prostředí, mám otevřené ty samé soubory, maximálně si přepnu režim v IDE nebo otevřu/zavřu pár jeho panelů/oken. Další věc je, že někdy můžu použít živé patchování běžícího programu – upravím část kódu a ono se to překompiluje a vloží do toho programu, aniž bych ho musel ukončovat a znova pouštět. V Javě to funguje jen do nějaké míry, jednodušší úpravy, ale jsou i programovací jazyky, kde toho lze za chodu patchovat mnohem víc.
prostě pořídím třeba stovky nebo tisíce řádků, kdy se v průběhu ani neočekává, že by to snad bylo přeložitelné. Pak někdy je fáze s překladem, kdy řeším nedeklarované nebo naopak nepoužité proměnné a podobné detaily.Ne, že by to nešlo, byly doby, kdy se programovalo tužkou na papír nebo děrováním štítků, ale proč? K čemu je to dobré? Dneska považuji za samozřejmost, že mi IDE průběžně při psaní kódu kontroluje překlepy, syntaxi, vím, že třídy/metody/proměnné, které používám, existují, případně to dává i nějaká varování (např. „tahle proměnná může být null“ nebo „tahle výjimka zde nemůže vyletět, tak ji nemusíš odchytávat“). Občas si vytisknu zdroják na papír a přemýšlím nad ním mimo počítač nebo si ho jen schovám do šuplíku. Ale že bych takhle offline (nebo de facto offline v editoru, který nerozumí kódu a nepomáhá) chtěl tvořit nějaké větší množství kódu, to asi ne.
Dokumentace je zase zcela jiný případ.Pokud píší dokumentaci v TeXu nebo Docbooku, tak ji píši ve stejném IDE jako programuji. Výhoda je např. integrace s verzovacím systémem – IDE mi podbarvuje změněné řádky nebo si tam můžu zobrazit historii, udělat blame atd. funguje to stejně jako při psaní kódu. Spustit generování dokumentace přes Make/Ant se dělá zase stejně jako sestavení programu, prostě je to jen jiný typ projektu.
Různé testy zase jiný.Jednotkové testy jsou normální zdrojový kód ve stejném jazyce. Takže opět v IDE. Integrační testy můžou být třeba v JMeteru nebo něčem jiném, takže to třeba dělám jinde. Ideální integrace by pak ale měla být, že se při testech zaznamená pokrytí kódu a to mi podbarví/označí řádky v IDE (ne v nějakém jiném nástroji/okně mezi kterým a IDE se budu muset přepínat).
A pokud jen samotný spustitelný soubor vimu je více než 100x (nebo třeba 1000x) větší, než kompletní RAM na cílovém počítači, tak nedává moc smyslu při krokování toho programu ten vim chtít používat. … Ostatně ani pod DOSem by mi současný vim při debugování moc nepomohl. Zato při psaní programu nevidím důvod se omezovat v použití nástrojů omezeními cílové platformy.Debugger/IDE přece může běžet jinde než aplikace. Vzdálené ladění je normální věc. Program může klidně běžet na nějakém jednočipu a ladí se přes JTAG z velkého počítače. Nicméně abych byl upřímný, tak já taky používám takový smíšený přístup. Mám sice IDE, ve kterém dělám většinu věcí a nestydím se za to, ale zároveň jdu i tou cestou „UNIX je moje IDE“ (nebo spíš GNU/Linux tedy) a mám různé programy na různých virtuálních plochách a přepínám se mezi nimi – např. s verzovacím systémem pracuji napůl v IDE a napůl z příkazové řádky, protože každý přístup je na něco lepší. A některé soubory taky edituji v konsoli a netahám je nutně do IDE. BTW: přes Vánoce jsem si udělal radost a publikoval tohle: ShaderShark – je to malá věc, spíš jen taková hračka, ale taky ukázka toho přístupu „UNIX je moje IDE“ – ten program samotný je jen zobrazovač, zatímco editor kódu (GLSL) si člověk použije vlastní, parametry (properties objektu) jsou rozšířené atributy (xattr) na souborovém systému a edituješ si je zase nezávislým editorem, textury přepínáš prostě nakopírováním souboru pomocí
cat
, cp
nebo nějakého správce souborů. A dohromady to funguje díky integraci přes inotify a zámky. Časem by mělo přibýt nějaké API a rozhraní pro moduly. Tzn. IDE je pak ta kombinace těch programů dohromady, ne jeden program, ale důležité je, aby to bylo integrované a dobře spolupracovalo.
... nejaky dalsi nastroj..
git diff
?
... Říká se, že jeden opravdový programátor zorganizoval v lodi Voyager doplnění programu pro rozpoznání, a to do několika stovek nevyužitých bytů v paměti. Doplněk programu nalezl, určil umístění a vyfotografoval nový měsíc Jupitera. ...
Na borlandí překladač Pascalu jsem stížnosti moc neslyšel, ale je fakt, že to byl dost jednoduchý neoptimalizující překladač (v době, když jsem ho používal).Delal jsem v tom mimo jine vcelku velke podnikove IS a s prekladacem problemy nebyly.
Daly se psát i v Visual C++, ale bylo to výrazně pracnější než třeba v Delphi (a opravdu o dost). Technologicky bylo Delphi lepší než VisualBasic.Nejhorsi na tom je, ze i dnesni vyvoj uzivatelskych aplikaci je pracnejsi nez s Delphi v devadesatkach.
Delphi a jeho C++ náprotivok (C++Builder) AFAIK žije u spoločnosti Embarcadero Technologies, i keď je to asi len pre Windows. Ale určite sa nájde nejaká OSS klikacia alternatíva umožňujúca naklikať si notepad za 5 minút aj bez znalosti programovania, ako napríklad Lazarus aj s VCL. Ale kto by dnes používal desaťročia overené nástroje, že?Daly se psát i v Visual C++, ale bylo to výrazně pracnější než třeba v Delphi (a opravdu o dost). Technologicky bylo Delphi lepší než VisualBasic.Nejhorsi na tom je, ze i dnesni vyvoj uzivatelskych aplikaci je pracnejsi nez s Delphi v devadesatkach.
Jednak zaváděl svoje vlastní standardy, které se ale mimo Borland neujaly - BDE nebo VCL, a pak i jeho cenová politika byla neudržitelná.IMHO, VCL byla ve sve dobe uplna spicka.
Microsoft vydělával na uživatelských licencích a vývojářské nástroje zlevňoval, Borland na licencích pro vývojáře.Kdyz na konci devadesatek kralovalo Delphi, bylo VS neuveritelne neohrabane, moc toho neumelo, a prace s nim byla utrpeni. Co si vzpominam, treba napovidani kodu spis nefungovalo nez fungovalo a bylo zaoufale pomale. Ale Microsoft mel docela drsnou licencni politiku. Treba nam chodili na ,,upgrade'' stylem: ,,Upgrade z libovolne verze Delphi na Visual Studio za 0 Kc.'' Jsem si tehdy naivne rikal: To se smi?
Často s nutností instalovat vlastní ovladače ála databázové drivery. Prostě to nebylo ono.Java má JDBC, Perl má DBI, PHP má PDO, Microsoft má asi pět takových API… v podstatě každý jazyk má svoji databázovou abstrakci a někteří na to rezignují a jsou tam jen knihovny pro konkrétní DB, takže nulová přenositelnost… Za společný standard by šlo snad považovat ODBC… ale že bych si při jeho používání chrochtal blahem, to zrovna ne.
Například není těžké někoho naučit dělat s Microsoft Access, ani neprogramátora - a může si udělat co databázového chce včetně formulářů, zadávání hodnot a libovolného GUI. Přičemž základní wizardi mu vygenerují zadávání, zobrazování a x dalších akcí aniž by se musel moc snažit. Dostupné už v 90. letech 20. století.Na zakladni CRUD je Access docela dobry, problemy ma dva. Pokud chce clovek vybocit mimo zakladni operace CRUD zacne to byt peklo a druhy problem je, kdyz se ,,programovani'' chopi clovek, ktery o databazich nic netusi, protoze udelat databazi v Access je prece jednoduche. Nejednou jsem zazil, ze si lidi v Accessu vytvorili a pouzivali moloch bez jakekoliv koncepce, navrhu, normalizace a jednoho krasneho dne jim to zacalo prerustat pres hlavu a nikdo nevedel, co s tim, a jestli bych to dokazal predelat...
Pc fand nezaručoval nic. Když vám zbuchne počítač, nezaručoval, že data a databáze budou v nějakém konzistentním stavu. Možná ano, možná už z ní nic nepřečtete.Az do prichodu W2K nemohla zadna souborova databaze typu Fand/xBase zarucovat v DOSu/Windows cokoliv, protoze takove garance OS proste neposkytoval. ...a presto na FoxPro zcela bezne bezely firmy o tisicich zamestnancich a pouzivali to na vsechno od planovani vyroby az po mzdy.
2) V DOSu jste si mohl udělat co chcete, protože DOS není ipso facto operační systém, ale spíše knihovna podprogramů, které si můžete zavolat.DOS je operacni system v tom smyslu, ze poskytuje abstrakci nad HW, jako kazdy jiny OS.
Takže není pravda, že pod DOSem nelze udělat odolnou databázi.Ano, to je pravdive a nicnerikajici tvrzeni. Teoreticky to mozne je, prakticky nikoliv. V momente kdy zacne pouzivat tehdejsi souborovy system, muze na garance cehokoliv zapomenout.
V momentě, kdy dojde k poškození filesystému, tak přijdete o databázi i na dnešních systémech.To je jasne, ale poskodit tehdy FS nebylo zase nic moc sloziteho. Tvrdy reset + nasledny chkdsk bylo neco uplne samozrejmeho. Cf. dnesni OS nebo z tehdejsich treba NT4.
Jako minimum pro implementaci databáze se bere schopnost si vynutit fsync, a případně možnost sdílených zámků. Mám pocit, že tohle už 6tkový DOS uměl. Některé databáze fsyncovaly, jiné nikoliv - např. MySQL MyISAM. 602SQL měla fsyncování nastavovatelné, ale uživatelé to měli většinou vypnuté, protože to bylo o dost pomalejší.Nebudu kecat, uz je to hodne let, ale rozbite databazove soubory byly tehdy dennim chlebem, to same zmizele soubory po chkdsk. Jestli to bylo spatnym (ne)pouzitim fsync nebo jeho nepritomnosti/spatnou implementaci, to uz asi nezjistim.
běželo to v DOSu s Novelláckou sítí (první půle 90 let). Neslyšel jsem, že by s tím byly problémy.
To bude právě tou netwarovou sítí. NetWare klient se zaháčkoval do jedné z mála abstrakcí, co DOS poskytoval, do souborového systému, a souborové operace se po síti přeposílali na NetWare server, který samozřejmě měl vlastní souborový systém (ne FAT) a vlastní operační systém (ne MS-DOS). Takže poškození souborového systému se nekonalo.
Jiná věc bylo poškození dat na úrovni aplikace-databáze, která naopak u těchto aplikací byla v serverovém nasazení obvyklá. Příčinou ale byla databáze samotná, protože nepředpokládala paralelní přístup více uživatelů. To pak dodavatel aplikace flikoval vytvářením zámkových souborů, nebo se prostě administrativně nařídilo, že aplikaci smí používat nejvýše jeden uživatel :) Ono v menších nasazeních, kde jednu agendu stejně vyřizoval jen jeden zaměstnanec, to zas tak nevadilo.
jen si nejsem úplně jistý jestli ta odolnost vůči rizikům musí být na nových systémech výrazně většíNemusí. Např. taková Kafka běžící na MS Windows se do dvou týdnů rozsype, je tam nějaký problém se zámky souborů. To znamená promazat data a přijít o uložené zprávy. Řešení to buď nemá nebo se to řešit nechce – na téhle platformě to stejně nikdo soudný nepoužívá, maximálně tak nějaký vývojář pro testování, který si data ale promazává častěji, než to stihne vyhnít. Ale to jsou MS Windows. Na GNU/Linuxu tenhle problém není.
Program spuštěný v DOSu de facto funguje jako jádro operačního systému, a řídí celý počítač.To jako kazdy program si nese sebou vsechny ovladace? To jako kazdy program si sebou nese implementaci souboroveho systemu?
DOS sice poskytuje abstrakci nad (maličkou částí) hw, ale nijak vám nebrání ji obejít.No, a? OS ma dve funkce, jednak poskytovat abstrakci HW, starat se o spravu systemovych zdroju. Obe tyto funkci DOS plni. To, ze z duvodu omezeni hardwaru tyto funkce neplni zcela, je na jinou diskuzi. S takovou by za operacni system neslo povazovat ani CP/M, Win9x, macOS (classic) a dalsi, se vsemi dusledky. Ale takovy uz je svet Miroslava Ponkrace.
DOS poskytoval spouštěč programů a souborový systém.Jeste treba textovy vstup/vystup, proste to co IBM PC v roce '80 umelo.
Ad 2) Znovu, pletete hrušky s jablky. DOS je spíše knihovna podprogramů než operační systém.A co ty podprogramy delaly? Dokazes mi najit nejaky relevantni zdroj, ktery bude tvrdit, ze MSDOS neni operacni system, ale knihovna funkci? Je CP/M operacni system nebo knihovna podprogramu? Je Win9x operacni system nebo knihovna podprogramu, kdyz v nem lze prakticky pristupovat ke vsemu HW stejne jako v MSDOSu? Plati to i pro MacOS Classic?
Představte si, že ta báječná dlouhá diskuse zde byla striktně o věci a tématu. Až deda.jablko začal útok ad hominem. Dost to říká o vaší osobě, kdo jste zač, a co si o vás myslet.Uz jsem dostatecne stary na to, abych zazil dost diskuzi, kde jisty pan Ponkrac zacal sve dojmy (v rozporu s realitou) vydavat za fakta. A toto je jedna z nich.
O dekádu později, když jsi ve W95 neznal heslo, tak stačilo stisknout EscapeTo bylo ale jen na desktopu nepřipojeném k síti, kde to heslo bylo stejně k ničemu, ne? Na počítačích připojených do sítě to bylo složitější. Pamatuji si, jak jsem na základce objevil, že z toho přihlašovacího dialogu se můžu dostat do nápovědy a ten prohlížeč nápovědy má zase dialog na otevření jiného
*.hlp
souboru, no a v něm šlo místo *.hlp
zadat *.*
a najít si nějaký EXáč a ten pak šel odtamtud spustit :-)
CP/M je osmibitová hračka, zato CP/M-86 dokázal z diskety nabootovat pod sekundu a chránit na ní data několika uživatelů před neoprávněným přístupem.CP/M-86 jsem nepotkal, mohl bys mi proto vysvetlit, jak tam meli vyresene, aby na 8086/88 jednotlive procesy nemohly pristupovat na libovolne misto v pameti a pristupovat primo na porty (jako to delaly DOSove programy)?
Úplně stejně jako UNIX na PDP-11.Porad tomu nerozumim. Jelikoz PDP-11 doma nemam, pro jistotu jsem vytahl i Lions' Commentary on the Unix Operatings systems, a podle toho i Unix na PDP-11 rozlisoval kernel a user mode a pouzival segmentaci pameti k oddeleni jadra a uzivatelskeho prostoru. Takze zopakuji otazku: Jak meli CP/M-86 vyresene, aby na 8086/88 jednotlive procesy nemohly pristupovat na libovolne misto v pameti a pristupovat primo na porty (jako to delaly DOSove programy)?
Je to věc procesoru.Jak se na 8086 prepnes z kernel mode do user mode a zpet? Nebud slusny a rekni instrukce!
Tak schválně, jak to přepínal M$ Xenix, nejrozšířenější Unix své doby?Vsak se te na ptam! Zajimaji me ty instrukce, ne to, ze to delalo dalsich n+1 operanich systemu.
Už jsem ti to řekl dvakrát, a mluvím o tom stroji na kterém UNIX v roce 1972 rozjeli, ne o pozdějších verzích z osmdesátých let.Jak to udelali v roce '72 netusim, protoze k tomu nemam zdrojaky. Ale V6 z roku 75, ktera jela na PDP11/40 (z roku '73) a ke ktere existuji komentovane zdrojaky, pouzival normalne kernel/user mode s nastavenim opravneni k jednotlivym segmentum. A vis proc? Protoze to processor podporoval!
Dělal to MULTICS v roce 1965, tak jak to dělal MS-DOS v roce 1981?Multics, stejne jako PDP-11, mel spravu pameti, ktera to umoznovala. 8086/88 nikoliv. Tak me teda zajima, jak to v CP/M-86 udelali.
Ale ty tvrdíš že MS-DOS byl operační systém, tak mi řekni jak přiděloval programům paměť? Jak přihlašoval uživatele? Jak chránil jejich data?Ja opravdu nikde netvrdim, ze OS musi prihlasovat uzivatele. Treba v OS pro embedded zarizeni je to zcela zbytecna funkcionalita. K tomu, ze ochrana dat je problematicka, jsem se jiz vyjadril. Ale nejak jsem se stale nedozvedel, jestli W9x nebo MacOS (classic) taky nebyly OS, kdyz nechranili data uzivatelu. A jelikoz mas problem vysvetlit, jak tu ochranu delal CP/M-86 a misto toho mlzis, nejspis to nezvladal ani tento OS.
Multics, stejne jako PDP-11Aj, to se pozná odborník. Když nerozezná hardware od softwaru! Ano, v roce 1973 to procesor už podporoval. A jak to dělal MS-DOS 5 na dvaatřicetibitové 486ce v roce 1991? No pověz! Jak to dělal CP/M-86 v roce 1981 se můžeš podívat na straně 75. Takže MS-DOS je jednouživatelský jednoúlohový spouštěč programů, pokud nedokážeš opak. A mezitím si nastuduj doporučenou literaturu, ať víš co to operační systém vlastně je: https://aukro.cz/madnick-donovan-operacni-systemy-1983-6969168354 https://aukro.cz/principy-operacnich-systemu-per-brinch-hansen-6977137529 V Maloměku to nevědí dodnes
Multics, stejne jako PDP-11Beru, upsal jsem se, myslel jsem GE645. Je to dulezite?
Jak to dělal CP/M-86 v roce 1981 se můžeš podívat na straně 75.Tos mi teda pomohl. Ja jsem se tesil, ze mi ukazes nejaky hack, kterym se na x86 podarilo zablokovat instrukce IN, OUT, nektere zmeny priznakoveho registru (treba IF), zmeny tabulky preruseni, ... a ty mi tady posles odkaz na uzivatelsky manual! Bez toho, co jsem ti popsal, je ten tvuj CP/M-86 stejne neschopny jako MSDOS a nedokazal ochranit data uzivatelu stejne jako treba W9x (nekteri si treba vzpomenou na CIH).
Takže MS-DOS je jednouživatelský jednoúlohový spouštěč programů, pokud nedokážeš opak.Proc bych mel dokazovat, ze MSDOS neni jednoduzivatelsky jednoulohovy operacni system, kdyz je to pravda? A jednou z prirozenych funkci operacniho systemu je pochopitelne spousteni procesu. Ty si v Linuxu nespoustis programy? Mimochodem, uz jsi Ponkracovi vysvetlil, ze MSDOS je tedy spoustec programu a ne knihovna?
DATA 55,89,E5,8B,5E,06,8B,17,8B,5E,08,8B,0F,8B,5E,0C,8B,07 DATA 8B,5E,0A,8B,1F,1E,07,CD,33,53,8B,5E,06,89,17,8B,5E,08 DATA 89,0F,8B,5E,0C,89,07,58,8B,5E,0A,89,07,5D,CA,08,00,90Zjištění pozice myši a stisknutých tlačítek:
DEF SEG = VARSEG(asm) ax = 3 CALL Absolute(ax, mb, mx, my, VARPTR(asm))Pro pokročilejšího uživatele MS-DOSu by tohle měla být běžná věc, protože právě k tomuhle tam ten QBasic dávali. Ani se to nemuselo poukovat jako na ZX Spectru
Cpeš mi reálný mód u jednouživatelského jednoprogramového systému, ale já chci slyšet jak ten DOS ochrání data UŽIVATELŮ, ne procesů!GOTO #233
Takže ten CP/M-86, jak ses mohl v mnou odkazovaném manuálu dočíst a vyzkoušet v emulátoru, má příkaz USER, který umožňuje až 16 uživatelům mít svá soukromá data neviditelná ostatním na jednom disku. Jde to i zaheslovat.Coz je skvela funkce do te doby nez si nektery uzivatel napise nastroj, ktery mu pomoci instrukci IN/OUT umozni pristupovat primo k jednotlivym sektorum disku a tedy k celemu souborovemu systemu. V tento moment se ta funkce stava zcela zbytecnou. Jinak je to kod na par radku. Jesteze tam je to heslo, ktere nikdo nezjisti... ledaze by si treba nekdo povesil vlastni handler na IRQ1, ale... to by prece nikdo neudelal, ze ne? Nebo co kdyby nekdo upravil primo tu funkci pro vstup hesla... a to stejne nikdo nedokaze, tak proc se tim trapit?
A ukaž mi jak data uživatelů chráni MS-DOS. Nebo W9x, kde místo zadání hesla stačilo zmáčknout EscapeNapisu to radeji v BASICu, abys tomu rozumel i ty.
10 NAUC SE CIST! 20 GOTO #233 RUN
Ve skutečnosti je MS-DOS pouhý zavaděč programů, poskytující nijak nechráněný přístup k veškerým datům na všech discích. Jednouživatelský, jednoprogramový, nic víc, ani síť neuměl.Tak treba prof. Tanenbaum v Modern Operating Systems, pise:
MS-DOS was a 16-bit real-mode, single-user, command-line-oriented operating system consisting of 8 KB of memory resident code. Over the next decade, both the PC and MS-DOS continued to evolve, adding more features and capabilities. By 1986, when IBM built the PC/AT based on the Intel 286, MS-DOS had grown to be 36 KB, but it continued to be a command-line-oriented, one-application-ata-time, operating system.Takze na jedne strane Ponkrac tvrdi, ze MSDOS je knihovna, Radovan tvrdi, ze je to zavadec programu, a pak tu mame treba cloveka, ktery cely zivot zasvetil vyzkumu v oblasti operacnich systemu, podle jeho knizek se uci na prednich univerzitach a za svuj prinos svetu operacnich systemu dostal, peknou radku oceneni, ktery tvrdi, cituji jeste jednou: ,,MS-DOS was a 16-bit real-mode, single-user, command-line-oriented operating system. Nazor na to, kdo ma z tech tri vetsi vhled do problematiky, nech si udela kazdy sam. A rekne mi uz nekdo z tech, co nepovazuji MSDOS za OS, jestli W9x byly taky operacni system, nebo ne?
Až vám dám článek, že země je plochá deska, kterou nesou na sobě čtyři želvy, tak to zřejmě budete brát jako tvrdé a nezpochybnitelné faktum.Vzhledem k tomu, ze jsem stejne jako dalsi miliardy lidi na teto planete nekolik desitek let zil v omylu, ze CP/M, DOS, a nejspis i Win9x, MacOS (classic) jsou operacni system, nediv se, ze se mi nechce verit necemu, co nekdo tvrdi na internetu.
Jo, vy uvažujete jen skrze odkazy / články / knížky; zatímco vlastní uši, oči, mozek jsou pro vás deprecated.Kdyz jsem polozil dotazy, abych si utvoril nazor na tento neortodoxni pohled, nedostal jsem odpoved. Kdyz jsem se zeptal, jestli existuje jeste nekdo relevantni (krome tebe a ruskeho trolla radovana), kdo zastava podobny nazor, opet jsem nedostal odpoved. Tolik k tomu, kdo tu ma vystredni nazory na operacni systemy a plochou zemi.
Architektura DOSu byla taková, že na začátku nabootoval command.com. Ten (plus nějaké smetí kolem, které se nahrálo do paměti jako obslužné rutiny, které mohla vaše aplikace použít pomocí INT 21h).Tak nejdriv se natahl IO.SYS (ovladace) a MSDOS.SYS (jadro) a pak podle CONFIG.SYS se pripadne spustil (COMMAND.COM nebo neco jineho) a pripadne se pak provedl AUTOEXAC.BAT.
Ten (plus nějaké smetí kolem, které se nahrálo do paměti jako obslužné rutiny, které mohla vaše aplikace použít pomocí INT 21h).To smeti okolo (IO+MSDOS.SYS) je nezbytne nutne, aby vubec sel ten COMMAND.COM najit na disku a spustit. Bez toho by nemohl spoustet vubec zadne exace.
Už neběžel. Pokud ten exáč něco v paměti přepsal, blbě spadnul, nebo tak něco, tak command.com taky nemusel vůbec naskočit.To je u takoveho operacniho systemu vcelku prirozena vec, ze nema ochranu pameti, kdyz ji nema HW. A ze kdyz v jednoulohovem OS proces neskonci, nemuze byt spusten jiny proces. Ale dekuji, ze jsi mi to vysvetlil.
Také si myslím, že DOS nebyl plnohodnotný OS tak jak si to představujeme.Svet OS je docela pestry a zajimavy, a to co muze dany OS delat je dano hardwarem, na kterem bezi. Porad mi ale nikdo neodpovedel, jestli treba W9x byly operacni systemy nebo ne.
Souhlasil bych s kategorizací, že to byl pouhý zaváděč programů.Muzes tedy, prosim, vysvetlit Ponkracovi, ze MSDOS neni knihovna?
Tak nejdriv se natahl IO.SYS (ovladace) a MSDOS.SYS (jadro) a pak podle CONFIG.SYS se pripadne spustil (COMMAND.COM nebo neco jineho) a pripadne se pak provedl AUTOEXAC.BAT.BIOS, BDOS, CCP. Akorát Gary Kildall neměl drzost říkat tomu operační systém
Akorát Gary Kildall neměl drzost říkat tomu operační systémTak samozrejme:
BDOS = Basic Disk Operating System. CP/M = Control Program for MicrocomputersČili to co ty nazýváš operační systém je jenom jedna komponenta řídícího programu. Knihovna funkcí umožňujících přístup k souborům na discích.
Tak bez ochrany paměti toho moc nevymyslíš, to je pravda. Byla to spíše demonstrace toho, že o něčem jako abstrakci se u MSDOS nedalo mluvit. Uměl jen načíst z disku program a umřít. Víc ani ťuk. Na druhou stranu ale třeba DR-DOS uměl i přepínání spuštěných programů. Což už je zajímavá schopnost.Už neběžel. Pokud ten exáč něco v paměti přepsal, blbě spadnul, nebo tak něco, tak command.com taky nemusel vůbec naskočit.To je u takoveho operacniho systemu vcelku prirozena vec, ze nema ochranu pameti, kdyz ji nema HW. A ze kdyz v jednoulohovem OS proces neskonci, nemuze byt spusten jiny proces.
Já bych řekl, že jo. Poskytovali abstrakci nad HW, umělo to ovladače, poskytovalo to API, poskytovalo to abstrakci nad službami (síť, tiskárna, procesy).Také si myslím, že DOS nebyl plnohodnotný OS tak jak si to představujeme.Porad mi ale nikdo neodpovedel, jestli treba W9x byly operacni systemy nebo ne.
Windows 95 říkáte? Myslíte to 32bitové rozšíření 16bitové nadstavby 8bitového operačního systému určeného původně pro 4bitové počítače vydané 2bitovou společností, která nesnese ani jediný bit konkurence?
Uměl jen načíst z disku program a umřít. Víc ani ťuk. Na druhou stranu ale třeba DR-DOS uměl i přepínání spuštěných programů. Což už je zajímavá schopnost.Presun se myslenkove do roku '81. Mas pocitac, ktery ma desitky kB (v lepsim pripade stovky) RAM, disketovou mechaniku, pc-speaker, klavesnici a grafiku MDA/CGA. A je to nejlepsi, co si muzes dovolit a i tak je to hodne draha sranda na urovni nekolika vyplat. Ceho jineho by tam mela byt abstrakce nez disku a konzoloveho vstupu/vystupu? Druhy problem je, ze teoreticky muzes pridat dalsi abstrakce, podporu dalsich zarizeni. Ale to ti ubira drahocene misto v pameti (ktere chces pro programy a data) nebo na diskete (ktere potrebujes i pro dalsi programy) a pet-a-ctvrtky toho moc nepobraly. Takze ten operacni system neni zadny zazrak, ale v podstate splnuje to, co se od OS te doby dalo ocekavat. To, ze v ruznych inkarnacich prezil jeste dalsich 20 let je v podstate zazrak.
Já bych řekl, že jo. Poskytovali abstrakci nad HW, umělo to ovladače, poskytovalo to API, poskytovalo to abstrakci nad službami (síť, tiskárna, procesy).Ok, s tim souhlasim. Ale puvodni teze byla:
Program spuštěný v DOSu de facto funguje jako jádro operačního systému, a řídí celý počítač. To je naprosto odlišná situace proti Windows, unixu, MacOS a dalším, kde program má velmi ustřihnutá křídla a rozhodně ne plnou kontrolu nad počítačem.Ve Win9x programy mohly pristupovat k cemukoliv ve stejnem rozsahu jako v pripade DOSu, nemelo by se tedy podle nich (Ponkrac a radovan) jednat o operacni system. Tento rozpor mi tu stale nikdo nevysvetlil.
Amigu znáš? Nemusíš souhlasit, ale definice, že MSDOS byl jen zavaděč programů a ne plnohodnotný OS mi přijde trefná a budu ji používat.Uměl jen načíst z disku program a umřít. Víc ani ťuk. Na druhou stranu ale třeba DR-DOS uměl i přepínání spuštěných programů. Což už je zajímavá schopnost.Presun se myslenkove do roku '81. Mas pocitac, ktery ma desitky kB (v lepsim pripade stovky) RAM, disketovou mechaniku, pc-speaker, klavesnici a grafiku MDA/CGA. A je to nejlepsi, co si muzes dovolit a i tak je to hodne draha sranda na urovni nekolika vyplat. Ceho jineho by tam mela byt abstrakce nez disku a konzoloveho vstupu/vystupu?
Ok, s tim souhlasim. Ale puvodni teze byla:Pokud se nepletu, tak Win95 běžel v chráněném módu. To je asi tak vše, co k tomu chci říct.Program spuštěný v DOSu de facto funguje jako jádro operačního systému, a řídí celý počítač. To je naprosto odlišná situace proti Windows, unixu, MacOS a dalším, kde program má velmi ustřihnutá křídla a rozhodně ne plnou kontrolu nad počítačem.Ve Win9x programy mohly pristupovat k cemukoliv ve stejnem rozsahu jako v pripade DOSu, nemelo by se tedy podle nich (Ponkrac a radovan) jednat o operacni system. Tento rozpor mi tu stale nikdo nevysvetlil.
Amigu znáš?Ten pocitac z roku 1985? Zkus mi odpovedet: Ceho jineho by tam mela byt abstrakce nez disku a konzoloveho vstupu/vystupu? (U pocitacu z roku '81)
Pokud se nepletu, tak Win95 běžel v chráněném módu. To je asi tak vše, co k tomu chci říct.Ale kvuli kompatibilite s DOSem a maximalni rychlosti toho moc nechranil. Inside Window95:
Notice that a Win32 application has a true 4-GB address space. Calls to system DLLs are direct calls with no ring transition and no context switch. The advantage of this approach is its speed-there's no overhead beyond the overhead of the function call itself. The disadvantage is that an application can obtain a pointer into the system address space and start poking around-possibly to no good effect. Under Windows NT, the system address space is truly protected and no application can obtain a pointer into it. In this particular instance, the Windows 95 designers went for performance over security.
Mno, pamatuji si na mé začátky s Atari800XE, kde jsem všem vykládal, že tam píšu operační systém. Problém je v tom, že já to říkal jako vtip. V Amize byl software, který uměl víc. Atari a další 8/16bity samozřejmě měli vestavěný software, který uměl různé věci. Některé měli dokonce okýnka. Ale obvykle jsme tomu operační systém neříkali. Já si nemyslím, že by tam měla být nějaká abstrakce. To jsou tvá slova. Prostě MSDOS toho moc neuměl. Protože to byl jen zavaděč programů ne nepodobný generacím osmibitů před ním. Dokonce toho ze všech těch DOSů uměl nejmíň.Amigu znáš?Ten pocitac z roku 1985? Zkus mi odpovedet: Ceho jineho by tam mela byt abstrakce nez disku a konzoloveho vstupu/vystupu? (U pocitacu z roku '81)
Může být. A?Amigu znáš?Ten pocitac z roku 1985? Zkus mi odpovedet: Ceho jineho by tam mela byt abstrakce nez disku a konzoloveho vstupu/vystupu? (U pocitacu z roku '81)Pokud se nepletu, tak Win95 běžel v chráněném módu. To je asi tak vše, co k tomu chci říct.Ale kvuli kompatibilite s DOSem a maximalni rychlosti toho moc nechranil.
Prostě MSDOS toho moc neuměl. Protože to byl jen zavaděč programů ne nepodobný generacím osmibitů před ním. Dokonce toho ze všech těch DOSů uměl nejmíň.Pro me za me, si tomu rikej treba kolobezka, jestli ti to v necem pomuze. Ale ja se v tomto smeru budu drzet zavedene terminologie. Je zajimave, ze ani hvezdopravec, ani radovan, ani ty jste nedolozili, ze by se to takto nekde bezne oznacovalo.
To bylo pro tvou informaci, protoze chraneny mod tam byl sice pouzity, ale pouzival se v hodne podivne podobe.Může být. A?Pokud se nepletu, tak Win95 běžel v chráněném módu. To je asi tak vše, co k tomu chci říct.Ale kvuli kompatibilite s DOSem a maximalni rychlosti toho moc nechranil.
Na něco takového snad ani nikdo neaspiroval. Mě se to označení zalíbilo protože to vystihuje skutečnost..Prostě MSDOS toho moc neuměl. Protože to byl jen zavaděč programů ne nepodobný generacím osmibitů před ním. Dokonce toho ze všech těch DOSů uměl nejmíň.... Je zajimave, ze ani hvezdopravec, ani radovan, ani ty jste nedolozili, ze by se to takto nekde bezne oznacovalo.
To že MS-DOS přežil dalších dvacet let není zázrak ale důsledek toho, že většina lidí si vždycky koupí radši levný šmejd, než drahou kvalitu. Proto má Windoze většinu na trhuTen argument levným šmejdem je platný jen v první fázi. Pak jde spíš o to, že už máš vytvořené/nakoupené aplikace pro daný systém a nad tím nastavené různé procesy a nechce se ti to měnit. Pro DOS vznikla spousta užitečných programů (a her), které se dokázaly vypořádat s mizerností toho "OS" (zavaděče) a byly vlastně samy sobě operačním (včetně ovladačů a různých dalších služeb/funkcionalit). A pak se to lidem samozřejmě nechce měnit. Windows toho poskytovaly trochu víc, ale v principu tam byla situace stejná.
Představte si, že společnost Cray se rozhodne vyrábět osobní počítače. Mají procesor s frekvencí 150 MHz, 200 MB operační paměti, 4 GB kapacity disku, rozlišení obrazovky 1024 x 1024, dá se kompletně ovládat hlasem, vejde se vám do kapsy a stojí 300 dolarů. Co bude první otázka, na kterou se počítačová veřejnost zeptá? "Je to kompatibilní s PC?"
Tady je přehled API: DOS (a pro zajímavost BIOSA tady je poradny prehled. Ono to bylo sice hloupe, protoze Microsoft se drzel kompatibility s 8086, ale zase tak uplne primitivni to nebylo. Treba si nepamatuju, ze bych musel resit cokoliv s mysi. Ovladani slo hezky pres preruseni. Jeste si zive vybavuju, jak jsem si ty rutiny psal v pascalovskem inline assembleru.
To odstínění/abstrakce HW existovalo spíš jen místy a hlavně nebylo vynucované – běžně se obcházelo.To z toho ale nedala knihovnu, jak tu tvrdi Ponkrac. (I kdyz exo-kernely mi prijdou jako koncepcne hodne zajimave). Stejne je zajimave, ze nejak mlci o tom, jestli W9x byly OS nebo taky knihovna, podobne MacOS Classic. To by to totiz znamenalo, ze tu lidi desitky let pouzivali misto OS knihovnu, a nikdo jiny si toho nevsimnul.
To jako kazdy program si nese sebou vsechny ovladace?Ano, pokud chce víc než nejzákladnější funkce, jako je výpis znaku na obrazovku.
To jako kazdy program si sebou nese implementaci souboroveho systemu?Ne, proto je to Disk Operating System.
jednak poskytovat abstrakci HWTak tu právě neposkytuje.
Ne, proto je to Disk Operating System.A proc je to tedy Disk Operating System a nikoliv disk operating library?
jednak poskytovat abstrakci HWTakze kazdy programator si musel napsat ovladac k FD a HDD, aby mohl ukladat/cist soubory?
F - floating A - alfa N - numeric D - dateTo bylo všechno co původně uměl. Ten šestnáctibitový (IBM-)PC-FAND byl dost velký pokrok
kdyby aspoň 20100315Tohle jsem taky někde potkal. Sám bych to nepoužil, ale má to aspoň výhodu v tom, že hodnoty lze řadit, neztrácí se počáteční nula a oproti timestampu je to čitelné i pro člověka. Datum/čas nebo jiná data mají být prostě uložená efektivně a správně, ideálně nějakým nativním způsobem podporovaným v DB, a prezentace pro člověka se pak řeší nějakou převodní funkcí (která může dělat i lokalizaci atd.).
7 bitů = rok 0-127 (+1980) 4 bity = měsíc 1-12 5 bitů = den 1-31 5 bitů = hodiny 0-23 6 bitů = minuty 0-59 5 bitů = sekundy 0-29 (*2)Na liché sekundy nezbyl bit
Zatímco Evropané mé jméno většinou vyslovují správně ("Ni-klows Wirt"), Američané ho vždy zkomolí na "Nick-les Worth". To znamená, že Evropané mi říkají jménem, ale Američané mi říkají hodnotou.2. kde zacina array V jednom z komentaru stalo, ze Wirth zemrel v 90, protoze kdyz se narodil , tak mu byl 1 rok. Je tim patrne myslena moznost definovat arrays v Pascalu nasledovne vector = array [ 1..25] of real; nebo vector = array [ 0..24] of real; Osobne nevidim zadne velke vyhody, ale mozna to nejaky Pascalista vysvetli. Take pozor: Real Programmers Don't Use Pascal
C je vlastně spíše jen skořápka, kde se všechno lepí pomocí intů a pointerů, protože toho mnoho neumí.K tomu poznamka: kvuli tomu umrti se nyni vyrojilo mnoho informaci na netu , mezi nimi i 3 videa z ETH Curych, kde v rozhovoru Wirth vlastne reflektuje svuj profesni zivot. A v druhem dile, ktery pojednava hlavne Pascal je kratce take rec o C. Tazajici konfrontuje Wirtha s vypovedi Kernighana, ze Pascal je sice hezky, ale k nicemu. Nato odpovida Wirth, ze s C je mozno delat vsechno, protoze je to vlastne jakysi vylepseny assembler, ale ze jeho filosofie vzdy byla, aby uz sam programovaci jazyk svoji strukturovanosti navadel programatora take k strukturovanemu kodu, se vsemi vyhodami, ktere jsou s tim spojene. Na tom je videt, jak rozdilny pristup v tvorbe pogramovacich jazyku muze existovat. Souhlasim s predrecnikem, ze ty plnohodnotna pole jsou nejak vstricnejsi. Proc se ale k certu jazyk C tak rozsiril?
Program<TypCharu>
a tenhle program by měl fungovat, i když generický parametr TypCharu
bude cokoli (nebo v nějakém definovaném rozsahu). A spíš než nějaké lemplovství nebo nedomyšlenost bude důvodem výkonnostní optimalizace – program pracuje s nativními typy dle daného OS a HW a přizpůsobí se jim. Pokud se má dělat serializace do nějakého přenositelného formátu, tak je potřeba to převést na konkrétní typy jako uint32_t
, řešit endianitu, ohlídat si, že se tam hodnota vejde…
Vezmi tohleto, dej to k tomuhle, takhle to ohni a zastrč tamhle.
Vy asi nepamatujete Teslu 200 se vstupem z dernych pasek z dalnopisu. To clovek deroval na dalnopisu, az do nemoty, pak svinutou pasku hodil do krabice a cekal, kdy si bude moci prijit pro vypis (na te Tesle 200 byl prekladac Pascalu). Kdyz doslo k chybe (preklep nebo chyba pri derovani=syntax error), tak znovu na dalnopis, odkrokovat puvodni pasku az k chybe, opravit chybu a odkrokovat zbytek za chybou. Pri trose stesti i nekolikrat. A kdyz tam jeden dobrak nadeklaroval v programu trirozmerne pole trirozmernych poli trirozmernych poli, Tesla 200 lehla a musel se znovu zavest system. Operator si na toho dobraka tehdy pockal a ptal se ho, co tim sakra myslel.Takže bych takové chování pokládal za pascalský standard
kdyz umis anglicky, tak uz ty slova, a vlastne i vety, znas
Právě že ne. Můžeš jenom tušit, co to dělá, ale rozhodně neznáš důležité detaily. Například:
MULTIPLY WS-A BY WS-B
Výsledek násobení se uloží kam? Správná odpověď je do WS-B.
MULTIPLY WS-A BY WS-B ON SIZE ERROR DISPLAY "OVERFLOW" NOT ON SIZE ERROR DISPLAY "WS-B: " WS-B.
Při aritmetickém přetečení se zobrazí hláška „OVERFLOW“, ale co výstupní proměnná WS-B? Bude její původní hodnota zachována, nebo v ní bude smetí? Podle manuálu pro zOS zůstane zachována.
Tohle by se dalo čekat. Ale co tohle:
MULTIPLY C BY D E
Podle výukového materiálu se C*D uloží do D a výsledek C*E uloží do F. Doufejme, že je to jen překlep a ve skutečnosti se uloží do E.
Jaký bude obsah D, když k přetečení dojde při ukládaní do E, už manuál mlčí:
MULTIPLY C BY D E ON SIZE ERROR DISPLAY "OVERFLOW"
Vědět a myslet si, že vím, jsou dvě různé věci.
O přetečení vůbec nejde. Chtěl jsem ukázat, že znát důvěrně 30 klíčových slov třeba v C, nebo stejně bravurně ovládat 300 v COBOLu je v praxi sakra rozdíl. Obzvlášť, pokud ten kód nepíšeš sám, ale udržuješ kód cizí.
komerční banka ještě běží na Cobolu - možná letos se ho zbaví.fakt se jim to podarilo? Na heise.de (to je ten nejrozsirenejsi it portal v nemecke jaz. oblasti) byl pred mesicem prispevek, ze v posledni dobe skokove norostl zajem o Cobol-programatory. Je to pry z toho duvodu, ze to stare software (jako napr. v tech bankach) se vpodstate neda za rozumnou dobu a penize predelat do neceho jineho. Bezne pry je u takove banky treba pocitat s dobou 8 let, behem kterych by se to software melo prepisovat do neceho 'modernejsiho' a to je ten duvod proc to nikdo nezkusi, prtoze neni mozne to software po celou tu dobu zakonzervovat, abe se neco nemenilo. (on ten hlavni duvod samozrejme je, ze se zatim nikdo nenasel, kdo by se pod ten projekt podepsal). A proto pry se rozhodli, ze jedina schudna cesta je, naucit lidi ten Cobol, aby to dal spravovali. (