Kdyby ještě MS implementoval aliasy na běžné linuksové programy (ls, tr, cat, head, tail, cut, find, grep, vim) a zařídil, aby se po spuštění grafickýho programu nezahazoval jeho výstup na stdout, tak už by stačilo dodat tomu bash-like shell a rozumný balíčkovací SW a budu možná považovat Windows za operační systém.
Ako chápem to rozčarovanie z toho, že ti to vo Windows nejde, ale zamyslime sa, či to predsa nie je len trochu prasačina ktorá sa na unixoch robí "lebo to ide". Pre nejakú konzistenciu dát bežiacej aplikácie je to priam balzam...
Už chápem vetu, ktorou si chalani z tímu supportujúceho SAP robili srandu z unixákov: "Operačný systém je na to, aby bežal."
Kdybys necet jen root tak bys vedel ze unix utils jsou tu snad uz od win2000
https://www.microsoft.com/en-us/download/details.aspx?id=2391
A na lepsi balickovani je Chocolatey
https://chocolatey.org/
První otázka zní, proč to dělat. Tím uděláte akorát paseku v prostředí a můžete do budoucna způsobit nějaké nepředpokládané chování. Pokud to přesto chcete udělat, potom spusťte powershell s eskalovanými oprávněními.
Balíčky vylistujete např.: Get-AppxPackage *xbox*
A všechny tyto smažete: Get-AppxPackage *xbox* | Remove-AppxPackage
Tak v mem pripade pokus o odmazani *xbox* dopadne nasledovne (spusteno jako administrator):
PS C:\WINDOWS\system32> PowerShell -Command "Get-AppxPackage *Xbox*|Remove-AppxPackage"
Remove-AppxPackage : Deployment failed with HRESULT: 0x80073CFA, Odebrání se nezdařilo. Obraťte se na dodavatele softwa
ru. (Výjimka na základě hodnoty HRESULT: 0x80073CFA)
error 0x80070032: AppX Deployment Remove operation on package Microsoft.XboxGameCallableUI_1000.16299.15.0_neutral_neut
ral_cw5n1h2txyewy from: C:\Windows\SystemApps\Microsoft.XboxGameCallableUI_cw5n1h2txyewy failed. This app is part of Wi
ndows and cannot be uninstalled on a per-user basis. An administrator can attempt to remove the app from the computer u
sing Turn Windows Features on or off. However, it may not be possible to uninstall the app.
NOTE: For additional information, look for [ActivityId] 2c7fc183-9f4a-0008-23e0-7f2c4a9fd301 in the Event Log or use th
e command line Get-AppxLog -ActivityID 2c7fc183-9f4a-0008-23e0-7f2c4a9fd301
At line:1 char:24
+ Get-AppxPackage *Xbox*|Remove-AppxPackage
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (Microsoft.XboxG...l_cw5n1h2txyewy:String) [Remove-AppxPackage], IOException
+ FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand
Chocolatey vypada dobre, nekdy to na widlich zkusim. Jestli mi kazdej druhej soft po startu nebude nutit aktualizace, poustet si "CompanyAutoUpdaterTray.exe" a jestli to umi nejak nakladat s knihovnama a tedy se nebude SW stahovat ve forme 20MB software + 100MB knihovny, ktery pouziva uz jinej software, tak by to byl paradni luxus :)
ta vetsina uzivatelu popisuje realne duvody proc je to spatne, z realnych zkusenosti s windows...
narozdil od vetsiny tech co Windows vychvalujou s nima maji mnohem vetsi zkusenosti...
ten kdo hejtuje, jsou v naproste vetsine ti co nadavaji na GNU/Linux, vetsinou s nim maji velmi male ci zadne zkusenosti...
kdyz nevidis ten rozdil ses slepej, vedome ci nevedome...
> Zapomnel jsem na jedno - mely by widle nejak rozumne
> nakladat s drivery. Nemyslim si, ze je nutne "instalovat
> ovladace" pro vsechny mozny kombinace UMS, HID zarizeni
> a konkretniho USB portu - a uz vubec neni nutne, abych na to
> obcas cekal treba i minutu nebo dele.
Termín "instalace" je zde nepřesný, resp. neznamená to, že by systém nutně lezl např. na Windows Update, aby nalezl vhodný ovladač pro dané zařízení a provedl jeho instalaci podle přiloženého INF souboru. Obvykle (zejména u HID, USB a podobných zařízení, se kterými si poradí obecný ovladač od MS) se prohledávají již nainstalované ovladače podle hardware ID zařízení, popř. dalších kriterií.
> To nebylo pointou meho prispevku. Prohledat drivery a
> "nasadit" prislusny modul je nutne i u Linuxu. Akorat
> flashka/mys pripojena do linuxu mi vetsinou funguje za par
> stovek milisekund, na widlich v radu sekund az minut.
Při prvním připojení daného zařízení to obvykle pár vteřin trvá, protože se sice zařízení stejného typu (např. flashky) shodují v některém z hardware ID či compatible ID (nepamatuji si, jaká je to přesně kategorie), ale to se v seznamu ID nachází hodně vzadu (jako jedno s posledních). Mezi prvními jsou ID udávající číslo výrobce (VID), produktu (PID) a jeho verzi (REV), takže je snaha matchovat nejprve proti těmto ID.
Proto první připojení chvíli trvá (pár vteřin). Minuty už jsou divné, to by se asi chtělo během toho připojování podívat třeba do eventlogu (případně celý proces sledovat v Device Manageru, pozorovat změny stromu a stavů zařízení).
Jo, a na linuxu se to matchuje telepaticky, a proto to netrva. O takovych krasach jako ze kdyz se clovek splete, a ten USBckovej seriak prehodi jinam, tak ma i dalsi COM s jinym cislem === prestane vsechno fungovat, ani nemluve. Ze by to aspon pridelilo to samy pri navratu zpatky ... lol. Takze beznej widlostav pak je takovej, ze widle maji nainstalovany 20x com a nefunguje ani jeden.
Přesně tak. Třeba kolegovi s USB diagnostikou:
"Tady mi to hlásí, že nemám připojenou diagnostiku!"
"Hele, Dejve a neměl si to minule strčený o port vedle?"
"Máš recht, protože teď jsem to tam strčil zpátky a najednou už to zase funguje. To jsou mi teda věci..."
"Tak to strč tam, kde si to měl původně, ať víme, že to neni jenom divnej HW."
"Mám a už to zase nejede."
"A teď zas do toho portu, kde ti to před chvílí fungovalo."
"Je to tam a v pohodě."
"Tak si ten port označ lihovkou a strkej to tam vždycky, protože přesně tohle už jsem zažil nevim kolikrát."
Ale Lael a spol. nám určitě hned vysvětlí, že to přece vůbec neni možný, protože MS už má tohle léta zmáknutý a vždycky jim to všechno perfektně funguje.
> Ale Lael a spol. nám určitě hned vysvětlí, že to přece vůbec
> neni možný, protože MS už má tohle léta zmáknutý a vždycky
> jim to všechno perfektně funguje.
Možné to samozřejmě je. Například implementace u obecného ovladače disku je taková, že pro každý nalezený disk vytvoří symbolický link \DosDevices\PhysicalDriveX, kde X je z intervalu <0,255>. Interně je toto číslování řešeno jednou proměnnou, která se po vytvoření nového diskového zařízení prostě inkrementuje. Nevím, jak je v tomto ohledu implementován třeba ovladač sériového portu, ale nečekal bych velký rozdíl.
V MSDN se ale dá najít, že tyto názvy (jedná se přímo o názvy objektů zařízení) nejsou persistentní. Místo nich by měly aplikace využívat mechanismus notifikací o připojení zařízení hledaných typů (funkce RegisterDeviceNotification v uživatelském režimu, IoRegisterPlugPlayNotification pro ovladače). Je ale pravda, že v rámci notifikace je jméno zařízení reportováno jako celkem nevzhledný řetězec; rozhodně ne ve smyslu COM10.
Cílem je nebýt závislý na konkrétních jménech objektů zařízení či symbolických linků (vyjma možnosti dát ostatním vědět, že určité zařízení disponuje např. rozhraním disku či sériového portu). Rozhodně to ale není kompatibilní s tím, jak se s takovými zařízeními pracuje jinde... a ani dotažené k dokonalosti (pokud si např. uděláte vlastní obdobu obecného ovladače disku pro svojí verzi virtuálních disků, musíte určité symbolické linky ručně vytvořit, jinak máte zaděláno na problém třeba ve Správci disků ne že by vlastní obecný ovladač disku (i pro specifické použití) byl doporučený postup).
USB se takhle nechová, tam se předává nějaké device ID. COM se takhle chová - každý port má vlastní fixní číslo - UART protokol nemá jak poznat, co se vlastně připojilo, takže těžko bude fungovat stylem "já, to je ta kamera, tak to bude COM4". Co fyzický port to jiné COM číslo.
Co to celé zhorší, je virtuální COM po USB kabelu (všechna ta Arduina apod.) USB ovladač zjistí, že se mu připojilo něco, co chce komunikovat po COM. Tak si od Windows nechá vygenerovat číslo virtuálního COM portu a na tom pak funguje. Když to zařízení pak připojíte do jiného USB portu, tak se generuje nové číslo COM portu. Problém je, že občas si to prostě nechá vygenerovat nové i na tom samém portu a to se pak divíte, že ještě včera to na COM11 normálně komunikovalo a dneska to sedí na COM7.
U nás jsme to chvíli řešili tím, že jsme přímo pro daný USB port nastavovali fixní číslo COM portu. Takže to nebylo náhodné a pamatovalo si to. Jenže i tak byl problém když to někdo připojil do jiného USB portu. Sice jsme nakonec skončili u toho, že jsme do PC na linkách nakoupili karty s COM porty a jedeme "nativně", ale i tak se občas stane, že technik prohodí kabely od barcode readeru a kamery a pak se diví, že "to nečte".
Unix je operačním systémem už dobrých 50 let, jeden z prvních, které se tak dal nazývat a doteď platí jeho ochranná známka. V současné době již ale jako samostatných operační systém prakticky neexistuje a žijí jeho následovníci. Je starší než celý Microsoft.
Dři si kolik uší chceš, považuješ co chceš za co chceš, ale realitu nezměníš, klidně si ale vytvoř svoji.