Is hyperledger sawtooth under apache or intel corporation? - apache

Hyperledger sawtooth is maintained by Apache or Inter corporation?
At the footer there is intel corporation, if we want to move the project to production which is built on Hyperledger sawtooth, do we need to pay to intel?

Hyperledger Sawtooth is open source software, and is free to download and use.
The project was initially created by Intel, as blockchain software using Intel SGX CPU instructions to implement PoET (Proof of Elapsed Time) consensus. Intel then donated it to the Hyperledger Foundation as open source software, under the Apache 2.0 open source license. Developers from Intel and many other companies and individuals are members of the Hyperledger community and contribute to the Sawtooth project.
The Hyperledger Foundation is a global collaborative organisation 'created to advance cross-industry blockchain technologies' which incubates and supports several open source blockchain projects. It was launched in 2016 as part of the Linux Foundation, similar to the CNCF and Cloud Foundry.

No, you do not need to pay Intel. Intel donated Hyperledger Sawtooth to The Linux Foundation, which manages it under the Hyperledger consortium.
Hyperledger Sawtooth is licensed with Apache 2, but your application's source code can use Sawtooth and be open (or even closed) source under another license. You just use the Sawtooth APIs/SDKs/CLIs.

Related

Where is the V-IPU software?

I was reading the Graphcore documentation and came across the V-IPU software. The documentation says I can download it from the Graphcore software download portal, however I don't see it anywhere among the downloadable software (link below):
https://downloads.graphcore.ai/
I checked whether the Poplar SDK contains it but it doesn't, and it's not already installed on the machine I'm using (DSS8440 IPU SERVER). On the other hand, I'm able to run PopTorch without it, so I'm guessing V-IPU doesn't exist anymore? If not, where can I find it?
Graphcore's Virtual-IPU (V-IPU) is a software layer for allocating and configuring Graphcore IPUs in IPU-Machine and IPU-POD (a collection of interconnected IPU-Machines) systems, as described e.g. in the Introduction section of the V-IPU user guide. As you are using a Dell DSS 8440 IPU server and not an IPU-M or an IPU-POD system, V-IPU is not needed to run your programs on the IPU, as you have already verified yourself, and it is not visible to you on the Downloads portal either. You only need Poplar SDK to get going on the DSS 8440 server.
I'll add a few more details about these different systems, to clarify why V-IPU software is not needed with the IPU server you're currently using. The Dell DSS 8440 IPU server features eight Graphcore dual-IPU C2 cards, which are connected via a high speed PCIe switched fabric. On the other hand, in IPU-Ms and IPU-POD systems the IPU devices are accessed using IPU over Fabric (IPUoF) network connectivity, based on 100G RDMA over converged Ethernet (RoCE). The V-IPU software provides the allocation, provisioning and monitoring of IPU chips and related infrastructure for machine-learning Poplar-based workloads in the IPU-POD. The IPU-specific part of the V-IPU software can run on a single IPU-Machine, when used in direct attach mode, or on a server in an IPU-POD.
You can read more details on IPU-POD systems in this section of Graphcore's documentation.

What does Cross-Platform Development mean in Embedded System?

I did an interview in a company, and someone from HR asked me this question, but I do not know its relation with Embedded System, how I use it?
I searched for this topic in different sites but I did not find anything related to Embedded Systems.
Definition - What does Cross-Platform Development mean?
Cross-platform development is the practice of developing software products or services for multiple platforms or software environments. Engineers and developers use various methods to accommodate different operating systems or environments for one application or product.
definition
For instance, your development (Host) on X86-x64 PC platform but your target development (board, device, ..) is ARM, PowerPC,.. platform. In this case, your development on the Host, cross-compile on the Host and then port to the target.

If I deploy my Network Function on Oracle Virtualbox mean I am following NFV standards

