Is it possible to implement DPDK with RDMA support? - dpdk

I have learned DPDK uses UIO to bypass kernel and I wonder whether DPDK can work with RDMA.
Any advice would be appreciated.

Yes, it is possible either using a bifurcated driver, or by using multiple virtual functions with SR-IOV.

Related

IPC with MINIX3

I'm trying to compare Inter Process Communication in Minix3 and Lubuntu, using c++. Is that possible considering different architectures and libraries needed for IPC, can someone give some tips how to achieve this? Thanks!

LibCURL in kernel

I wanted to know if there is any library which does the job of libCURL in FreeBSD kernel. I know libCURL is a user-space library but was looking for something similar in kernel. Porting is one option but i think it surely will not be a straight forward thing.
Any leads on the above query would be great!
Thanks!
No, there isn't. HTTP is not implemented in kernels by ordinary operating systems, neither clients nor servers. Even though there were once experiments with a http server in the Linux kernel..

bios information in c++

I just want to known how to get BIO information in C++. I tried following option but each one has its drawback.
From Registry: But I found some system where HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS is missing may be it is virtual machine.
Using WMI: But It is not necessary that WMI will run on all the systems, because in certain cases either the service is disabled or the WMI object is missing!!
I need one permanent solution that gives me BIO information in c++.
Trying to detect if you are in a virtual OS is done in various ways and depends on the virtualization software being used.
There are many different questions about this already on stackoverflow.
In no particular order, here are some articles, they cover a variety of the different virtualization pieces used:
Detect virtualized OS from an application?
detect if application running on virtual box
64-bit windows VMware detection
How to identify that you're running under a VM?
http://www.codeproject.com/Articles/9823/Detect-if-your-program-is-running-inside-a-Virtual
Whilst Salgar beat me to it, one of the more "safe" methods is to use the CPUID instruction, which generally works on modern VM's. I know that KVM, Microsoft and Xen uses a CPUID leaf around 0x40000000 that gives back "You are in a virtual machine". Not 100% sure if VMWare also supports the same one - on a "real" machine, these are reserved and not used.
Here's a page that discusses several options besides CPUID:
http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/detecting-x86-virtual-machines.html
and there are several links for further reading.

how can i write a driver without any library or frame work?

my question is "How to write a driver without WDK or DDK or ...?"
I googled it but i couldn't find any thing...
and i just want to do it for educational purpose
and i want to do it in windows 7
and i know c and assembly (but not pro in assembly)
Help is very much appreciated!
Writing a driver for ANY operating system requires knowledge about the OS kernel's driver structures and system calls and other behavior: this is what the DDK provides for you. Attempting to do this WITHOUT the DDK would be the same as attempting to re-implement all the kernel's driver structures and system calls from scratch.
Conceivably this could be done: practically it is not really possible, particularly for any mature operating system such as Windows 7.
If you meant driver that enables system to use some hardware - it is (virtually) not possible. The driver must interface somehow with the system, and that's what DDK is for.
But if you just want to access some device you have (eg. connected via COM, LPT or USB), you don't need any drivers except those for COM, LPT or USB (already in the system).
There's really no way to do this without using the driver kits - Microsoft is legally bound by the US Government Dept. of Justice decrees from providing OS access to anybody (even their own devs) via privileged/non-published APIs.
You need to know what the WDK or DDK do and recreate it. You'll be pushing special values into special registers, responding to special interrupts...etc.
LOT'S of work ahead for you.
Good luck!
I know nothing about Windows internals but Andrew Tridgell did a talk on reverse engineering Windows drivers using LD_Preload. He didn't use any driver kits or the like
I also know nothing about the Window's dynamic linker (I'm pretty sure Windows doesn't use .so's) but his technique of running Windows through a virtual machine (he used virtual box) under Linux should work.
You can see more details here http://lwn.net/Articles/425714/
Reverse engineering an existing driver should give you a good start towards writing your own.
If you mean driver as in a driver that works under a specific operating system such as Win7, then naturally you need a development kit such as WDK unless you want to re-invent the wheel.
It's like developing a game without using a framework, or developing Android Apps without using Android SDK. It's possible but a very very hard task which could be done easily using a development kit such as WDK.
EDIT: If you really want to go deep into the code that handles drivers, you can create a driver with DDK and then use reverse engineering to take a look at the code at low-level and see how it interacts with CPU for handling the hardware.

Does anybody have any experience with SSEPlus?

SSEPlus is an open source library from AMD for unified handling of SSE processor extensions.
I'm considering to use this library for my next small project and would like to know, if anybody have experience with it? Can I use it on Intel machines? Any performance issues in comparison to direct SSE calls? Any issues on 64bit machines? What other projects than Framewave use it?
Yes, you can use it on Intel machines too.
Performance should not differ except that it adds the checks about supported processor features which might cost a little.