Well, welcome everyone. Thank you for joining the talk. This is a Zephyr user story It's about my experience with Zephyr in a couple of the last years and Yeah, shall we begin? My journey begins at ProGlav at the end at the beginning of 2015 And I joined there as an early employee What does ProGlav do? We they develop scanner gloves for the industry. So In the industry for example in manufacturing you're scanning a lot of barcodes and for example assembling a car you Scan parts very often and what ProGlav does with the hand scanner is it saves a lot of time in industry And that's what I developed with them so we prototyped a lot and The requirements that we had were mostly Came mostly from a product. So it's sub gigahertz because in industry you cannot use 2.4 gigahertz especially Bluetooth It's a small form factor as you see because we want to fit the scanner on the back of the hand And it has to be of course a low power and with a scanner engine that takes a lot of power That's a very hard to achieve. So a lot of You need a big battery in there So what we did in the beginning of course were probably the very same mistakes that everybody does It was my first job. So we started off bare metal That's that's something that came out because we are prototyping a lot in the beginning Of course not with the same hardware. We later on develop so the product initially when we made the switch from Prototypes to the actual hardware that we were going to use Yeah, we just started with bare metal because we didn't know any better and we prototyped as we went and Yeah, requirements came in Every softened with every new customer visit, you knew you had a new requirement a new feature you needed to develop and it grew very very organically and Yep, the as I already mentioned the hardware components were very heavily dictated by the product itself I mean it had had to have a scanner engine that needs a lot of energy and a Big battery and a radio module because it needed to be wireless. So there was actually a second device To forgot to mention the scanner of course Sends the data to a receiver and the receiver is connected to a terminal Where the data gets funneled and either through keyboard input or a serial connection So yeah, due to time pressure, of course, we made the prototypes later on the product Which led to a lot of a lot of work And and what we what we've built ourselves even even built ourselves the build system for example or a serializer protocol or especially the the UX so as I mentioned Every feature that a new customer requests that we just built in there because yeah It just was step-by-step and there was no real no real border where we said, okay This is not a product at this was the prototype. That's the product and we do everything new again No, because you reuse everything you have so at some point When we already had a couple of devices in the field we decided, okay, let's let's overhaul the hardware a little bit let's overall the software and there we Continued over we decided to port everything to Zephyr and Zephyr First and foremost provided us with a streamlined and unified tool chain Which was a pain back then when we did everything bare metal, right? So what Zephyr had there you just download the SDK and you're done That's that's it. You you have the compiler you have the tool chain with everything That that you need to get the project running with with two downloads to repository and the tool chain. That's it Um It also is that what what does it help you it of course makes onboarding also easier which in startups happen happens from time To time because they don't have everyone involved in the project from the beginning from the beginning So yeah, especially documentation helps there because in a startup Sometimes you have don't have the time to document everything, right? So it helps to have with essential component using something that's already documented Of course using Zephyr it made the Hardware and the software the product by itself Adaptable for future hardware improvements So we tried of course then to have abstraction layers and move away from from bare metal to a more scalable architecture if you want to say that and of course it it made board support maintenance a lot easier because Board support is very well structured in Zephyr and and it's not like with the bare metal version sometimes you have driver files for some arbitrary sensor lying around in a source directory which is Should actually be buried in some some layer and you don't want to actually see that as an application developer, right? so What was the timeline? We shipped the first product so the first the first iteration the bare metal version within 12 months with mostly myself And I on boarded one developer in the time during the time into the product into development and Later on the Zephyr the Zephyr version we had We made it in nine months of time so that already accelerated even though we on boarded Another two developers and two interns during the time Where the strength of course was the heavy Documentation site that's ever had and still has that helps us just to tell someone okay Look into the documentation everything's there. This is the API's we use And you can go and develop something for the application Why do you actually need more developers if you ship the first product within 12 months? Why do you why do you need more developers later? Well as I said the product grew organically and of course you have devices in the field So you need to maintain that So there's bug fixing testing On-site customer visits because at the time at Progloff it was very important that also engineers went to the to the customer so You don't have 100% time to really develop something but there's lots of different tests and it's not only the features you want to develop but there's a lot around that and Yeah, essentially it's maintaining a technical debt at some point with the bare metal application That's why we needed more people and of course also porting that to Zephyr This took then overall roughly two and a half years From when I joined developing the product the prototypes and the product Up until we actually see certified the second product, which we then also should my next Journey was at Prog at Blick so in Q4 2017 I joined Blick as lead now lead developer and team lead for their hardware and what does Blick do? Blick develops a logistics tracking software so customers come to us and Ask us whether we can track their load carriers and whether we can tell them where their load carriers are For that we have a front-end That tells the customer where these load carriers are so special load carriers for everyone who is not familiar with that is so for example in manufacturing car manufacturing Like car doors or truck axels these are transported on special load carriers so these are actually specific to this one part and These can go in circles So they go from the manufacturer to their customer and come back So every time you produce something you need these load carriers. Otherwise, you cannot ship to your customer These things sometimes get lost sometimes they pile up at one of the parties so yeah, that's what we're trying to solve and actually currently already solving for some customers and We need hardware for that and that's my job so we have a receiver unit that's in point-of-interest areas at the customer and a Sensor node sensor unit that's attached to the load carrier So that's what that's the hardware we develop and the Zephyr for us is running on the sensor node So the requirements there are pretty similar to what I personally experienced that proglove So with the sensor unit we need low power heavily so these devices need to be in the field for years essentially we want to be able to support the life cycle of one load carrier which is it can be up to 10 years for example and From a radio perspective we are using 2.4 gigahertz button 802 15 for So we don't have any compliance issues with the Bluetooth there for example in automotive industry So this time Since this was a new project I started from scratch we decided on and I heavily Voted for that that we use a Zephyr from the beginning which was a very good decision from my point of view and now and It enabled us to go from Prototype to CE within six months to be fair with a with a simple application, but it still shows for me that it Very you can go very fast from a very early prototype to actually CE compliance, which we're doing actually at the moment So lessons learned from from my experience at these companies and so now within these four years I was we shipped industry great products with small teams and startups The at first At first they didn't really scale right so a bare metal doesn't scale you're reinventing the wheel all the time You don't want that So just that just doesn't work Reported to Zephyr so at the time we ported just too many legacy dependencies still like you don't want to depend on Your old bare metal organic code really try to to get rid of that and convert your customers to that because that's actually the only thing that's necessary is get your customers to To adapt in your product. Otherwise, you're gonna end development always be dependent on these old interfaces since libraries you developed for you internally and Also, we actually did not upstream enough code like we had a lot of customizations in the kernel which from From some point of view might make sense because you will build a custom project Some things might not fit your device But it's it's very important to just to just upstream that because sooner or later You want to upgrade the kernel and you just have to rebase that always and that Zephyr changes of course, but it has a very very good abstraction layer which prevents you from Rewriting the application every time you straight change a sock or change to change some hardware component, right and bare metal That's just always the case and Yeah, that generally makes it makes me makes me very sad because that's Usually not fun maintaining like these all these legacy components So later I decided, okay, let's do this with suffer And we are still not upstreaming enough in Blick of although we do So I can't I can't stress this enough like by upstreaming you get so much exposure to freelancers Which can help you in development like we had a couple of freelancers engagement now in our projects That that just helps you get there get a project going because in startups you generally resource constrained, right? You want to have someone helping you with this and upstreaming is it's just a way to go at least from from my opinion now For example We have some some flash drivers that we currently still maintain ourselves internally and which is at the moment Actually, that the biggest the biggest pool of conflict if you want to upgrade to a new colonel on the other hand we made some changes to network to the network stack because it currently we're not really able to use the suffer network stack due to some constraints and That is also not yet upstream. I'm I'm in in the progress of Engaging discussions there, but what zephyr then actually enable us to do very fast is actually adapt the network stack very easily So we just Introduced our own radio API and we were able to use that in the application that was very fast It took me like one or two weeks and then we were ready to go and without any hassle and some sort of conformity in the project that That's not very Yeah, that's not a heavy technical that Of course using off-the-shelf components where possible for example like the a serializer For example that we wrote ourselves. We don't do that anymore Just use an off-the-shelf serializer and it's very easy with suffer to integrate these external libraries into the build system Like for example protobuf if you want to use that it's very easy Zephyr uses CMake and if you find a library that also is built already of CMake It's very easy to get these Integrated as a soft mode sub module in your project and just integrated in your build system and you're done Also shell access for example for testing and debugging If you know like you don't just build the features but also testing components for example and offline testing or Compliance testing for CE for example requires you to test certain functionality on the device and Just to get some IO on the serial port for example the device just use the shell of Zephyr. It helps you you can hook your own functions in there and Implement the testing and the interface is already there. Just use that So yeah sticking together components with Zephyr is really simple due to its very coherent build system in my opinion And of course the build process if you're talking about CI and embedded There's actually not too many Options that are very out of the box for example testing without actually mocking a sensor or an interface for example But at least the build process is very easy to implement in a CI and you at least want to have that for Before you merge something from a merge request Yep, makes me happy. So generally using Zephyr for these types of projects, especially in fast paced environments That makes me smile so Yeah, as you saw most of my experience came from startups and As I also already mentioned startups care about features like it's about sales like you have these big goals Everything that's that's touchy and shiny you can sell right? So actually everything that you can tell to a business guy. Okay, I'm working on that and that and that and he can actually try it out That's very very nice and everyone sees. Oh, you're working on stuff But yeah, that's that's that's not always the case, right? So What you do is you work in a very fast environment so prototype iterations and fast to market But you have to as I mentioned implement the build system the board support Tests for production environment and and that's not very flashy. You cannot show that to a sales guy And tell them hey tell that to the customer. We can do that like no one cares Yeah, and that's this makes progress feel very slow for these people and it makes very hard for you to justify the resources you need for development and This is why you actually want to have something to work with that takes off a lot of work from from your development process especially in low resource environments, so since your backlog is always growing and You want to implement features and your resource constraints you want something that takes off This this general load around it and you can actually at least to some bigger degree as usual focus on these features and Yeah, for that what you want is a solid build system You want to have a solid architecture that or at least something that gives you already the the framework of a solid architect So you can orient yourselves along that These like interfaces serial interfaces radio interfaces networking anything you can think of And the ecosystem of course because you want to have people to talk to if you have problems, right? So if you use some some If you build your own bare metal application, you can't ask anyone, right?  You're dependent on this one developer that developed the kernel, but he left last week That sucks Yeah, so communities very important and standards are very important like most likely for example in the case of suffer There's already a library supported like MQTT co-op if you want to use that you don't have to worry about implementing that in your build system or general development you can just tell an in turn hate prototype that for me and He will be able to do that because the documentation is actually very good And there's a lot of samples already or blue blue tooth like you won't have any problems getting a blue tooth application running with a That's already supported So this brings us generally to the to the artist choice so it Influences actually road map because you have to think about all these things that you want to develop set up and maintain around your project and Yeah, you want to use something that gives you all the components that you actually want to use in that regard And there's a couple of artists of course We of course looked into them like embed OS contiki free our toss, right? Maybe if you're if you're if you're capable the license especially Yeah, and in our case we we decided for suffer because it actually applied very well to all these requirements in my opinion for Where you have to work on hardware support the tool chain all the testing that you want to do These API's interfaces that you that you should need for for any IOT application in that regard Drivers you need for your sensors or radios application libraries like I mentioned MQTT and so on And especially the license because you want to be able to make modifications to the car and actually Maybe I don't want to want to publish them even though I think upstreaming is a better option But sometimes you don't always want to want to publish them because you want to prototype first and ship a prototype to a customer And you want to be compliant with the license, right and with the effort. That's really easy So, yeah, in my opinion suffer falls very well in all these requirements. So It's it's a very nice code style. So it's very easy to actually read a driver or read Read implement anything that's implemented in Zephyr and Look around and find your way around the code. It's very easy to get used to that and very easy to to adapt it and the documentation is very nice because as far as I work with suffer this Really nothing that's not really documented. So that you find something for everything and generally the API documentation is very well because if I'm not mistaken, it's exported from from the dock searching comments and Yep, on the other hand, it helped me ship products fast, right? So six months from from prototype to see when I see that somewhere else If you have a pile of requirements and want to build something from scratch Yeah, not easy, especially don't people forget about prototyping a production and testing, right? So it's not just about these this Yeah, how difficult can it be to send a packet to and to to another device a second device just a receiver? I just want to do that. Yeah, but eventually if you especially if you work in industry you want to be able to Certify that product and you need to go through testing and end-of-line testing and certification and Yeah features is not everything you're gonna be working on I was able to maintain all these projects with relatively few people So on mudding always was very fast Even though it was painful, of course, if you're in a release window on boarding someone is not really fun Well, it was easy because you could just pinpoint them to the documentation And also with freelancers In the beginning like when I when I worked at proglove it was Zephyr 1.6 I think when we started working with Zephyr was not easy to find freelancers but Anyway, these the freelancers we found were very easily able to to work their way through it and and then actually contribute something We could really use in the product And Zephyr's community is very welcoming like from my point of view if you're chatting in an IRC just asking a question There will be definitely someone who who answers your question Which is necessary because you don't want to be a roadblock by something like that and Upstreaming is also very direct like we upstream the real-time clock driver For one of our socks and it was very easy. We found a freelancer for who was already involved in Zephyr. So it was even better and Yeah, usually people are there even from from the chip vendors like nxp or Nordic where the the board board support For example, it's already very good. So if you want to prototype something Just use use these these boards and they work out of the box usually for for most of the common applications like Bluetooth or 15 for and And if you have questions about that, you're very easily able to contact these persons because they generally maintainers of an open source project Yeah, so in my opinion and my experience what I what I had right now have right now Even even today is that they're very forthcoming and and friendly towards you if you just ask them Hey, why does this driver work? How does this work? Is there do you know someone who can help me with that? So yeah, very nice and Of course also something that comes with upstreaming is it gives you It gives you more reviews, right? So during our upstreaming from the real-time clock driver, for example We had more eyes than just our own to to review that and what what what that what we benefited from that is actually Okay, our driver was better afterwards and it integrated better with Zephyr Right. So and this gives us more experience with working with Zephyr and later on being able to better upstream and In general raising the quality of of the real-time operating system and eventually your own product, right? and your own flexibility in upgrading later or changing something and Yeah, at last I want to thank everyone who worked with me up until now and today and Everyone who gave feedback to the talk and I think it's time for questions Yes Yes, so I think this heavily depends on your so I maybe I repeat the question. So what was most painful with Zephyr? because I Mention a lot of advantages. So one disadvantage, for example, is the network stack. So currently it supports IP and Both IP you can I think you can do a lot of things But if you for example in our case want to interface directly with the radio or directly with layer 2, that's not possible It's it's so there and then on the other hand, it was very easy to to throw in our own interface, right? So if you don't work with with the net stack, that's Probably depending on what you really want to do with with it with your product On the other hand for example regarding low power management low power management is something that's very use case specific I talked to one or two developers some time ago earlier this year and There's no not really low power management implemented you have the hooks for it So if you use the kernel the kernel goes to low power if it enters the idle thread and still you need to take care of yourself to actually shut down all the devices and all the sensors and Then again, there's there's tools for that that make it makes it very easy. For example the Drivers generally support a low-power hook that you can can also call in the in the success spend call and I think in 1.13 there is now actually a template implementation of parts of that correct and That that takes that takes work and then of course depending on what type of low power management You actually need for your applications and for example in our case the devices need to be essentially in low power all the time So then there's the question. How do you use? Zephyr at all. I mean do you need threading and how do you make sure the radio wakes up in a correct state and things like that? So if you're looking to these things that then Probably need some adaptions in the drivers and then it also makes sense to to upstream that in some cases Other than that I think a lot of things have improved really so back in 1.6. I think that was around the time when Zephyr actually got went public two years ago There were a lot of things that Were from a driver's point of view not really implemented to a hundred percent Still I think the peripheral support is very good But sometimes you just need to implement implement another port something like that at the moment I think the support for that is really good like in our case. We didn't really need to implement anything else In that regard but back then and especially if you use some sock, that's not yet supported or fully supported then The advantage in that case would be you need to implement that. Yes, very easy There was a time so so two years ago It was still all Kconfig and they moved to DTS now device tree Which needs some Getting getting used to well if you use to DTS, it's very easy and there's that there's there might be some Some things you need to port to DTS yourself for your board But in general there's like a lot of support from the community if you have questions about that That's really straightforward like adding a custom board for example If you use a sock that's already supported in a dev board for example, you just copy that deaf board and make your adaptions It's very easy Any more questions? Yes, please very Very beginning of Sefer What Weren't you afraid of seeing just so many changes happening at the same time that you were developing your product and we wouldn't that Didn't that scare you No Okay So maybe to elaborate a bit on that because yeah, and just know it's funny But the thing is if you don't plan to upgrade then yeah, if you start developing the product based on a kernel like we do right now It's a question of are you happy with Stability of the system if yes, there's at first no need to upgrade And later on actually upgrading so for at the time when I at proglove We updated from 1.6 to 1.9. It was actually very easy. The only thing we had to adapt was I think the spy API that was that was rewritten but other than that And it was also a new a new products like or so we had the time I mean what means afraid maybe you can can specify a little bit. What what do you mean by afraid? At the time I'm not sure if the micro kernel nano kernel transition had already taken place the cake on fake I already taking place and and so many things you're doing your development Yeah, you're going through a through that heavy amount of modifications It's is that going to be a problem for your for your application or not? Whereas it's interesting to see that you still decided to go with that even at that early stage of the project I understand. Yeah, so generally we always use the stable versions like the versions get get tagged and Because because Zephyrus developed in a way that you have I think there's three release candidates always and they get also patched During that time and if that's tagged, that's more or less stable because there's also a Stabilization phase for the release candidate before they finish the release so in general I would say I Personally wouldn't be afraid of using a stable version if you use a version. That's just master Yeah, I wouldn't be so sure about that then I would be afraid because There might be some components that still depend on not different API and something like that So so these might break things later on in application or your own kernel adaptions, but generally Going with the stable version. I wouldn't be wouldn't be too afraid Any more questions? Very well, and thank you so much