I am working on a project related to Network Function Virtualization. To virtualize my Network Function, I am planning to deploy the Network Function on an Oracle Virtualbox. If I deploy my Network Function on the Oracle Virtualbox, does that mean I am complying with the standards of NFV architecture according to ETSI.
If yes, how Oracle Virtualbox is implementing the NFV architecture. Any source documentation would be useful.
If no, how much is Oracle Virtualbox implementation different from ETSI standards and what opensource architecture is better for implementing my project. Any source documentation on how much Oracle Virtualbox deviating from ETSI standard is useful.
Yes. The ETSI NFV Standards do not mandate a specific hypervisor.
As you may see in the Architectural Framework specification the MANO (Management and Orchestration) component interacts with the virtualization layer by means of a Virtual Infrastructure Manager (VIM), which decouples from the specific hypervisors.
The requirements for the MANO - VIM interface are specified here.
If you are starting from scratch, you may want to check out Openstack as a VIM and OSM as the MANO. Others open source implementation for both components are also available.
Have a look at the OpenStack VirtualBox drivers to get more information.
Installation information for OSM Release 5 are available here.

What sort of things are UEFI "applications" actually used for?

I'm interested in PC firmware programming, and am just studying the UEFI spec. To my surprise, it seems like a spec for an entire OS which is embedded in firmware. You can even write UEFI "applications", which run directly using the UEFI boot services, without any other OS present.
I've found blog posts which show how to create a "Hello, world!" application which can run in the UEFI preboot environment. This is... interesting, and bizarre at the same time. I'll run my "Hello, world" programs on a regular OS, thank you.
What kind of use cases are UEFI applications actually good for? Fancy boot configuration screens? Does any "real", commercially available PC firmware use UEFI applications to implement anything more than just boot loaders and boot configuration utilities?
Anything that isn't PEI/DXE/SMM core or driver is an application, so any "real" PC have them, because BIOS Setup is actually an UEFI application. Some vendors include various other apps like firmware updaters, diagnostic and troubleshooting utilities, etc. UEFI 2.4 makes possible to add your own application with a properly filled BootXXXX/KeyXXXX variable pair and then run it by pressing a key combination during POST.
Most console applications written in C can be compiled as UEFI application by using StdLib package of current EFI Development Kit and then run in UEFI shell.
Major examples of useful UEFI apps (besides bootloaders, shell and Linux kernel, of course) are Intel ME System Tools, Read Universal, Python 2.7 and many more.
Eventually, when legacy boot will not be available anymore, all currently useful DOS utilities must either be made UEFI applications or go extinct.
Despite many valuable answers here, because I wrote couple UEFI applications myself I will try to add my 2 cents. First, what is UEFI application to just give ground what we talking about:
UEFI Specificatin v2.5:
Section 2.1.1
The major differences between image types are the memory type that the firmware
will load the image into, and the action taken when the image’s entry point exits or returns. An
application image is always unloaded when control is returned from the image’s entry point.
Section 2.1.2
When the application returns from
its entry point, or when it calls the Boot Service EFI_BOOT_SERVICES.Exit(), the application
is unloaded from memory and control is returned to the UEFI component that loaded the application.
Groups of applications that make sense in UEFI:
Configuration tools - Configuration interface for Option ROMs (ie. for storage controllers), out of band management (ie. AMT configuration tools), manufacturer performance tweaking tools
Provisioning tools - used by administrators to preload specific BIOS setting, manually setting all options in BIOS setup would be inefficient
Diagnostics tools - mostly for tests that cannot be performed in OS (DRAM tests, full storage scan, storage R/W tests, etc.). In some districts specific diagnostics tools are required in UEFI BIOS, so those can be sold to government.
Security applications - HDD encryption/decryption, antivirus scanner and anti thief applications
BIOS capability enhancement - Power Over Ethernet extensions, DRAM discovery, patching and modification of system tables (SMBIOS, ACPI)
Display tools - for displaying complex animations while running, splash screen displaying
Bootloaders - this is special type of application, which can call EFI_BOOT_SERVICES.ExitBootServices() causing termination of all memory management and passing control to Operating System.
Note that very important feature of UEFI application is that it can be added to boot order and be executed each boot time. Also UEFI application do not have to be delivered with BIOS image it can be stored in connected device memory, which is common for Option ROM configuration tools.
Here it is an example of a full blown UEFI Pre-boot Application;
There are SED SSD/HDD drives. As soon as SSD/HDD loses its power it goes into locked state (hardware-based encryption) There is no way you can get access to drive's data and all partitions on the drive are no longer even visible. Only small read-only partition (ShadowMBR) is available. UEFI firmware boots an UEFI application from that only available partition (UEFI app is written on that partition during the initialization process and when the ownership of an SED is taken). It securely authenticate user and if credentials are valid it unlocks the drive. When the drive is unlocked Shadow MBR disappears and all partitions on the drive becomes available. Then the App chain-boots the installed OS.
So if you don't have credentials you cannot even boot the OS and you cannot access the data on the drive by any means.
Here's a couple of examples:
https://github.com/NikolajSchlej/CrScreenshotDxe
UEFI DXE driver to take screenshots from GOP-compatible graphic console (yes, you can make PNG screenshots of your BIOS and save them)
http://ruexe.blogspot.com/
RU.EFI is quite an advanced tool for debugging the BIOS
Well, there are the OS loaders - both the more heavyweight ones (Windows, GRUB, BSD Loader) and the "present a menu" ones (rEFInd, Gummiboot). Shim, which enables UEFI Secure Boot for Linux platforms, consists of an application as well as installing a protocol for use by other applications.
Then you have things like the Linux kernel, which when compiled with CONFIG_EFI_STUB becomes a valid UEFI application, with the awareness of booting itself.
And firmware updates can also be shipped as UEFI applications.
The UEFI shell itself is an application.
Then there are things like factory production testing utilities, development diagnosis tools, ...
Windows 7 - 8 have UEFI installer. I'm not fully aware of the details, but I'm pretty sure this new environment gives a lot more flexibility to the developers than traditional boot environment on DVD.
Some motherboards have "instant on" features that allows you to get to a desktop screen within a few seconds. This is usually a stripped down flavor of some linux that allows you to access a web browser and play music/video. ASUS have such boards.

