Developing and Benchmarking Native Linux Applications on Android
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
FAI.Me a Build Service for Installation Images and Cloud Images
FAI.me A Build Service for Installation Images and Cloud Images Thomas Lange, Debian Developer and sysadmin at the University of Cologne [email protected] MiniDebConf Hamburg 2018 1/19 finger Mrfai@localhost ◮ whoami ◮ Sysadmin for more than two and a half decades ◮ Debian developer since 2000 ◮ Diploma in computer science, University of Bonn, Germany ◮ SunOS 4.1.1 on SPARC hardware, then Solaris Jumpstart ◮ Started FAI in 1999 for my first cluster (16× Dual PII 400 MHz) ◮ Several talks and tutorials: Linux Kongress, Linuxtag, DebConf, SANE, LCA, FOSDEM, CeBit, OSDC, UKUUG, FrOSCon, Chemnitzer Linuxtag ◮ FAI trainings 2/19 Motivation ◮ Debian installer is not that easy for beginners ◮ Also FAI is not for beginners ◮ How to make FAI usable for beginners? 3/19 The idea ◮ An installer should cover the most usual installations ◮ Ignore the special cases ◮ Do only ask the really important questions ◮ Ask everything at the beginning ◮ Create a customized installation media ◮ Boot this installation media and get yourself a coffee ◮ Ready! 4/19 FAI ◮ FAI = Fully Automatic Installation ◮ FAI is a tool for experienced sysadmins ◮ You have to adjust the config files to your local needs ◮ How to make FAI usable for beginners? FAI.me 5/19 FAI.me 6/19 FAI.me ◮ Easy creation of the installation media (CD/USB stick) ◮ Customizations are easy to do (clicks on a web page) ◮ Lanuage, user name and pw, root pw ◮ Select one of the common desktops ◮ Additional packages ◮ Distributions: stable, stable+backports, testing 7/19 Some more advanced features ◮ A couple of different partitioning variants ◮ SSH key for root login ◮ Use your github account (ssh pub key) for the root login ◮ Add one public available repository 8/19 FAI.me for the cloud ◮ Cloud Images ◮ Get your customized cloud image by just a few clicks ◮ Disk size ◮ Disk image format (raw.xz, raw.zst, qcow2, vmdk,...) ◮ Hostname 9/19 FAI.me more ideas ◮ Make web page dynamic: easy mode Thanks Juri! ◮ Images for non-amd64 archs ◮ Other distributions (e.g. -
Jeannie: Granting Java Native Interface Developers Their Wishes
Jeannie: Granting Java Native Interface Developers Their Wishes Martin Hirzel Robert Grimm IBM Watson Research Center New York University [email protected] [email protected] Abstract higher-level languages and vice versa. For example, a Java Higher-level languages interface with lower-level languages project can reuse a high-performance C library for binary such as C to access platform functionality, reuse legacy li- decision diagrams (BDDs) through the Java Native Inter- braries, or improve performance. This raises the issue of face [38] (JNI), which is the standard FFI for Java. how to best integrate different languages while also recon- FFI designs aim for productivity, safety, portability, and ciling productivity, safety, portability, and efficiency. This efficiency. Unfortunately, these goals are often at odds. For paper presents Jeannie, a new language design for integrat- instance, Sun’s original FFI for Java, the Native Method In- ing Java with C. In Jeannie, both Java and C code are nested terface [52, 53] (NMI), directly exposed Java objects as C within each other in the same file and compile down to JNI, structs and thus provided simple and fast access to object the Java platform’s standard foreign function interface. By fields. However, this is unsafe, since C code can violate Java combining the two languages’ syntax and semantics, Jean- types, notably by storing an object of incompatible type in a nie eliminates verbose boiler-plate code, enables static error field. Furthermore, it constrains garbage collectors and just- detection across the language boundary, and simplifies dy- in-time compilers, since changes to the data representation namic resource management. -
Thomas Ströhlein's Endgame Tables: a 50Th Anniversary
Thomas Ströhlein's Endgame Tables: a 50th Anniversary Article Supplemental Material The Festschrift on the 40th Anniversary of the Munich Faculty of Informatics Haworth, G. (2020) Thomas Ströhlein's Endgame Tables: a 50th Anniversary. ICGA Journal, 42 (2-3). pp. 165-170. ISSN 1389-6911 doi: https://doi.org/10.3233/ICG-200151 Available at http://centaur.reading.ac.uk/90000/ It is advisable to refer to the publisher’s version if you intend to cite from the work. See Guidance on citing . Published version at: https://content.iospress.com/articles/icga-journal/icg200151 To link to this article DOI: http://dx.doi.org/10.3233/ICG-200151 Publisher: The International Computer Games Association All outputs in CentAUR are protected by Intellectual Property Rights law, including copyright law. Copyright and IPR is retained by the creators or other copyright holders. Terms and conditions for use of this material are defined in the End User Agreement . www.reading.ac.uk/centaur CentAUR Central Archive at the University of Reading Reading’s research outputs online 40 Jahre Informatik in Munchen:¨ 1967 – 2007 Festschrift Herausgegeben von Friedrich L. Bauer unter Mitwirkung von Helmut Angstl, Uwe Baumgarten, Rudolf Bayer, Hedwig Berghofer, Arndt Bode, Wilfried Brauer, Stephan Braun, Manfred Broy, Roland Bulirsch, Hans-Joachim Bungartz, Herbert Ehler, Jurgen¨ Eickel, Ursula Eschbach, Anton Gerold, Rupert Gnatz, Ulrich Guntzer,¨ Hellmuth Haag, Winfried Hahn (†), Heinz-Gerd Hegering, Ursula Hill-Samelson, Peter Hubwieser, Eike Jessen, Fred Kroger,¨ Hans Kuß, Klaus Lagally, Hans Langmaack, Heinrich Mayer, Ernst Mayr, Gerhard Muller,¨ Heinrich Noth,¨ Manfred Paul, Ulrich Peters, Hartmut Petzold, Walter Proebster, Bernd Radig, Angelika Reiser, Werner Rub,¨ Gerd Sapper, Gunther Schmidt, Fred B. -
JNI – C++ Integration Made Easy
JNI – C++ integration made easy Evgeniy Gabrilovich Lev Finkelstein [email protected] [email protected] Abstract The Java Native Interface (JNI) [1] provides interoperation between Java code running on a Java Virtual Machine and code written in other programming languages (e.g., C++ or assembly). The JNI is useful when existing libraries need to be integrated into Java code, or when portions of the code are implemented in other languages for improved performance. The Java Native Interface is extremely flexible, allowing Java methods to invoke native methods and vice versa, as well as allowing native functions to manipulate Java objects. However, this flexibility comes at the expense of extra effort for the native language programmer, who has to explicitly specify how to connect to various Java objects (and later to disconnect from them, to avoid resource leak). We suggest a template-based framework that relieves the C++ programmer from most of this burden. In particular, the proposed technique provides automatic selection of the right functions to access Java objects based on their types, automatic release of previously acquired resources when they are no longer necessary, and overall simpler interface through grouping of auxiliary functions. Introduction The Java Native Interface1 is a powerful framework for seamless integration between Java and other programming languages (called “native languages” in the JNI terminology). A common case of using the JNI is when a system architect wants to benefit from both worlds, implementing communication protocols in Java and computationally expensive algorithmic parts in C++ (the latter are usually compiled into a dynamic library, which is then invoked from the Java code). -
T U M a Digital Wallet Implementation for Anonymous Cash
Technische Universität München Department of Informatics Bachelor’s Thesis in Information Systems A Digital Wallet Implementation for Anonymous Cash Oliver R. Broome Technische Universität München Department of Informatics Bachelor’s Thesis in Information Systems A Digital Wallet Implementation for Anonymous Cash Implementierung eines digitalen Wallets for anonyme Währungen Author Oliver R. Broome Supervisor Prof. Dr.-Ing. Georg Carle Advisor Sree Harsha Totakura, M. Sc. Date October 15, 2015 Informatik VIII Chair for Network Architectures and Services I conrm that this thesis is my own work and I have documented all sources and material used. Garching b. München, October 15, 2015 Signature Abstract GNU Taler is a novel approach to digital payments with which payments are performed with cryptographically generated representations of actual currencies. The main goal of GNU Taler is to allow taxable anonymous payments to non-anonymous merchants. This thesis documents the implementation of the Android version of the GNU Taler wallet, which allows users to create new Taler-based funds and perform payments with them. Zusammenfassung GNU Taler ist ein neuartiger Ansatz für digitales Bezahlen, bei dem Zahlungen mit kryptographischen Repräsentationen von echten Währungen getätigt werden. Das Hauptziel von GNU Taler ist es, versteuerbare, anonyme Zahlungen an nicht-anonyme Händler zu ermöglichen. Diese Arbeit dokumentiert die Implementation der Android-Version des Taler-Portemonnaies, der es Benutzern erlaubt, neues Taler-Guthaben zu erzeugen und mit ihnen Zahlungen zu tätigen. I Contents 1 Introduction 1 1.1 GNU Taler . .2 1.2 Goals of the thesis . .2 1.3 Outline . .3 2 Implementation prerequisites 5 2.1 Native libraries . .5 2.1.1 Libgcrypt . -
Nacldroid: Native Code Isolation for Android Applications
NaClDroid: Native Code Isolation for Android Applications Elias Athanasopoulos1, Vasileios P. Kemerlis2, Georgios Portokalidis3, and Angelos D. Keromytis4 1 Vrije Universiteit Amsterdam, The Netherlands [email protected] 2 Brown University, Providence, RI, USA [email protected] 3 Stevens Institute of Technology, Hoboken, NJ, USA [email protected] 4 Columbia University, New York, NY, USA [email protected] Abstract. Android apps frequently incorporate third-party libraries that contain native code; this not only facilitates rapid application develop- ment and distribution, but also provides new ways to generate revenue. As a matter of fact, one in two apps in Google Play are linked with a library providing ad network services. However, linking applications with third-party code can have severe security implications: malicious libraries written in native code can exfiltrate sensitive information from a running app, or completely modify the execution runtime, since all native code is mapped inside the same address space with the execution environment, namely the Dalvik/ART VM. We propose NaClDroid, a framework that addresses these problems, while still allowing apps to include third-party code. NaClDroid prevents malicious native-code libraries from hijacking Android applications using Software Fault Isolation. More specifically, we place all native code in a Native Client sandbox that prevents uncon- strained reads, or writes, inside the process address space. NaClDroid has little overhead; for native code running inside the NaCl sandbox the slowdown is less than 10% on average. Keywords: SFI, NaCl, Android 1 Introduction Android is undoubtedly the most rapidly growing platform for mobile devices, with estimates predicting one billion Android-based smartphones shipping in 2017 [12]. -
Free As in Freedom (2.0): Richard Stallman and the Free Software Revolution
Free as in Freedom (2.0): Richard Stallman and the Free Software Revolution Sam Williams Second edition revisions by Richard M. Stallman i This is Free as in Freedom 2.0: Richard Stallman and the Free Soft- ware Revolution, a revision of Free as in Freedom: Richard Stallman's Crusade for Free Software. Copyright c 2002, 2010 Sam Williams Copyright c 2010 Richard M. Stallman Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License." Published by the Free Software Foundation 51 Franklin St., Fifth Floor Boston, MA 02110-1335 USA ISBN: 9780983159216 The cover photograph of Richard Stallman is by Peter Hinely. The PDP-10 photograph in Chapter 7 is by Rodney Brooks. The photo- graph of St. IGNUcius in Chapter 8 is by Stian Eikeland. Contents Foreword by Richard M. Stallmanv Preface by Sam Williams vii 1 For Want of a Printer1 2 2001: A Hacker's Odyssey 13 3 A Portrait of the Hacker as a Young Man 25 4 Impeach God 37 5 Puddle of Freedom 59 6 The Emacs Commune 77 7 A Stark Moral Choice 89 8 St. Ignucius 109 9 The GNU General Public License 123 10 GNU/Linux 145 iii iv CONTENTS 11 Open Source 159 12 A Brief Journey through Hacker Hell 175 13 Continuing the Fight 181 Epilogue from Sam Williams: Crushing Loneliness 193 Appendix A { Hack, Hackers, and Hacking 209 Appendix B { GNU Free Documentation License 217 Foreword by Richard M. -
Publications by Gunther Schmidt
Publications by Gunther Schmidt 2020 | R¨uckblick auf die Anf¨angeder M¨unchner Informatik | Dokumente, Belege, Ver¨offent- lichungen und Erinnerungen von fr¨uhund lange Beteiligten. Die blaue Stunde der Infor- matik. Springer-Vieweg, 2020. viii+200 Seiten, ISBN 978-3-658-28754-2, ISBN 978-3-658- 28755-9 (eBook). https://doi.org/10.1007/978-3-658-28755-9 2019 | with Rudolf Berghammer and Michael Winter. Cryptomorphic topological structures: A computational, relation-algebraic approach. Journal of Logical and Algebraic Methods in Programming 102 (2019), 17{45. https://doi.org/10.1016/j.jlamp.2018. 09.004. 2018 | with Michael Winter. Relational Topology, volume 2208 of Lecture Notes in Mathe- matics. Springer-Verlag, 2018. https://doi.org/10.1007/978-3-319-74451-3 2017 | Partiality III: Observability and dispersion, 2017. In preparation. 2015 | Arranging binary relations nicely | A Guide. Technical Report 2015-01, Fakult¨atf¨ur Informatik, Universit¨atder Bundeswehr M¨unchen, December 2015. https://titurel. org/HandBookPrinted.pdf | A relational view on stochastics. The Festschrift on the occasion of the 60th birthday of Jos´eN. Oliveira, 2015. 2014 | with Michael Winter. Relational Topology. Technical Report 2014-03, Fakult¨atf¨ur Informatik, Universit¨atder Bundeswehr M¨unchen, 76 pages, Nov. 2014. | with Lothar Schmitz. Prof. Friedrich L. Bauer und seine Verbindungen zur Fakult¨at f¨urInformatik | Der Vater der deutschen Informatik. Hochschulkurier der Universit¨atder Bundeswehr, 50, 2014. 10{11. | with Michael Winter. Relational Mathematics Continued. Tech. Rep. 2014- 01, Fakult¨atf¨urInformatik, Universit¨atder Bundeswehr M¨unchen, 45 pages, Apr. 2014. http://arxiv.org/abs/1403.6957. -
A Proposal for a Multilevel Relational Reference Language
A Proposal for a Multilevel Relational Reference Language Gunther Schmidt Institute for Software Technology, Department of Computing Science Federal Armed Forces University Munich, 85577 Neubiberg e-Mail: [email protected] Abstract A highly expressive multilevel relational reference language is proposed that covers most possibilities to use relations in practical applications. The language is designed to describe work in a heterogeneous setting. It originated from a Haskell-based system announced in [Sch02], fore- runners of which were [HBS94,Hat97]. This language is intended to serve a variety of purposes. First, it shall allow to formulate all of the problems that have so far been tackled us- ing relational methods providing full syntax- and type-control. Trans- formation of relational terms and formulae in the broadest sense shall be possible as well as interpretation in many forms. In the most simple way, boolean matrices will serve as an interpretation, but also non- representable models as with the Rath-system may be used. Proofs of relational formulae in the style of Ralf or in Rasiowa-Sikorski style are aimed at. Cooperation and communication around this research was partly spon- sored by the European Cost Action 274: Tarski (Theory and Appli- cations of Relational Structures as Knowledge Instruments), which is gratefully acknowledged. 1Introduction When an engineer is about to design an artefact and has to apply Linear Algebra methods (such as solving systems of linear equations or determining eigenvalues and eigenvectors), he will approach the respective computing center and most certainly get the necessary software. When the matrices considered become boolean matrices, i.e., relations, the situation changes dramatically. -
Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance
Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance Redha Gouicem and Damien Carver, Sorbonne University, LIP6, Inria; Jean-Pierre Lozi, Oracle Labs; Julien Sopena, Sorbonne University, LIP6, Inria; Baptiste Lepers and Willy Zwaenepoel, University of Sydney; Nicolas Palix, Université Grenoble Alpes; Julia Lawall and Gilles Muller, Inria, Sorbonne University, LIP6 https://www.usenix.org/conference/atc20/presentation/gouicern This paper is included in the Proceedings of the 2020 USENIX Annual Technical Conference. July 15–17, 2020 978-1-939133-14-4 Open access to the Proceedings of the 2020 USENIX Annual Technical Conference is sponsored by USENIX. Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance Redha Gouicem, Damien Carver Jean-Pierre Lozi Julien Sopena Sorbonne University, LIP6, Inria Oracle Labs Sorbonne University, LIP6, Inria Baptiste Lepers, Willy Zwaenepoel Nicolas Palix University of Sydney Université Grenoble Alpes Julia Lawall, Gilles Muller Inria, Sorbonne University, LIP6 Abstract One source of challenges in managing core frequencies is the Frequency Transition Latency (FTL). Indeed, transitioning In modern server CPUs, individual cores can run at different a core from a low to a high frequency, or conversely, has an frequencies, which allows for fine-grained control of the per- FTL of dozens to hundreds of milliseconds. FTL leads to a formance/energy tradeoff. Adjusting the frequency, however, problem of frequency inversion in scenarios that are typical incurs a high latency. We find that this can lead to a problem of the use of the standard POSIX fork() and wait() system of frequency inversion, whereby the Linux scheduler places calls on process creation, or of synchronization between a newly active thread on an idle core that takes dozens to hun- lightweight threads in a producer-consumer application. -
Java Native Interface Application Notes
Java Native Interface Application Notes Da Ke 4/5/2009 ECE 480 Spring 2009, Design Team 3 Department of Electrical and Computer Engineering Michigan State University Abstract Java is one of most widely used programming language today due to its openness, ability to scale up and portability. The language is design to have a simpler object model and fewer low-level facilities like pointer methods in C/C++. Sometime this could impose a limitation on what a program can do. This application note will explore various ways of implementation that will allow Java to interact with some programs that are written in lower level language. Keywords: Java, JVM, JNI, Linux, Windows, Operating System, Native interface, Native code Introduction Most modern high level programming languages today are capable of handling what once consider trivial tasks for developers like memory management. However, this doesn't come without cost. A Java application does not interact with underlying system infrastructure directly instead it first compile source code to bytecode and run on Java virtual machine which itself is an application that run on top of the operating system. The Java virtual machine acts like a mediator between the application and the operating system. Most modern implementations of Java Virtual Machine does include several interfaces and libraries that we can utilize to allow Java applications to perform some system level tasks and even speed up the execution of the program by handing over some more resource-intense operations to programs that are runs natively on the machine. Objective This application note will explain different approaches to implement system level functions using Java Programming Language. -
Calling C Library Routines from Java Using the Java Native Interface
Numerical Algorithms Group Title: Calling C Library Routines from Java Using the Java Native Interface Summary: This paper presents a technique for calling C library routines directly from Java, saving you the trouble of rewriting code in Java and gaining portability via Java Virtual Machines. The NAG C Library from the Numerical Algorithms Group (www.nag.com) is a mathematical and statistical library containing routines for linear algebra, optimization, quadrature, differential equations, regression analysis, and time-series analysis. Although written in C, the library’s functionality can be accessed from other languages. On PCs, DLL versions of the library can be exploited in many ways, including calling from Microsoft Excel, Visual Basic, or Borland Delphi. Consequently, NAG C Library users often ask if they can call it from Java. One way to perform numerical computations is by creating Java classes that implement the required functionality. However, this is often difficult and time consuming. In this article, I present a technique for calling C Library routines directly from Java. Apart from avoiding rewriting numerical code in Java, using existing C code has another advantage. Java is portable -- compiled programs run on any machine with a Java Virtual Machine (VM). To accomplish this, the Java compiler does not compile to a machine- dependent assembler, but to machine-independent Run-Time Error Messages bytecode that is interpreted at run time by the VM. Although the interpreter is efficient, no interpreted If you get a Java error message, such as program runs as fast as programs compiled to assembler “interface library CJavaInterface cannot be code.