Many of you already know me. I was FSFE's president for six years from 2009 to 2015 About a year ago. I handed over this job to Matthias Kirchner and Jonas Oberg who have been performing splendidly ever since and I happily moved on to Siemens where I now work at the corporate open-source governance team and What that means in practice is something I'll do discover during this talk. So what I'm here to talk about is why free software is so important for Siemens and Share some things that Siemens is doing in free software But the main my actual reason for being here is just to deliver the message that Siemens is active in free software and Siemens wants really really wants to be a good citizen in the free software community And we just should talk more. Okay Good. Oh No, no, no, no, no, no Before I get going. I'd just like to congratulate FSFE on their 15th anniversary this year So thanks to all of you in this room. We'll help make that possible All right now a very quick primer on the company. I'm not going to bore you with stock market presentations Siemens is in pretty much every respect the opposite of a startup Siemens was founded here in 18 here in Berlin in 1847 at the time. This was the kingdom of Prussia And it though the company will be celebrating 170 years of existence next year It does a lot a lot of things in infrastructure in factory Maybe in building factories in an enabling industry. Most of our customers are utilities and other industrial companies and Well, the public sector where it comes to infrastructure The company's activities which I'm not going to go into in detail here because you can read that elsewhere fall under three main headings electrification building power plants financing power plants building electricity grids building wind farms and so forth Automation designing and building factories and the machines that go in them and digitalization which means Doing interesting stuff with all the data that arises from from these other two activities and Interpreting that that and offering it as a service to our customers not to bring up all the data in the world Like some other companies are doing but the aim is to when you're running a factory You have all these machines with the sensor with sensors that increasingly gather huge amounts of data and Siemens could be adding value for our customers by letting them know when their machines are about to break down need replacement Or need service and so forth that kind of thing of Course digitalization which is all the rage at the company these days Requires software and this is where free software comes into the picture We've been using this slide internally a lot of colleague made it and to explain to our managers Why Siemens needs free software and why they should just let their developers get on with the job in this regard up to 2000 you'd have the typical Siemens product would fit in a box of varying sizes, maybe building size, but still a box Where would you'd have a profile proprietary Siemens application running on top of a proprietary operating system and Overall, there wasn't a lot of software in these things over the past 15 years we moved to a scenario where The proprietary seen proprietary Siemens application would still be there But it would run on top of a commodity operating system. That could be something like Windows in whatever version Could be Linux mostly Linux kernel or busy box on top because a lot of this is embedded stuff or something else But now it's gotten really but it would already you see the pyramid growing. There's more software here, right? and now we're finally at a stage where The device no longer is or the product no longer is a box Siemens makes half its revenue from services the physical product that we sell very often is just the centerpiece the anchor point for A service offering that goes around it So you might sell a device that controls an assembly line and then that device will gather data send it to a cloud service for analysis The the results of that analysis will get sent to the factory manager to the factory floor manager So they know what happening on the assembly line and all this will be held together with middleware and Siemens specific frameworks and on top. There's a proprietary Siemens application Now the reason the customer buys this product is here at the top Do they pay for a nicer cloud service? No, they don't do they pay for a link to mobile devices? No, it would like pay be it would be like paying extra for a steering wheel in a car If someone asked you to do that when you buy a car pay extra for the steering wheel you'd go like No you'd be right so What this means for Siemens is if we want to be competitive and if we want to be profitable We have to invest our development effort here not here not there not there not there All this because all this does nothing to distinguish us from the competition We can't run and or we're not interested in running a nicer cloud service than Amazon or Microsoft because we'll when we need those will just buy them like the service about the company And Yeah, so and again, we need lots of software and that software has to come from somewhere on the other hand the number of developers Over all this time is more or less constant. We're now at seven roughly 17,500 software developers in Siemens a company that has 340,000 employees in most countries in the world somewhere and It's not a huge number and we can't hire another 50,000 or something to write whatever software They need it's just not it's just not possible. You couldn't pay for it So free software is the only option really it's what everybody because our competition knows this just as well as we do And if we were to somehow insist on licensing all our stuff from proprietary vendors, we would just be burning money. It's So this means that free software is already very widely used in many Siemens products Instead of going through the entire portfolio I just like to point out a couple of things one is a rail automation and vehicle control systems. Yes They will be available. Yes So rail automation and vehicle control systems Meaning this software that makes sure that your high-speed train when it goes 300 kilometers an hour stays on the rail stops at the right time At FSFE I often got the question well, well free software is all well and good, but what about safety critical systems? Can you Use it there and the answer is yes. So the the the vehicle control system and some of the itre trains Uses Linux and the Linux kernel and many other things the when you develop safety critical systems like that or when you try to get them to market you need to run through a testing process and The one of the requirements is that software be developed in a certain way through a certain process and the Linux kernel very much Does not fit that process This turns out not to be a problem because the testing regime the testing authorities actually quite flexible if you find some ways to Convince them that your system is safe then Then they will accept none and that's what happened here and the engineers tell me it was totally worth the effort because All the alternatives they had were more expensive slower and not as good The other point I wanted to highlight is medical imaging Healthcare and especially MRI scanners magnetic resonance imaging scanners Because these are medical devices they go through an extensive certification process in both Europe and North America and lots of other countries, too and Again, they've been using Linux since 2003 or so as a kernel There so it's perfectly possible to do that In environments where you need extensive certification Of course whenever you produce a device that needs extensive certification and you want to market it There's a certain amount of paperwork that comes with it and there's no way around that, but it doesn't get worse when you use free software and the device sticking with the MRI scanner as as One of the examples of how free software is making Siemens faster and more efficient The product people started using Linux in the scanner Because they needed an operating system that could do real time so that could deliver that They need to build a system that could respond to system events within a specified number of milli or microseconds not every software can do that of course and They needed Software an operating system that was always up to date with the latest real-time technology and only the Linux kernel could do that And so they started using it out of necessity But then they started very soon started to love it because they said well, it's extremely flexible We need something but they can accommodate it overnight meaning they meaning that some Siemens engineer would sit down and write the code and they would then Get contributed to the kernel word how it lives happily ever after Some other examples and these are mostly business focused, right? I'm not talking about technical stuff here mostly This is I'm using most of these slides internally as well when I'm talking to our management on why they should be using more free software contributing order free software and My real purpose here is to give all of you these arguments so you can go to your own managers or audiences or whatever and Convince them so One product to control panel for building automation. Let's you control heating access lighting and so forth The software stack is mostly free software 90% Only 10% mostly the user interface is a Siemens proprietary now The development effort on the other hand 90% of the development effort that went into this product went into the proprietary part 10% went into the free software part Which means that this was a very efficient allocation of Siemens development resources, which is a good point to make for managers The the tent of the 10% that were invested in the adapting the free software parts These adaptations actually mostly got pushed back to the project mainline because the people Doing this development work. There are of course developers. They hate repeating work that when it's not necessary So they just push it upstream and hope to always find the code in later versions of of the project Example they really like is a certain CNC automation device CNC Basically means milling cutting You take a big block of steel put it in a machine and at the end Do you have a get a cylinder block for a car motor or for car engine or something? It just cuts away and removes material in different ways controlled by a computer It's one of the Siemens bread and butter products and has so far broad revenue of more than 20 billion euros over its lifetime 1520 years Contains a lot of third-party components. Most of these are free software One of them is one of those is the bootloader That is core boot the device used to run with the UEFI boot loader And that would take eight seconds to start up the device Which isn't terribly long but can feel very long when you're trying to bring up your assembly line back to production after a power outage So now it takes two seconds instead because the developers decided to use core boot And they also contribute their patches on and their their additions to the main core boot project under the GPL Simply because they hate doing repeat work and this is the best way to do it and again Nobody buys this thing because of the bootloader. Most customers don't know what a bootloader is There's No business case against using free software here, but there is a very good one for using it and Finally here the a control system for power generation One of the when you look at pictures of the inside of power plants You see the control rooms with people sitting at large desks with lots of buttons one of those Half the software stack consists of free software and that was that let the development team cut the development time roughly in half Why is this interesting because? Most managers most product people will know that there are several when you're developing a product There are several things you can do in order to make your product more profitable. You can cut the development costs That'll help a little You can invest a little in marketing that'll help a little that'll always all these things bring a few percentage points But with at Siemens we found that when you reduce time to market substantially and you're first on the market that Makes you like a third more probably or can make you like a third more profitable or something around those Something around that So reducing time to market is super important for people who release products and When free software lets them do that they become really really happy So the free software community by now is probably our largest supplier of software and we cannot afford to alienate that supplier Plus we don't want to and We also cannot afford to not be able to ship product because Someone is complaining that we're infringing their license, right? So we've there are a number of things we do at Siemens in order to make sure that everyone in this very large company sticks To the obligations from free software licenses There's strict rules and procedures internally that say you have to cause stick to the licenses just in case you weren't sure about copyright law Before now you are and there are people in each business department that deals with software and who are formerly in charge of making this happen And when we source software from supplier or source anything from suppliers that contains software Boards devices that go into our devices and so forth And we have standard clauses in the contract that say you have to give us the full compliance information and the source code and everything That we need to give to our customers when we sell this product One could think about going a step further and actually insisting that the source code be handed to us before we pay for the delivery Which would sometimes make sense, but we're anyways the supply chain for people in the industry is a perpetual headache, but this helps When you make rules you also have to give people the means to put those put your demands into practice so Siemens Invest in tooling were a major contributor to the Phosology license scanner anyone feel familiar with that. Ah But What it basically does is you it's it's a linear it started by HP now. It's at the Linux foundation It's a tool you that runs on a server you upload a source code package like Vim or emacs or Debian Debian something which is then turns into a bunch of packages And it'll run a number of scans on the source code and tell you which file is under which license and who wrote What file and who holds the copyright and all this and you get a long long long list that makes extremely boring reading and you put that into The the compliance information that you ship with your product And of course since you now know what licenses you have in the code You also know the obligations the compliance obligations that you have lots of bookkeeping And there is the software 360 manner software management application. I'll get to that in a minute and finally All this is no good if people don't know how to actually use all these measures and why they're important So Siemens has internally trained all people in software related roles more than 40,000 up to date In the basics of free software and license compliance Now here's a small sample of the seat of the software free software projects that Siemens Engages with on the right side You'll see lots of stuff that is mostly focused on the embedded sector besides the obvious things like Linux kernel How we use that internally? C++ and so forth but Most of the devices that Siemens makes themselves are embedded devices So which explains why everything is so focused on the embedded sector and then there are a few projects That we've initiated them. I'm going to talk about those up for a little now One is jail hats Which is a partitioning hypervisor based on Linux? What this means in practice is you have a small computer a small embedded computer And you want to run two operating systems on it one that does nice things like the user interface and I don't know what and the other that does the actual hard work like Controlling that high-speed train and this needs to be a real-time Operating system operating in a very in a very safety-oriented mode And they just run side-by-side on the on a tight on a platform with very tight resources, so jailhouse makes that possible Then here's EMB square the embedded multi-core building blocks C++ and C library for developing parallel computing applications on embedded system again real-time capable because We need this stuff to work on our actual products both are Available on github jailhouse is gpl v2 because it's more or less in the kernel or in the kernel area And EMB square is to cause bsd. The Siemens doesn't really have Preferences when it comes to licenses. It's just we'll use whatever If we develop something ourselves, we'll just use whatever fits the usage scenario best And if we if we take something from that already exists, we of course stick to that license now Regarding the compliance tools that we're building ourselves that we're using in addition to stuff like the the proprietary black-back things and know what everybody else uses in the industry But this is we have the phasology license scanner that lets us generate the information We need for compliance and then SW 360 is something that Siemens started simply because when it comes to software live in a corporation is very very complicated Software comes into the company in many ways through many routes people Someone buys products someone buys proprietary licenses Someone downloads stuff from the internet someone I Know lots of weird lots of weird ways Then it gets handled The software gets handled and processed and redeveloped and whatnot inside the company in many many different ways And then it gets shipped in many different ways It gets put on CDs and given to people it gets put on the Software update download website of Siemens and downloaded from there. It goes through all sorts of distribution channels And it can be a little complicated to keep track of all that So and there's no software on the market that currently does that So we're building it as a under the eclipse public license on github Software 360 is just designed to be a catalog a database that Stores information from the license scanner. It's optimized for phasology currently Source code like quote quality checkers vulnerability management very important first You need to know what is what software isn't your product because when someone reports of vulnerability You can't go running off like a headless chicken and checking 50,000 products literally on whether they contain a certain software component And if so in what version You just need to know in advance and So you can fix the vulnerability in the right places. So that is what we will hope for software 360 will deliver Other companies have started working on this Bosch has been contributing quite a bit But if anybody else feels like their company should also be joining this you're absolutely welcome Do I'm either send us an email and say hello or just send a patch or? and we'll be really happy and Finally the civil infrastructure Another interesting angle This was a collaborative or is a collaborative project that was announced in April this year. It's at the hosted at the Linux Foundation initiated by Choshiba Hitachi and Siemens all three very big very traditional industrial conglomerates and They have a shared problem infrastructure like rail bridges traffic systems Airport systems increasingly consists of software and relies on software Infrastructure also has extremely long lifetimes 10 years is nothing design lifetimes of 30 years are pretty normal in that industry and 50 60 years are absolutely not unheard of How are you planning to apply security patches to the current version of the Linux kernel 40 years from now? Bit of a challenge there and this project sets out to answer that so they're building a long-term maintenance infrastructure for critical free software components starting with the Linux kernel and starting with the three was with three company and we hope very much that others will join because Well, it's a problem that many people have many companies have and It's fairly easy to solve with free software at least easier than with all the other alternatives It's actually free software is the only possible solution here because how many software companies? Do you know that I even 30 years old? Let alone 40 or 50 and how many of those will be around for another 30 40 50 years And still support their product Good point. So These are some of the examples that I wanted to run you through of Stuff that I thought was cool that Siemens is doing finally because I used to do advocacy at FSFE and I still do advocacy at Siemens Here are some arguments that we found work really well with our management and maybe they work well with managers elsewhere, too What I one point I already explained we need much more software than we can write remember the pyramids it's just No company on this planet at least not at that size can conceivably or In a can conceivably conceivably write all the software they need and expect to survive as a business You need free software or you're not going to be there in a few years from now Then the super long-term maintenance argument that we may that that we build the civil infrastructure platform to address With free software you can actually perform super long-term maintenance over decades and With you can do this with no other type of software One point that I wasn't aware of before coming to Siemens And that surprised me a little and a for us that for that reason. I really like it at FSFE. I heard a lot of complaints. Oh Free software licenses complicated complicated difficult difficult so many licenses hundreds all these variations. It's chaos And then I talked to people internally Who these people in charge at the business units or in charge of compliance with the third-party software licenses both free and proprietary? They go like yeah, you know free software licenses piece of cake We you read them once you know what you analyze them You write down the obligations and then every time you encounter that license you take the list of obligations Paste it into your report and hand that to the people who asked you for the report and done Five minutes that much and Proprietary licensing contracts on the other hand These these things get negotiated by lawyers on both over the course of months Between deciding that you're gonna that you want to use a piece of software and you're actually getting it months if not years will pass Some of these contracts contain clauses that let the supplier Update their terms of use for the software without telling you so Siemens whenever we decide to use the software What does that even what what is using the software meaning the context anyway different question though? But still interesting when we decide to use the software we need to go every day and check what the current terms of use are This is bullshit. I'm sorry But it is Instead you have a gpl a gpl v3 component. Hey, you might not be using that for a core product, but At least you know what you have to do And that is fine then the product people can decide whether they want to use that component or not and you're done so and With free software also you decide to use a piece of software in the morning and you have it by the afternoon and or even earlier Then the other two are business arguments when we contribute a little we often get a lot back The Linux kernel currently has sorry if I'm overworking that example, but it's just so convenient The Linux kernel currently has about 24 21.4 million lines of code of which Siemens as of July 10 or so had contributed 5812 I Haven't calculated the actual return on investment, but there's you can see a certain disconnect in the relationship We're hoping to substantially raise that number at some point But the fact for now is that all these products that I mentioned earlier that are running free software and other that are running links And many other free software components Wouldn't really be possible in that form without all this and we invested We had someone write 6,000 lines of code cost a little money, but how else could we have gotten all this software so cheaply to run on our platforms? And then there's the argument about pushing patches to mainline pushing patches upstream pushing working with the projects because It just you know just makes you quicker and make sure your requirements are accommodated When you when you start using the software or when when you need to use the software and not later And it just it just makes good business sense cuts time to market increases profit, which is what of course at Siemens We all want Right. Oh one point before I finish if you ever Look at software that Siemens distribute it not just own but also especially software that we distributed from someone else And you find you stumble across something where you think it might be a compliance problem And you conduct some proper analysis and still come to the conclusion that there might be a problem here Please write to this address it ends up with me and a few colleagues and we'll we'll promise to look into it. So Otherwise we'll just we're just always happy to hear from you and we're there. We want to work together. Thank you Do we have a couple of minutes for questions? Yeah Just about two minutes. Oh, I'll run over with the mic brevity is a virtue Thank you very much. Thank you very much for the interesting presentation You talked about strategic use which meant if I understand it correctly Saving costs by using competitively not differentiating components When you think about strategic Contribution or strategic leadership of open-source projects what business reasons for Siemens would you see to do that? Mm-hmm. Thanks. Good question. It's actually something we've been Working on and I hope to sort of you know how at what speed these corporations move glacial as it's a good description here, but We are very interested in very interested in getting people into In getting Siemens developers that are working on projects that are critical for us and very important for us into getting those into positions where they can really contribute to the project like a maintainer position or Even maybe even a project lead position. We don't want to take control of the project. Not that we just Want to make sure that the project is developed in the best way it can Yes So if a developer working for Siemens wants to contribute upstream, do we need she he or she need approval or can yes? Can that be done? No, no, how does how's the process basically? Do you happen to work for Siemens? Because I do get that question internally a lot Siemens is a very diverse company things work differently in different places just to explain this very briefly But the reference process that we're setting up is basically the same that I used to get approval for these slides For example, but that anyone someone would use to get approval for a journal article It goes you submit it for approval goes through to a few people like the patent people to make sure you're not distributing secret Siemens industrial knowledge and The public the publications people who make sure that you're not Distributing total nonsense and the stock market people who make sure that you're not tanking the Siemens stock At some point it gets approved and at some point it gets approved and say okay You get you can contribute now or you can do publish now we do the same for source code And Initially we expect developers to have get a sign off on or to get permission from the team lead to contribute to a Particular project a particular bit of code when they have a bit of a track record with that project they get permit they might get permission to Let's say we're at version 0.3 with the project They might get permission to contribute up to version 0.5 and then we reassess we go through the process again and so forth But it's not super lightweight. That's but it actually works and it's reasonably quick So I think we have to break that. Thank you very much. Thank you


