Monday, October 16, 2006

Jari OS introduction

How I wrote later, I don't like anything from the existing operating system.
There are no innovations on theirs.
So, you can tells to everybody that all is sucks, but do nothing - it's a not a good way to make a better something that sucks for your opinion.
Otherwise, I decide to realize a better look to the operating systems wide in the my research project called "Jari".
Jari is an OS that will contains a new way of kernels, servers set, system libs, core utils and C compiler, maybe if the project will have a success it will be contain a Lisp compiler and most of the libs and users program will be written on it, but it's a long future plans.
Now I'm working with my friend on the kernel and servers.
Kernel has a three rings - the kernel space, the servers space and the user space levels, it's a not a microkernel in the basic opinion, it's a advanced microkernel model.
In the Jari we're have a abstraction atom - is a file, server is a file, cpu is a file etc , but it's not looks like a standart UNIX paradigm, in the Jari we're have an advanced VFS, in example not on all unixes we're have a VFS.
So, just imaginate - on the Jari we're have an exec() on the VFS.
Another thing - we're don't have a big and hard API for intercommunicating with kernel or server, this is a protocol tasks (it's called JP(Jari Protocol)). In example - for running process A on the friend node B you just need to make a frame of the protocol and all. Yes, here we're have a not so light caching and buffering mechanism, but it's a not so hard - in the Jari we're use a development model that mean - "each of the system makes a small task, but many system does a big task" ie each of the kernel part makes a simple task, but all the kernel do any tasks by each of other system.
And in addition, I'm developing now a new filesystem for supporting all the Jari paradigms, but generally we're separate a task ie fs doesn't makes a things on the IPC object or anything other.

To be continued ...

11 comments:

Anonymous said...

Why not C++?

Supervisor said...

>Why not C++?

C++ is a very bad language, too much features that depends on the language paradigms. It's a not good way.

Anonymous said...

> C++ is a very bad language

words about "bad languages" are fake information.
some language can be comfortable or uncomfortable for given developer _and_ given task.

for example c++ is good for gui development(because gui development is easier with oop paradigm), but it's bad for os development.

if you hate c++, it doesn't mean, that it's a bad language. it just means, that for development, for example, gui, c is ideologically better for you. and nothing more.

Supervisor said...

> if you hate c++, it doesn't mean, that it's a bad language

okay, let's take a sense of the C++.
- overloaded by features
- a long time of the development (it's a not so good to heat the preprocessor)
- mixed solution for working with memory (I mean a pointers and links)
- too overloaded standart (I mean STL that included to the specification of the language)
- non transparency methods for the objects operations (comparing with objective C)
and other other things.

GUI development with the C++ takes some mixing advantages, you able to mix a software logic with the GUI.
GUI it's a separate theme for discuss, but generally - GUI it's a deal of the designers not a developers.

Anonymous said...

> - overloaded by features
yep, but you can use or not some feature. language indeed doesn't say you something like: "you must to use all my features".
if u like some feature, use it. if you don't, just don't use it and nothing more.

> - a long time of the development (it's a not so good to heat the preprocessor)
wow! may be you want to say, that development using c++ takes more time, on c?
at first, c++ gives better code reusing mechanism, because oop paradigm indeed pointed to code reusing.
at second, you have number of cpp libraries, that you be able to use for some task.
code reusing - basic and one of main oop concepts.

> - mixed solution for working with memory (I mean a pointers and links)
pointers just a feature for back compatibility + u can overload "->" operation for making smart pointer.
In cpp near always developer should use cpp-like links, because:
1) it's more powerful abstraction over pointer
2) they basic mechanic is near simple to pointers
3) they don't permit you to make NULL cpp-like reference. And it's very good solution, because you don't need to make object checking in every method - if it NULL or not.

> - too overloaded standart (I mean STL that included to the specification of the language)
hmm, STL is simple and has common interface for all container data structures, so you can very easy to learn it.
but, you be able use STL or not, it's you chose.

> - non transparency methods for the objects operations
read "the mythical man-month" by Brooks. He said in this book, that at one hand hiding methods/functions concept and model is bad, because you have to take more time to understand such project as whole structure, but, at other hand, if u need to make some feature, module or just rewrite/replace chunk of code in such program, you don't need to imagine whole picture about how it works and you don't need to know about bare bones of this program. So, you save you time.

