473,770 Members | 1,954 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Creating a virtual file system

I'm working on a project to implement a simple cross-platform file
sharing protocol (using Python) that is similar to HTTP, and I have to
write a GUI for Windows and Linux. But let's start with the harder one:
Windows.

My question is: How do I implement a virtual partition that acts like a
real file-system and is compleatly transparent to other programs?
Should I make a virtual file allocation table for a FAT32 partition or
simulate an NTFS? Or even further: How do I create a junction (or a
hard link) to it in "My network places" or in "Entire Network"?

If there are tools that could help me but written in C or C++, please
let me know, I'll compile them to Python modules.

Thanks forward for help.

Aug 5 '05 #1
7 5022
On 5 Aug 2005 16:47:08 -0700, Atila Olah <jo*****@gmail. com> wrote:
I'm working on a project to implement a simple cross-platform file
sharing protocol (using Python) that is similar to HTTP, and I have to
Like WebDAV, then?
My question is: How do I implement a virtual partition that acts like a
real file-system and is compleatly transparent to other programs?
Should I make a virtual file allocation table for a FAT32 partition or
simulate an NTFS? Or even further: How do I create a junction (or a
hard link) to it in "My network places" or in "Entire Network"?


You're asking in the wrong group completely. What you are trying to do is to
extend the Windows kernel. This is almost certainly a difficult and
dangerous task, and it will require C or C++ programming against Windows
APIs that may or may not be available to mere mortals.

On the other hand, if you can get such a thing to work, it would be very fun
and useful.

It's easier on Linux, but probably not /easy/. Google for "user space file
system" and "webdav file system".

Also note that this has nothing to do with FAT32 or NTFS. Those describe two
different physical layouts of bits on a disk, and there's a driver for each
that expose them to the kernel as a set of read/write/list directory calls.
Your file system driver will have to expose the same calls, but implement
them in a completely different way that has nothing to do with bits on a
disk.

/Jorgen

--
// Jorgen Grahn <jgrahn@ Ph'nglui mglw'nafh Cthulhu
\X/ algonet.se> R'lyeh wgah'nagl fhtagn!
Aug 7 '05 #2
Atila Olah wrote:
I'm working on a project to implement a simple cross-platform file
sharing protocol (using Python) that is similar to HTTP, and I have to
write a GUI for Windows and Linux. But let's start with the harder one:
Windows.

My question is: How do I implement a virtual partition that acts like a
real file-system and is compleatly transparent to other programs?
Should I make a virtual file allocation table for a FAT32 partition or
simulate an NTFS? Or even further: How do I create a junction (or a
hard link) to it in "My network places" or in "Entire Network"?

If there are tools that could help me but written in C or C++, please
let me know, I'll compile them to Python modules.

Thanks forward for help.


http://www.samba.org/samba/what_is_samba.html
Aug 7 '05 #3

Atila Olah wrote:
My question is: How do I implement a virtual partition that acts like a
real file-system and is compleatly transparent to other programs?
Should I make a virtual file allocation table for a FAT32 partition or
simulate an NTFS? Or even further: How do I create a junction (or a
hard link) to it in "My network places" or in "Entire Network"?
Hmmm... I seem to rememeber ... Ah, here...

On:

http://ask.slashdot.org/article.pl?sid=04/06/01/1810201

'Petard' and 'Foolhard' note that the Microsoft Windows IFS
(Installable File System) Developer's Kit costs like $900. Doing
it well would be a large and expensive project. Read their posts
for more discouragement.

Thanks forward for help.


Not exactly helpful was I? Sorry.
--
--Bryan
Aug 10 '05 #4
Bryan Olson wrote:

Atila Olah wrote:
> My question is: How do I implement a virtual partition that acts like a
> real file-system and is compleatly transparent to other programs?
> Should I make a virtual file allocation table for a FAT32 partition or
> simulate an NTFS? Or even further: How do I create a junction (or a
> hard link) to it in "My network places" or in "Entire Network"?


Hmmm... I seem to rememeber ... Ah, here...

On:

http://ask.slashdot.org/article.pl?sid=04/06/01/1810201

'Petard' and 'Foolhard' note that the Microsoft Windows IFS
(Installable File System) Developer's Kit costs like $900. Doing
it well would be a large and expensive project. Read their posts
for more discouragement.

> Thanks forward for help.


Not exactly helpful was I? Sorry.


You don't have to pay Microsoft to develop a Windows-compatible
filesystem. See http://ubiqx.org/cifs/.
Aug 10 '05 #5
Jeff Schwab wrote:
You don't have to pay Microsoft to develop a Windows-compatible
filesystem. See http://ubiqx.org/cifs/.


That's a different usage of "filesystem " than what is at issue
here.
--
--Bryan
Aug 10 '05 #6
Bryan Olson wrote:
Jeff Schwab wrote:
> You don't have to pay Microsoft to develop a Windows-compatible
> filesystem. See http://ubiqx.org/cifs/.
That's a different usage of "filesystem " than what is at issue
here.


