Find Jobs
Hire Freelancers

FUSE Win32 Port (using IFS/DDK Win32)

$500-2000 USD

Käynnissä
Julkaistu yli 17 vuotta sitten

$500-2000 USD

Maksettu toimituksen yhteydessä
We need implementation of latest FUSE (filesystem in userspace, at least 2.6) compatible API with additiona of asynchronous calls possibility within Windows XP environment. This includes implementation of kernelspace <---> userspace linkage writing userspace library and kernel driver part. And this also requires usage of Installable File System (IFS) APIs to implement kernel-space interaction with NT kernel. You could find Linux version at: [[login to view URL]][1] We expect minimalistict kernel driver that will assign only one drive letter and have only one userspace program that will handle that drive letter (unlike UNIX fuse that could have much more mountpoints). All meaningful in win32 world filesystem I/O callbacks should be implemented (fuse_ops): getdir,readdir,mkdir,unlink,rmdir,rename,truncate, utime,open,read,write,statfs,flush,release,fsync,opendir, releasedir,fsyncdir,init,destroy,create,ftruncate The rest such as handling of UNIX-specific file attributes should not be implemented, however as an option we encourage to implement some addition of windows-specific ACLs. The driver/library shall handle requests asynchronously unlike FUSE. Please note that outstanding stability of driver part is a key. We need clean and proven solution, not "quick-and-dirty" driver implementation. And that way you should not need to implement any such addition to basic file I/O until you sure that this functionality will not break stability. Optionally consider backward compatibility with Windows 2000 and earlier, forward compatibility with Vista. In case if IFS interfaces was not significantly changed and this would not produce any difficulties to finish release on time. ## Deliverables 1) Complete and fully-functional working programs in executable form as well as complete source code of all work done. Source code must be in compilable condition, so we could use for example our Microsoft Windows Driver Development Kit and Microsoft Visual Studio 2005 and build driver. This is to be clarified, but hopefully all necessary headers to compile IFS shall be present within source code. For example open-source ext2fs for Windows driver could be compiled using DDK. Less dependencies - better! Unlike FUSE we also need interface for asynchronous operations (i.e. messaging/request-answer queue model). This will be major difference with FUSE interface. In case if data is not available immediately we need a way to 'postpone' request from operating system and produce answer only when data will be available. That could happen within milliseconds or within 5 to 60 seconds. Data presented as a drive letter in Windows will be collected from different sources, some of sources have high latency. Call with a delay of 2 seconds to one file shall not be bottleneck for calls made to other files which are served faster, if made from different userspace processes accessing filesystem. Consider that it should work well if different ftp folders are presented within one virtual filesystem as a drive letter. And when different application access files on different ftps they should work "in parallel" but not stucked by slowest one. 2) Deliverables must be in ready-to-run condition, as follows compiled kernel driver for Windows XP family of systems, compiled userspace DLL library, compiled demo application (simple disk with Hello World file - example how to use APIs) and stress-test application that will demonstrate abilities and stability of DLL and driver. Application should have be single executable. DLL should contain calls that would install driver within the system automatically. 3) Delivered stress-test application shall do following tests: * Coverage for all file operations. * Ability to simulate randomly different file I/O calls. * Ability to stress-test using a lot of I/O calls launched from multiple parallel threads, actual validation of solution will be performed on 2-processor computer. * Ability to fail certain low amount of userspace-driven filesystem part calls with error or with timeout and check for that handling in stress-testing part. * Minimalistic GUI that would allow us to set number of threads, calls to make (i.e. percentage of errors, calls, etc.), and launch full-time stress-test. * Goal of these different tests is to PROOVE correctness of your implementation. * During tests number of threads should be as high as needed to be able near full load on kernelspace <--> userspace linkage, i.e. prooving that solution works stable 24 hours with only 1000 kilobytes per second when CPU load is 1% transfer is a weak proof. * Implementation without such correctness proof that would not confirm working 24 hours without a failure while running stress-test at full kernelspace <---> userspace bandwidth will be considered unstable and will be returned to Developer to continue testing. * Stress-test of massively parallel handling of calls (i.e. read call delayed by 100 milliseconds and launched 50000 times per second, having 5000 read calls performed in parallel). That should not make any difficulties. 4) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased, except for GPL/LGPL license issued to public. The software shall not be based on any GPL / LGPL or any other licensed code. Producing interfaces compatible with FUSE is not considered as derivative of FUSE. It is not derivative, it is separate project, COMPATIBLE WITH FUSE. 5) Buyer respects opensource software movement. Buyer encourages to publish produced program with all source codes under GPL/LGPL license on [login to view URL] under name fuse-win32 and maintain indepentently this FUSE-compatible API for the benefits of opensource community. Buyer, as copyrights holder, allows Developer to put his own name and to grant to 3rd parties usage under GPL or LGPL terms. Buyer however uses software without limitations of GPL, and only Buyer CAN use the software without limitations. The GPL perfectly allows such exceptions as it does not limits copyright holders rights. This should encourage Developer to implement stable solution and gain his online reputation. ## Platform Windows XP
Projektin tunnus (ID): 3955969

Tietoa projektista

3 ehdotukset
Etäprojekti
Aktiivinen 17 vuotta sitten

Haluatko ansaita rahaa?

Freelancerin tarjouskilpailun edut

Aseta budjettisi ja aikataulu
Saa maksu työstäsi
Kuvaile ehdotustasi
Rekisteröinti ja töihin tarjoaminen on ilmaista
Myönnetty käyttäjälle:
Käyttäjän avatar
See private message.
$875 USD 146 päivässä
5,0 (2 arvostelua)
4,5
4,5
3 freelancerit tarjoavat keskimäärin $1 283 USD tätä projektia
Käyttäjän avatar
See private message.
$1 275 USD 146 päivässä
4,9 (75 arvostelua)
5,3
5,3
Käyttäjän avatar
See private message.
$1 700 USD 146 päivässä
0,0 (0 arvostelua)
4,3
4,3

Tietoja asiakkaasta

Maan CYPRUS lippu
Cyprus
5,0
1
Liittynyt jouluk. 9, 2006

Asiakkaan vahvistus

Kiitos! Olemme lähettäneet sinulle sähköpostitse linkin, jolla voit lunastaa ilmaisen krediittisi.
Jotain meni pieleen lähetettäessä sähköpostiasi. Yritä uudelleen.
Rekisteröitynyttä käyttäjää Ilmoitettua työtä yhteensä
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Ladataan esikatselua
Lupa myönnetty Geolocation.
Kirjautumisistuntosi on vanhentunut ja sinut on kirjattu ulos. Kirjaudu uudelleen sisään.