How do the amazon web services work?

What information have you been able to gather regarding how do the amazon web services work?
What hardware do they use
What web server
What Operating System
What storage for AWS
What virtualization software for EC2/EBS
What software for they distributed firewall for EC2
Physical location of their data centers.
I like their services very much and use them a ton at work... just out of curiosity. If you know/heard/read and want to tell, if you saw something online and want to provide a link, very appreciated.
This might be interesting: http://highscalability.com/amazon-architecture
While this question can't be answered in precision, I'll try to shed some light on internal workings that Amazon announced publicly.
Below are some details for commonly used c and m instance types, as well as recently released bare metal instances. Also,
this can be starting point for further research as specifics are far behind single answer on SO.
Compute Hardware.
If you want to take a deep dive I suggest going through all previous generations and current generation instance types. Underlying hardware can be find on this pages.
Bare metal instances
Bare metal instances became GA in April 2018. One of the details - I3.metal instances are powered by 2.3 GHz Intel Xeon processors, offering 36 hyper-threaded cores (72 logical processors), 512 GiB of memory, and 15.2 TB of NVMe SSD-backed instance storage. More info
Compute optimized instances (C)
Latest c5 (late 2017) generation instances are using 3.0 GHz Intel Xeon
Platinum 8000-series. More info here
c4 (generation is using optimized for ec2 processor Intel Xeon E5-2666 v3 (code name Haswell) processor. More info here
c3 generation introduced SSD instance storage and used 2.8 GHz Intel Xeon E5-2680v2. More info here
General purpose ec2 instances (M)
m5 instances are based on Custom Intel® Xeon® Platinum 8175M series processors running at 2.5 GHz. Most likely running on Nitro hypervisor mentioned below. More info
m4's were released back in 2015 and have custom Intel Xeon E5-2676 v3 Haswell processor optimized specifically for EC2. More info
m3's were released in 2012 and for some who remember carried some price reduction with them, making use of AWS use more appealing to audience looking through budgeting lenses. They are/were using Intel Xeon E5-2670 processor and started using SSD instance memory.
What web server
I've seen couple of times error pages from their WebUI (AWS Console) rendered via Tomcat, so I would guess this is console server.
What virtualization software for EC2/EBS
AWS recently announced (with c5 instance type announcement) that they will start using KVM based hypervisor. Presentation linked here outlines hypervisor history very good (table below taken from same page)
Physical location of data centers
This is not (and due security reasons should not) be disclosed publicly. There are always rumors / some sources about it (look at related Quora thread
You can use linux instances or windows instances in Amazon aws. But first of all you shoul run an instance and then select it's operating system. For it's storage they have an instance that called it S3. it is a storage that you can save any kind of file format in it. They have many locations for their data centers. Depending on where you live, you must select the nearest data center to work with it's services so that you have to pay less for your billing payment.
You can go to console.amazon.com and find lots of documentation for each service in help menu.