>
GUI development with the C++ takes some mixing advantages, you able to mix a software logic with the GUI.

at _ANY_ language, that doesn't limit your freedom, you can do anything. With such approach, you for be able to do anything.
For example, on c/lisp/perl/... you can do the same. you be able to mix logic with gui. And if someone do it, he is bad developer.

Supervisor said...

yep, but you can use or not some feature. language indeed doesn't say you something like: "you must to use all my features".
if u like some feature, use it. if you don't, just don't use it and nothing more.


the first, don't try to kick the left out of the theme, the second, your arguments is allowed only for situation when you are maintainer or co-founder of the project, otherwise you will be use the features and methods of the language that used on the project already in both case if you like it or not.

wow! may be you want to say, that development using c++ takes more time, on c?
at first, c++ gives better code reusing mechanism, because oop paradigm indeed pointed to code reusing.
at second, you have number of cpp libraries, that you be able to use for some task.
code reusing - basic and one of main oop concepts.


don't be a trolling flamer. what are you mean under code reusing?
You want to tell me that C doesn't have a powerful libs? or some what?
Another point in the plusplus sense of the code reusing is a bad side of this, in example some lib foo uses a links, but you want to use pointers in your bar project, in this case you need to use both methods a links and pointers, if this a good thing, I'm a trollish developer that didn't make something, otherwise this an ugly thing.
If we're choosing an one abstraction let's use only this one and don't make an ill sense on the good health head.

but, you be able use STL or not, it's you chose.

okay, but why STL is a part of the language specification if it's just an optional thing? Why?

at _ANY_ language, that doesn't limit your freedom, you can do anything. With such approach, you for be able to do anything.

okay, but not _ANY_ language make a sense and good avialability to do a mixing GUI and logic like pluses or php in example.
Anyway, to draw the end user GUI is a not a developers job, it's a job of a designer and something like libglade i.e. this arguments following to the null.

Anonymous said...

> otherwise you will be use the features and methods of the language that used on the project already in both case if you like it or not.

i don't see in your argumentation any differences with programming approach in other languages.

> You want to tell me that C doesn't have a powerful libs? or some what?
nope, i just want to say you, that cpp has near as many libraries as, for example, c, but at point of code reusing, cpp is better that c, so you save your time. development process on cpp not slower that on c.

(... uff, i should to wait my workplace, so to be continued ...)

Supervisor said...

i don't see in your argumentation any differences with programming approach in other languages.

The deal is there what on the C language there are no overloaded features, there is pointer and pointer *only*, there are structs and *only* structs - but it's a not true to the pluses. if u're cannot understood it think deeper.

nope, i just want to say you, that cpp has near as many libraries as, for example, c, but at point of code reusing, cpp is better that c, so you save your time. development process on cpp not slower that on c.

What are you mean under cpp code reusing? classes ? this big ugly treaks and weaks ?
It's a not a code reusing it's a pain for developer's heads, because u need to analyze code of each cube (class I mean) to take a sure what is used on it, this cube depends on the another cube etc ... Or you mean that developer must be like a children - builds a simple construction within given cubes ? So on - how about debugging in this case.
I can agree with u in the one thing, ofcouse building a simple set of the foreigh cubes it's a simply than strong development and analyze of the exiting code, but it's a false for debugging that takes a many time.
It's a myth that pluses is simply and faster for development.

Anonymous said...

> The deal is there what on the C language there are no overloaded features, there is pointer and pointer *only*, there are structs and *only* structs - but it's a not true to the pluses. if u're cannot understood it think deeper.

what is "feature overloading" indeed?
lisp, for example, has many features, much more many that C++. Is lisp "features-overloaded" language or not?
Or, for example, in C much more many features, than in gnu assembler. If I experienced assembler developer(in reality i am not, but just imagine) can I say, that C is bad languages, because it has many features(in compression with gas) or not?

> What are you mean under cpp code reusing? classes ? this big ugly treaks and weaks ?

yes, classes indeed. why do you think, that classes are some tricks or hacks?

> It's a not a code reusing it's a pain for developer's heads, because u need to analyze code of each cube (class I mean) to take a sure what is used on it, this cube depends on the another cube etc ...

