Eratosthenes: Radically Refactoring the Web Jon Howell, Bryan Parno, John R

Total Page:16

File Type:pdf, Size:1020Kb

Eratosthenes: Radically Refactoring the Web Jon Howell, Bryan Parno, John R Eratosthenes: Radically Refactoring the Web Jon Howell, Bryan Parno, John R. Douceur, Microsoft Research Abstract of evolving complexity. On the Internet, application Web browsers ostensibly provide strong isolation for providers, or vendors, run server-side applications over the client-side components of web applications. Unfor- which they exercise total control, from the app down tunately, this isolation is weak in practice; as browsers to the network stack, firewall, and OS. Even when ven- add increasingly rich APIs to please developers, these dors are tenants of a shared datacenter, each tenant au- complex interfaces bloat the trusted computing base and tonomously controls its software stack down to the ma- erode cross-app isolation boundaries. chine code, and each tenant is accessible only via IP. The We reenvision the web interface based on the notion strong isolation among Infrastructure-as-a-Service data- of a pico-datacenter, the client-side version of a shared center tenants derives not from physical separation but server datacenter. Mutually untrusting vendors run their from the simplicity of the execution interface. code on the user’s computer in low-level native code con- This paper extends the semantics of datacenter rela- tainers that communicate with the outside world only via tionships to the client’s web experience. Suspending dis- IP. Just as in the cloud datacenter, the simple semantics belief momentarily, suppose every client had ubiquitous makes isolation tractable, yet native code gives vendors high-performance Internet connectivity. In such a world, the freedom to run any software stack. Since the datacen- exploiting datacenter semantics is easy: The client is ter model is designed to be robust to malicious tenants, it merely a screencast (VNC) viewer; every app runs on is never dangerous for the user to click a link and invite its vendor’s servers and streams a video of its display to a possibly-hostile party onto the client. the client. The client bears only a few responsibilities, primarily around providing a trusted path, i.e., enabling 1 Introduction the user to select which vendor to interact with and pro- viding user input authenticity and privacy. A defining feature of the web application model is its We can restore reality by moving the vendors’ code ostensibly strong notion of isolation. On the desktop, a down to the client, with the client acting as a notional user must accept responsibility for installing apps, and pico-datacenter. On the client, apps enjoy fast, reliable if an app misbehaves, the consequences are unbounded. access to the display, but the semantics of isolation re- On the web, if the user clicks on a link and doesn’t like main identical to the server model: Each vendor has au- what she sees, she clicks the ‘close’ button, and web app tonomous control over its software stack, and each ven- isolation promises that the closed app has no lasting ef- dor interacts with other vendors (remote and local) only fect on the user’s experience. through opt-in network protocols. Sadly, the promise of isolation is routinely broken, and The pico-datacenter abstraction offers an escape from so in practice, we caution users to avoid clicking on “dan- the battle between isolation and richness, by deconflating gerous links”. Isolation fails because the web’s API, re- the goals into two levels of interface. The client imple- sponsible for application isolation, has simultaneously ments the client execution interface (CEI), which is dedi- pursued application richness, accreting HTTP, MIME, cated to isolating applications and defines how a vendor’s HTML, DOM, CSS, JavaScript, JPG, PNG, Java, Flash, bag of bits is interpreted by the client. Different vendors Silverlight, SVG, Canvas, and more. This richness intro- may employ, inside their isolated containers, different duces so much complexity that any precise specification developer programming interfaces (DPIs). Today’s web of the web API is virtually impossible. Yet we can’t hope API is stuck in a painful battle because it conflates these for correct application isolation until we can specify the goals into a single interface: The API is simultaneously API’s semantics. Thus, the current web API is a battle a collection of rich, expressive DPI functions, and also a between isolation and richness, and isolation is losing. CEI that separates vendors. The conflated result is a poor The same battle was fought—and lost—on the desk- CEI: neither simple nor well-defined. Indeed, this con- top. The initially-simple conventional OS evolved into a flation explains why it took a decade to prevent text col- rich, complex desktop API, an unmanageable disaster of oring from leaking privacy information [56], and why to- complexity. Is there hope? Or do isolation (via simple day’s web allows cross-site fetches of JPGs or JavaScript specification) and richness inevitably conflict? but not XML [60]. The semantics of web app isolation There is, in fact, a context in which mutually- wind through a teetering stack of rich software layers. untrusting participants interact in near-perfect auton- We deconflate the CEI and DPI by following the pico- omy, maintaining arbitrarily strong isolation in the face datacenter analogy, arriving at the Eratosthenes archi- 1 tecture. We pare the web CEI down to isolated native • We show a small, well-defined CEI specification code picoprocesses [22], IP for communication beyond (§3) that admits small implementations (§6.1) and the process, and minimal low-level UI primitives to sup- hence suggests that correct isolation is achievable. port the new display responsibilities identified above. • With a variety of rich DPI implementations running The rich DPI, on the other hand, becomes part of the against our CEI, we demonstrate that application web app itself, giving developers unparalleled freedom. richness is not compromised but enhanced (§6.2). This proposal doesn’t require Alice, a web app devel- • We show how to replace the cross-app interactions oper, to start coding in assembly. When she writes a baked into today’s browser with bilateral protocols geotagging site, she codes against the familiar HTML, (§4), maintaining familiar functionality while obey- CSS, and JavaScript DPI. But, per the datacenter model, ing pico-datacenter semantics. that DPI is implemented by the WebKit library [55] that • We implement this refactoring (§5) and show that it Alice’s client code links against, just as her server-side can achieve plausible performance (§6.3, 6.4). code links against PHP. Because Alice chooses the li- brary, browser incompatibilities disappear. 2 Trends in Prior Work Suppose a buffer overflow is discovered in libpng [44], a library Alice’s DPI uses to draw images. Because Al- Eratosthenes is not the first attempt to improve web ice links WebKit by reference, as soon as the WebKit app isolation and richness, and indeed prior proposals developers patch the bug, her client code automatically improve on one or both of these axes. However, they do inherits the fix. Just like when Alice fixes a bug in libphp not provide true datacenter-style isolation — they imple- on her server, the user needn’t care about this update. ment, often for compatibility, part or all of the aggregate Later, Alice adds a comment forum to her application. web API inside their trusted computing base (TCB). Including user-generated HTML has always been risky, At the architectural level, our proposal employs the often leading to XSS vulnerabilities [26]. But Alice principle of a native, low-level interface to execution and hears about WebGear, a fork of WebKit, that enhances I/O, similar to the Exokernel [27]. The Exokernel, how- HTML with sandboxes that solve this problem robustly. ever, aimed to expose app-specific performance oppor- WebGear can innovate without imposing client browser tunities; in Eratosthenes, the low-level interface serves upgrades; Alice simply changes her app’s linkage. to maximally enforce isolation boundaries among ven- Ultimately, independent development of alternative dors. The Exokernel project said little about how to re- DPIs outpace WebGear, and Alice graduates to a .NET store inter-app functionality in a principled fashion. or GTK+ stack that is more powerful, or more secure, or Below, we discuss web-related proposals based on more elegant. Alice chooses a feature-full new frame- their effects on the web API. work, while Bob sticks with WebBSD, a spartan frame- 2.1 Better Browsers for the Same API work renowned for robustness, for his encrypted chat Chrome and IE8+ both shift from a single process app. Taking the complex, rich semantics out of the model to one that encapsulates each tab in a separate host CEI gives developers more freedom, while making cross- OS process. This increases robustness to benign failures, vendor isolation—the primary guarantee established by but these modifications don’t change the web interface— the client—more robust than today’s web API. multiple apps still occupy one tab; hence isolation among Via the pico-datacenter model, we develop a CEI with: web apps is still weak. OP’s browser refactoring [17] is • a minimal native execution environment, also constrained by the web API’s complex semantics. • a minimal notion of application identity, Given this constraint, IBOS pushes the idea of refac- • a minimal primitive for persistent state, toring the browser quite far [48]. It realizes the idea of • an IP interface for all external app communication, sites as first-class OS principals [23, 50], and container- • and a minimal blit-based UI semantically equivalent izes renderers to improve isolation. IBOS must still in- the screencast (VNC) model discussed above. clude HTTP to define hscheme; host; porti web prin- Such an ambitious refactoring of the web interface is cipals, and must use deep-packet inspection on HTML necessary to finally resolve the battle between rich DPIs and MIME to partially enforce the Same-Origin Policy and a simple, well-specified CEI.
Recommended publications
  • Dockerdocker
    X86 Exagear Emulation • Android Gaming • Meta Package Installation Year Two Issue #14 Feb 2015 ODROIDMagazine DockerDocker OS Spotlight: Deploying ready-to-use Ubuntu Studio containers for running complex system environments • Interfacing ODROID-C1 with 16 Channel Relay Play with the Weather Board • ODROID-C1 Minimal Install • Device Configuration for Android Development • Remote Desktop using Guacamole What we stand for. We strive to symbolize the edge of technology, future, youth, humanity, and engineering. Our philosophy is based on Developers. And our efforts to keep close relationships with developers around the world. For that, you can always count on having the quality and sophistication that is the hallmark of our products. Simple, modern and distinctive. So you can have the best to accomplish everything you can dream of. We are now shipping the ODROID U3 devices to EU countries! Come and visit our online store to shop! Address: Max-Pollin-Straße 1 85104 Pförring Germany Telephone & Fax phone : +49 (0) 8403 / 920-920 email : [email protected] Our ODROID products can be found at http://bit.ly/1tXPXwe EDITORIAL ow that ODROID Magazine is in its second year, we’ve ex- panded into several social networks in order to make it Neasier for you to ask questions, suggest topics, send article submissions, and be notified whenever the latest issue has been posted. Check out our Google+ page at http://bit.ly/1D7ds9u, our Reddit forum at http://bit. ly/1DyClsP, and our Hardkernel subforum at http://bit.ly/1E66Tm6. If you’ve been following the recent Docker trends, you’ll be excited to find out about some of the pre-built Docker images available for the ODROID, detailed in the second part of our Docker series that began last month.
    [Show full text]
  • Resurrect Your Old PC
    Resurrect your old PCs Resurrect your old PC Nostalgic for your old beige boxes? Don’t let them gather dust! Proprietary OSes force users to upgrade hardware much sooner than necessary: Neil Bothwick highlights some great ways to make your pensioned-off PCs earn their keep. ardware performance is constantly improving, and it is only natural to want the best, so we upgrade our H system from time to time and leave the old ones behind, considering them obsolete. But you don’t usually need the latest and greatest, it was only a few years ago that people were running perfectly usable systems on 500MHz CPUs and drooling over the prospect that a 1GHz CPU might actually be available quite soon. I can imagine someone writing a similar article, ten years from now, about what to do with that slow, old 4GHz eight-core system that is now gathering dust. That’s what we aim to do here, show you how you can put that old hardware to good use instead of consigning it to the scrapheap. So what are we talking about when we say older computers? The sort of spec that was popular around the turn of the century. OK, while that may be true, it does make it seem like we are talking about really old hardware. A typical entry-level machine from six or seven years ago would have had something like an 800MHz processor, Pentium 3 or similar, 128MB of RAM and a 20- 30GB hard disk. The test rig used for testing most of the software we will discuss is actually slightly lower spec, it has a 700MHz Celeron processor, because that’s what I found in the pile of computer gear I never throw away in my loft, right next to my faithful old – but non-functioning – Amiga 4000.
    [Show full text]
  • 18 Free Ways to Download Any Video Off the Internet Posted on October 2, 2007 by Aseem Kishore Ads by Google
    http://www.makeuseof.com/tag/18-free-ways-to-download-any-video-off-the-internet/ 18 Free Ways To Download Any Video off the Internet posted on October 2, 2007 by Aseem Kishore Ads by Google Download Videos Now download.cnet.com Get RealPlayer® & Download Videos from the web. 100% Secure Download. Full Movies For Free www.YouTube.com/BoxOffice Watch Full Length Movies on YouTube Box Office. Absolutely Free! HD Video Players from US www.20north.com/ Coby, TV, WD live, TiVo and more. Shipped from US to India Video Downloading www.VideoScavenger.com 100s of Video Clips with 1 Toolbar. Download Video Scavenger Today! It seems like everyone these days is downloading, watching, and sharing videos from video-sharing sites like YouTube, Google Video, MetaCafe, DailyMotion, Veoh, Break, and a ton of other similar sites. Whether you want to watch the video on your iPod while working out, insert it into a PowerPoint presentation to add some spice, or simply download a video before it’s removed, it’s quite essential to know how to download, convert, and play these videos. There are basically two ways to download videos off the Internet and that’s how I’ll split up this post: either via a web app or via a desktop application. Personally, I like the web applications better simply because you don’t have to clutter up and slow down your computer with all kinds of software! UPDATE: MakeUseOf put together an excellent list of the best websites for watching movies, TV shows, documentaries and standups online.
    [Show full text]
  • UNIVERSITY of CALIFORNIA SANTA CRUZ UNDERSTANDING and SIMULATING SOFTWARE EVOLUTION a Dissertation Submitted in Partial Satisfac
    UNIVERSITY OF CALIFORNIA SANTA CRUZ UNDERSTANDING AND SIMULATING SOFTWARE EVOLUTION A dissertation submitted in partial satisfaction of the requirements for the degree of DOCTOR OF PHILOSOPHY in COMPUTER SCIENCE by Zhongpeng Lin December 2015 The Dissertation of Zhongpeng Lin is approved: Prof. E. James Whitehead, Jr., Chair Asst. Prof. Seshadhri Comandur Prof. Timothy J. Menzies Tyrus Miller Vice Provost and Dean of Graduate Studies Copyright c by Zhongpeng Lin 2015 Table of Contents List of Figures v List of Tables vii Abstract ix Dedication xi Acknowledgments xii 1 Introduction 1 1.1 Emergent Phenomena in Software . 1 1.2 Simulation of Software Evolution . 3 1.3 Research Outline . 4 2 Power Law and Complex Networks 6 2.1 Power Law . 6 2.2 Complex Networks . 9 2.3 Empirical Studies of Software Evolution . 12 2.4 Summary . 17 3 Data Set and AST Differences 19 3.1 Data Set . 19 3.2 ChangeDistiller . 21 3.3 Data Collection Work Flow . 23 4 Change Size in Four Open Source Software Projects 24 4.1 Methodology . 25 4.2 Commit Size . 27 4.3 Monthly Change Size . 32 4.4 Summary . 36 iii 5 Generative Models for Power Law and Complex Networks 38 5.1 Generative Models for Power Law . 38 5.1.1 Preferential Attachment . 41 5.1.2 Self-organized Criticality . 42 5.2 Generative Models for Complex Networks . 50 6 Simulating SOC and Preferential Attachment in Software Evolution 53 6.1 Preferential Attachment . 54 6.2 Self-organized Criticality . 56 6.3 Simulation Model . 57 6.4 Experiment Setup .
    [Show full text]
  • How-To Gnome-Look Guide
    HHOOWW--TTOO Written by David D Lowe GGNNOOMMEE--LLOOOOKK GGUUIIDDEE hen I first joined the harddisk, say, ~/Pictures/Wallpapers. right-clicking on your desktop Ubuntu community, I and selecting the appropriate You may have noticed that gnome- button (you know which one!). Wwas extremely look.org separates wallpapers into impressed with the amount of different categories, according to the customization Ubuntu had to size of the wallpaper in pixels. For Don't let acronyms intimidate offer. People posted impressive the best quality, you want this to you; you don't have to know screenshots, and mentioned the match your screen resolution. If you what the letters stand for to themes they were using. They don't know what your screen know what it is. Basically, GTK is soon led me to gnome-look.org, resolution is, click System > the system GNOME uses to the number one place for GNOME Preferences > Screen Resolution. display things like buttons and visual customization. The However, Ubuntu stretches controls. GNOME is Ubuntu's screenshots there looked just as wallpapers quite nicely if you picked default desktop environment. I impressive, but I was very the wrong size, so you needn't fret will only be dealing with GNOME confused as to what the headings about it. on the sidebar meant, and I had customization here--sorry no idea how to use the files I SVG is a special image format that Kubuntu and Xubuntu folks! downloaded. Hopefully, this guide doesn't use pixels; it uses shapes Gnome-look.org distinguishes will help you learn what I found called vectors, which means you can between two versions of GTK: out the slow way.
    [Show full text]
  • The Glib/GTK+ Development Platform
    The GLib/GTK+ Development Platform A Getting Started Guide Version 0.8 Sébastien Wilmet March 29, 2019 Contents 1 Introduction 3 1.1 License . 3 1.2 Financial Support . 3 1.3 Todo List for this Book and a Quick 2019 Update . 4 1.4 What is GLib and GTK+? . 4 1.5 The GNOME Desktop . 5 1.6 Prerequisites . 6 1.7 Why and When Using the C Language? . 7 1.7.1 Separate the Backend from the Frontend . 7 1.7.2 Other Aspects to Keep in Mind . 8 1.8 Learning Path . 9 1.9 The Development Environment . 10 1.10 Acknowledgments . 10 I GLib, the Core Library 11 2 GLib, the Core Library 12 2.1 Basics . 13 2.1.1 Type Definitions . 13 2.1.2 Frequently Used Macros . 13 2.1.3 Debugging Macros . 14 2.1.4 Memory . 16 2.1.5 String Handling . 18 2.2 Data Structures . 20 2.2.1 Lists . 20 2.2.2 Trees . 24 2.2.3 Hash Tables . 29 2.3 The Main Event Loop . 31 2.4 Other Features . 33 II Object-Oriented Programming in C 35 3 Semi-Object-Oriented Programming in C 37 3.1 Header Example . 37 3.1.1 Project Namespace . 37 3.1.2 Class Namespace . 39 3.1.3 Lowercase, Uppercase or CamelCase? . 39 3.1.4 Include Guard . 39 3.1.5 C++ Support . 39 1 3.1.6 #include . 39 3.1.7 Type Definition . 40 3.1.8 Object Constructor . 40 3.1.9 Object Destructor .
    [Show full text]
  • Accesso Alle Macchine Virtuali in Lab Vela
    Accesso alle Macchine Virtuali in Lab In tutti i Lab del camous esiste la possibilita' di usare: 1. Una macchina virtuale Linux Light Ubuntu 20.04.03, che sfrutta il disco locale del PC ed espone un solo utente: studente con password studente. Percio' tutti gli studenti che accedono ad un certo PC ed usano quella macchina virtuale hanno la stessa home directory e scrivono sugli stessi file che rimangono solo su quel PC. L'utente PUO' usare i diritti di amministratore di sistema mediante il comando sudo. 2. Una macchina virtuale Linux Light Ubuntu 20.04.03 personalizzata per ciascuno studente e la cui immagine e' salvata su un server di storage remoto. Quando un utente autenticato ([email protected]) fa partire questa macchina Virtuale LUbuntu, viene caricata dallo storage centrale un immagine del disco esclusivamente per quell'utente specifico. I file modificati dall'utente vengono salvati nella sua immagine sullo storage centrale. L'immagine per quell'utente viene utilizzata anche se l'utente usa un PC diverso. L'utente nella VM è studente con password studente ed HA i diritti di amministratore di sistema mediante il comando sudo. Entrambe le macchine virtuali usano, per ora, l'hypervisor vmware. • All'inizio useremo la macchina virtuale LUbuntu che salva i file sul disco locale, per poterla usare qualora accadesse un fault delle macchine virtuali personalizzate. • Dalla prossima lezione useremo la macchina virtuale LUbuntu che salva le immagini personalizzate in un server remoto. Avviare VM LUBUNTU in Locale (1) Se la macchina fisica è spenta occorre accenderla. Fatto il boot di windows occorre loggarsi sulla macchina fisica Windows usando la propria account istituzionale [email protected] Nel desktop Windows, aprire il File esplorer ed andare nella cartella C:\VM\LUbuntu Nella directory vedete un file LUbuntu.vmx Probabilmente l'estensione vmx non è visibile e ci sono molti file con lo stesso nome LUbuntu.
    [Show full text]
  • A Successor to the X Window System
    Y: A Successor to the X Window System Mark Thomas <[email protected]> Project Supervisor: D. R¨uckert <[email protected]> Second Marker: E. Lupu <[email protected]> June 18, 2003 ii Abstract UNIX desktop environments are a mess. The proliferation of incompatible and inconsistent user interface toolkits is now the primary factor in the failure of enterprises to adopt UNIX as a desktop solution. This report documents the creation of a comprehensive, elegant framework for a complete windowing system, including a standardised graphical user interface toolkit. ‘Y’ addresses many of the problems associated with current systems, whilst keeping and improving on their best features. An initial implementation, which supports simple applications like a terminal emulator, a clock and a calculator, is provided. iii iv Acknowledgements Thanks to Daniel R¨uckert for supervising the project and for his help and advice regarding it. Thanks to David McBride for his assistance with setting up my project machine and providing me with an ATI Radeon for it. Thanks to Philip Willoughby for his knowledge of the POSIX standard and help with the GNU Autotools and some of the more obscure libc functions. Thanks to Andrew Suffield for his help with the GNU Autotools and Arch. Thanks to Nick Maynard and Karl O’Keeffe for discussions on window system and GUI design. Thanks to Tim Southerwood for discussions about possible features of Y. Thanks to Duncan White for discussions about the virtues of X. All company and product names are trademarks and/or registered trademarks of their respective owners.
    [Show full text]
  • Annual Report 2006
    Annual Report 2006 Table of contents Foreword Letter from the Chairman, Dave Neary 4–5 A year in review 2006—a year in GNOME 8–10 Distributions in 2006 11 Events and community initiatives GUADEC—The GNOME Conference 12–13 GNOME hackers descend on MIT Media Center 14–15 GNOME User Groups 16 The www.gnome.org revamp 17 GNOME platform 17 GNOME Foundation Administrator 17 Foundation development The Women’s Summer Outreach Program 18–20 The GNOME Mobile and Embedded Initiative 21 The GNOME Advisory Board 22–23 PHOTO The GNOME Foundation Board and Advisory Board members by David Zeuthen (continued on the inside back cover) GNOME Foundation 3 Dear Friends, All traditions need a starting point, they say. What you now hold in your hands is the first annual report of the GNOME Foundation, at the end of what has been an eventful year for us. Each year brings its challenges and rewards for the members of this global project. This year, many of our biggest challenges are in the legal arena. European countries have been passing laws to conform with the European Union Copyright Directive, and some, including France, have brought into law provisions which we as software developers find it hard to understand, but which appear to make much of what we do illegal. We have found our- selves in the center of patent wars as bigger companies jockey for position with offerings based on our hard work. And we are scratching our heads trying to figure out how to deal with the constraints of DRM and patents in multimedia, while still offering our users access to their media files.
    [Show full text]
  • Synthetic Data for English Lexical Normalization: How Close Can We Get to Manually Annotated Data?
    Proceedings of the 12th Conference on Language Resources and Evaluation (LREC 2020), pages 6300–6309 Marseille, 11–16 May 2020 c European Language Resources Association (ELRA), licensed under CC-BY-NC Synthetic Data for English Lexical Normalization: How Close Can We Get to Manually Annotated Data? Kelly Dekker, Rob van der Goot University of Groningen, IT University of Copenhagen [email protected], [email protected] Abstract Social media is a valuable data resource for various natural language processing (NLP) tasks. However, standard NLP tools were often designed with standard texts in mind, and their performance decreases heavily when applied to social media data. One solution to this problem is to adapt the input text to a more standard form, a task also referred to as normalization. Automatic approaches to normalization have shown that they can be used to improve performance on a variety of NLP tasks. However, all of these systems are supervised, thereby being heavily dependent on the availability of training data for the correct language and domain. In this work, we attempt to overcome this dependence by automatically generating training data for lexical normalization. Starting with raw tweets, we attempt two directions, to insert non-standardness (noise) and to automatically normalize in an unsupervised setting. Our best results are achieved by automatically inserting noise. We evaluate our approaches by using an existing lexical normalization system; our best scores are achieved by custom error generation system, which makes use of some manually created datasets. With this system, we score 94.29 accuracy on the test data, compared to 95.22 when it is trained on human-annotated data.
    [Show full text]
  • Part I. GTK+ Overview: GTK+ 3 Reference Manual GTK+ Is a Library for Creating Graphical User Interfaces
    Part I. GTK+ Overview: GTK+ 3 Reference Manual GTK+ is a library for creating graphical user interfaces. It works on many UNIX-like platforms, Windows, and OS X. GTK+ is released under the GNU Library General Public License (GNU LGPL), which allows for flexible licensing of client applications. GTK+ has a C-based object-oriented architecture that allows for maximum flexibility. Bindings for many other languages have been written, including C++, Objective-C, Guile/ Scheme, Perl, Python, TOM, Ada95, Free Pascal, and Eiffel. GTK+ depends on the following libraries: GLib A general-purpose utility library, not specific to graphical user interfaces. GLib provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on. GObject A library that provides a type system, a collection of fundamental types including an object type, a signal system. GIO A modern, easy-to-use VFS API including abstractions for files, drives, volumes, stream IO, as well as network programming and DBus communication. cairo Cairo is a 2D graphics library with support for multiple output devices. Pango Pango is a library for internationalized text handling. It centers around the PangoLayout object, representing a paragraph of text. Pango provides the engine for GtkTextView, GtkLabel, GtkEntry, and other widgets that display text. ATK ATK is the Accessibility Toolkit. It provides a set of generic interfaces allowing accessibility technologies to interact with a graphical user interface. For example, a screen reader uses ATK to discover the text in an interface and read it to blind users. GTK+ widgets have built-in support for accessibility using the ATK framework.
    [Show full text]
  • The Gnome Desktop Comes to Hp-Ux
    GNOME on HP-UX Stormy Peters Hewlett-Packard Company 970-898-7277 [email protected] THE GNOME DESKTOP COMES TO HP-UX by Stormy Peters, Jim Leth, and Aaron Weber At the Linux World Expo in San Jose last August, a consortium of companies, including Hewlett-Packard, inaugurated the GNOME Foundation to further the goals of the GNOME project. An organization of open-source software developers, the GNOME project is the major force behind the GNOME desktop: a powerful, open-source desktop environment with an intuitive user interface, a component-based architecture, and an outstanding set of applications for both developers and users. The GNOME Foundation will provide resources to coordinate releases, determine future project directions, and promote GNOME through communication and press releases. At the same conference in San Jose, Hewlett-Packard also announced that GNOME would become the default HP-UX desktop environment. This will enhance the user experience on HP-UX, providing a full feature set and access to new applications, and also will allow commonality of desktops across different vendors' implementations of UNIX and Linux. HP will provide transition tools for migrating users from CDE to GNOME, and support for GNOME will be available from HP. Those users who wish to remain with CDE will continue to be supported. Hewlett-Packard, working with Ximian, Inc. (formerly known as Helix Code), will be providing the GNOME desktop on HP-UX. Ximian is an open-source desktop company that currently employs many of the original and current developers of GNOME, including Miguel de Icaza. They have developed and contributed applications such as Evolution and Red Carpet to GNOME.
    [Show full text]