What's going on, if and ifam? I know you guys miss my face. It's been a minute, hasn't it? Like, Isaiah has been pranking me back to back. But guess what? I have the perfect opportunity right now. So let me just give y'all the rundown. Isaiah's upstairs.  And that's just not okay. And I can admit it. I can admit it. They were really good, but this one's gonna be better. So right now I'm preparing dinner for us and I'm going to be telling him to prepare for his last meal. And he is going to flip out. I'm just gonna give him the food, make sure it's all good and yummy and I'm gonna start acting weird. And then hopefully he picks up and I'm just gonna give it to him like, hey babe, this is gonna be your last meal and we are going to watch him for a week out together. So if you guys are ready for today's video, don't forget to smash that like button, comment down below, team Janice, and let's get this prank started. All right, y'all, so food's all done. Whoa, I hope it don't fall. I got him some chicken cutlets, some carrots and mashed potatoes. And then this drink, it looks crazy. It's literally just like grape flavoring, but it looks crazy. And I don't think he's had this before. So I think this is gonna make the prank even better. So I'm about to call Bob the Builder down and we're gonna get this prank started. Five star meal. Right? Credit to it. Can I get some Tabasco, please? Sure. I'm not gonna lie, I haven't had carrots in a minute. Don't worry, they're really, really, really, really good. What's your drink? Ten out of ten, dude. This is grape? Something like that. You like it? Yeah. What? No, not this one, babe, not this one. Which one? That's Sriracha. What other Tabasco? It says Tabasco. The big jar, that's Tabasco Sriracha. The big one. You look good in that little soup. Thank you. You see it or you need me to get it? This one? Yeah. Did you take your first bite already? No, I'm waiting for my hot sauce. Are you rushing? Because I want to begin the overview. Okay, hold on. Listen to Tabasco, I want a chicken. Why are you laughing? It's not. This is already spicy. So? So there's going to be a lot on there. Wait, what do you mean it's already spicy? What did you put in it? The breadcrumbs are spicy. What did you put in it? Spicy stuff. What spicy stuff? It's just spicy stuff for me. Okay, you need to chill. You need to eat.  Uh... I'm going for the mashed potatoes. Yeah, yeah, do the potatoes. Well, that was a big bite. Mmm. You're good. Yeah, I know. I need some salt. Oh, you need salt? Mm-hmm. Oh, okay. I'll give you some salt. Okay. Whatever that means. What, what? Bro, you're always asking for salt in your slave rocks apart. Oh my God, you know I lay salty stuff. It's not that. I just said it was good. I just like it a little saltier. Yeah. It's good to...  What does that even mean? Nothing. It's better to under season than to over season. Am I putting the pepper for you? Do you want me to put the pepper? Sure babe, go ahead and put the pepper for me. No, you can do it. Okay, I'll wear that too. I think you should just hurry up and eat your food. All right, like, y'all, why? Why? Geez, man, you're going to crucify me just for wanting salty pepper on my mashed potatoes. Gosh, just hurry up.  They're actually really good. They're better. All right, eat the carrots now. Eat the carrots. I'm still chewing. You're taking a food review with like doing all of that. James, bro, what do you see in this with the carrots? I think something special is good. Eat more. Like, you need to chew fast. Hey, y'all, pause. To me, pause. Put more in your mouth. Babe, all right, so put the chicken then because everything's getting cold. What? You are rushing my meal and I don't appreciate it. All right. Like, this is a really good meal. Aesthetically pleasing in everything and I'd like to enjoy it. I'm sure you do enjoy it. Did you? Yes, I did. Okay, would you? You too, God. Yeah, I'm thirsty. What does it taste like? Like grape. The panko just, damn it. It's because you took too long to eat it. No, no, no, no, no, no, no, no, no, no, no, no, no, no. That's good. That's good. Yeah, I know. Spicy too, I like that. That was good, good job, babe. How spicy is it? Not too spicy, but I like it. I like it, it's perfect.  Why are you laughing?   You're cool, baby, you're not going nowhere. To your presence next to me? I didn't. Why not? Just because I can't have none of that. What can't you have? Potatoes, carrots, and chicken is healthy. I put some special stuff in the potatoes that I can't have. Sour cream. Okay, you can have sour cream all of a sudden? No, I can't have dairy. You have cream every night? No, I don't. I eat every night.  I'm not cranky. You're cranky, you're getting irritated quickly.  All right, all right, all right. What? Don't touch me. Six feet. Don't touch me. Six feet, back up.   What time is it? 4.05, it's been two minutes. Well, you need to hurry up. For what? Are we going somewhere? Finish the whole chicken, and then I'll be happy. I'm getting to that point. If you would let me, it would happen faster.  Just checking if there was enough in there. There's enough, it tastes fine. You're weird, you're wrong. Something's wrong with you. There's nothing wrong with you. You're wrong about the wrong side of the bone. All right, OK. Can you just rate the meal? Because you're almost. All right, you want to rate? I haven't finished yet, but nine. Well, I give you 10. If there weren't any vegetables, because I don't like vegetables like that, but I got to eat my greens. That's not green, that's orange. So. I just want to eat in peace. Nice thing you say, peace. You're about to feel a lot of peace in a second. What does that mean? What are you trying to hint at? I want to grab it to place. What does that mean? Nice and warm, just how I like it. That doesn't even sound right. If you're going to stand, if you want to watch me eat, at least do it when I'm over there, and not on top of my plate.  If this is you trying to say you're not going to cook for me anymore just because I'm not asked enough, then so be it, I'll cook myself. Yeah, sure, let's go with that. You're over here trying to rush me to eat. Like, let me enjoy my food. Sorry, it should be one more minute now. One more minute? I'm just going to sit here and enjoy it. Did you put something in the food? I put a lot of things in the food. I don't know what you're specifically talking about. What are you talking about? Son, take the food. Take the food, take the food. I don't even want it. What, what's wrong with it? You're actually starting to scare me. Now you're scaring me, like. Get off the, it's going to be two more minutes. This tastes good. Are you sure? Are you feeling OK, Dore? What did you put in the food? You try to take me out. I guarantee you I'll take you out with me. I swear I will take you out with you. This is going to be your last meal ever, so enjoy it. Yo, if you're trying to give me a one-way ticket, you're coming with me. No, I'm not going nowhere, baby. I'm not eating that food or anything. It don't matter. It don't matter. Back up. It's already too late.  I'm going upstairs.  Where are you? No, I don't know. I think she did something. Put something in the, man, she's coming up here. Are you trying to record my because it's not even funny? Yeah, she's here and she's just laughing again. Ma, I'll call you back. He called your mom. What'd you put in the food? What'd you put in the food? Did you put laxative? No. Then what'd you put? I didn't put nothing in it. Just a whole lot of TLC. The prank, babe. What's the prank? For the last meal, you got creeped out. So it's a W for me. So you didn't put anything in the food? No, I would never do that. The food is 100% safe.  I'm finishing it. This banger, I think this was this top set. So we'll catch you in the next banger. Comment down below, team Janice, you already know. And yeah, I love you guys. Bye.


