• Open source software. Modern open source operating systems

    To understand what it means for our organization to use software with open/closed source code, you need to understand how they differ from each other. This article points out the main differences, but remember that this is a very simplified explanation. Additional information can be obtained from Wikipedia or by reading concrete examples using both types of software.

    First of all, open source software means that we can change and develop our program as long as we have the knowledge and skills to do so. On the contrary, it is not possible to modify a closed source program yourself since the source code of the program/application is not available. Although not all of us are programmers, we can still benefit from working with software with open source.

    Such software is provided to users free of charge, and not only the programs, but also operating systems. It is created and developed by users themselves, who post their creations on the Internet. Most popular programs are updated regularly because so many people use them. An example is Mozilla Firefox or Thunderbird. If the program is not updated regularly, it may be that there are not enough necessary technical resources for this - the whole question is how many users the program has. High frequency updates are a definite guarantee of the safety of using the program. However, if after installing the update it turns out that the program does not work (for example, in new version operating system is not supported by Skype), there are two ways to solve the problem: try to find help on forums on the Internet or fix the problem yourself, which is relatively difficult.

    Closed source software is much more popular than open source software. First of all, due to ease of use, and also because we are simply accustomed to it - as a rule, we use Windows OS at school, at work and at home. In the case of programs and operating systems based on closed source code, we are dealing with a finished product that does not require any intervention on our part. It is much more convenient for the average user to work with them. Users of closed source software often emphasize how easy it is to install and use, how convenient it is to have clear help for the program at hand, and the ability to contact the service technical support in case of problems. Such systems and products are released by companies, and only after several stages of testing. The user simply purchases an entire software package, ready to be installed on the computer. Such software is paid: we purchase a license, and often program updates.

    Some software developers support community organizations and offer them software for free or at a discount through their respective non-profit organizations, such as affiliate network TechSoup, whose members are located in different countries. In Russia, the program is implemented by Teplitza social technologies(Spiro LLC). By contacting the infoDonor program, you can find out whether your organization can participate in the program. We should also remember that when we choose an operating system, we are also choosing the way we work in our organization. For example, if we chose Linux, we will not be able to use Adobe solutions, and if we chose Windows, we will have to purchase licenses for the number of computers. Each case has its pros and cons. We need to carefully consider what exactly our organization needs, what are the criteria for the effective use of equipment, and make a decision after a thorough analysis.

    Of course, open or closed source software isn't just about Microsoft, Mac, or Linux. The issue of licensing comes up in connection with any type of software used in an organization. The main rule is to carefully read all licenses and service agreements. There are many examples where organizations have encountered serious problems with software that was rendered virtually useless due to licensing conditions, or where even the smallest changes to a site were very costly.

    In addition to Android, we probably know about the existence of iOS and Windows Phone. BlackBerry OS still exists somewhere far away, and Symbian is a thing of the past. This is what is well-known, but there are several operating systems that are much less known, but still worthy of attention. Like Android, they are built on Linux kernel and are open source. However, this did not help them achieve the same success.

    Ubuntu Phone

    Canonical developed out of a desire to standardize everything. Just like Windows, which automatically adapts to your computer after installation, Ubuntu is ready to adapt to any device, be it a smartphone, tablet, TV or computer. Depending on the type of device, the OS itself will adjust to the screen size and type of data input.

    Ubuntu Phone users can simply connect their smartphone to their computer and use the desktop version of Ubuntu on the computer screen. This ideology coincides a bit with Microsoft, which wants to blur the lines between mobile and desktop OS, as well as applications for them.

    HP webOS

    webOS was originally owned by Palm, but HP bought Palm in 2010. HP had big plans for webOS; it was planned to release a smartphone, tablet, printer and even a computer running this OS. The HP TouchPad tablet was launched, but it couldn't compete with the iPad and the idea didn't go any further.


    LG later used the capabilities of webOS in its smart TV, and it turned out to be a good idea. webOS, despite its unpopularity, has some interesting features that can still be sold.

    Samsung Tizen

    Tizen is built on the Linux kernel, and the interface of this OS completely copies TouchWiz from Samsung. In other words, there is nothing unfamiliar in this system and at the same time. Today some people run this OS smart watch Samsung, but the company has no big plans for it. They have a problem attracting developers, but without Tizen applications no one needs it.

    Jolla Sailfish

    This OS has a long and interesting story. Nokia once worked on Maemo devices built on Linux. Maemo later became part of the MeeGo OS platform, which was owned by Intel. The only smartphone released on MeeGo was Nokia N9, and it was popular among developers. However, before the deal with Microsoft, the MeeGo project was closed, and the company concentrated on Windows Phone.

    Most of the team that worked on MeeGo left the company and started their own, called Jolla. All rights to MeeGo remained with Nokia, and they were forced to create their own based on the MeeGo source codes. This OS can work with both Qt applications and Android applications.

    Amazon Fire

    Amazon Kindle tablets use what Amazon calls Fire OS. In fact, this is Android, a version of AOSP, which Amazon has seriously worked on. It is simply impossible to find out in Fire OS Android. At the same time, it works with Android applications, but you don’t need to download them from Google Play. Amazon does not use Google services, selling content through its own store, and it is quite large.

    FirefoxOS

    Mozilla has been trying to create its own solution for smartphones for a long time. What they have is built on Gecko and Firefox browser. All applications for Firefox OS support modern web technologies, such as HTML 5. Mozilla believes that the era of native applications will pass, and the future belongs to web applications. I thought the same Steve Jobs, starting the iPhone.

    Nokia X

    Microsoft is working on this platform. It is a mixture of Android and Windows Phone, but it is still built on Android. Smartphones on this platform have not met with much love from users due to the lack of services from Google, but are sold due to their low cost.

    Based on materials from EFYTimes

  • Development for the Internet of Things
  • Over the past decade large number open source OS projects have moved from the market mobile communications to the Internet of Things. In this article we will look at which of the open projects are aimed at IoT (Internet of Things).

    Keep in mind that almost all modern open OSs claim to be suitable for IoT use to some extent. But we'll only look at those that really focus on things like: low memory consumption, high power efficiency, a modular and customizable communications stack, and strong support for wireless and touch technologies. Also, some projects emphasize their developments in the field of IoT security and real-time. Realtime can be really important in industrial IoT, although it is almost useless in household ones.

    We will not consider here the so-called lightweight distributions, even if they are really lightweight, but do not set themselves IoT tasks, but are limited to ordinary use in ordinary workstations.

    Also, we will not look towards Windows 10 for IoT Core. Although this project is capable of performing tasks typical for IoT, it has nothing to do with open source.

    So let's begin.

    OS based on Linux

    Brillo is a Google development, which is a lightweight Android and has gained some popularity over the year of its existence. For example, it is used on Intel Edison and Dragonboard 410c. However, this OS is tied to the Weave protocol, which is a Google development and is not used anywhere else. The system is capable of running on equipment with 32MiB RAM and 128MiB flash.

    Huawei LiteOS - Huawei's LiteOS is based on Linux, but there isn't much left of Linux there. They started talking about the system about a year ago and it is claimed that the core can be as small as 10KB. LiteOS can be used on a wide range of hardware from MCU devices to Android-compatible ones. Main features: trivial setup, automatic detection of anything and everything, wide support for a variety of networks (LTE and mesh networks including), fast loading.

    OpenWrt /LEDE/Linino/DD-Wrt - a well-known project, most in demand on routers and other MIPS network equipment. Given the initial network focus, he could not ignore IoT. These forks do not have fundamental differences from each other and were born due to NIH syndrome or organizational squabbles.

    Ostro Linux is based on the Yocto Project (to be discussed separately) and became famous after Intel chose it for the Intel Joule, based on the Atom SoC T5700. Ostro Linux is compatible with IoTivity, supports many wireless technologies, and also provides a framework for working with a variety of sensors. Particular attention is paid to security, including cryptography.

    Raspbian - Debian, tailored to run on the Raspberry Pi. And although there are other distributions for Raspberry that are more focused on the nuances of IoT, it is Raspbian that has become the de facto standard for DIY projects based on Raspberry Pi.

    Snappy Ubuntu Core --version of Ubuntu Core with Snap packages. Canonical claims that this system is capable of running on "any Linux desktop, server, cloud or device." In principle, it is capable of running on Raspberry Pi, but generally requires a 600MHz CPU, 128MiB RAM, 4GiB flash. Quite widely used. For example: Erle-Copter drones, Dell Edge Gateways, Nextcloud Box, and LimeSDR.

    Tizen - develops with Samsung support. It was originally planned as an OS for smartphones, but something went wrong and now it can only be found on TVs and so-called. smart watch. The project is not going to die, but its future is not clear either. Able to start on "raspberry".

    uClinux is the only more or less sane and widespread Linux version, capable of running on microcontrollers. But so far only on a few: Cortex-M3, M4, and M7. Yes, and there you need to connect external RAM to work.

    Yocto Project is not a distribution, but a set of utilities, templates and methods for developing embedded distributions supported and developed by the Linux Foundation. A very successful project, which is the basis for most successful commercial distributions tailored for IoT.

    Some famous non-Linux distributions

    Apache Mynewt - developed by Runtime for 32-bit microcontrollers with the support of the Apache Software Foundation. Stands out for good support wireless connections, ample debugging capabilities and fine tuning energy consumption. Supposed to be available for Arduino soon.

    ARM Mbed - aimed at low-power, battery-powered boards based on Cortex-M microcontrollers. 8KiB of RAM is enough for operation. First appeared on BBC Micro:bit SBC. Initially it was a single-threaded semi-proprietary piece of a blob, but now it is an open project under the Apache 2.0 license with support for multi-threading and real-time.

    Contiki - cannot compete with Tiny OS or RIOT OS, but requires only 10KiB RAM and 30KiB flash to work, works great with wireless communication and is IPv6 friendly. The OS is accompanied by an impressive set of utilities for development and testing, including Cooja Network Simulator for debugging wireless networks. The main feature is low memory consumption.

    FreeRTOS is Linux's main competitor among embedded platforms. And although it has problems with drivers, accounts users and other pleasant things from the world of full-fledged OS, but it is capable of running on 1KiB of memory and 5-10 KiBROM. Although full network interaction with normal TCP/IP requires 24KiB RAM and 60KiB flash.

    Fuchsia is another development from Google. Data is scarce, but the company claims that their OS can compete with FreeRTOS. Bring your own noodle buckets. They also don’t provide a rake for removing noodles from your ears. We are waiting for the marketers to shut up and the techies to speak up.

    Minoca - the code is open under the GPLv3 license. Assemblies prepared for x86, ARMv6 and ARMv7 architectures, including generated boot images for Raspberry Pi 2, Raspberry Pi, BeagleBone Black, Asus C201, PandaBoard and Galileo boards, as well as a QEMU-based emulator. The system is modular - the kernel subsystems are separated from each other, and interaction with the hardware is abstracted. Device drivers are not tied to the kernel and are designed as universal executable files, independent of the kernel version. 5 MiB RAM is enough to run.

    NuttX is widely used among developers of quadcopters and other drones. BSD license. Works on x86, Cortex-A5, -A8 and Cortex-M MCUs. Positioned by the developers as “looks almost like Linux only with reduced capabilities.”

    RIOT OS - for 8 years now, this OS is known for its energy efficiency and the widest support for wireless networks. 1.5KiB RAM and 5KiB flash are enough to work, which is almost the same as Tiny OS. At the same time, the system offers multithreading, memory management, partial POSIX compatibility and other things that are more typical for Linux than for lightweight RTOS. By the way, you can develop for this OS from Linux or OS X.

    TinyOS - this OS is developed under a BSD license and requires the least amount of resources of all sane systems. The system is written in a dialect of C called nesC. Primary use: Low-end microcontrollers, although Cortex-M3 support is currently being worked on.

    Zephyr - is developed by the Linux Foundation and consumes 2-8KiB RAM. Works on x86, ARM, ARC, but focuses on microcontrollers with Bluetooth/BLE and 802.15.4 radios like 6LoWPAN. Zephyr is based on River's Rocket OS, which in turn is based on Viper, which is nothing more than a stripped-down version of VxWorks.

    Tags:

    • IoT
    • embedded
    Add tags - 31.68 KB

    "Modern open source operating systems"

    Creation of an operating system. 4

    Operating System Definition 4

    Basic OS 4 features

    Additional OS features. 4

    Open Source OS 6

    Difference between open and closed source operating systems. 6

    CHAPTER 1

    Creation of an operating system.

    The predecessor of the operating system (OS) is considered to be utility programs, as well as their libraries. They began to be developed in the late 1940s. in the 1950-1960s, ideas were implemented that determined the functionality of the OS:

    1) Time sharing, multitasking

    Allowed the creation of multi-user systems in which there was one central process, and a block RAM joined the terminals.

    2) Separation of powers

    Made it possible to avoid the possibility of changing one program's data from another program into the computer's memory.

    3) Real time

    Allowed simultaneous maintenance of production processes and ongoing tasks.

    4) File systems and structures

    It was used as a way to store any data on other storage devices.

    Operating System Definition

    So, the OS is a set of programs that provides work with files, execution of application programs, and outputs and inputs data. The OS also provides control of the computer hardware as a whole. In other words, the OS is the first set of programs that loads when you turn on the computer. Any OS has basic and additional features.

    Basic OS features

    1) Execution of program requests, i.e. This is the output and input of data, launching programs, as well as stopping them, both freeing and allocating additional memory.

    3) Access to input and output devices.

    4) Distribution of RAM between processes, organization of virtual memory.

    5) Control access to hard disk data

    6) Providing a user interface

    7) Storing information about system errors

    Additional OS features.

    Additional features are:

    1) Multitasking

    2) Distribution of the necessary computing system resources between processes

    3) Restricting access to resources

    4) Data exchange, mutual synchronization

    5) Protect the system, data, programs from the actions of different users

    6) Differentiation of access rights and multi-user system.

    Having examined the functions of the OS, it is worth mentioning its components:

    1) bootloader is system software that ensures the OS loads after turning on the computer.

    2) The kernel is the most central part of the OS, which provides applications with access to computer resources.

    3) The command processor serves to provide a command line interface. The command processor itself is an independent programming language that has its own syntax and functions.

    4) Drivers – computer program, through which other programs gain access to the software of a certain device. The driver itself is not required to interact with other hardware devices, it can only imitate them.

    5) Interface - the interface between two devices, systems or programs, which is determined by their characteristics.

    2 OS groups are defined. The first includes systems whose set of programs controls the equipment. The second group includes systems whose set of programs control other programs.

    Many devices in our world can do without an OS altogether. So what are they for?

    1. Many programs need to perform the same routine actions. For example, entering the same word and displaying it on the screen. This may require the execution of many machine instructions. In order not to program them every time, the OS uses system libraries.
    2. It is necessary to distribute powers between users and system programs so that users can protect their data and an error in the program does not cause big troubles.
    3. The operator himself must be able to control the execution processes of individual programs. For this purpose, the shell and sets of snails are used. They themselves may be part of the OS. So, the OS can be described as:

    a) OS with a universal data access mechanism.

    b) OS with separation of powers

    c) time-sharing OS

    Open source OS

    As we know, in modern world All devices have an OS. Therefore, it is customary to distinguish between open and closed operating systems.

    An open source OS is a system that can be edited by any user without violating the license or law. This system is very convenient for smartphones, as it allows users to “customize the phone to suit themselves”: add various functions, rewrite drivers, insert touch support. It should be noted that such conditionally open operating systems as iPhone OS, Symbian do not allow interfering with the system itself, but allow you to write your own programs. For computers, the open source operating system is Linux.

    Difference between open and closed source operating systems.

    As mentioned above, open source operating systems allow the user to “build their own device”. Closed-source operating systems do not give the user the right to interfere with the system itself. Users can only buy programs, or use free ones, as well as install service folders. Closed operating systems include Windows and Mac OS.

    Closed operating systems are characterized by licensing and fees; open operating systems do not require the purchase of a license and are distributed free of charge.

    CHAPTER 2

    Linux

    Linux is an open source operating system whose development began in 1983. Richard Stolliman, a famous programmer, created the GNU Project. By the beginning of the 1990s, many system programs and libraries were already ready. In 1991, Linus Torvalds created the core of this system. Thus, from all the components and other software, a working free OS was created.

    At first, Linux was distributed only to volunteers, but over time, companies began to contribute and this OS became a significant force. Now Linux ranks first in the smartphone market (64%). In the home computer market, Linux ranks 3rd (12%) (the most popular distribution is Ubuntu, which is preferred by 20 million users).

    The most popular OS for smartphones and tablet devices is Android. This system is based on the Linux kernel. Linux distributions popular with various government agencies. For example, the Federal Government of Brazil actively uses this OS, and the Russian military is developing its own Linux distribution.

    On Linux systems, users work through the command line interface, or as it is also called CLI, GUI user interface (GUI), through the controls of the associated hardware.

    The command line is particularly well suited for automating repetitive or delayed tasks, and also provides a very simple inter-process communication mechanism.

    Graphical terminal emulator programs are often used to access the command line from a Linux desktop.

    Linux systems typically implement a command line interface using the operating system shell, which is also the traditional way to interact with a Unix system.

    iPhone OS

    iPhone is a mobile operating system developed and released by the American company Apple in 2007. This system was originally designed for iPhone and iPod touch, later and for devices such as iPad and Apple TV.

    Unlike Windows Phone and Google Android, is available only for devices manufactured by Apple. iPhone is based on Mac OS X and uses the same POSIX-compliant set of core Darwin components.

    As of May 12, 2012, the App Store contains more than 750 thousand iOS applications, which together have been downloaded more than 30 billion times.

    Cosmos

    Cosmos is an open source operating system written in the C programming language. It contains a Microsoft Intermediate Language compiler that allows you to generate complete program modules.

    The current release of Cosmos is Milestone 5, but the creators are working on future releases. Most of the work on Cosmos currently is aimed at developing network interface, however, the system already supports some network cards. There are currently two versions of Cosmos, the (later) source version and the release version (known as the custom kit). The source version is for those who want to help develop the kernel, while the custom kit is for those who simply want to use Cosmos to develop their own operating system.

    Android

    Android network operating system for communicators, tablet computers, e-readers, digital players, based on the Linux kernel. It was originally developed by Android Inc., which was later bought by Google. Subsequently, Google initiated the creation of the Open Handset Alliance or (OHA), which is now engaged in supporting and further developing the platform. Android allows you to create Java applications that control the device through Google-developed libraries. Android Native Development Kit creates applications written in C and other languages.

    75% of smartphones sold in the third quarter of 2012 were equipped with the Android operating system.

    Some observers note that Android performs better than one of its competitors, Apple iOS, in a number of features, such as: web surfing, integration with Google services Inc. and others. Android, unlike iOS, is an open platform, which allows you to implement more functions on it.

    Unlike iOS and Windows Phone 7, Android full implementation of the Bluetooth stack, which allows, among other things, the transfer and reception of files.

    Android devices usually have a MicroSD card reader that allows quick transfer files from computer to phone, bypassing speed restrictions of USB and other transfer methods without removing the memory card; In addition, in iOS and Windows Phone 7 it is not possible to directly transfer any files to or from the phone except through synchronization programs (iTunes and Zune), while Android phones export the file system of the memory card as a USB mass storage device (“ flash drive").

    Despite the initial ban on installing programs from “unverified sources,” this restriction can be disabled using standard means in the device settings. This is what allows you to install programs on phones and tablets without an Internet connection. For example, users who do not have a Wi-Fi access point and do not want to spend money on mobile internet, which usually costs too much. It also allows everyone to write Android applications for free and test them on their device.


    Job description

    So, the OS is a set of programs that provides work with files, execution application programs, carries out data output and input. The OS also provides control of the computer hardware as a whole. In other words, the OS is the first set of programs that loads when you turn on the computer. Any OS has basic and additional functions. The predecessor of the operating system (OS) is considered utilities, as well as their libraries.

    All modern digital devices run on a specific operating system. For example, it could be Windows or Linux, and for smartphones and tablets – Android and iOS.

    Operating systems come in open and closed types. The term “open operating system” means an open source system. This code is open for editing, and any user can change it (of course, within the framework of the license and the law). And a closed operating system does not allow you to “dig” into its source code.

    Open OSs are usually free, develop very quickly, and can be customized in detail for any device. And all because any user who understands this at least a little can correct errors in the system, write drivers, etc. Errors in closed operating systems are corrected only by service packs produced by the official developers of the OS.

    Examples of open and closed operating systems

    An example of an open operating system for smartphones and tablets is Google Android. This OS allows the user to do whatever he wants - rewrite some drivers, add support for new functions, etc. And here is the operating room Windows system Phone is considered closed and does not give users any right to intervene. They can only periodically install service packs, buy programs or use free ones.

    There are also conditionally open operating systems – iOS and Symbian. You can’t change anything in such OSs either, but you can write programs for them using special software, which is provided by the developers. The most popular operating systems for smartphones are Google Android and iOS. For regular user, who is not involved in creating new programs, the difference between these operating systems will only be in the interface.

    When it comes to computer operating systems, Windows is considered a closed operating system, while Linux is considered an open operating system. Naturally, you can only customize Linux. There is another operating system - Mac OS, which is very similar in architecture to Linux, but it is considered a closed OS.

    As for the choice of OS to use, each user decides for himself. For example, in closed operating systems the probability of catching a virus is much higher, and in this case you will have to wait until the developers fix the hole in the system with the next service pack. In addition, Windows and Mac OS are paid operating systems, while Linux is freely available to everyone.