New approaches for embedded development

The idea for this posting started when I read New approaches to dominate in embedded development article. Then I found some ther related articles and here is the result: long article.

Embedded devices, or embedded systems, are specialized computer systems that constitute components of larger electromechanical systems with which they interface. The advent of low-cost wireless connectivity is altering many things in embedded development: With a connection to the Internet, an embedded device can gain access to essentially unlimited processing power and memory in cloud service – and at the same time you need to worry about communication issues like breaks connections, latency and security issues.

Those issues are espcecially in the center of the development of popular Internet of Things device and adding connectivity to existing embedded systems. All this means that the whole nature of the embedded development effort is going to change. A new generation of programmers are already making more and more embedded systems. Rather than living and breathing C/C++, the new generation prefers more high-level, abstract languages (like Java, Python, JavaScript etc.). Instead of trying to craft each design to optimize for cost, code size, and performance, the new generation wants to create application code that is separate from an underlying platform that handles all the routine details. Memory is cheap, so code size is only a minor issue in many applications.

Historically, a typical embedded system has been designed as a control-dominated system using only a state-oriented model, such as FSMs. However, the trend in embedded systems design in recent years has been towards highly distributed architectures with support for concurrency, data and control flow, and scalable distributed computations. For example computer networks, modern industrial control systems, electronics in modern car,Internet of Things system fall to this category. This implies that a different approach is necessary.

Companies are also marketing to embedded developers in new ways. Ultra-low cost development boards to woo makers, hobbyists, students, and entrepreneurs on a shoestring budget to a processor architecture for prototyping and experimentation have already become common.If you look under the hood of any connected embedded consumer or mobile device, in addition to the OS you will find a variety of middleware applications. As hardware becomes powerful and cheap enough that the inefficiencies of platform-based products become moot. Leaders with Embedded systems development lifecycle management solutions speak out on new approaches available today in developing advanced products and systems.

Traditional approaches

C/C++

Tradionally embedded developers have been living and breathing C/C++. For a variety of reasons, the vast majority of embedded toolchains are designed to support C as the primary language. If you want to write embedded software for more than just a few hobbyist platforms, your going to need to learn C. Very many embedded systems operating systems, including Linux Kernel, are written using C language. C can be translated very easily and literally to assembly, which allows programmers to do low level things without the restrictions of assembly. When you need to optimize for cost, code size, and performance the typical choice of language is C. Still C is today used for maximum efficiency instead of C++.

C++ is very much alike C, with more features, and lots of good stuff, while not having many drawbacks, except fror it complexity. The had been for years suspicion C++ is somehow unsuitable for use in small embedded systems. At some time many 8- and 16-bit processors were lacking a C++ compiler, that may be a concern, but there are now 32-bit microcontrollers available for under a dollar supported by mature C++ compilers.Today C++ is used a lot more in embedded systems. There are many factors that may contribute to this, including more powerful processors, more challenging applications, and more familiarity with object-oriented languages.

And if you use suitable C++ subset for coding, you can make applications that work even on quite tiny processors, let the Arduino system be an example of that: You’re writing in C/C++, using a library of functions with a fairly consistent API. There is no “Arduino language” and your “.ino” files are three lines away from being standard C++.

Today C++ has not displaced C. Both of the languages are widely used, sometimes even within one system – for example in embedded Linux system that runs C++ application. When you write a C or C++ programs for modern Embedded Linux you typically use GCC compiler toolchain to do compilation and make file to manage compilation process.

Most organization put considerable focus on software quality, but software security is different. When the security is very much talked about topic todays embedded systems, the security of the programs written using C/C++ becomes sometimes a debated subject. Embedded development presents the challenge of coding in a language that’s inherently insecure; and quality assurance does little to ensure security. The truth is that majority of today’s Internet connected systems have their networking fuctionality written using C even of the actual application layer is written using some other methods.

Java

