Announcement

Collapse
No announcement yet.

Bareflank Is A New Linux Hypervisor Written In C++11/14

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

  • #11
    Well. To provide the first on-topic comment here: It's very interesting for people who actually have time for this and IMHO each single application should be designed as framework.

    Comment


    • #12
      Originally posted by rianquinn View Post
      lol... so I won't completely reveal the reason for the name other than its not meant to be slang or gross. "bare" stands for "the bare minimum" and flank refers to "side" but not for a human.
      Oh, I had guessed that "bare" was for "bare metal" (close to the real underlying hardware" and "flank" was for "flank speed", which is when a ship moves at its fastest possible speed to escape immediate danger like a collision or torpedoes.

      Comment


      • #13
        Not sure why this is a particularly needed framework. It doesn't seem to bring anything new in terms of features, and by it's self it's not useful. Also if you aren't using C++ you now have to port to use it. I don't see why a project that has already built it's self as a hypervisor based solution would bother to spend time integrating something that does not gain any advantages. Or even if you were going to start a new project this seems like a bad place to start as a framework it's making far to many restrictions to your development up front. All this seems to do is give a project the pain of having to have yet another small and fairly unchanging component controlled by an outside developer and using a language the is showing how irrelevent it's become (auto typing?, you wish you were python or something?). Also it appears that not only does this framework require you use C++ you have to also integrate, and use a fair number of other constructs that are not common to even C++, such as unwind for exception throwing (make C++ more like Java) and also the code appears to suffer from "I must define my own version of everything" syndrome.

        Comment


        • #14
          Originally posted by debianxfce View Post

          ARM knows better than you the value of C++:
          https://developer.mbed.org/accounts/...%2Fcompiler%2F
          1. Pretty sure his comment was meant as a joke.
          2. Most of the mbed libraries are written in plain C, with some C++ "sugarcoating" on top.

          Comment


          • #15
            I wish they'd name it 'Flanksteak'.

            Comment


            • #16
              Originally posted by debianxfce View Post

              So, if you are pro software developer, you use C++ where you can. Class browsers helps a lot of software development. See object oriented programming.
              'cept to equate C++ and OOP with professional programming is utter BS.
              Plenty of programmers still prefer plain C and even the "proest" of pros don't always do OOP in C++ (the lower level you code, the more of a hindrance it actually becomes).

              Heck. To even equate C++ to OOP is an utter failure on your part. C++'s object model is a freaking mess.

              Comment


              • #17
                Just ignoring the C++ part, what is this suppose to solve? Am I missing the point here? There are plenty of Hypervisor jumping points for new projects that are a lot smaller and simpler to use than this. They also don't require that you adopt a particularly messy implementation right from the get go of your project. If this is suppose to be a library that helps users develop visualization sand boxing for their application I am not really seeing why you would start here and not just use one of the already well proven solutions. It's like a framework that no body asked for.

                Comment


                • #18
                  Originally posted by Piko View Post
                  Just ignoring the C++ part, what is this suppose to solve? Am I missing the point here? There are plenty of Hypervisor jumping points for new projects that are a lot smaller and simpler to use than this. They also don't require that you adopt a particularly messy implementation right from the get go of your project. If this is suppose to be a library that helps users develop visualization sand boxing for their application I am not really seeing why you would start here and not just use one of the already well proven solutions. It's like a framework that no body asked for.
                  Which solutions? QEMU, Xen, lguest et al. are primarily standalone command-line tools. To integrate them in a larger project you either have to work with what the very limited command-line interface offers, or hack an API on top of them (which isn't trivial).

                  As an analogous example, I've personally found it very awkward to work with existing movie players when I had to integrate them into an application. A command-line interface isn't a substitute for a good API.

                  Comment


                  • #19
                    Originally posted by Piko View Post
                    Just ignoring the C++ part, what is this suppose to solve? Am I missing the point here? There are plenty of Hypervisor jumping points for new projects that are a lot smaller and simpler to use than this. They also don't require that you adopt a particularly messy implementation right from the get go of your project. If this is suppose to be a library that helps users develop visualization sand boxing for their application I am not really seeing why you would start here and not just use one of the already well proven solutions. It's like a framework that no body asked for.
                    There currently are no hypervisor jumping points that support Linux, or multiple operating systems.

                    Here is a good example of how it might be used. Suppose you want to compare / contrast how Windows and Linux implement P-State logic on bare-metal hardware. With Bareflank, you can sub-class the exit handler, and override the MSR handler, and record access to MSR 0x199 and friends. Since you have access to C++, storing this information in a map is trivial, and on destruction, you can print the results. Since Bareflank already supports Linux and Windows, reverse-engineering Windows and Linux P-State logic would be pretty simple. There are thousands of examples just like this, and Bareflank is just getting started. In the future, we plan to add OS X and UEFI support, as well as a second repo that provides more complete APIs around the VMCS and Exit Handler for doing things like LibVMI, EPT and Event Injection logic, etc...

                    Oh... and what about the implementation is "messy"? Clearly you have not seen the source code for existing hypervisors (excluding maybe SimpleVisor).

                    Comment


                    • #20
                      Originally posted by unixfan2001 View Post

                      'cept to equate C++ and OOP with professional programming is utter BS.
                      Plenty of programmers still prefer plain C and even the "proest" of pros don't always do OOP in C++ (the lower level you code, the more of a hindrance it actually becomes).

                      Heck. To even equate C++ to OOP is an utter failure on your part. C++'s object model is a freaking mess.
                      Well I get paid doing C++ (for more than a decade already). Must love my job otherwise I'd do something else.

                      First of all C++ is not all about OOP, and it would not force anyone to use OOP. Of cause you'd at some point use classes from STL, but just using class does not translating to OOP directly anyway (as classes are just a kind of data type). I probably do only procedural codes (with a little bit of templates) in a small app. Larger apps without classes can be quite a mess if you're not good at code designing.

                      C++ is more like C with tonnes of thing put on top of it. It has classes, It has templates, It has lambda, it won't be long until coroutine is available, etc . Because of this it might not be the cleanest language of the world. It's OO model might not be the best. It's bloat. But after all, it kinda work, and it works pretty well

                      To me I have no problems working with C++. And if I want to write something, it's one of my choices (I also do C#, Eclipse Xtend, Java, JavaScript, some ChaiScript, and I'm just starting learning go. Must admit that I'm a slow learner.). If I happens to join open source project, I'd choose one that using the language I'm already comfortable with, or the one I want to learn. C++ is used in their project for reason, and I think they have already think though before choosing it.

                      Comment

                      Working...
                      X