wow. classes(goof projected classes) implement better code reusing mechanism, than in any procedure programming language.
if u have working class, u don't need to take full picture of it structure, u just make some manipulations on it, using it interface(inheritance or delegation or just pure manipulating).

> I can agree with u in the one thing, ofcouse building a simple set of the foreigh cubes it's a simply than strong development and analyze of the exiting code, but it's a false for debugging that takes a many time.

in many main cases, u already have debugged class library. and you know, that with library doesn't contain errors, so errors should contained in your code. so, you just debug code, wrote by you.

Supervisor said...

what is "feature overloading" indeed?
lisp, for example, has many features, much more many that C++. Is lisp "features-overloaded" language or not?
Or, for example, in C much more many features, than in gnu assembler. If I experienced assembler developer(in reality i am not, but just imagine) can I say, that C is bad languages, because it has many features(in compression with gas) or not?


You are fanatic and can't hear me. I'm speaking not about a number of the features, I'm talking about thing that one feature interchange another feature, and on the lisp language there are no features that interchanged by other features, but on the pluses does, the more better example it's a smart pointer/pointer/link.
If the language contain really needed features that logically offered to the developer it's a normally. So, please, don't take a compare with asm or something else, we're talking about other things + okay ?
If the language foo has new feature B is a good point, but if the language foo has a feature B that can be used another exiting feature A - it's a bad point - the pluses overloaded by there features.

wow. classes(goof projected classes) implement better code reusing mechanism, than in any procedure programming language.
if u have working class, u don't need to take full picture of it structure, u just make some manipulations on it, using it interface(inheritance or delegation or just pure manipulating).


;)) it's sounds like from a fanatic children - "good projected toy is better than too hard for logic toy ! wow! aauu!"
I need to repeat my words - you are using a pointers but some lib uses a links - what will be you done ? Mixing a pointers using and links or rewrite all things from pointers to links ? Smiley smiley, ofcouse it's a good code reusing, I've understood + code reusing on the pluses means everytimes rewriting the source code from one method to another to keep back a good source code ;)) No thanks, I don't have any time for this teaks ;)

in many main cases, u already have debugged class library. and you know, that with library doesn't contain errors, so errors should contained in your code. so, you just debug code, wrote by you.

aaa, you are novice in the development, there are no bug free libs exiting at the present time, it's unreal ;))
And it undepended from language, anything harder then "hello world" program/lib has a bug one or little big more - is a fact.
So, any libc or your liked STL from pluses has a many bugs. ;)

Anonymous said...

> I'm speaking not about a number of the features, I'm talking about thing that one feature another feature, and on the lisp language there are no features that interchanged by other features, but on the pluses does, the more better example it's a smart pointer/pointer/link.

stop, what did you mean under 'interchange'?
interchange between "features" just simple communication between logical chunks in some application. it's normal in any way.
if in your opinion interchange == inheritance(which is very common cases is basic mechanism in oop paradigm), you just show, that u hate oop as programing approach.

> If the language contain really needed features

"really needed" is very subjective opinion

> but on the pluses does, the more better example it's a smart pointer/pointer/link.

and what? yes, this features exists and this features are really need for number of developers. or may be you can prove another?

> If the language foo has new feature B is a good point, but if the language foo has a feature B that can be used another exiting feature A

ou. examples:
setf == setq on lisp. bad? bad
fopen/flose/and family and open/close/and family - unix api + libc. bad or good?
#() and vector - both create vector on lisp

and after it you will say to me about pointers and references?

> I need to repeat my words - you are using a pointers but some lib uses a links - what will be you done ?


it's bad lib. thats all. you don't should use it. i thin, that you saw number of terrible libraries on C.

there are no bad language, there are number of bad developers, that write bad libraries.
language is just a tool, an instrument.
if i am, for example, carpenter - i can use any hammer for my properties. and i won't scream aboud bad hammers and good hammers, i will scream about bad hands and good hands.
so, language is just a hammer. you are brain, language is instrument, so u can use it any as u like.

> no bug free libs exiting at the present time, it's unreal ;))

agree. but, look at, for example, qt. it's good near stable library, that normal does it work. and if u use it library and if application contains some errors, u should to look at you code at first. and more probably, that errors is contained in your code.