The Elt Linux Development Environment

The Elt Linux Development Environment

16th Int. Conf. on Accelerator and Large Experimental Control Systems ICALEPCS2017, Barcelona, Spain JACoW Publishing ISBN: 978-3-95450-193-9 doi:10.18429/JACoW-ICALEPCS2017-THBPL05 THE ELT LINUX DEVELOPMENT ENVIRONMENT F. Pellegrin*, C. Rosenquist, European Southern Observatory, Garching bei München, 85748, Germany Abstract Must be maintainable in the long term and as The Extremely Large Telescope (ELT) [1] is a 39-metre accommodating as possible to new future ground-based telescope being built by ESO [2]. It will be developments and requests the largest optical/near-infrared telescope in the world and The software tools available must be able to first light is foreseen for 2024. cope with both low-level; real-time near The overall ELT Linux development environment will hardware, and high-level; user facing or data be presented with an in-depth presentation of its core, the abstraction situations depending on the scope waf [3] build system, and the customizations that ESO is of the software component being developed. currently developing. Certainly it is difficult to find a single solution The ELT software development for telescopes and for all these so different needs. This may mean instruments poses many challenges to cover the different that a selection of complementary tools should needs of such a complex system: a variety of technologies, be offered. Java, C/C++ and Python as programming languages, The software environment must take into Qt5 [4] as the GUI toolkit, communication frameworks account a distributed and non-homogenous user such as OPCUA [5], DDS [6] and ZeroMQ [7], the base, working at different premises and with interaction with entities such as PLCs and real-time different knowledge bases and goals. Trying to hardware, and users, in-house and not, looking at new simplify common use cases should be an usage patterns. All this optimized to be on time for the first important asset, while not limiting the light. possibilities for advanced users. To meet these requirements, a set of tools was selected for the development toolkit. Its content ranges from an The current plan is to develop most of the software, with IDE, to compilers, interpreters, analysis and debugging the exception of some PLC based development, on the tools for the various languages and operations. At the heart Linux operating system. Where specifically needed the of the toolkit lies the modern build framework waf: a Linux real-time extensions [8] will be used and possibly versatile tool written in Python selected due to its multiple specific lower level network throughput optimization language support and high performance. libraries may be used to satisfy both timing and bandwidth requirements. ELT SOFTWARE NEEDS AND The main programming languages selected for the CHALLENGES project are C/C++ chosen for its high performance and low 2017). Any distribution of this work must maintain attribution to the author(s), title of the work, publisher, and DOI. level capabilities, Java for its higher level of abstraction © While choosing the software technologies that the new and Python as a versatile scripting language that offers high ESO telescope will use, many factors were taken into productivity. Language standards requirements had been account, for example: set to relatively new standards: C++11, Java 8 and Python Construction time and lifetime of the project; 3.x are the current baseline. from the project start to the first light almost a The graphical user interface toolkit selected is Qt5, decade will pass by and the operational time is giving the possibility to build advanced, portable and estimated to be at least 30 years. Technology- performant interfaces in both C++ and Python. wise these are very long timespans. Network communication will be IPv4 based and on a Different scope; some parts of the new higher level the aim is to support multiple application level telescope require very fast, real-time, either protocols to increase the expandability and interoperability computation hungry or low-level, operations of the project with different communication patterns and while others are used for post-processing or features that may be needed by a specific project feature data management where timing is not strict but implementation. While a general abstraction layer is high level abstraction may be required. planned to be developed to ease the integration, it is Different developer base; the ELT project will planned that OPCUA, DDS, ZeroMQ as well as an internal be prepared with efforts of ESO engineers, UDP based protocol will all be part of the project and external contractors and consortia of scientific extensively used. institutes. A big challenge for the development environment is to Given these factors a series of basic requirement are try to make all these different technologies work together therefore set on the software technologies to be used: and in a harmonious way. While it may be easier to find optimized domain specific build systems, visual * [email protected] THBPL05 Content from this work may be used under the terms of the CC BY 3.0 licence ( Software Technology Evolution 1125 16th Int. Conf. on Accelerator and Large Experimental Control Systems ICALEPCS2017, Barcelona, Spain JACoW Publishing ISBN: 978-3-95450-193-9 doi:10.18429/JACoW-ICALEPCS2017-THBPL05 development environment and other tools for each framework TestNG [33] with the addition of Mockito [34]. language, it is much harder to try to find one that fits all Code style and error checking are done respectively using and therefore optimizes the overall ELT development Checkstyle [35] and FindBugs [36]. experience as a whole. Another important decision to try to maximize the productivity of the developers was which integrated THE DEVELOPMENT ENVIRONMENT development environment, IDE, to propose and try to fully The selected base distribution for the Linux development support in the development environment. While each of the environment is CentOS [9]. CentOS is a community languages used may have some specific very optimized maintained enterprise distribution based on the Red Hat IDE, and it will still nevertheless come up to a matter of Enterprise Linux [10]. The usage of an enterprise focused personal preferences. The best choice given the range of distribution guarantees solidly tested packages, long term different languages, and as a consequence tools, was the support and updates. The drawback of this choice is that Eclipse Foundation product, Eclipse IDE [37]. This IDE, the latest version of technologies or packages may arrive with a couple of very well maintained plugins, supports all relatively late or have to be introduced separately, but these the languages and related tools described. problems can be addressed with usage of technologies like The common cross language tool for inline containers that permit creation of customized isolated documentation was the Doxygen [38] package, supporting, environments that works on top of a stable base. in worse case with minimal additional filters, all the Compatibility with RPM [11] packaging format and a languages requested and producing standard HTML based vast userbase provide on the other side accessibility to online documentation. many additional packages or features, for example the As the GUI toolkit the Qt5 framework was chosen over CERN [12] maintained real-time kernel extensions just to a series of other candidates. The framework provides high mention one of the most important ones. Internal know- quality and performant graphical widgets that can be used how, due to use of same or similar distribution also for in control systems and other parts of the telescope. This other ESO projects, is also an important asset. choice of course narrows the UI programming to C++ and Relatively recent standards chosen for the programming Python, as Java support is almost non-existent, and calls languages calls for relatively recent tools. On the C/C++ for usage of specific Qt tools to manage code generation side the availability of the Red Hat Developer Toolset [13] and graphical resources used. via the Software Collections [14] provides a complete and updated toolset of the GNU Compiler Collection [15] and BUILD SYSTEMS other support tools, such as the GNU debugger [16], One big challenge given the three different languages profiling tools such as Valgrind [17] and gcov [18] and and the user interface framework, plus of course other system debugging tools such as strace [19] and language independent resources such as configuration files SystemTap [20]. For unit test creation the googletest [21] or media files, was to try to find the best build system framework was selected. Static analysis tools such for code solution. 2017). Any distribution of this work must maintain attribution to the author(s), title of the work, publisher, and DOI. © checking and syntax checking are currently Cppcheck [22] A first idea was based on having multiple build systems, and cpplint [23] but with great interest on the LLVM [24] specific per language, and then somehow orchestrate their collection and specifically Clang [25] compiler tools for execution. But this would make the environment quite code checking and formatting, as well as to the evolution chaotic, require knowledge and maintenance of different of this complete compiler package. build scripts. Further it would preclude having a global While Python 3.x is now present in most of the recent knowledge of dependencies and therefore the possibility distributions, even if coexisting with Python 2.7.x for for full support for mixed language software modules, compatibility with some system applications, to guarantee reliable incremental builds and full parallelization of the an updated and fully customized list of modules, ranging build tasks which was a requirement. from communication to big data management and from C/C++ projects are usually built with systems such as scientific calculation to number crunching, the Anaconda GNU Make [39], possibly automatically created by a Python distribution [26] was selected.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    6 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us