I'm originally from Columbia, South America. I was born in the jungles of the Andes, and I've always had felt a spirit of rejection in me. And I found out later in time, it was because my mother and my father had not been married and neither one of them wanted me. By the time I was nine months old, I was given to one of my aunts because my mother did not wanna take care of me.  By the time I was about seven to eight years old in the jungles, I had such an emptiness, a loneliness that's undescribable. And that is when you're rejected, I found out through the California University that it's no different than having a broken arm or a broken leg. That's how painful it is. So living with that, I felt shame, I felt condemnation, I felt guilty not having a father and a mother when other kids did. But later, by the time I was eight, an American company came through the Andes and this American man came and told me that he wanted to adopt me and become my father. And I was so thrilled to have that chance. He explained that in America, I could have three meals and go to school and he would be my father and his fiance would be my mother. I was ecstatic. But ended up after they did receive me, I did come to America, but he ended up going to work in Vietnam and he left me with his fiance. Found out I felt that abandonment and loneliness again and not really understanding the language, English, I was a very confused child, very lost. So ended up later, I couldn't understand why I felt this. But that relationship between Kipi and Virginia, they broke up.  Looking for the love, but not knowing where to get it from.  She ended up taking me to adopt me. She had married someone else and they adopted me. But not having a father that would love me, he was an orphan child. So he didn't know how to love me. But at the same time, during this time as a teenager, I was confused and also lost, not knowing where if I was ever going to be loved by anyone. Finally one day, by the time I was about 11, I went to church for the very first time and I asked Jesus to come into my life. And I didn't know how to really read, but I still went to church and I felt something change in my heart and I continued to move on through life. By the time I was about 25, I had gotten married and I ended up having a baby girl with Down syndrome with kidney failure and bladder failure. I was devastated from that and I thought their Scott must not love me because I can't even have a baby that is healthy. And I had no trust in man and I had no trust in God. That's how I felt at that time. But later in life, I just continued to press in. I started going to church but I didn't understand how to read the Bible. I didn't understand how to have a relationship but I still continued. By the time my daughter was 11 years old, she needed a kidney transplant. And I went to God and I said, God, if you're the real God that people say you are, you need to please allow my daughter to stay alive because it was her father that was giving her the kidney transplant. And having this pain in my heart, knowing that it was her father that was giving the kidney and also she, I fear that they both might die. So I went and I just cried out to God and I said, I surrender, I want to be yours. Take me, use me, whatever way. And from that day on, I started going to church and that in church, I didn't understand the church but somebody had invited me to a small care group. And when I went into that small care group, they started, the preacher said, you guys need to know about the father's love. There's nothing like the father's love. And I looked at him and I said, what is a father's love if you've never had that love? And he said, we're gonna pray for you. So these people gathered around and they lay hands on me and I felt this warmth come over me and they prayed that I would understand what the father's love would be and what the love of Jesus is. And I, something changed inside of me from that moment on and I started going to church and I felt this anointing, this heat over me when I went to worship and I started to cry for the very first time where all this pain had been shoved down for years. I just started to cry and cry. And after that, I started going to church every Sunday, every Wednesday and I started to do Bible studies. I went and got involved and plugged in with more of the church and then after a while I still felt this loneliness and this emptiness and I couldn't understand why because I felt I started getting these nightmares and these nightmares were waking me and I would get up and start screaming. I was in a sweat and everything and it was about babies. And I had had a couple abortions prior and I realized that I needed to get this healed and I had such a guilt and condemnation and shame for going to church and knowing that I had had abortions but still I hadn't had any healing. I couldn't speak to anybody about it because it was a secret. But then I said, God, if you want me to get healed from this then provide somebody that come along to help me through this because I'm holding all this baggage and I'm just pushing it down but it's driving me. I just can't take it anymore. So after that, a lady, he provided somebody to come into my life. She told me about the Tri-Cities Pregnancy Center and went and got this program and I learned the truth. The truth was that Jesus Christ forgave me on that very day that I repented of what I had done. His precious blood covered me completely and from that time on I was realizing the truth. The truth was setting me free. I found out that I was a daughter of the Heavenly Father, that I was a princess and an heiress of a king. When I found out who I was, it just, boy, I was on fire and I said, I've got to share this with other women because we live in such bondage. I was in prison for over 25 years carrying that and when I found out the truth, I was set free. And one of the things that I wanted to share was that was one thing that I still needed to heal from my inner being, from the spirit of rejection, from the spirit of abandonment. And also when you walk and you live in that life, it's very hard to be able to live a happy life. But God said, you just keep pressing it and I did and I continue to go to Christian studies and I continue to press in the Word. And by the time I found out that I had a loving Father, that I came from heaven for such a time as this to be restored and healed, but used in a mighty way to reach out to other hurting women, I said, God, take me, use me in every way you want to. And it's wonderful he has been bringing women into my life to share the good news with them and the new set them free too. But at the same time, he is the healer of the soul. And right now he is healing souls in the whole world faster than ever. If you had any kind of trauma of neglect, abuse, child abuse, sexual abuse, molestation, you name it, it's a trauma to the soul. But right now, it's so wonderful that we are in this season where God is healing the soul. He is setting us free so we can have more joy, we can have more peace, and he is the healer, he is the redeemer. He wants us all to be whole and complete. And I thank you. This is my testimony. My name is Maria Opet.