Announcement

Collapse
No announcement yet.

The State Of LinuxBoot For Replacing Proprietary UEFI Firmware With The Linux Kernel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • The State Of LinuxBoot For Replacing Proprietary UEFI Firmware With The Linux Kernel

    Phoronix: The State Of LinuxBoot For Replacing Proprietary UEFI Firmware With The Linux Kernel

    LinuxBoot is the year-old project for replacing proprietary UEFI implementations with the Linux kernel in essence. Adoption continues to grow for LinuxBoot and is now being used inside several large corporations...

    http://www.phoronix.com/scan.php?pag...SFC-2018-State

  • #2
    But then there is also Intel's TianoCore which is an open source EFI implementation.

    So how does this compare to TianoCore?

    Comment


    • #3
      It is elegant to load linux kernel directly. Get special hardware that is capable of storing an everyday kernel and you are golden.

      Comment


      • #4
        Their reasons for using Go are pretty silly

        Why Golang for firmware?

        - Use Go static analysis tools
        - go vet, golint, gofmt, ineffassign, ...
        - Race detector, memory sanitizer, etc...
        - go test -race
        - Continuous Integration (CI) testing
        - Open documentation (https://godoc.org/)
        - Language is type-safe when compared to shell scripts
        - Well designed and secure standard library
        - Easy cross-compilation: GOOS= and GOARCH=
        - Fast compilation (on the order of seconds)
        1. What popular language doesn't have good static analysis tools?
        2. Race detector? Rust is guaranteed to not be racy by design! Better than most other languages at least.
        3. What language doesn't have CI?
        4. What language doesn't have open documentation?
        5. Language is type-safe compared with shell scripts? Are you seriously trying to compete with shell scripts? That's like an athlete competing with a musician who is the strongest!
        6. What language doesn't have a well-designed and secure standard library except for C? (strcpy instead of strncpy should not even be allowed)
        7. Alright, this point is true.
        8. This is also true.

        2.5/8 points which are actually valid.

        Why don't they just post their good points instead of lots of reasons where most are standard by now? Would put their point across better IMO.
        Last edited by johanb; 10-04-2018, 09:59 AM.

        Comment


        • #5
          Originally posted by johanb View Post
          Their reasons for using Go are pretty silly
          I think we both agree that the real reason is about promoting their language.

          Comment


          • #6
            Originally posted by uid313 View Post
            But then there is also Intel's TianoCore which is an open source EFI implementation.

            So how does this compare to TianoCore?
            How many times do we have to repeat the same thing to you?

            TianoCore is the UEFI source code that is taken by commercial UEFI firmware vendors.

            Comment


            • #7
              Originally posted by varikonniemi View Post
              It is elegant to load linux kernel directly. Get special hardware that is capable of storing an everyday kernel and you are golden.
              What's wrong with using a cut-down minimal kernel on flash and then kexec the everyday kernel?

              Comment


              • #8
                Originally posted by johanb View Post
                Their reasons for using Go are pretty silly
                I think it's a way to convince you to use the pre-made u-root instead of making your own.

                That's just u-root , one of the possible "userspaces" of the LinuxBoot firmware.

                The main point of the LinuxBoot project is getting a core EFI initialization stage to boot a linux kernel from flash instead than a full UEFI firmware.

                What "userspace" you decide to put in the initramfs to have it act as a bootloader is secondary. They say they don't enforce any policy on that.

                Of course these are features offered by u-root vs features you would have to develop yourself in another "userspace" to have something that would compete with it.

                Although there is also Heads "userspace" which is an embedded linux system, but how does it compare on these points?

                Comment


                • #9
                  Originally posted by johanb View Post
                  Their reasons for using Go are pretty silly



                  1. What popular language doesn't have good static analysis tools?
                  2. Race detector? Rust is guaranteed to not be racy by design! Better than most other languages at least.
                  3. What language doesn't have CI?
                  4. What language doesn't have open documentation?
                  5. Language is type-safe compared with shell scripts? Are you seriously trying to compete with shell scripts? That's like an athlete competing with a musician who is the strongest!
                  6. What language doesn't have a well-designed and secure standard library except for C? (strcpy instead of strncpy should not even be allowed)
                  7. Alright, this point is true.
                  8. This is also true.

                  2.5/8 points which are actually valid.

                  Why don't they just post their good points instead of lots of reasons where most are standard by now? Would put their point across better IMO.
                  They should have just gone with "we really like golang and enjoy writing software in it, and it works quite nicely for this use-case". That would be both perfectly reasonable/acceptable, and honest.

                  Comment


                  • #10
                    It is stupid to store the Linux kernel inside your SPI Flash chip, since you'd need to reflash it each time there is some minor Linux kernel update

                    Comment

                    Working...
                    X