|Bona Fide OS Development
|Page 1 of 1|
|Author:||losethos [ Fri Jan 14, 2011 7:41 am ]|
People really like pipes. They take pleasure in doing cool things.
LoseThos is not a general purpose operating system. Pipes are needed when you do lots of administrative things. I never use pipes. I think some people like them so much, they go out of their way to use them.
Part of what defines LoseThos is C/C++ command line syntax. I was able to change the syntax for
if (0<x && x<100)
I could change it because comparison ops have boolean outputs and, practically, nobody wants to do a comparison on a boolean.
I might be able to do something like that for pipes, but LoseThos has graphics that can be sent to the command line.
When I made-up my file system scared of FAT patents, I kept it simple so I wouldn't get sued. I made contiguous storage for files, only. Basically, you always read and write whole files, unless you want to access by blocks. You still have to declare file size ahead of time and can't grow them. On the plus side, file compression is possible with whole files and the code is a lot simpler.
I have 12 Gig of RAM, all to myself. It's not a 1970's mainframe with 1 Meg RAM and 50 users. Heck, the distribution is only 5 Meg!
There is a very nice routine for getting a tree data structure with files in it. It grabs them all at once--really simple. You can see how this is the LoseThos philosophy.
LoseThos has a document format you can read and write with library routines and manipulate the data structure for in memory, directly. To do like fprintf() you LtfPrintF() to a document in memory and LtfWrite() it when finished. Unfortunately, to log to a file, you must loadit all in, write to the memory stucture and save it all out. You can access raw blocks in or out of a file, if you really want to do that. It's not general purpose.
The command line is handled by the editor and what's on the command line is a document that can be saved. You can have an infinite sized buffer for the command line document.
Pipes are for administrators. A C/C++ programmer can easily call the FilesFind() and get a tree structure or flattened tree of files in recursive directories. Each node in the tree has fill disk directory entries and a string of the full path name for that node. It's super easy to do anything you need on files.
Forget about scripting languages -- do everything in C/C++. Scripting languages are good for administrators.
LoseThos has a prefetch directive built into the C/C++ preprocessor which pipelines data going into the compiler. It loads and uncompresses in parallel with compilation. As it turns-out, it doesn't help. That's okay -- all 120,000 lines of code can be compiled in about 5 seconds.
Guess how makefiles work? It's just a file with a bunch of #includes for all the source files. That's the LoseThos philosophy. No linker. Unfortunately, the compiler cannot take advantage of parallelism besides the prefetching.
NASA spent lots of money on a space pen. The Russians used a pencil.
God hates the haughty and favors the humble.
I got 40 downloads yesterday. I've had probably 4000+ in the last 2 years.
My OS is not a Unix wannabe.
My OS is genuinely positively innovative in many way... just a change of mind set. You can spend 2 seconds bringing-up a task manager to kill a hung process in your operating system. In mine, you reboot. Same thing.
|Author:||ctimko [ Sun Jan 30, 2011 12:25 pm ]|
|Post subject:||Re: Pipes|
Umm without a linker, the program won't compile...Linker meshes your current code with libraries...You are saying that you don't use any dynamic libraries in your operating system? Is there any modularity to the LoseTheos code? Can you disable a particular module for booting? How about networking? Is that embedded in the kernel? What security issues do you focus on?
|Author:||losethos [ Sun Feb 06, 2011 9:17 pm ]|
|Post subject:||Re: Pipes|
No security. Just don't use 3rd party software. No networking. Commodore 64s had no security -- it was never a problem.
No linker -- I wrote my compiler and it outputs executable files or puts code right into memory ready for execution. The loader patches the code and updates the symbol table to resolve imports and exports.
|Page 1 of 1||All times are UTC - 6 hours [ DST ]|
|Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group