I agree that you & I are probably discussing different things, but I
think this is exactly what the OP was seeking. He said:
I'm working on a project to implement a simple cross-platform file
sharing protocol (using Python) that is similar to HTTP, and I
have to write a GUI for Windows and Linux.
Sure sounds like CIFS to me.
My question is: How do I implement a virtual partition that acts
like a real file-system and is compleatly transparent to other
programs? Should I make a virtual file allocation table for a
FAT32 partition or simulate an NTFS? Or even further: How do I
create a junction (or a hard link) to it in "My network places" or
in "Entire Network"?
CIFS is the canonical way to make resources show up in Network
Neighborhood. The OP even said:
If there are tools that could help me but written in C or C++,
please let me know, I'll compile them to Python modules.


Free, open source CIFS implementations already exist in C and Java.

I'm guessing that to you (as to many of us) a filesystem is usually a
way of mapping blocks on a device to parts of files, but I don't think
that's what the OP actually wanted.
Aug 10 '05 #7
Jeff Schwab wrote:
I agree that you & I are probably discussing different things, but I
think this is exactly what the OP was seeking. He said:
> I'm working on a project to implement a simple cross-platform file
> sharing protocol (using Python) that is similar to HTTP, and I
> have to write a GUI for Windows and Linux.


Sure sounds like CIFS to me.
> My question is: How do I implement a virtual partition that acts
> like a real file-system and is compleatly transparent to other
> programs? Should I make a virtual file allocation table for a
> FAT32 partition or simulate an NTFS? Or even further: How do I
> create a junction (or a hard link) to it in "My network places" or
> in "Entire Network"?


CIFS is the canonical way to make resources show up in Network
Neighborhood. [...]


Hmmm, you have a point. Looks like he has elements of both local
file systems and networking protocols. To make his special
filesystem transparent to MS-Windows programs is an installable-
filesystem problem, which is what I was looking at.
--
--Bryan
Aug 10 '05 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
1359
by: dfcoates | last post by:
Here's the situation: I have several 3rd party applications that write trace files and log files. We are now being mandated to "scrub" the trace files and log files in realtime. "scrub" = remove sensitive data from trace/log. We only have the ability to specify the log file location in each of these various 3rd party applications. Is it possible to create some sort of "virtual file" that the 3rd party
1
2091
by: §iD` | last post by:
Hi, I would like to create a file system virtual directory which should be accessible by Explorer and by application from the standard path (ex. c:\virtual_directory). I would like to be able to mount and un-mount that directory and populate in some manner. How can I do this? Thanks is advance, sid.
15
2836
by: David Thielen | last post by:
Hi; My ASP.NET app (C# calling J# under .net 2.0) creates a png file in a subdirectory to display as part of the created page. However, the bitmap will not display due to a security violation. Everything is the default settings I believe. IIS is running under Local System. In IIS the DefaultAppPool is running under Network Service. Annonymous access uses the account IUSR_JASMINE (machine name is Jasmine).
5
6948
by: mbosco51 | last post by:
Hi. I have a virtual path setup in order to give my web server access to a file on my app server. I am using the file system object to check for the existance of the file and if it exists, it has to validate the file date. The problem is I can't seem to find the file. I can successfully check for the existance of a file on the web server, but once I enter the virtual path it can't find anything. All three of these calls return...
8
1755
by: wally | last post by:
There is a brilliant application that allows you to wrap your EXE and all associated DLLs, OCXs, etc. into a single executable and run the executable on Windows OSs with no install and nor registration of the files. It will even include only the portions of the .Net framework that are required for your application. The app is called Thinstall. the problem is the cost. $4,000 license fee PER APPLICATION PLUS A PER PC LICENSE FEE for...
4
8945
by: CodeLeon | last post by:
I read in the topic:(http://groups.google.com/group/microsoft.public.dotnet.languages.csharp/browse_thread/thread/2a0a07f79b970482/45171cb6c66a79cc?lnk=st&q=C%23+create+virtual+drive&rnum=1#45171cb6c66a79cc) how to map a folder to a virtual drive, but how do I map a virtual drive to my application in C#, which would handle file operations. Can I do this in C#, and if so, how? Thanks.
2
5556
by: Sebouh | last post by:
Hi all. I'm not sure if this is the right place to ask, but here it goes. I'm trying to create a file system using the File System in User Space (FUSE) kernel module. From what i have understood, i need to implement certain functions, like the read, write, and delete that should be referenced by the fuse_main function. Now whenever my program uses the standard C functions, it references the functions i created to manipulate the file in my file...
2
2414
by: John_Doe | last post by:
Can anyone clarify what the difference between these two choices is when developing website? I have IIS installed too, so I can pick this too if there is a reason. From the point of view of sharing the code with other developers and keeping source in VSS File System seems to be more flexible choice. However, my current understanding is that when you keep it in the File System and start it from Visual Studio it runs on Web Server built...
0
2121
by: Mona123 | last post by:
Hi, I want to create a Compound file system in which I can create files and folders and handle all the file notifications like file create, open,read,write,move,copy etc. in windows mobile 5.0 and later. I understand that it can be done by using StgCreateDocFile API and IStorage to do this.But I don't find any information on how to implement this. I appreciate if you can provide steps or samples to implement CFS in windows mobile? Thanks
0
10254
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
10036
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9904
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8929
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7451
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5354
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5481
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
3607
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2849
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.