Crack Open ACRN – A Device Hypervisor Designed for IoT



  • ACRN is a flexible, lightweight reference hypervisor, built with real-time and safety-criticality in mind.

    As the Internet of Things has grown in scale, IoT developers are increasingly expected to support a range of hardware resources, operating systems, and software tools/applications. This is a challenge given many connected devices are size-constrained. Virtualization can help meet these broad needs, but existing options don’t offer the right mix of size, flexibility, and functionality for IoT development.
    ACRN

    ACRN™ is different by design. Launched at Embedded Linux Conference 2018, ACRN is a flexible, lightweight reference hypervisor, built with real-time and safety-criticality in mind and optimized to streamline embedded development through an open source platform.

    One of ACRN’s biggest advantages is its small size — roughly only 25K lines of code at launch.

    “The idea for ACRN came from our work enabling virtualization technology for customers,” said Imad Sousou, Corporate Vice President and General Manager of the Open Source Technology Center at Intel, which seeded the source code to launch the project. “There’s strong workload consolidation in embedded IoT development. Using hypervisor technology, workloads with mixed-criticality can be consolidated on a single platform, lowering development and deployment costs and allowing for a more streamlined system architecture.”

    And about the name: ACRN is not an acronym. Pronounced “acorn,” the name symbolizes something that starts small and grows into something big, similar to how the project hopes to grow through community participation.

    There’re two key components of ACRN: the hypervisor itself and the ACRN device model. The ACRN Hypervisor is a Type 1 reference hypervisor stack, running directly on bare-metal. The ACRN Device Model is a reference framework implementation for virtual device emulation that provides rich I/O virtualization support currently planned for audio, video, graphics, and USB. More mediator features are expected as the community grows.

    How it works

    ACRN features a Linux-based Service operating system (OS) running on the hypervisor and can simultaneously run multiple guest operating systems for workload consolidation. The ACRN hypervisor creates the first virtual environment for the Service OS and then launches Guest OSes. The Service OS runs the native device drivers to manage the hardware and provides I/O mediation to the Guest OS.ACRN

    The Service OS runs with the system’s highest virtual machine priority to meet time-sensitive requirements and system quality of service (QoS). The Service OS runs Clear Linux* today, but ACRN can support other Linux* distros or proprietary RTOS as either the Service OS or Guest OS. The community is invited to help enable other Service OS options, and use the reference stack to enable Guest OSes such as other Linux* distributions, Android*, Windows* or proprietary RTOSes.

    To keep the ACRN hypervisor code base as small and efficient as possible, the bulk of device model implementation resides in the Service OS to provide sharing and other capabilities. The result is a small footprint, low-latency code base optimized for resource constrained devices, built with virtualization functions specific to IoT development, such as graphics, media, audio, imaging, and other I/O mediators that require sharing of resources. In this way ACRN fills the gap between large datacenter hypervisors and hard partitioning hypervisors, and is ideal for a wide variety of IoT development.

    One example is the Software Defined Cockpit (SDC) in vehicles. Using ACRN as the reference implementation, vendors can build solutions including the instrument cluster, in-vehicle infotainment (IVI) system, and one or more rear-seat entertainment (RSE) systems. The IVI and RSE systems can run as an isolated Virtual Machine (VM) for overall system safety considerations.

    Software Defined Industrial Systems (SDIS) are further examples, including cyber-physical systems, IoT, cloud computing and cognitive computing. ACRN can help SDIS consolidate industrial workloads and can be orchestrated flexibly across systems. This helps provide substantial benefits to customers including lower costs, simplified security, increased reliability, and easier system management, among others.

    Early endorsement of ACRN includes Intel, ADLINK Technology, Aptive, LG Electronics, and Neusoft. Community members are invited to download the code and participate at the ACRN GitHub site. More detailed use case information and participation information can be found on the ACRN website.

    This article was produced by The Linux Foundation with contributions from Eddie Dong, Principle Engineer of Intel Open Source Center.

    Join us at Open Source Summit + Embedded Linux Conference Europe in Edinburgh, UK on October 22-24, 2018, for 100+ sessions on Linux, Cloud, Containers, AI, Community, and more.

    Also, check out the ACRN Hypervisor Meetup in Shanghai – Q2 2018 (Minhang, China):

    2018年3月Linux Foundation 发布了 ACRN hypervisor项目。随后陆续收到了很多来自社区和行业伙伴的反馈。这次的Meetup希望给大家一次面对面交流的机会。英特尔公司作为ACRN项目的发起者之一 将会介绍一下项目的体系架构,ACRN 未来的roadmap (draft)讨论,也将演示一些应用场景。各行业伙伴也将会分享各自的关心的话题。ACRN作为一个Linux Foundation的开源项目热情欢迎大家的参与与反馈。

    The post Crack Open ACRN – A Device Hypervisor Designed for IoT appeared first on The Linux Foundation.

    https://www.linuxfoundation.org/blog/crack-open-acrn-a-device-hypervisor-designed-for-iot/





