Portál AbcLinuxu, 10. května 2025 09:50
Před nedávným časem napsal Miguel úderně pojmenovaný traktát o Linuxu/Unixu. Vypsal v něm své názory a stanovil cíle, ke kterým by chtěl Linux dotáhnout.
Miguelův článek: Let's make unix not suck
Filip Vrlík: Četl jsem tvůj esej "Let's make unix not suck". Opravdu si myslíš, že Unix stojí za houby?
Miguel de Icaza: V podstatě to bylo napsáno k získání pozornosti na unixové konferenci. Lidé se podle mne zaměřovali na nesprávné problémy. Nebyl to ani tak článek, bylo to napsáno za účelem ohlasu, aby o problémech začali lidé diskutovat. Spousta lidí psala do blogů, různé články... ale neporozuměli, protože povětšinou slyšeli jen informace od někoho dalšího z druhé ruky. Nechte mě tedy vysvětlit co jsem tím myslel. V Unixu jsou jisté místa či elementy, jež by bylo lepší předělat na API, než aby zůstaly souhrnem ne úplně nejlépe spolupracujících komponent. Například věci jako tiskárny, nebo úlohy typu - jak získat informace o tiskárně? Některé věci se už řeší - Bonobo může poskytovat rozhraní k Evolution, GConf vám umožňuje mít nastavení pro celý systém a D-BUS na výměnu informací mezi aplikacemi. Takže pracujeme na vyřešení těchto problémů.
Ano, ale osobně GConf rád nemám, připomíná mi to registry ve Windows.
GConf je odlišný ve dvou velmi důležitých věcech. První rozdíl je ten, že windowsové registry je binární databáze. Jediná společná věc mezi GConf a windows registry je, že máte klíč pro konfigurační hodnotu a získáváte hodnoty. Ale takto to není v GConf, každá aplikace může nainstalovat soubory, jež popisují její nastavení; může taky obsahovat dokumentaci. Nejsou zde problémy s narušením dat, registry je binární databáze a jestliže se poškodí, tak je poškozeno vše, celý systém. V GConfu žádná binární databáze není.
Pro mě je také těžké něco v té databázi upravit ručně, například textovým editorem.
Ano, je to XML soubor. Správná cesta k upravování je použít tyto dva nástroje: gconf-tool nebo IDE editor gconf-edit, který spustí ten první. Věcí, ve které se také GConf a registry masivně liší, je, že registry je pouze databáze na vyhledávání. Gconf je živou databází. To znamená, že když učiníté nějakou změnu, tak každá aplikace tuto změnu zaznamená. Takže tak. Pozoroval jsi to někdy?
Hmm, no jo.
Když jakákoliv aplikace nebo nástroj pro příkazovou řádku změní nějakou věc v databázi, tak každá aplikace, která se o to zajímá, se to dozví.
Jo, to je pravda.
Tak napříkad jedna ze zajímavých věcí - když máte dialogové okno s výběrem barvy nebo nějaké jiné nastavení, například checkbox. Podívejte - Gnome má pouze zavírací tlačítko, není zde žádné tlačítko OK, protože je to tak pro lidi jednodušší. Tlačítka OK/Zrušit jsou vynálezem z dob, kdy počítače byly velmi pomalé, udělali jste změnu, ťukli na OK a pak započal předlouhý čas výpočtů. Například jste si vybrali pozadí, klikli na OK a čekali dlouho dobu, než se celý obrázek načetl. Nyní jen vyberete obrázek a je to - okamžitě se objeví. Co je na tom všem zajímavé je to, že žádný z těchto dialogů již nepotřebuje hromady kódu, protože máme napsané rutiny které aplikují změny - aplikuj X nebo aplikuj Y. Dialogové okno je jen front-end pro klíč v GConf, už nepotřebujete nic psát. Existuje dokonce i nástroj, který napojuje Glade - GUI s klíčem v GConf, takže není potřeba psát kód. A automaticky dostanete toto chování - když uděláte změnu, tak se automaticky aplikuje a hned projeví. To je důvod, proč máme rádi GConf.
To je hlavně pro grafické aplikace.
Je to zamýšleno pro grafické aplikace a nezapomeň - GConf je vytvořen čistě na uživatelské bázi. Není to pro systém, je to pro uživatele. Další věcí na GConfu je to, že má back-end, jednotlivce to nezajímá, ale společnosti ano. Když máme tisíc strojů a já změním proxy, nebo třeba změním něco na e-mail serveru, nějaké nastavení. Změnu na e-mail serveru provedu centrálně na jednom místě a tisíce počítačů ji za běhu přijme. To je vlastnost, kterou jako jednotlivec nepotřebujete, ale velcí zaměstnavatelé ano. Novell má například pět tisíc zaměstnanců a všechny jsme je převedli na Linux, no, nyní asi 90 % společnosti. Jsme největší společnost používající Linux.
Skvělý úspěch.
Musíme přetáhnout lidi z Windows na Linux. Chtěl jsem tedy říct, že GConf má i některé vlastnosti užitečné jen pro velké společnosti. A samozřejmě ho používat nemusíte, jestli nechcete. A nemá problémy jako registry, jen má podobné GUI, ale jinak to není stejné.
Co si myslíš o novém operačním systému Microsoftu - Longhorn? Vypadá to, že nezvládají dodělání...
Myslím že to je velmi, velmi dobrá šance pro nás vytěžit z toho výhodu. Toto je pro nás ze strany Windows vlastně taková příležitost, máme něco času na převedení společností na Linux, taktéž vlády i jednotlivé uživatele. Je třeba udělat tři věci: musíme z něj udělat použitelný systém, je třeba ulehčit lidem jednoduchý vývoj specifických aplikací - ne aplikací, jež každý používá jako třeba prohlížeče a e-mailové klienty, ale velmi specifické věci jako účtování pro hotely nebo podpora pro správu vodního sytému měst. A proto jsme přišli s Mono, potřebujeme lidem přechod z Windows na Linux usnadnit. Teď je skvělá příležitost a my ji musíme využít, takže řekněte vašim čtenářům, ať začnou psát GTK# aplikace s Mono.
OK :)
Dostaneme se do styku s hodně OS, který je tvůj oblíbený?
Používám svůj operační systém protože je free a já jsem freesofťák. Myslím si, že nejpěknější dnes je Mac OS X, kvůli opravdu skvělým vlastnostem. Myslím, že Solaris má jedny z nejlepších vývojářských nástrojů, hlavně ladící (debug) nástroje - dtrace se to myslím nazývá. Když to rozběháte, tak je Solaris v pohodě, ale je třeba vložit do toho hodně GNU věciček. Solaris je extrémně stabilní, OS X nádherný. Linux je svoboda, kterou potřebuji, takže ho používám. Jsem jeho každodenním spotřebitelem, protože já chci Linux zdokonalit, ačkoliv ostatní operační systémy mají také výhody. Windows má zřejmě každou hračku, každou hru na světě. Já zůstávám u Linuxu, protože chci vidět tenhle trh růst.
Jakou distribuci používáš?
Používám Novell Linux Desktop, což je entreprise verze,... to znamená že máte pořád stejnou verzi a oni vám posílají bugfixy, ale neupdatují to. Mám rád pouze jednu nestabilní věc na svém stroji, nemám rád všechno nestabilní. Takže jediná nestabilní věc na mém stroji je ta, na které pracuji, a to je Mono. Nechci mít nestabilní svého správce oken nebo poštovního klienta. Zvolil jsem si to tak, používám enterprise verzi namísto cutting-edge SUSE. Používám staré verze, nejsou tak staré - asi tak 9 měsíců. Používám něco, co funguje.
Miguel's Let's make unix not suck
I've read your essay "Let's make Unix not sucks". Do you think that Unix really sucks?
Two things: It was basically to get attention at unix conference. People were focusing on, I think, wrong problems. That wasn't an article, it was written in response to make people start talking about it. Lot of people wrote in blog entries and articles... but they din't understand, because they only heard it from third parties. So let's explain what I meant. There are certain places/elements in Unix that should be turned into APIs. As opposed to being a collection of badly cooperating components. I give you an examples like printers, or how you get informations of printers. You can see some of these things happening in the former - Bonobo provides interface for Evolution in form of Gconf that allows you to have system wide settings, in form of D-Bus for exchanging messages between applications. So there is work in that area to fix these things.
Yes, personally I don't like Gconf, it seems to me like windows registry system.
It's different in two very significant ways. In the first significant way is that windows registry is binary database. The only connection there is between windows registry and GConf is that you have a key for configuration value and you retrive a value. But that is not the way in Gconf, each application can install files that describe it's settings and user's settings and it can include documentation what the setting is. So, it doesn't have problems as registry, if you corrupt binary database everything is corrupted, in our case there is no binary database to corrupt.
But it's very hard to manually edit it, for example by text editor, for me.
Yes, it's an XML file, that's right. The right way to do it is to use two tools: gconf-tool or you can use an IDE editor gconf-edit and that will bring up the thing. But the thing GConf and registry are massively different in is that registry is just a database to look up, Gconf is live database, that means if you make a change and you are interested in this property, every application is notified about this change. That it's why, ech, have you seen that?
Yes.
Any application makes change there, or the commandline tools - every application that cares about it actually reacts.
That's true.
So for example one of interesting thing that happens is - when you have a dialog box for color, or some other setting, I have a check box here. Look - Gnome has only a close box, there is no OK button, because we realise that this will be more simple for people. OK/Cancel was an invention from when computers were very slow, you made changes, you said OK and then an expensive process of computation began. For example you select background, click OK and wait long time for whole image to load. Now it's like you select image and it immediately shows what it is. What is interesting about this, all of these dialogues no longer need loads of coding for this, because you have a routine that applies changes - apply X or apply Y. Dialog box is just a front-end for GConf key, so you don't need to write any logic here. There is even a tool that automatically binds Glade, the GUI with GConf key, so you don't have to write any code. And you automatically get bahaviour - if you make a change it automatically applies. That's why we like GConf.
It's mainly for graphical applications.
It's meant for graphical applications and remember, Gconf is done in pure user bases. It's not for the system, it's for the users. The other thing about GConf it has a backend, you don't care but the companies care. When you have thousand machines and I make change to the proxy, let's say I change the e-mail server. As soon as we change the e-mail server, some configuration option, I as a sysadmin can make this change centrally and the thousands of machines while running will automatically get the setting. It's not a feature that individual users use, but it's something that every large employer needs. At Novell, for example, we have five thousands employees and we have turned them all to Linux, 90 % of company now. We are the largest company using Linux.
Great success.
We have to move people from Windows to Linux. The point is it has featues that are usefull only for big companies. And you don't have to use it if you don't want, of course. It doesn't have the problems, the big crisis of registry, it does not have those, but it does look with the GUI like the registry. But it's not one.
What do you think about new Microsoft OS Longhorn? It seems that they are failling in getting it in use.
I think it's a very, very good opportunity for us to take advantage of this. There is a windows world opportunity, we have some time here when we can get Linux adopted by companies, goverment, individual users. So we need to do three things: we need to make it useable, simple for people to develop very specific applications - not applications that everyone uses like browsers or e-mail clients, but very specific like billing for the hotel, or support for managing water system in the city. And that is why Mono comes in, we need to make it very simple for people to move from Windows to Linux. It's a fantastic opportunity right now and we need to take advantage, so tell your readers to start writing GTK# apps with Mono.
OK :)
You get in touch with many OS, which is your favorite?
I use my operating system because it's free and I am freesoftwarer. I think that the cutest one today is Mac OS X, in terms of the flash, the flashy features. I think that Solaris has some of the best development tools, well, debugging tools, dtrace I think it's called. If you get it running, it's extremely solid, but you need to put the GNU tool before it's usable. Solaris is extremely solid, OS 10 extremely gorgeous. Linux is the freedom that I need, so I use Linux, I consume Linux every day, because I want to improve Linux, although other operating systems have advantages. Windows obviously has every toy, every game in the world. Again, I stick to Linux, because I wanna see this market grow.
Which distribution do you use?
I use Novell Linux desktop, which is an enterprise version. That means you stick to version and then they send you bugfixes and they don't update it. I like to have only one unstable thing on my machine, I don't like to have everything unstable. So the one thing that is unstable on my machine is what I work on which is Mono. I don't like to have my windowing system unstable or my e-mail client. I've chosen that, I'm using enterprise version instead of using bleeding edge SUSE. I am still on old version, it's not so old it's like nine months. I stick to something that works.
občas člověku nedochází, že máme i přídavná jména, která se nestupňujíAle no tak. Ze neco neznate, jeste nemusi znamenat, ze to neexistuje. Karla Capka byste asi z "neceskosti" nepodeziral, ne? Mr. Bone měl bezmála pravdu, když prohlásil Edinburgh za nejpěknější město na světě. Karel Čapek - Anglické listy (1924)tak že by třetí stupeň od pěkný bylo nejhezčí?
ale asi vsichni jsme se ve skole ucili, ze treti stupen od pekny je nejhezcija teda ne. nemuzu sice vyloucit, ze to nejaky pologramotny cestinar netvrdil... ale hadejte, jake autorite dam v tomhle pripade prednost. BTW. nejhezci je treti stupen od "hezký". chcete další citáty? Třetí pak je nejstarší, čtvrtá se vyznamenává vědami, pátá atletickými rekordy, šestá nejpěknější kaplí, sedmá nevím už čím, a protože jich je přinejmenším patnáct, Tamtéž (Oxford a Cambridge) Rozhodne ted nebudu procitat vsechny mozne texty, abych vam vyvracel vasi fixni ideu :) Tvrzeni, ze "nejpěknější" neni cesky, by temi dvema citaty z klasicke literatury melo byt vyvraceno vice nez dostatecne.
gconfd
a zaznamená si tu skutečnost do ~/
a tam je uloženo, že je kdesi nějaký socket a tam poslouchá ten gconfd
. No a pak si na jiném počítači spustím Xclienta, který používá ten geniální GConf. No a teď mám dvě možnosti, mám exportovaný ~/
a mám exportovaný ~/
. V prvním případě se Xclient koukne do ~/
a zjistí, že gconfd
běží, pokusí se připojit k socketu a jde dolů bradou, protože ten socket tam napsaný a ten gconfd
na něm naslouchající je pochopitelně na jiném počítači. V druhém případě zjistí, že gconfd
neběží, spustí si vlastního a celý koncept gconfd jde do ... (tam kam slunce nesvítí) protože tahle aplikačka bude mít svoji vlastní konfiguraci odlišnou od zbytku desktopu a pochopitelně změny provedené hyper supa GConfEditem se mi nejen, že neprojeví ihned, ale neprojeví se mi vůbec. Kde udělal soudruh Miguel chybu? Používá desktop a jeho mozek zakrněl na úrovni desktopu. Nedělal on náhodou dřív hlavně s Widlema? Proč vymýšlí kolo, když tu máme Xresource?
xbiff
zpátky... A co je špatného na xterm
u? Mě se líbí právě jejich Xresourcovitost.
Nějakej vůl, hlava zdřevěnělá a tupec omezený zase jen dokazuje, že právo volby není právem uživatele, ale vývojáře.
No a z článku vytržená věta Musíme přetáhnout lidi z Windows na Linux, mě nejspíš jednoho dne přesvědčí, že moje volba bude nějaký klon *BSD. Proč to tak má být?
řekněte vašim čtenářům, ať začnou psát GTK# aplikace s MonoAž naprší a uschne. C++ a GTKmm! Už se těším na C++0x
V "pravidlech" unixové filosofie se píše o jednoduchosti. To COM nesplňuje.
Tohle rotnu, aby to někdo necenzuroval jako nevhodné (kdyby náhodou):
Wr gb wnxb i MBB:
Wr gb cbznyl wnxb cenfr, mrer gb cnzrg wnxb xenin n pybirx fr pvgv wnxb bfry, xqlm (gb) cbenq nybxhwr OFGEvatl n INEVNAGl.
Neříkám, že technologie Microsoftu jsou špatné, ale tenhle člověk/Novell má děsnou touho pořád něco od M$ kopírovat. Je sice pěkné, že se snaží ulehčit přechod, ale kopírování všech (dobrých/špatných) technologií není ten správný postup. Mnohem lepší by bylo např. více/lépe dokumentovat.
Já jsem před časem přešel (v programování) z Windows na Linux a nebylo to nijak těžké nebo problematické (WTL/MFC -> GTKmm, MSXML -> libxml++ atd.). COM, makra knihoven MFC/WTL nebo celé komplikované WinAPI mi ani trochu nechybí a hodně se při přechodu projevuje právě ta jednoduchost Unixu.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.