Runtime Support for Improving Reliability in System Software

Total Page:16

File Type:pdf, Size:1020Kb

Runtime Support for Improving Reliability in System Software Runtime Support for Improving Reliability in System Software Dissertation Presented in Partial Ful¯llment of the Requirements for the Degree Doctor of Philosophy in the Graduate School of The Ohio State University By Qi Gao, B.E., M.S. Graduate Program in Computer Science and Engineering Ohio State University 2010 Dissertation Committee: Prof. Feng Qin, Advisor Prof. Atanas Rountev Prof. Xiaodong Zhang Copyright by Qi Gao 2010 ABSTRACT As software is becoming increasingly complex, software reliability is getting more and more important. In particular, the reliability of system software is critical to the overall reliability of computer systems since system software is designed to provide a platform for application software running on top of. Unfortunately, it is very challenging to ensure the reliability of system software and the defects (bugs) in it can often cause severe impact. This dissertation proposes to use runtime support for improving system software relia- bility. Runtime support here refers to the technique to extend the runtime software system with more functionalities useful for reliability-oriented tasks, such as instrumentation-based pro¯ling, runtime analysis, checkpointing/re-execution, scheduling control, memory layout control, etc. Leveraging runtime support, this dissertation proposes novel methods for bug manifestation, bug detection, bug diagnosis, failure recovery and error prevention in multiple phases in the software development and deployment cycle. The most preferable phase to detect and ¯x software bugs is pre-release testing phase. To improve the testing e®ectiveness and e±ciency, this dissertation proposes the ¯rst method to help manifest the bugs hidden in system software. Facing the real-world fact that there are always some bugs making their way to deployment sites no matter how rigorous the software testing is, this dissertation proposes the second method to help monitor the system software and detect runtime errors. To handle the runtime errors caused by software bugs, this dissertation proposes the third method to help diagnose the failure, recover the program, and prevent future errors due to the same bugs. Speci¯cally, we propose a software testing method called 2ndStrike to manifest hidden concurrency typestate bugs in multi-threaded system software. 2ndStrike ¯rst pro¯les certain ii program runtime events related to the typestate and thread synchronization. Based on the logs, 2ndStrike then identi¯es bug candidates that would cause typestate violation if event order is reversed. Finally, 2ndStrike re-executes the program in multiple iterations with controlled thread interleaving for manifesting bug candidates. In addition, we propose a deployment-time monitoring and analysis method called DM- Tracker to detect anomalies in distributed system software running on parallel platforms during production runs. Based on the observation that data movements in parallel programs typically follow certain patterns, our idea is to extract data movement (DM)-based invariants at program runtime and check the violations of these invariants. These violations indicate potential bugs such as data races and memory corruption bugs that manifest themselves in data movements. Utilizing the data movement information, we propose a statistical-rule- based approach to detect anomalies for ¯nding bugs. Finally, we propose a deployment-time fault tolerance method called First-Aid to recover failures in system software due to common memory bugs during production runs and prevent future errors caused by the same bugs. Upon a failure, First-Aid diagnoses the bug type and identi¯es the memory objects that trigger the bug. To do so, it rolls back the program to previous checkpoints and uses two types of environmental changes that can prevent or expose memory bug manifestation during re-execution. Based on the diagnosis, First-Aid generates and applies runtime patches to avoid the memory bug and prevent its reoccurrence. We have designed and implemented software prototypes for the proposed methods and evaluated them with real world bugs on large open-source system software packages, such as Apache, MySQL, Mozilla, MVAPICH, etc. The experimental results show that the methods proposed in this dissertation can provide great help in improving reliability of system software in various scenarios. In addition, the results also demonstrate that the runtime support in these methods can bring key advantages such as high e±ciency, high accuracy, and high usability. iii Dedicated To My Love, Ying Tu iv ACKNOWLEDGMENTS I am truly lucky to have Professor Feng Qin as my advisor, who is kind, generous, and inspiring. On top of many good traits that an excellent advisor can have, his most admirable quality that distinguishes him from other good professors I have seen or heard is that he genuinely cares and respects his students. His insights and guidance have made me a better researcher, while more importantly, his open mind and optimism have influenced me to become a stronger person. I am also deeply indebted to Professor Xiaodong Zhang and Professor Atanas Rountev, not only for their time and e®ort in serving in my dissertation committee, but also for their generous help and insightful feedbacks during my study. Thanks also go to other professors who have worked with me and/or passed their knowledge to me. An incomplete list of them are Professor Panda, Professor Sadayappan, Professor Agrawal, Professor Xuan, Professor Arora, Professor Lai, Professor Long, and Professor Soundarajan. I would also like to thank my groupmates and fellow graduate students. Wenbin Zhang, Zhezhe Chen and Mai Zheng, thanks for extending help in the research projects. I thank Wei Huang, Lei Chai, Matthew Koop, Sayantan Sur, Pavan Balaji for their help in improving my research skills, engineering skills, and English speaking and writing skills. I thank Guoqiang Shu, Zhaozhang Jin, Qian Zhu, Lifeng Sang, Guoqing Xu, Ping Lai, Na Li and Hui Gao for their help in various aspects. I am grateful to Dr. Min Xu in VMware., Dr. Jason Yang in Microsoft, and Dr. Pete Beckman in Argonne National Lab for being my mentor while I was doing internships. I feel lucky working with them and other excellent researchers/engineers in their teams. I have really learned a lot and greatly broadened my horizon from these valuable experiences. v Those who I want to thank the most will not mind that I put them the last. I am deeply thankful to my parents, Weishi Gao and Xiaoli Liu, who have been providing me a cultivating and nurturing environment for my grow-up. They always believe in me and support me in every possible way. Finally, my very special thanks are given to my dearest wife-to-be, Ying Tu, who has been with me during the whole journey of going to a distant country for Ph.D. study. She is smart, diligent, caring, inspiring and she creates so much joy in my life. It is her love and support that unleashed my full potential. vi VITA 2004 . .Bachelor in Engineering Zhejiang University Hangzhou, China 2009 . .Master of Science The Ohio State University Columbus, OH, USA 2004 { Present . .Graduate Student The Ohio State University Columbus, OH, USA PUBLICATIONS Research Publications Qi Gao, Wenbin Zhang, Yan Tang, and Feng Qin. \First-Aid: Surviving and Preventing Memory Management Bugs during Production Runs". Proceedings of ACM SIGOPS/EuroSys 2009 European Conference on Computer System (EuroSys09), 159 - 172, Nuremberg, Ger- many, 2009. Yan Tang, Qi Gao, and Feng Qin. \LeakSurvivor: towards safely tolerating memory leaks for garbage-collected languages". Proceedings of USENIX 2008 Annual Technical Conference on Annual Technical Conference (USENIX08), 307 - 320, Boston, Massachusetts, 2008. Qi Gao, Feng Qin, and Dhabaleswar K. Panda. \DMTracker: ¯nding bugs in large-scale par- allel programs by detecting anomaly in data movements". Proceedings of 2007 ACM/IEEE conference on Supercomputing (SC' 07), Article No 15, Reno, Nevada, 2007. Wei Huang, Matthew J. Koop, Qi Gao, and Dhabaleswar K. Panda. \Virtual machine aware communication libraries for high performance computing". Proceedings of 2007 ACM/IEEE conference on Supercomputing (SC' 07), Article No 9, Reno, Nevada, 2007. vii Wei Huang, Qi Gao, Jiuxing Liu, and Dhabaleswar K. Panda \Virtual machine aware communication libraries for high performance computing". Proceedings of 2007 IEEE In- ternational Conference on Cluster Computing (Cluster' 07), 11 - 20, 2007. Qi Gao, Wei Huang, Matthew J. Koop, and Dhabaleswar K. Panda \Group-based Coordi- nated Checkpointing for MPI: A Case Study on In¯niBand". Proceedings of 2007 Interna- tional Conference on Parallel Processing (ICPP' 07), Article No 47, 2007. Matthew J. Koop, Sayantan Sur, Qi Gao, and Dhabaleswar K. Panda \High performance MPI design using unreliable datagram for ultra-scale In¯niBand clusters". Proceedings of 21st Annual International Conference on Supercomputing (ICS' 07), 180 - 189, Seattle, Washington, 2007. Lei Chai, Qi Gao, and Dhabaleswar K. Panda \Understanding the Impact of Multi-Core Ar- chitecture in Cluster Computing: A Case Study with Intel Dual-Core System". Proceedings of Seventh IEEE International Symposium on Cluster Computing and the Grid (CCGrid' 07), 471-478, 2007. Qi Gao, Weikuan Yu, Wei Huang, and Dhabaleswar K. Panda \Application-Transparent Checkpoint/Restart for MPI Programs over In¯niBand". Proceedings of 2006 International Conference on Parallel Processing (ICPP' 06), 471 - 478, 2006. Wei Huang, Gopal Santhanaraman, H. W. Jin, Qi Gao, and Dhabaleswar
Recommended publications
  • A Status Update of BEAMJIT, the Just-In-Time Compiling Abstract Machine
    A Status Update of BEAMJIT, the Just-in-Time Compiling Abstract Machine Frej Drejhammar and Lars Rasmusson <ffrej,[email protected]> 140609 Who am I? Senior researcher at the Swedish Institute of Computer Science (SICS) working on programming tools and distributed systems. Acknowledgments Project funded by Ericsson AB. Joint work with Lars Rasmusson <[email protected]>. What this talk is About An introduction to how BEAMJIT works and a detailed look at some subtle details of its implementation. Outline Background BEAMJIT from 10000m BEAMJIT-aware Optimization Compiler-supported Profiling Future Work Questions Just-In-Time (JIT) Compilation Decide at runtime to compile \hot" parts to native code. Fairly common implementation technique. McCarthy's Lisp (1969) Python (Psyco, PyPy) Smalltalk (Cog) Java (HotSpot) JavaScript (SquirrelFish Extreme, SpiderMonkey, J¨agerMonkey, IonMonkey, V8) Motivation A JIT compiler increases flexibility. Tracing does not require switching to full emulation. Cross-module optimization. Compiled BEAM modules are platform independent: No need for cross compilation. Binaries not strongly coupled to a particular build of the emulator. Integrates naturally with code upgrade. Project Goals Do as little manual work as possible. Preserve the semantics of plain BEAM. Automatically stay in sync with the plain BEAM, i.e. if bugs are fixed in the interpreter the JIT should not have to be modified manually. Have a native code generator which is state-of-the-art. Eventually be better than HiPE (steady-state). Plan Use automated tools to transform and extend the BEAM. Use an off-the-shelf optimizer and code generator. Implement a tracing JIT compiler. BEAM: Specification & Implementation BEAM is the name of the Erlang VM.
    [Show full text]
  • Docusign City Council Transmittal Coversheet
    DocuSign Envelope ID: 77E59CA4-8312-4131-A8AC-30D35C765194 Docusign City Council Transmittal Coversheet 6470C FILE File Name PCWRP Raw Sewage Pump Station 2 - Change Order #2 Purchasing Contact Cindy Alonzo PUB Target Date July 9, 2018 City Council Target Date July 17, 2018 Contract Value Change Order #2: $137,016.17; Contract: $622,780.17 Piggy Back Option Not Applicable Contract Expiration N/A Ordinance DocuSign Envelope ID: 77E59CA4-8312-4131-A8AC-30D35C765194 EXHIBIT 2 FILE #6470 CHANGE ORDER NO. 2 XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Approved as to Legal Form: 7/3/2018 By:_________________________ Aaron Leal, City Attorney City of Denton City of Denton Attest: Reviewed by: Approved by: 7/17/2018 PS Arora, P.E. Todd Hileman By:_________________________ Director of Wastewater City Manager Jennifer Walters, City Secretary DocuSign Envelope ID: 77E59CA4-8312-4131-A8AC-30D35C765194 DocuSign Envelope ID: 77E59CA4-8312-4131-A8AC-30D35C765194 DocuSign Envelope ID: 77E59CA4-8312-4131-A8AC-30D35C765194 Exhibit A House Bill 89 - Government Code 2270 VERIFICATION George Brown I, _______________________________________________, the undersigned representative of ______________________________CompanyControl Specialist Services, LP or Business name (hereafter referred to as company), being an adult over the age of eighteen (18) years of age, verify that the company named-above, under the provisions of Subtitle F, Title 10, Government Code Chapter 2270: 1. Does not boycott Israel currently; and 2. Will not boycott Israel during the term of the contract the above-named Company, business or individual with City of Denton. Pursuant to Section 2270.001, Texas Government Code: 1. “Boycott Israel” means refusing to deal with, terminating business activities with, or otherwise taking any action that is intended to penalize, inflict economic harm on, or limit commercial relations specifically with Israel, or with a person or entity doing business in Israel or in an Israeli-controlled territory, but does not include an action made for ordinary business purposes; and 2.
    [Show full text]
  • Designing and Implementing the OP and OP2 Web Browsers
    Designing and Implementing the OP and OP2 Web Browsers CHRIS GRIER, SHUO TANG and SAMUEL T. KING, University of Illinois at Urbana-Champaign Current web browsers are plagued with vulnerabilities, providing hackers with easy access to computer systems via browser-based attacks. Browser security efforts that retrofit existing browsers have had lim- ited success because the design of modern browsers is fundamentally flawed. To enable more secure web browsing, we design and implement a new browser, called the OP web browser, that attempts to improve the state-of-the-art in browser security. We combine operating system design principles with formal methods to design a more secure web browser by drawing on the expertise of both communities. Our design philosophy is to partition the browser into smaller subsystems and make all communication between subsystems sim- ple and explicit. At the core of our design is a small browser kernel that manages the browser subsystems and interposes on all communications between them to enforce our new browser security features. To show the utility of our browser architecture, we design and implement three novel security features. First, we develop flexible security policies that allow us to include browser plugins within our security framework. Second, we use formal methods to prove useful security properties including user interface invariants and browser security policy. Third, we design and implement a browser-level information-flow tracking system to enable post-mortem analysis of browser-based attacks. In addition to presenting the OP browser architecture, we discuss the design and implementation of a second version of OP, OP2, that includes features from other secure web browser designs to improve on the overall security and performance of OP.
    [Show full text]
  • Exploiting Thread-Related System Calls for Plagiarism Detection of Multithreaded Programs
    See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/303917139 Exploiting Thread-Related System Calls for Plagiarism Detection of Multithreaded Programs Article · June 2016 DOI: 10.1016/j.jss.2016.06.014 CITATION READS 1 126 6 authors, including: Zhenzhou Tian Ting Liu Xi'an University of Posts and Telecommunica… Xi'an Jiaotong University 10 PUBLICATIONS 24 CITATIONS 51 PUBLICATIONS 165 CITATIONS SEE PROFILE SEE PROFILE Qinghua Zheng Zijiang Yang Xi'an Jiaotong University Western Michigan University 246 PUBLICATIONS 1,409 CITATIONS 95 PUBLICATIONS 1,356 CITATIONS SEE PROFILE SEE PROFILE Some of the authors of this publication are also working on these related projects: VACCS: Visualization and Analysis for C Code Security View project All content following this page was uploaded by Zhenzhou Tian on 27 June 2016. The user has requested enhancement of the downloaded file. All in-text references underlined in blue are added to the original document and are linked to publications on ResearchGate, letting you access and read them immediately. The Journal of Systems and Software 119 (2016) 136–148 Contents lists available at ScienceDirect The Journal of Systems and Software journal homepage: www.elsevier.com/locate/jss Exploiting thread-related system calls for plagiarism detection of multithreaded programs ∗ Zhenzhou Tian a, Ting Liu a, , Qinghua Zheng a, Ming Fan a, Eryue Zhuang a, Zijiang Yang b,a a MOEKLINNS, Department of Computer Science and Technology, Xi’an Jiaotong University, Xi’an 710049, China b Department of Computer Science, Western Michigan University, Kalamazoo, MI 49008, USA a r t i c l e i n f o a b s t r a c t Article history: Dynamic birthmarking used to be an effective approach to detecting software plagiarism.
    [Show full text]
  • Using JIT Compilation and Configurable Runtime Systems for Efficient Deployment of Java Programs on Ubiquitous Devices
    Using JIT Compilation and Configurable Runtime Systems for Efficient Deployment of Java Programs on Ubiquitous Devices Radu Teodorescu and Raju Pandey Parallel and Distributed Computing Laboratory Computer Science Department University of California, Davis {teodores,pandey}@cs.ucdavis.edu Abstract. As the proliferation of ubiquitous devices moves computation away from the conventional desktop computer boundaries, distributed systems design is being exposed to new challenges. A distributed system supporting a ubiquitous computing application must deal with a wider spectrum of hardware architectures featuring structural and functional differences, and resources limitations. Due to its architecture independent infrastructure and object-oriented programming model, the Java programming environment can support flexible solutions for addressing the diversity among these devices. Unfortunately, Java solutions are often associated with high costs in terms of resource consumption, which limits the range of devices that can benefit from this approach. In this paper, we present an architecture that deals with the cost and complexity of running Java programs by partitioning the process of Java program execution between system nodes and remote devices. The system nodes prepare a Java application for execution on a remote device by generating device-specific native code and application-specific runtime system on the fly. The resulting infrastructure provides the flexibility of a high-level programming model and the architecture independence specific to Java. At the same time the amount of resources consumed by an application on the targeted device are comparable to that of a native implementation. 1 Introduction As a result of the proliferation of computation into the physical world, ubiquitous computing [1] has become an important research topic.
    [Show full text]
  • CDC Build System Guide
    CDC Build System Guide Java™ Platform, Micro Edition Connected Device Configuration, Version 1.1.2 Foundation Profile, Version 1.1.2 Optimized Implementation Sun Microsystems, Inc. www.sun.com December 2008 Copyright © 2008 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. All rights reserved. Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is described in this document. In particular, and without limitation, these intellectual property rights may include one or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent applications in the U.S. and in other countries. U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements. This distribution may include materials developed by third parties. Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and in other countries, exclusively licensed through X/Open Company, Ltd. Sun, Sun Microsystems, the Sun logo, Java, Solaris and HotSpot are trademarks or registered trademarks of Sun Microsystems, Inc. or its subsidiaries in the United States and other countries. The Adobe logo is a registered trademark of Adobe Systems, Incorporated. Products covered by and information contained in this service manual are controlled by U.S. Export Control laws and may be subject to the export or import laws in other countries. Nuclear, missile, chemical biological weapons or nuclear maritime end uses or end users, whether direct or indirect, are strictly prohibited.
    [Show full text]
  • The Software Vulnerability Ecosystem: Software Development in the Context of Adversarial Behavior
    University of Pennsylvania ScholarlyCommons Publicly Accessible Penn Dissertations 2016 The Software Vulnerability Ecosystem: Software Development In The Context Of Adversarial Behavior Saender Aren Clark University of Pennsylvania, [email protected] Follow this and additional works at: https://repository.upenn.edu/edissertations Part of the Databases and Information Systems Commons, and the Engineering Commons Recommended Citation Clark, Saender Aren, "The Software Vulnerability Ecosystem: Software Development In The Context Of Adversarial Behavior" (2016). Publicly Accessible Penn Dissertations. 2233. https://repository.upenn.edu/edissertations/2233 This paper is posted at ScholarlyCommons. https://repository.upenn.edu/edissertations/2233 For more information, please contact [email protected]. The Software Vulnerability Ecosystem: Software Development In The Context Of Adversarial Behavior Abstract Software vulnerabilities are the root cause of many computer system security fail- ures. This dissertation addresses software vulnerabilities in the context of a software lifecycle, with a particular focus on three stages: (1) improving software quality dur- ing development; (2) pre- release bug discovery and repair; and (3) revising software as vulnerabilities are found. The question I pose regarding software quality during development is whether long-standing software engineering principles and practices such as code reuse help or hurt with respect to vulnerabilities. Using a novel data-driven analysis of large databases of vulnerabilities, I show the surprising result that software quality and software security are distinct. Most notably, the analysis uncovered a counterintu- itive phenomenon, namely that newly introduced software enjoys a period with no vulnerability discoveries, and further that this “Honeymoon Effect” (a term I coined) is well-explained by the unfamiliarity of the code to malicious actors.
    [Show full text]
  • EXE: Automatically Generating Inputs of Death
    EXE: Automatically Generating Inputs of Death Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, Dawson R. Engler Computer Systems Laboratory Stanford University Stanford, CA 94305, U.S.A {cristic, vganesh, piotrek, dill, engler} @cs.stanford.edu ABSTRACT 1. INTRODUCTION This paper presents EXE, an effective bug-finding tool that Attacker-exposed code is often a tangled mess of deeply- automatically generates inputs that crash real code. Instead nested conditionals, labyrinthine call chains, huge amounts of running code on manually or randomly constructed input, of code, and frequent, abusive use of casting and pointer EXE runs it on symbolic input initially allowed to be “any- operations. For safety, this code must exhaustively vet in- thing.” As checked code runs, EXE tracks the constraints put received directly from potential attackers (such as sys- on each symbolic (i.e., input-derived) memory location. If a tem call parameters, network packets, even data from USB statement uses a symbolic value, EXE does not run it, but sticks). However, attempting to guard against all possible instead adds it as an input-constraint; all other statements attacks adds significant code complexity and requires aware- run as usual. If code conditionally checks a symbolic ex- ness of subtle issues such as arithmetic and buffer overflow pression, EXE forks execution, constraining the expression conditions, which the historical record unequivocally shows to be true on the true branch and false on the other. Be- programmers reason about poorly. cause EXE reasons about all possible values on a path, it Currently, programmers check for such errors using a com- has much more power than a traditional runtime tool: (1) bination of code review, manual and random testing, dy- it can force execution down any feasible program path and namic tools, and static analysis.
    [Show full text]
  • An Opencl Runtime System for a Heterogeneous Many-Core Virtual Platform Kuan-Chung Chen and Chung-Ho Chen Inst
    An OpenCL Runtime System for a Heterogeneous Many-Core Virtual Platform Kuan-Chung Chen and Chung-Ho Chen Inst. of Computer & Communication Engineering, National Cheng Kung University, Tainan, Taiwan, R.O.C. [email protected], [email protected] Abstract—We present a many-core full system is executed on a Linux PC while the kernel code execution is simulation platform and its OpenCL runtime system. The simulated on an ESL many-core system. OpenCL runtime system includes an on-the-fly compiler and resource manager for the ARM-based many-core The rest of this paper consists of the following sections. In platform. Using this platform, we evaluate approaches of Section 2, we briefly introduce the OpenCL execution model work-item scheduling and memory management in and our heterogeneous full system simulation platform. Section OpenCL memory hierarchy. Our experimental results 3 discusses the OpenCL runtime implementation in detail and show that scheduling work-items on a many-core system its enhancements. Section 4 presents the evaluation system and using general purpose RISC CPU should avoid per work- results. We conclude this paper in Section 5. item context switching. Data deployment and work-item coalescing are the two keys for significant speedup. II. OPENCL MODEL AND VIRTUAL PLATFORM Keywords—OpenCL; runtime system; work-item coalescing; In this section, we first introduce the OpenCL programming full system simulation; heterogeneous integration; model and followed by our SystemC-based virtual platform architecture. I. INTRODUCTION A. OpenCL Platform Overview OpenCL is a data parallel programming model introduced Fig. 1 shows a conceptual OpenCL platform which has two for heterogeneous system architecture [1] which may include execution components: a host processor and the compute CPUs, GPUs, or other accelerator devices.
    [Show full text]
  • Webkit and Blink: Open Development Powering the HTML5 Revolution
    WebKit and Blink: Open Development Powering the HTML5 Revolution Juan J. Sánchez LinuxCon 2013, New Orleans Myself, Igalia and WebKit Co-founder, member of the WebKit/Blink/Browsers team Igalia is an open source consultancy founded in 2001 Igalia is Top 5 contributor to upstream WebKit/Blink Working with many industry actors: tablets, phones, smart tv, set-top boxes, IVI and home automation. WebKit and Blink Juan J. Sánchez Outline The WebKit technology: goals, features, architecture, code structure, ports, webkit2, ongoing work The WebKit community: contributors, committers, reviewers, tools, events How to contribute to WebKit: bugfixing, features, new ports Blink: history, motivations for the fork, differences, status and impact in the WebKit community WebKit and Blink Juan J. Sánchez WebKit: The technology WebKit and Blink Juan J. Sánchez The WebKit project Web rendering engine (HTML, JavaScript, CSS...) The engine is the product Started as a fork of KHTML and KJS in 2001 Open Source since 2005 Among other things, it’s useful for: Web browsers Using web technologies for UI development WebKit and Blink Juan J. Sánchez Goals of the project Web Content Engine: HTML, CSS, JavaScript, DOM Open Source: BSD-style and LGPL licenses Compatibility: regression testing Standards Compliance Stability Performance Security Portability: desktop, mobile, embedded... Usability Hackability WebKit and Blink Juan J. Sánchez Goals of the project NON-goals: “It’s an engine, not a browser” “It’s an engineering project not a science project” “It’s not a bundle of maximally general and reusable code” “It’s not the solution to every problem” http://www.webkit.org/projects/goals.html WebKit and Blink Juan J.
    [Show full text]
  • Comparative Study of Web-Browser.Pdf
    International Journal of Computer Architecture and Mobility (ISSN 2319-9229) Volume 1-Issue 4, February 2013 Comparative Study of Web-Browsers Bhawani Singh Chouhan [email protected] Abstract: Internet is the basic need for business languages, algorithms and with continuously ,education and for global communication, enhancing techniques. Internet is only accessed researchers are continuously enhancing usability by web-browser none other applications are and features of web technology, But still certain there to provide or generate applicability for restrictions and specific applicability are there internet mechanism. Web-browser could works for the use of internet like web-browsers or at both the ends ,that is, at client end and at www(world wide web) is the only tool , server end ,which converts information required software package design for accessing internet, by network to generalized form, web-browser without web-browser no-body could access has its own features ,which stores session internet and their features, every web-browser states[3]by several methods, web-browser have has their own accessing features and security their own accessing intensity for software’s and features. In the propose paper several web- web-sites. The format or specification of web browsers are compared with their significance browser is that only www is supported by its and applicability. design architecture. In the propose work several web-browsers with different [4, 5] dimensions Introduction: has been presented and compared to provide generalize design patterns. Internet is the most popular and flexible source for business, education and communication. Related Work: Almost internet has covered broad areas of human perception, may be because of Internet Explorer independence and usability of services available on internet.
    [Show full text]
  • The Open-Source Community Successor to the Canadian Land Surface
    https://doi.org/10.5194/gmd-2019-329 Preprint. Discussion started: 28 November 2019 c Author(s) 2019. CC BY 4.0 License. CLASSIC v1.0: the open-source community successor to the Canadian Land Surface Scheme (CLASS) and the Canadian Terrestrial Ecosystem Model (CTEM) - Part 1: Model framework and site-level performance Joe R. Melton1, Vivek K. Arora2, Eduard Wisernig-Cojoc1, Christian Seiler1, Matthew Fortier1, Ed Chan3, and Lina Teckentrup4 1Climate Research Division, Environment and Climate Change Canada, Victoria, B.C., Canada 2Canadian Centre for Climate Modelling and Analysis, Environment and Climate Change Canada, Victoria, B.C., Canada 3Climate Research Division, Environment and Climate Change Canada, Toronto, Ont., Canada 4Max Planck Institute for Meteorology, 20146 Hamburg, Germany Correspondence: Joe Melton ([email protected]) Abstract. Recent reports by the Global Carbon Project highlight large uncertainties around land surface processes such as land use change, strength of CO2 fertilization, nutrient limitation and supply, and response to variability in climate. Process-based land surface models are well-suited to address these complex and emerging global change problems, but will require extensive de- 5 velopment and evaluation. The coupled Canadian Land Surface Scheme and Canadian Terrestrial Ecosystem Model (CLASS- CTEM) framework has been under continuous development by Environment and Climate Change Canada since 1987. As the open-source model of code development has revolutionized the software industry, scientific software is experiencing a simi- lar evolution. Given the scale of the challenge facing land surface modellers, and the benefits of open-source, or community model, development, we have transitioned CLASS-CTEM from an internally developed model to an open-source community 10 model, which we call the Canadian Land Surface Scheme including Biogeochemical Cycles (CLASSIC) v.
    [Show full text]