Tmux Commands

screen and tmux

A comparison of the features (or more-so just a table of notes for accessing some of those features) for GNU screen and BSD-licensed tmux.

The formatting here is simple enough to understand (I would hope). ^ means ctrl+, so ^x is ctrl+x. M- means meta (generally left-alt or escape)+, so M-x is left-alt+x

It should be noted that this is no where near a full feature-set of either group. This - being a cheat-sheet - is just to point out the most very basic features to get you on the road.

Trust the developers and manpage writers more than me. This document is originally from 2009 when tmux was still new - since then both of these programs have had many updates and features added (not all of which have been dutifully noted here).

Action tmux screen
start a new session tmux OR
tmux new OR
tmux new-session
screen
re-attach a detached session tmux attach OR
tmux attach-session
screen-r
re-attach an attached session (detaching it from elsewhere) tmux attach -d OR
tmux attach-session -d
screen -dr
re-attach an attached session (keeping it attached elsewhere) tmux attach OR
tmux attach-session
screen -x
detach from currently attached session ^b d OR
^b :detach
^a ^d OR
^a :detach
rename-window to newname ^b , <newname> OR
^b :rename-window <newn>
^a A <newname>
list windows ^b w ^a w
list windows in chooseable menu ^a "
go to window # ^b # ^a #
go to last-active window ^b l ^a ^a
go to next window ^b n ^a n
go to previous window ^b p ^a p
see keybindings ^b ? ^a ?
list sessions ^b s OR
tmux ls OR
tmux list-sessions
screen -ls
toggle visual bell ^a ^g
create another window ^b c ^a c
exit current shell/window ^d ^d
split window/pane horizontally ^b " ^a S
split window/pane vertically ^b % ^a |
switch to other pane ^b o ^a <tab>
kill the current pane ^b x OR (logout/^D)
collapse the current pane/split (but leave processes running) ^a X
cycle location of panes ^b ^o
swap current pane with previous ^b {
swap current pane with next ^b }
show time ^b t
show numeric values of panes ^b q
toggle zoom-state of current pane (maximize/return current pane) ^b z
break the current pane out of its window (to form new window) ^b !
re-arrange current panels within same window (different layouts) ^b [space]
Kill the current window (and all panes within) ^b killw [target-window]
  • Make ISO from DVD

    In this case I had an OS install disk which was required to be on a virtual node with no optical drive, so I needed to transfer an image to the server to create a VM

    Find out which device the DVD is:

    lsblk

    Output:

    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 464.8G 0 part ├─centos-root 253:0 0 50G 0 lvm / ├─centos-swap 253:1 0 11.8G 0 lvm [SWAP] └─centos-home 253:2 0 403G 0 lvm /home sdb 8:16 1 14.5G 0 disk /mnt sr0 11:0 1 4.1G 0 rom /run/media/rick/CCSA_X64FRE_EN-US_DV5

    Therefore /dev/sr0 is the location , or disk to be made into an ISO

    I prefer simplicity, and sometimes deal with the fallout after the fact, however Ive repeated this countless times with success.

    dd if=/dev/sr0 of=win10.iso

    Where if=Input file and of=output file

    I chill out and do something else while the image is being copied/created, and the final output:

    8555456+0 records in 8555456+0 records out 4380393472 bytes (4.4 GB) copied, 331.937 s, 13.2 MB/s

    Fin!

    read more
  • Recreate postrgresql database template encode to ASCII

    UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';

    Now we can drop it:

    DROP DATABASE template1;

    Create database from template0, with a new default encoding:

    CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE'; UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1'; \c template1 VACUUM FREEZE;

    read more
});