Bona Fide OS Developer
View unanswered posts | View active topics It is currently Tue Mar 19, 2024 12:18 am



Post new topic Reply to topic  [ 3 posts ] 
 Pipes 
Author Message

Joined: Fri Aug 20, 2010 10:04 pm
Posts: 41
Post Pipes
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

Code:
if (0<x && x<100)


to

Code:
if (0<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. :D 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.


Fri Jan 14, 2011 7:41 am
Profile

Joined: Wed Oct 14, 2009 9:39 am
Posts: 198
Location: United States
Post 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?

_________________
Charles Timko
push %esp ;Musings of a computer addict


Sun Jan 30, 2011 12:25 pm
Profile WWW

Joined: Fri Aug 20, 2010 10:04 pm
Posts: 41
Post 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.


Sun Feb 06, 2011 9:17 pm
Profile
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by Vjacheslav Trushkin and tweaked by the BF Team.