Java is a general-purpose computer programming language that is concurrent, class-based and object-oriented.The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them. Java is intended to let application developers “write once, run anywhere” (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation.Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture. Java is one of the most popular programming languages in use, particularly for client-server web applications. In addition to those it is widely used in mobile phones (Java apps in feature phones,) and some embedded applications. Some common examples include SIM cards, VOIP phones, Blu-ray Disc players, televisions, utility meters, healthcare gateways, industrial controls, and countless other devices.

Some experts point out that Java is still a viable option for IoT programming. Think of the industrial Internet as the merger of embedded software development and the enterprise. In that area, Java has a number of key advantages: first is skills – there are lots of Java developers out there, and that is an important factor when selecting technology. Second is maturity and stability – when you have devices which are going to be remotely managed and provisioned for a decade, Java’s stability and care about backwards compatibility become very important. Third is the scale of the Java ecosystem – thousands of companies already base their business on Java, ranging from Gemalto using JavaCard on their SIM cards to the largest of the enterprise software vendors.

Although in the past some differences existed between embedded Java and traditional PC based Java solutions, the only difference now is that embedded Java code in these embedded systems is mainly contained in constrained memory, such as flash memory. A complete convergence has taken place since 2010, and now Java software components running on large systems can run directly with no recompilation at all on design-to-cost mass-production devices (consumers, industrial, white goods, healthcare, metering, smart markets in general,…) Java for embedded devices (Java Embedded) is generally integrated by the device manufacturers. It is NOT available for download or installation by consumers. Originally Java was tightly controlled by Sun (now Oracle), but in 2007 Sun relicensed most of its Java technologies under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java (bytecode compiler), GNU Classpath (standard libraries), and IcedTea-Web (browser plugin for applets).

My feelings with Java is that if your embedded systems platform supports Java and you know hot to code Java, then it could be a good tool. If your platform does not have ready Java support, adding it could be quite a bit of work.

 

Increasing trends

Databases

Embedded databases are coming more and more to the embedded devices. If you look under the hood of any connected embedded consumer or mobile device, in addition to the OS you will find a variety of middleware applications. One of the most important and most ubiquitous of these is the embedded database. An embedded database system is a database management system (DBMS) which is tightly integrated with an application software that requires access to stored data, such that the database system is “hidden” from the application’s end-user and requires little or no ongoing maintenance.

There are many possible databases. First choice is what kind of database you need. The main choices are SQL databases and simpler key-storage databases (also called NoSQL).

SQLite is the Database chosen by virtually all mobile operating systems. For example Android and iOS ship with SQLite. It is also built into for example Firefox web browser. It is also often used with PHP. So SQLite is probably a pretty safe bet if you need relational database for an embedded system that needs to support SQL commands and does not need to store huge amounts of data (no need to modify database with millions of lines of data).

If you do not need relational database and you need very high performance, you need probably to look somewhere else.Berkeley DB (BDB) is a software library intended to provide a high-performance embedded database for key/value data. Berkeley DB is written in Cwith API bindings for many languages. BDB stores arbitrary key/data pairs as byte arrays. There also many other key/value database systems.

RTA (Run Time Access) gives easy runtime access to your program’s internal structures, arrays, and linked-lists as tables in a database. When using RTA, your UI programs think they are talking to a PostgreSQL database (PostgreSQL bindings for C and PHP work, as does command line tool psql), but instead of normal database file you are actually accessing internals of your software.

Software quality

Building quality into embedded software doesn’t happen by accident. Quality must be built-in from the beginning. Software startup checklist gives quality a head start article is a checklist for embedded software developers to make sure they kick-off their embedded software implementation phase the right way, with quality in mind

Safety

Traditional methods for achieving safety properties mostly originate from hardware-dominated systems. Nowdays more and more functionality is built using software – including safety critical functions. Software-intensive embedded systems require new approaches for safety. Embedded Software Can Kill But Are We Designing Safely?

IEC, FDA, FAA, NHTSA, SAE, IEEE, MISRA, and other professional agencies and societies work to create safety standards for engineering design. But are we following them? A survey of embedded design practices leads to some disturbing inferences about safety.Barr Group’s recent annual Embedded Systems Safety & Security Survey indicate that we all need to be concerned: Only 67 percent are designing to relevant safety standards, while 22 percent stated that they are not—and 11 percent did not even know if they were designing to a standard or not.

If you were the user of a safety-critical embedded device and learned that the designers had not followed best practices and safety standards in the design of the device, how worried would you be? I know I would be anxious, and quite frankly. This is quite disturbing.

Security

The advent of low-cost wireless connectivity is altering many things in embedded development – it has added to your list of worries need to worry about communication issues like breaks connections, latency and security issues. Understanding security is one thing; applying that understanding in a complete and consistent fashion to meet security goals is quite another. Embedded development presents the challenge of coding in a language that’s inherently insecure; and quality assurance does little to ensure security.

Developing Secure Embedded Software white paper  explains why some commonly used approaches to security typically fail:

MISCONCEPTION 1: SECURITY BY OBSCURITY IS A VALID STRATEGY
MISCONCEPTION 2: SECURITY FEATURES EQUAL SECURE SOFTWARE
MISCONCEPTION 3: RELIABILITY AND SAFETY EQUAL SECURITY
MISCONCEPTION 4: DEFENSIVE PROGRAMMING GUARANTEES SECURITY

Many organizations are only now becoming aware of the need to incorporate security into their software development lifecycle.

Some techniques for building security to embedded systems:

Use secure communications protocols and use VPN to secure communications
The use of Public Key Infrastructure (PKI) for boot-time and code authentication
Establishing a “chain of trust”
Process separation to partition critical code and memory spaces
Leveraging safety-certified code
Hardware enforced system partitioning with a trusted execution environment
Plan the system so that it can be easily and safely upgraded when needed

Flood of new languages

Rather than living and breathing C/C++, the new generation prefers more high-level, abstract languages (like Java, Python, JavaScript etc.). So there is a huge push to use interpreted and scripting also in embedded systems. Increased hardware performance on embedded devices combined with embedded Linux has made the use of many scripting languages good tools for implementing different parts of embedded applications (for example web user interface). Nowadays it is common to find embedded hardware devices, based on Raspberry Pi for instance, that are accessible via a network, run Linux and come with Apache and PHP installed on the device.  There are also many other relevant languages

One workable solution, especially for embedded Linux systems is that part of the activities organized by totetuettu is a C program instead of scripting languages ​​(Scripting). This enables editing operation simply script files by editing without the need to turn the whole system software again.  Scripting languages ​​are also tools that can be implemented, for example, a Web user interface more easily than with C / C ++ language. An empirical study found scripting languages (such as Python) more productive than conventional languages (such as C and Java) for a programming problem involving string manipulation and search in a dictionary.

Scripting languages ​​have been around for a couple of decades Linux and Unix server world standard tools. the proliferation of embedded Linux and resources to merge systems (memory, processor power) growth has made them a very viable tool for many embedded systems – for example, industrial systems, telecommunications equipment, IoT gateway, etc . Some of the command language is suitable for up well even in quite small embedded environments.
I have used with embedded systems successfully mm. Bash, AWK, PHP, Python and Lua scripting languages. It works really well and is really easy to make custom code quickly .It doesn’t require a complicated IDE; all you really need is a terminal – but if you want there are many IDEs that can be used.
High-level, dynamically typed languages, such as Python, Ruby and JavaScript. They’re easy—and even fun—to use. They lend themselves to code that easily can be reused and maintained.

There are some thing that needs to be considered when using scripting languages. Sometimes lack of static checking vs a regular compiler can cause problems to be thrown at run-time. But it is better off practicing “strong testing” than relying on strong typing. Other ownsides of these languages is that they tend to execute more slowly than static languages like C/C++, but for very many aplications they are more than adequate. Once you know your way around dynamic languages, as well the frameworks built in them, you get a sense of what runs quickly and what doesn’t.

Bash and other shell scipting

Shell commands are the native language of any Linux system. With the thousands of commands available for the command line user, how can you remember them all? The answer is, you don’t. The real power of the computer is its ability to do the work for you – the power of the shell script is the way to easily to automate things by writing scripts. Shell scripts are collections of Linux command line commands that are stored in a file. The shell can read this file and act on the commands as if they were typed at the keyboard.In addition to that shell also provides a variety of useful programming features that you are familar on other programming langauge (if, for, regex, etc..). Your scripts can be truly powerful. Creating a script extremely straight forward: It can be created by opening a separate editor such or you can do it through a terminal editor such as VI (or preferably some else more user friendly terminal editor). Many things on modern Linux systems rely on using scripts (for example starting and stopping different Linux services at right way).

One of the most useful tools when developing from within a Linux environment is the use of shell scripting. Scripting can help aid in setting up environment variables, performing repetitive and complex tasks and ensuring that errors are kept to a minimum. Since scripts are ran from within the terminal, any command or function that can be performed manually from a terminal can also be automated!

The most common type of shell script is a bash script. Bash is a commonly used scripting language for shell scripts. In BASH scripts (shell scripts written in BASH) users can use more than just BASH to write the script. There are commands that allow users to embed other scripting languages into a BASH script.

There are also other shells. For example many small embedded systems use BusyBox. BusyBox providesis software that provides several stripped-down Unix tools in a single executable file (more than 300 common command). It runs in a variety of POSIX environments such as Linux, Android and FreeeBSD. BusyBox become the de facto standard core user space toolset for embedded Linux devices and Linux distribution installers.

Shell scripting is a very powerful tool that I used a lot in Linux systems, both embedded systems and servers.

Lua

Lua is a lightweight  cross-platform multi-paradigm programming language designed primarily for embedded systems and clients. Lua was originally designed in 1993 as a language for extending software applications to meet the increasing demand for customization at the time. It provided the basic facilities of most procedural programming languages. Lua is intended to be embedded into other applications, and provides a C API for this purpose.

Lua has found many uses in many fields. For example in video game development, Lua is widely used as a scripting language by game programmers. Wireshark network packet analyzer allows protocol dissectors and post-dissector taps to be written in Lua – this is a good way to analyze your custom protocols.

There are also many embedded applications. LuCI, the default web interface for OpenWrt, is written primarily in Lua. NodeMCU is an open source hardware platform, which can run Lua directly on the ESP8266 Wi-Fi SoC. I have tested NodeMcu and found it very nice system.

PHP

PHP is a server-side HTML embedded scripting language. It provides web developers with a full suite of tools for building dynamic websites but can also be used as a general-purpose programming language. Nowadays it is common to find embedded hardware devices, based on Raspberry Pi for instance, that are accessible via a network, run Linux and come with Apache and PHP installed on the device. So on such enviroment is a good idea to take advantage of those built-in features for the applications they are good – for building web user interface. PHP is often embedded into HTML code, or it can be used in combination with various web template systems, web content management system and web frameworks. PHP code is usually processed by a PHP interpreter implemented as a module in the web server or as a Common Gateway Interface (CGI) executable.

Python

Python is a widely used high-level, general-purpose, interpreted, dynamic programming language. Its design philosophy emphasizes code readability. Python interpreters are available for installation on many operating systems, allowing Python code execution on a wide variety of systems. Many operating systems include Python as a standard component; the language ships for example with most Linux distributions.

Python is a multi-paradigm programming language: object-oriented programming and structured programming are fully supported, and there are a number of language features which support functional programming and aspect-oriented programming,  Many other paradigms are supported using extensions, including design by contract and logic programming.

Python is a remarkably powerful dynamic programming language that is used in a wide variety of application domains. Since 2003, Python has consistently ranked in the top ten most popular programming languages as measured by the TIOBE Programming Community Index. Large organizations that make use of Python include Google, Yahoo!, CERN, NASA. Python is used successfully in thousands of real world business applications around globally, including many large and mission-critical systems such as YouTube.com and Google.com.

Python was designed to be highly extensible. Libraries like NumPy, SciPy and Matplotlib allow the effective use of Python in scientific computing. Python is intended to be a highly readable language. Python can also be embedded in existing applications and hasbeen successfully embedded in a number of software products as a scripting language. Python can serve as a scripting language for web applications, e.g., via mod_wsgi for the Apache web server.

Python can be used in embedded, small or minimal hardware devices. Some modern embedded devices have enough memory and a fast enough CPU to run a typical Linux-based environment, for example, and running CPython on such devices is mostly a matter of compilation (or cross-compilation) and tuning. Various efforts have been made to make CPython more usable for embedded applications.

For more limited embedded devices, a re-engineered or adapted version of CPython, might be appropriateExamples of such implementations include the following: PyMite, Tiny Python, Viper. Sometimes the embedded environment is just too restrictive to support a Python virtual machine. In such cases, various Python tools can be employed for prototyping, with the eventual application or system code being generated and deployed on the device. Also MicroPython and tinypy have been ported Python to various small microcontrollers and architectures. Real world applications include Telit GSM/GPRS modules that allow writing the controlling application directly in a high-level open-sourced language: Python.

Python on embedded platforms? It is quick to develop apps, quick to debug – really easy to make custom code quickly. Sometimes lack of static checking vs a regular compiler can cause problems to be thrown at run-time. To avoid those try to have 100% test coverage. pychecker is a very useful too also which will catch quite a lot of common errors. The only downsides for embedded work is that sometimes python can be slow and sometimes it uses a lot of memory (relatively speaking). An empirical study found scripting languages (such as Python) more productive than conventional languages (such as C and Java) for a programming problem involving string manipulation and search in a dictionary. Memory consumption was often “better than Java and not much worse than C or C++”.

JavaScript and node.js

JavaScript is a very popular high-level language. Love it or hate it, JavaScript is a popular programming language for many, mainly because it’s so incredibly easy to learn. JavaScript’s reputation for providing users with beautiful, interactive websites isn’t where its usefulness ends. Nowadays, it’s also used to create mobile applications, cross-platform desktop software, and thanks to Node.js, it’s even capable of creating and running servers and databases!  There is huge community of developers. JavaScript is a high-level language.

Its event-driven architecture fits perfectly with how the world operates – we live in an event-driven world. This event-driven modality is also efficient when it comes to sensors.

Regardless of the obvious benefits, there is still, understandably, some debate as to whether JavaScript is really up to the task to replace traditional C/C++ software in Internet connected embedded systems.

It doesn’t require a complicated IDE; all you really need is a terminal.

JavaScript is a high-level language. While this usually means that it’s more human-readable and therefore more user-friendly, the downside is that this can also make it somewhat slower. Being slower definitely means that it may not be suitable for situations where timing and speed are critical.

JavaScript is already in embedded boards. You can run JavaScipt on Raspberry Pi and BeagleBone. There are also severa other popular JavaScript-enabled development boards to help get you started: The Espruino is a small microcontroller that runs JavaScript. The Tessel 2 is a development board that comes with integrated wi-fi, an ethernet port, two USB ports, and companion source library downloadable via the Node Package Manager. The Kinoma Create, dubbed the “JavaScript powered Internet of Things construction kit.”The best part is that, depending on the needs of your device, you can even compile your JavaScript code into C!

JavaScript for embedded systems is still in its infancy, but we suspect that some major advancements are on the horizon.We for example see a surprising amount of projects using Node.js.Node.js is an open-source, cross-platform runtime environment for developing server-side Web applications. Node.js has an event-driven architecture capable of asynchronous I/O that allows highly scalable servers without using threading, by using a simplified model of event-driven programming that uses callbacks to signal the completion of a task. The runtime environment interprets JavaScript using Google‘s V8 JavaScript engine.Node.js allows the creation of Web servers and networking tools using JavaScript and a collection of “modules” that handle various core functionality. Node.js’ package ecosystem, npm, is the largest ecosystem of open source libraries in the world. Modern desktop IDEs provide editing and debugging features specifically for Node.js applications

JXcore is a fork of Node.js targeting mobile devices and IoTs. JXcore is a framework for developing applications for mobile and embedded devices using JavaScript and leveraging the Node ecosystem (110,000 modules and counting)!

Why is it worth exploring node.js development in an embedded environment? JavaScript is a widely known language that was designed to deal with user interaction in a browser.The reasons to use Node.js for hardware are simple: it’s standardized, event driven, and has very high productivity: it’s dynamically typed, which makes it faster to write — perfectly suited for getting a hardware prototype out the door. For building a complete end-to-end IoT system, JavaScript is very portable programming system. Typically an IoT projects require “things” to communicate with other “things” or applications. The huge number of modules available in Node.js makes it easier to generate interfaces – For example, the HTTP module allows you to create easily an HTTP server that can easily map the GET method specific URLs to your software function calls. If your embedded platform has ready made Node.js support available, you should definately consider using it.

Future trends

According to New approaches to dominate in embedded development article there will be several camps of embedded development in the future:

One camp will be the traditional embedded developer, working as always to craft designs for specific applications that require the fine tuning. These are most likely to be high-performance, low-volume systems or else fixed-function, high-volume systems where cost is everything.

Another camp might be the embedded developer who is creating a platform on which other developers will build applications. These platforms might be general-purpose designs like the Arduino, or specialty designs such as a virtual PLC system.

This third camp is likely to become huge: Traditional embedded development cannot produce new designs in the quantities and at the rate needed to deliver the 50 billion IoT devices predicted by 2020.

Transition will take time. The enviroment is different than computer and mobile world. There are too many application areas with too widely varying requirements for a one-size-fits-all platform to arise.

But the shift will happen as hardware becomes powerful and cheap enough that the inefficiencies of platform-based products become moot.

 

Sources

Most important information sources:

New approaches to dominate in embedded development

A New Approach for Distributed Computing in Embedded Systems

New Approaches to Systems Engineering and Embedded Software Development

Lua (programming language)

Embracing Java for the Internet of Things

Node.js

Wikipedia Node.js

Writing Shell Scripts

Embedded Linux – Shell Scripting 101

Embedded Linux – Shell Scripting 102

Embedding Other Languages in BASH Scripts

PHP Integration with Embedded Hardware Device Sensors – PHP Classes blog

PHP

Python (programming language)

JavaScript: The Perfect Language for the Internet of Things (IoT)

Node.js for Embedded Systems

Embedded Python

MicroPython – Embedded Pytho

Anyone using Python for embedded projects?

Telit Programming Python

JavaScript: The Perfect Language for the Internet of Things (IoT)

MICROCONTROLLERS AND NODE.JS, NATURALLY

Node.js for Embedded Systems

Why node.js?

Node.JS Appliances on Embedded Linux Devices

The smartest way to program smart things: Node.js

Embedded Software Can Kill But Are We Designing Safely?

DEVELOPING SECURE EMBEDDED SOFTWARE

 

 

 

1,667 Comments

  1. Tomi Engdahl says:

    https://etn.fi/index.php/13-news/16215-maailman-tehokkain-mikro-ohjain-on-nyt-myoes-turvallisin

    Renesasin viime vuonna esitelty RA8M1 on maailman tehokkain mikro-ohjain. Nyt sille perustuvat järjestelmät saattavat olla myös maailman turvallisimpia, sillä taiwanilainen Macronix on sovittanut ArmorFlash-turvamuistinsa toimimaan yhdessä Renesasin sirujen kanssa.

    RA8M1 oli samalla maailman ensimmäinen Arm Cortex-M85 -ytimeen perustuva mikro-ohjain. Siinä on jo ennestään sisäänrakennettu datansuojaus, mutta ArmorFashin kautta turva paranee merkittävästi.

    ArmorFlash perustuu Serial NOR -flash-tekniikkaan ja sisältää edistyneitä tietoturvaominaisuuksia sulautetuille järjestelmille. Näitä ovat esimerkiksi PUF (Physical Unclonable Function), joka hyödyntää puolijohteiden valmistuksessa syntyviä biometrisiä ominaisuuksia, jotka luovat ainutlaatuisia ja kopioimattomia tunnisteita.

    Reply
  2. Tomi Engdahl says:

    https://etn.fi/index.php/tekniset-artikkelit/16217-tehoa-robotiikkaan-ja-reaaliaikaohjaukseen

    Renesas on tuonut markkinoille uuden RZ-sarjan mikroprosessorin tehokasta suorituskykyä vaativiin robotiikan sovelluksiin. RZ/V2H MPU:n tarjoama suorituskyky mahdollistaa sekä tekoälypohjaiset konenäkö- että reaaliaikaohjauksen sovellukset. Seuraavassa Renesasin Keigo Kawasaki tekee selkoa RZ-sarjan uuden jäsenen tuomista mahdollisuuksista robotiikan tekoälysovelluksiin.

    Reply
  3. Tomi Engdahl says:

    Why a ‘Frozen’ Distribution Linux Kernel Isn’t the Safest Choice for Security
    from the stable-stakes dept.
    Jeremy Allison — Sam (Slashdot reader #8,157) is a Distinguished Engineer at Rocky Linux creator CIQ. This week he published a blog post responding to promises of Linux distros “carefully selecting only the most polished and pristine open source patches from the raw upstream open source Linux kernel in order to create the secure distribution kernel you depend on in your business.”

    But do carefully curated software patches (applied to a known “frozen” Linux kernel) really bring greater security? “After a lot of hard work and data analysis by my CIQ kernel engineering colleagues Ronnie Sahlberg and Jonathan Maple, we finally have an answer to this question. It’s no.”
    The data shows that “frozen” vendor Linux kernels, created by branching off a release point and then using a team of engineers to select specific patches to back-port to that branch, are buggier than the upstream “stable” Linux kernel created by Greg Kroah-Hartman. How can this be? If you want the full details the link to the white paper is here. But the results of the analysis couldn’t be clearer.

    https://linux.slashdot.org/story/24/05/19/0030248/why-a-frozen-distribution-linux-kernel-isnt-the-safest-choice-for-security

    Reply
  4. Tomi Engdahl says:

    Sulautettujen tietoturvakomponenttien käyttö pilviympäristössä
    https://jyx.jyu.fi/handle/123456789/78631

    Sulautetut järjestelmät ovat usein hyvin vähäresurssisia, jonka takia tavallisesti käytettyjä salausmenetelmiä ei ole mielekästä käyttää. Erilliset tietoturvakomponentit mahdollistavat salauksen käytön myös prosessointiteholtaan rajoitettujen laitteiden kanssa. Tässä tutkielmassa on vertailtu kolmen eri valmistajan tietoturvakomponenttien suorituskykyä, sekä toimintaa pilvipalvelun kanssa. Laitteet olivat suorituskyvyltään verrattaen samanlaisia. Suurimat erot laitteiden välillä olivat vaadittujen kirjastojen käytössä ja laitteiden käyttöönotossa tämän tutkielman tarpeisiin

    Reply
  5. Tomi Engdahl says:

    The Best Single-Board Computers (SBCs) of 2024
    BY
    GORAN DAMNJANOVIC
    PUBLISHED 6 DAYS AGO
    A whole PC on a tiny PCB that can do everything
    https://www.howtogeek.com/best-single-board-computers/

    Reply
  6. Tomi Engdahl says:

    Perinteinen sulautettu kehitys on tullut tiensä päähän
    https://etn.fi/index.php/13-news/16245-perinteinen-sulautettu-kehitys-on-tullut-tiensae-paeaehaen

    Sulautettuja järjestelmiä on aina kehitetty internetistä löytyvillä työkaluilla ja ohjelmistoilla, koska ne ovat ilmaisia. – Suunnittelijat ovat aina halunneet tehdä kaiken itse atomeista alkaen, mutta tämä malli on kuitenkin tulossa tiensä päähän, sanoi Etteplanin teknologiajohtaja Jaakko Ala-Paavola yhtiönsä järjestelmässä teknologiapäivässä tänään.

    Tällainen DIY-menetelmä (do-it-yourself) on periaatteessa avoin, eikä maksa mitään, koska kaiken saa ilmaiseksi internetistä. – Tämä malli törmää uuteen tietoturvaregulaatioon. Tulee uusia vaatimuksia, jotka kohdistuvat yrityksen prosesseihin. Tällöin itse tehty ei enää tuokaan säästöjä.

    Ala-Paavola sanoi, että kyberturvallisuus eli ”CySe on uusi FuSa” eli toiminnallinen turvallisuus. – Tuotevastuullisella taholla on velvollisuus seurata komponenttitoimittajan prosesseja, joten tätä varten pitää olla allokoituna oma tiimi. Jatkossa itse ylläpidetyt alustat ei enää ole järkevin vaihtoehto, eivät teknisesti eikä taloudellisesti.

    Etteplan on toki itse suunnitellut asiakkailleen tällaisia tuotteita vuosikymmeniä. Nämä ajat ovat pitkälti ohi. – Kun tekee atomeista asti itse, ylläpidon taakka nousee niin suureksi, että käytännössä kaupallinen alusta on ainoa järkevä vaihtoehto.

    Mutta onko uusi kyberturvaregulointi tappamassa koko vanhan sulautettujen järjestelmien kehitysmallin? – Ei kokonaan, mutta pienen volyymin tuotteissa regulaation täyttäminen on haasteellista, Ala-Paavola sanoi.

    Tuotekehityksen automaation ongelmana on pitkään, ainakin 15 tai 20 vuoden ajan, ollut se, ettei tuottavuus ole parantunut. Ala-Paavolan mukaan iso syy on se, että tekemisen tapa on olut samanlainen pitkään. – Samaan aikaan ohjelmistomaailmassa on tuotu valtavasti uusia menetelmiä ja työkaluja käyttöön, kuten low-code- ja no-code .-alustat, mutta automaatiomaailmassa on jääty paikoilleen.

    Reply
  7. Tomi Engdahl says:

    Digitaalisen kaksosen merkitys kasvaa tuotekehityksessä
    https://etn.fi/index.php/13-news/16248-digitaalisen-kaksosen-merkitys-kasvaa-tuotekehityksessae

    Digitaaliselle kaksoselle ei ole täydellistä määritelmää. Sillä tarkoitetaan simulaatiomallia, kokonaista simulaattoria, sitä käytetään ohjelmistokehityksessä. Selvää on, että digitaalisen kaksosen merkitys kasvaa nyt erityisesti tuotekehityksessä, sanoi tiiminjohtaja Jarkko Nokka eilen Etteplanin teknologiapäivässä.

    - Digitaalinen kaksonen on löysä termi. Periaatteessa se on mikä tahansa digitaalinen esitys kohteestaan. Tavallaan se syntyy jo silloin, kun tuote tai järjestelmä on konseptitasolla.

    Nokan mukaan digitaalisen kaksosen hyöty on se, että konpeptia tai ideaa voidaan puskea eteenpäin. Voidaan tehdä virheitä usein ja aikaisemmin. Tuotekehittäjän ei tarvitse vielä määrittää komponentteja, ja silti voidaan kokeilla ja testata.

    Digikaksosen käytöstä seuraa monia etuja. Alijärjestelmäsuunnittelussa tuote on jo paljon valmiimpi, eikä tuotekehityksen jälkimmäisessä vaiheessa, kun siirrytään testiportaaseen, ole enää ”tulipaloja sammutettavana”, kuten Nokka muotoili.

    Jos simulaatiojärjestelmät saadaan keskustelemaan keskenään, saadaan simulaatioklusteri. Sen myötä tuotteen markkinoille saamiseen kuluva aika lyhenee. – Tarvitaan vähemmän fyysisiä prototyyppejä, ja tuotekehitys etenee pidemmälle virtuaalisesti.

    Digitaalisen kaksosen teoreettisen perustan muodostaa simulointi. Etteplanin teknisen laskennan johtaja Kati Lindroos muistutti, että simulointi voi perustua erilaisiin malleihin. Fyysisiin, fysiikkapohjaisiin, tilastollisiin tai datavetoisiin.

    Perinteinen sulautettu kehitys on tullut tiensä päähän
    https://etn.fi/index.php/13-news/16245-perinteinen-sulautettu-kehitys-on-tullut-tiensae-paeaehaen

    Sulautettuja järjestelmiä on aina kehitetty internetistä löytyvillä työkaluilla ja ohjelmistoilla, koska ne ovat ilmaisia. – Suunnittelijat ovat aina halunneet tehdä kaiken itse atomeista alkaen, mutta tämä malli on kuitenkin tulossa tiensä päähän, sanoi Etteplanin teknologiajohtaja Jaakko Ala-Paavola yhtiönsä järjestelmässä teknologiapäivässä tänään.

    Tällainen DIY-menetelmä (do-it-yourself) on periaatteessa avoin, eikä maksa mitään, koska kaiken saa ilmaiseksi internetistä. – Tämä malli törmää uuteen tietoturvaregulaatioon. Tulee uusia vaatimuksia, jotka kohdistuvat yrityksen prosesseihin. Tällöin itse tehty ei enää tuokaan säästöjä.

    Ala-Paavola sanoi, että kyberturvallisuus eli ”CySe on uusi FuSa” eli toiminnallinen turvallisuus. – Tuotevastuullisella taholla on velvollisuus seurata komponenttitoimittajan prosesseja, joten tätä varten pitää olla allokoituna oma tiimi.

    – Kun tekee atomeista asti itse, ylläpidon taakka nousee niin suureksi, että käytännössä kaupallinen alusta on ainoa järkevä vaihtoehto.

    Tuotekehityksen automaation ongelmana on pitkään, ainakin 15 tai 20 vuoden ajan, ollut se, ettei tuottavuus ole parantunut.

    - Moni yritys haluaisi käyttää uusia työkaluja, mutta suljetut järjestelmät muuttuvatkin nyt ongelmaksi. Avoimissa alustoissa teknologia ei rajoita, vaan tukee valintoja, Ala-Paavola kehuu.

    Teknologiapäivänsä demoissa Etteplan esitteli esimerkiksi Matlabilla ja Simulinkillä mallinnettu pyörökuorman ohjainta, joka pyöri congatecin korttitietokoneella. Linux-pohjaisella ctrlX OS:llä mallipohjaisesti tehty koodi kommunikoi reaaliaikaisesti pyörökuormaajan mallin kanssa. Itse asiassa ohjain ei edes tiedä, kommunikoiko se mallin vai fyysisen proton kanssa.

    CtrlX OS on aunperin Bosch Rexrothin Ubuntun päälle kehittämä teollisuuden automaatiolaitteiden käyttöjärjestelmä.

    Reply
  8. Tomi Engdahl says:

    The Impact of AI on the Electronic Design Industry
    https://www.autodesk.com/products/fusion-360/blog/the-impact-of-ai-on-the-electronic-design-industry/

    Recent advancements in AI offer the potential for optimizing electronic design, which traditionally involve labor-intensive schematic crafting and PCB translation. Learn how electronic design experts and AI can work hand-in-hand.

    Imagine an AI schematic designer whispering design optimizations into your ear as you work on your latest design project. With the recent advancements in the world of artificial intelligence, it’s not difficult to imagine this scenario. However, does AI help improve the design process, or is it something electronic design specialists should be wary of? Let’s find out. 

    Reply
  9. Tomi Engdahl says:

    https://www.etteplan.com/about-us/insights/introduction-sda-devops-angle/
    Introduction to Software-Driven Automation from a DevOps Angle
    Starting the move from manual or simple setups to an advanced, automated system can seem intimidating at first. However, the fundamental principles of DevOps encouraging teamwork, embracing automation, ensuring continuous delivery, and facilitating rapid feedback loops greatly ease the shift towards software-driven automation (SDA).

    Reply
  10. Tomi Engdahl says:

    OpenAMP Runs MicroPython and Arduino Code on Same Dual-Core Microcontroller
    MicroPython 1.23.0 adds OpenAMP, allowing Arduino GIGA R1 WiFi, Portenta H7, and Nicla Vision to run different code bases on each core
    https://www.hackster.io/news/openamp-runs-micropython-and-arduino-code-on-same-dual-core-microcontroller-f7a1806dec79

    Reply
  11. Tomi Engdahl says:

    https://etn.fi/index.php/13-news/16299-sulautetun-koodin-analyysi-nopeammaksi-myoes-linuxissa

    Ruotsalainen Percepio tunnetaan Tracealyzer-tykalustaan, jota erityisesti sulautettujen sovellusten kehittäjät käyttävät koodinsa analysointiin. Nyt yritys on esitellyt työkalustaan version 4.9, joka tuo merkittäviä parannuksia Linuxissa koodiaan kehittäville.

    Reply
  12. Tomi Engdahl says:

    https://etn.fi/index.php/new-products/16298-energiatehokasta-liikkeentunnistusta-teollisuuteen

    STMicroelectronics on esitellyt 6-akselinen liikeanturin teollisuuden sovelluksiin. ISM330BX-piirille on integroitu AI-prosessoinnin, analogisen hubin anturien lisäämiseen ja ST:n omaan Qvar-tekniikkaan perustuvan sähkövarausten vaihtelun tunnistuksen.

    Liikeanturi sisältää 3-akselisen gyroskoopin ja 3-akselisen kiihtyvyysmittarin. Kaistanleveys on jopa 2 kilohertsiä, joten liikettä mitataan nopeasti. Anturi soveltuu tärinäntunnistukseen työstökoneiden kunnonvalvontasovelluksissa, sekä liikkeenseurantaan teollisuus- ja kotiroboteissa ja automatisoiduissa ajoneuvoissa.

    ISM330BX integroi myös ST:n reunaprosessointimoottorin, joka yhdistää koneoppimisytimen (MLC) tekoälyalgoritmeihin ja FSM-tilakoneeseen, joten anturidatan pohjalta tehty päättely ei kuormita laitteen isäntäprosessoria.

    Reply
  13. Tomi Engdahl says:

    Ubuntu Core

    The embedded Linux OS
    for devices

    Ubuntu Core is a minimal, secure and strictly confined operating system powering devices around the world. Build your Ubuntu Core image today.

    https://ubuntu.com/core?_gl=1*vbzs6w*_gcl_au*MTk1NjIwMTc3Mi4xNzE4MDA4ODIw&_ga=2.191234922.15682994.1718008820-501132645.1718008815

    Reply
  14. Tomi Engdahl says:

    If somebody actually allows you near a codebase, the first thing you’ll notice is that you aren’t allowed to commit to it. You need to write pull requests, where both a machine and a human will read your code, and it gets approved or sent back.

    A machine can syntactically check your code, plus you need to pass test cases, and also there’s a huge stack of linters to check if your code looks clean enough. But typically human checks will point out stuff AI can’t see, such as
    - If the code fits the requirement
    - If the functionality is a duplicate
    - If there’s code duplication across the codebase
    - If the functionality is not at all needed
    - If team/company selected coding conventions are respected

    Writing code is human interaction, and very similarly to having a housekeeper, you’ll have to use a human one, because you’ll need to agree with every small detail about your house, so that you both are in agreement about how to handle every aspect and situation. You would never trust a robot into your house cos it might just go and break everything, and cause irreplaceable damage to the most important thing you have.

    Reply
  15. Tomi Engdahl says:

    NiCE5340 SoM packs Nordic nRF5340 MCU, Lattice iCE40 FPGA, and 11 sensors into a tiny 29x16mm form factor
    Stefano Viola’s NiCE5340 SoM is built around a Nordic Semi nRF5340 Bluetooth SoC, an iCE40 FPGA, 11 sensors, a battery charger, and various other peripherals in a 29×16 mm form factor. The nRF5340 used in the SoM is a low-power, dual-core Arm Cortex-M33 SoC with Bluetooth 5.4, Bluetooth LE (BLE), Thread, Zigbee, and other proprietary protocols. Meanwhile, the Lattice iCE40 FPGA features 3520 logic cells, 80 Kbits of embedded Block RAM, I2C, and SPI blocks, and many other features that make it suitable for applications like environmental monitoring, health tracking, and others.
    https://www.cnx-software.com/2024/06/06/nice5340-som-packs-nrf5340-mcu-ice40-fpga-11-sensors-tiny-form-factor/

    Reply
  16. Tomi Engdahl says:

    Apple’s Embedded Swift programming language supports ESP32-C6, Raspberry Pi RP2040, STM32F7, nRF52840 microcontrollers
    Apple has released a beta version of Embedded Swift that notably works with Espressif ESP32-C6 wireless RISC-V microcontroller, and the company also built a Matter sample based on ESP-IDF and ESP-Matter SDKs. Embedded Swift is not limited to the ESP32-C6 and supports other microcontrollers from STMicro, Raspberry Pi, Nordic Semi, etc…
    https://www.cnx-software.com/2024/06/13/embedded-swift-esp32-c6-raspberry-pi-rp2040-stm32f7-nrf52840-microcontrollers/

    Reply
  17. Tomi Engdahl says:

    8devices Carambola 3 WiFi IoT module supports upstream OpenWrt, industrial temperature range
    8devices Carambola 3 is a compact System On Module (SoM) built around the Qualcomm QCA4531 WiFi 4 chipset. The module comes in two variants – the Carambola3 for commercial applications (0 to +65°C) and the Carambola3-I for industrial environments (-40 to +85°C). Additionally, 8devices offers a development kit with integrated features like a 2.4 GHz chip antenna, dual LAN ports, USB, GPIO, and much more. Notably, the development kit also supports OpenWrt Upstream, making it ideal for IoT, industrial automation, and smart home projects.
    https://www.cnx-software.com/2024/06/19/8devices-carambola-3-wifi-iot-module-supports-upstream-openwrt-industrial-temperature-range/?fbclid=IwZXh0bgNhZW0CMTEAAR3WZm1xIIXcjfxvVeqa1I7IqD6xKjQoh44lHRG0ix0w52lZhbX1s3dtatI_aem_ZmFrZWR1bW15MTZieXRlcw

    Reply
  18. Tomi Engdahl says:

    Analogiatoiminnot tuovat uutta puhtia 8-bittisiin
    https://etn.fi/index.php/tekniset-artikkelit/16349-analogiatoiminnot-tuovat-uutta-puhtia-8-bittisiin

    Vaikka 8-bittisiä mikro-ohjaimia on ollut tarjolla jo melkein viisi vuosikymmentä, niiden kysyntä kasvaa edelleen. Vastatakseen markkinoiden vaatimuksiin 8-bittisten mikro-ohjaimien toiminnallisuutta on kehitetty nykyaikaisten sovellusten tarpeita varten.

    Vaikka 8-bittisiä mikro-ohjaimia on ollut tarjolla jo melkein viisi vuosikymmentä, uudet nopeasti yleistyvät tuoteinnovaatiot ja sovellukset kuten sähköautot ja -pyörät, koti- ja teollisuusautomaatio sekä IoT-laitteet ovat lisänneet huomattavasti näiden edullisten pienikokoisten mikro-ohjaimien kysyntää. Vastatakseen markkinoiden vaatimuksiin 8-bittisten mikro-ohjaimien toiminnallisuutta on kehitetty nykyaikaisten sovellusten tarpeita varten.

    Tässä artikkelissa tarkastellaan kolmea yleistä sovellusta, joissa uudet, analogisilla suodatustoiminnoilla varustetut 8-bittiset mikro-ohjaimet tukevat näitä nykyaikaisia järjestelmiä parantamalla järjestelmän suorituskykyä ja nopeuttamalla järjestelmätapahtumien vasteita.

    Tehonkulutusta voidaan tehokkaasti vähentää hyödyntämällä esimerkiksi IDLE-, DOZE- ja SLEEP-tilojen käyttöä. Näiden lisäksi Microchipin uusimmissa PIC- ja AVR-mikro-ohjainyksiköissä operaatiovahvistimet ja analogia-digitaalimuuntimet voidaan kytkeä päälle ja pois päältä ohjelmallisesti tai asettaa mikro-ohjainyksikön ydin ja digitaaliset oheispiirit käynnistymään saavutettuaan tietyt kynnysarvot, jolloin saadaan lisää joustavuutta ja tehonsäästöjä akkukäyttöisiin sovelluksiin. Mainitut tehoa säästävät ominaisuudet ovat saatavissa nykyisissä mikro-ohjainyksiköissä ja ne mahdollistavat pidemmän akun käyttöiän samalla kun virrankulutus, tehohäviöt ja kustannukset pienenevät.

    Osa mikro-ohjaimista kuten Microchipin PIC- ja AVR-mikro-ohjainyksiköt tukee ytimestä riippumattomia oheispiirejä (CIP; Core Independent Peripherals), jotka toimivat sirulla olevien analogisten oheispiirien rinnalla (tandem) huolehtiakseen järjestelmän valvonnasta kriittisten tapahtumien varalta ja varmistaakseen järjestelmän toimivan oikein. Integroidut analogiset oheispiirit kuten operaatiovahvistimet tai analogia-digitaalimuuntimet vahvistavat, suodattavat ja vakioivat signaalia tarpeen mukaan kun analogiasignaalia vastaanotetaan. CIP-oheispiirien tarkoituksena on automatisoida järjestelmän tehtäviä ilman että tarvittaisiin koodeja tai CPU-ytimen suorittamaa valvontaa, jolloin vähenee tarve koodin kirjoittamiselle, virheenkorjaukselle ja validoinnille, ja sovelluksista tulee mukautuvampia järjestelmän muutoksille. CIP-piirit kommunikoivat keskenään, mikä edelleen helpottaa järjestelmän suorituskyvyn ja responsiivisyyden lisäämistä sekä useiden tehtävien samanaikaista käsittelemistä.

    PIC- ja AVR-mikro-ohjainyksiköt vievät konseptin askeleen pidemmälle, sillä niissä on kehittyneitä analogisia oheispiirejä, joissa on erikoistuneita piirejä edistyneiden ytimestä riippumattomien laskentatehtävien kuten keskiarvolaskennan, poiminnan ja alipäästösuodatuksen suorittamiseksi. Nämä ominaisuudet nopeuttavat järjestelmän vastetta ja hyvän suojan häiriöitä vastaan vaativissa ympäristöissä. Nämä erikoistuneet analogiset oheispiirit ovat yhdistettävissä moniin muihin sirulla saatavissa oleviin signaaleihin kuten ajastimien ja kellojen signaalilähteisiin, digitaalisten oheispiirien signaaleihin, muihin analogisiin automaattisesti käynnistyvien prosessien muodostamiin signaaleihin tai keskeytystilojen muodostumisesta keskusyksikölle ilmoittaviin signaaleihin.

    Reply
  19. Tomi Engdahl says:

    Pian kaikki laitteet kuuntelevat komentojasi
    https://etn.fi/index.php/13-news/16364-pian-kaikki-laitteet-kuuntelevat-komentojasi

    Pitkän aikaa ajateltiin, että kodin eri laitteita voisi ohjata eleillä. Nyt eleet joutuvat romukoppaan, sillä pienten MEMS-mikrofonien ja tekoälyn myötä niin keittiön koneet, valvontakamerat, älykaiuttimet kuin television kaukosäätimet oppivat kuuntelemaan sanallisia komentoja.

    TDK vauhdittaa tätä markkinaa tuomalla I²S-liitännällä varustetun pienitehoisen MEMS-mikrofonin maailmanlaajuiseen jakeluun. T5848-mikrofonissa on akustinen aktiivisuuden tunnistin (AAD) eli se herää henkiin esimerkiksi avainsanoilla. Lisäksi anturi tarjoaa korkean äänenlaadun erittäin pienellä tehonkulutuksella.

    Reply
  20. Tomi Engdahl says:

    Neljä anturia mittaa ilmaa samassa kotelossa
    https://etn.fi/index.php/new-products/16362-neljae-anturia-mittaa-ilmaa-samassa-kotelossa

    Bosch Sensortech on esitellyn ilmanlaadun valvontaan MEMS-anturipiirin, joka sulkee sisäänsä neljä eri anturia. Uutuus mittaa kaasuja, kosteutta, lämpötilaa ja ilmanpainetta 50 prosenttia edeltäjäänsä pienemmällä virrankulutuksella.

    Bosch Sensortecillä on pitkä historia ilmanlaadun antureissa. BME690 on uusimman sukupolven kaasuanturi kaasujen, lämpötilan, paineen ja kosteuden valvontaan yhdistettynä innovatiivisiin tekoälyominaisuuksiin. BME690:tä kehitetään edelleen Bosch Sensortecin BME688- ja BME680-antureilla, jotka perustuvat tähän pitkään todistettuun alustaan.

    Reply
  21. Tomi Engdahl says:

    https://etn.fi/index.php/13-news/16366-microchip-rakensi-linkin-microsoftin-suosittuun-kehitysympaeristoeoen

    Microchip rakensi linkin Microsoftin suosittuun kehitysympäristöön

    Julkaistu: 26.06.2024

    Devices Embedded Software

    Microsoftin VS Code on erittäin suosittu kehitysympäristö. Microchip on kehittänyt ohjaimiensa MPLAX B -työkaluihinsa laajennukset, joiden avulla kehittäjät voivat työstää projektejaan VS Codessa. Kyse on ns. varhaisen vaiheen tuesta, laajemmin ne tulevat saataville myöhemmin.

    Reply
  22. Tomi Engdahl says:

    $3 Smartwatch Can Run Python
    https://hackaday.com/2024/06/26/3-smartwatch-can-run-python/

    Poking Technology] doesn’t think much of his new smartwatch. It is, by his admission, the cheapest possible smartwatch, coming in at about $3. It has very few useful features but he has figured out how to port MicroPython to it, so for a wrist-mounted development board with BLE, it might be useful. You can check it out in the video below.

    The first step is a teardown, which reveals surprisingly little on the inside. There’s a tiny battery, a few connections, a display, and a tiny CPU board. There are, luckily, a few test pads that let you get into the CPU. What do you get? A 24 MHz Telink CPU with 512k of flash and 16k of RAM, along with all the other hardware.

    https://www.youtube.com/watch?v=sv58aPvIonw

    Reply
  23. Tomi Engdahl says:

    This “super SIM card” features a built-in RISC-V CPU for increased storage, faster transfers, and better security
    10x better than your standard SIM
    https://www.techspot.com/news/103582-chinese-super-sim-card-features-built-risc-v.html

    Reply
  24. Tomi Engdahl says:

    If you’ve got a Linux-capable system with no storage, why not try booting it from Google Drive?

    Ersei Picks an Unusual Boot Device for This Arch Linux System: Google Drive
    “Like all good projects,” the student explains of something with self-admittedly middling usefulness, “this began with an Idea.”
    https://www.hackster.io/news/ersei-picks-an-unusual-boot-device-for-this-arch-linux-system-google-drive-1145a0b176a6?fbclid=IwZXh0bgNhZW0CMTEAAR0Z1uYzlFbzE1ZH-wAxkdX0KytkrCGG7Z-8p0jtVvoBWYGgYOgQBPfQ0Oc_aem_2Gi6ryQoPpgBUgPJAgaatg

    Pseudonymous computer science student “Ersei” has created a Linux system that uses a Google Drive cloud storage system as its boot device.

    “On the brink of insanity, my tattered mind unable to comprehend the twisted interplay of millennia of arcane programmer-time and the ragged screech of madness, I reached into the Mass and steeled myself to the ground lest I be pulled in, and found my magnum opus. Booting Linux off of a Google Drive root.”

    Google Drive, launched back in 2012, is designed to allow users to store files — both those created on and edited by Google’s productivity apps including Google Docs and those made elsewhere. With a claimed user count of over a billion and trillions of files stored, it’s popular — but, to the best of Ersei’s and our combined knowledge, has never been used as a boot device for an operating system.

    “I wanted this to remain self-contained, so I couldn’t have a second machine act as a ‘helper,’”

    . “My mind went immediately to FUSE [Filesystem in Userspace] — a program that acts as a filesystem driver in userspace (with cooperation from the kernel). I just had to get FUSE programs installed in the Linux kernel initramfs and configure networking. How bad could it be?”

    The answer, perhaps unsurprisingly, is “pretty bad” — but not impossible. Ersei got the system, based on the Arch Linux distribution, running locally as a proof-of-concept first, then set about porting it to Google Drive. After a lot of tinkering, boot was achieved — even using a device with no storage of its own. There are, however, caveats: it’s slow, symbolic and hard linking don’t work correctly, and permissions and attributes aren’t recorded.

    “Despite how silly this project is, there are a few less-silly uses I can think of, like booting Linux off of SSH [Secure Shell],” Ersei proposes, “or perhaps booting Linux off of a Git repository and tracking every change in Git using gitfs. The possibilities are endless, despite the middling usefulness.”

    https://ersei.net/en/blog/fuse-root

    Reply
  25. Tomi Engdahl says:

    Microchip Technology Expands Processing Portfolio to Include Multi-Core 64-bit Microprocessors
    PIC64GX MPU is the first of several product lines planned for Microchip’s PIC64 portfolio
    https://www.microchip.com/en-us/about/news-releases/products/microchip-technology-expands-processing-portfolio-to-include-multi-core

    Reply
  26. Tomi Engdahl says:

    Nordic Semiconductor named by TIME magazine as one of “Worlds Most Sustainable Companies”
    https://www.nordicsemi.com/Nordic-news/2024/06/Nordic-Semiconductor-named-by-TIME-magazine-as-one-of-Worlds-Most-Sustainable-Companies

    TIME has partnered with research agency Statista to name the World’s Most Sustainable Companies in which Nordic’s commitments to reducing its own carbon footprint are recognized.

    Nordic Semiconductor, a leading provider of low power wireless IoT connectivity solutions, has been named by TIME magazine as one of the “World’s Most Sustainable Companies”.

    Nordic’s aggressive greenhouse gas (GHG) reduction achievements; increasing conversion to recycled plastic use in manufacturing component reels; and demonstrable dedication to its sustainability principles have made the top 500 list for World’s Most Sustainable Companies, designated by TIME and research partner, Statista, from more than 5,000 eligible companies worldwide.

    The criteria devised by TIME and Statista to recognize and reward companies that prioritize sustainability is designed to promote corporate responsibility and advance sustainable practices.

    More than 5,000 of the world’s largest and most influential companies were assessed based on factors such as revenue, market capitalization, and public prominence. These companies were examined in a rigorous four-step process that covered more than 20 key data points, such as their CDP score – which provides a snapshot of a company’s disclosure and environmental performance, their alignment with GRI and SASB, emissions and energy intensity, and employee turnover and work safety.

    Reply

Leave a Reply to Tomi Engdahl Cancel reply

Your email address will not be published. Required fields are marked *

*

*