View Full Version: Dex4u OS source code

dex >>Announcements >>Dex4u OS source code


solidus117- 06-05-2006

Sound about right to me, after that, i would also like a simple type of Instant messaging for Dex4U users. A simple IRC client maybe?

Dex- 06-06-2006

Yes :) .

tonyMac- 06-07-2006

I don't know anything about networking protocols, really... I think I'm going to work on various CLI utilities for different things.

versionzero- 06-11-2006
license
I'm afraid software licensing isn't my strong point, either, perhaps some of our more experienced members could help us out with this one... I have read lot of thing about license. They have different concern and also they can take in mind or not some of these thing : .Freedom for the user, .Freedom for the programmer to use the code and to change it, .Responsabily et engagment for the user and for the programmer .specified for the way to used a changed code .specified for the way it's allowed to use it and the way it's allowed to change it .Conservation of the public spirit of the software and code .The way to make profit of it or moneyĆ  .Derivative work and derivative license .Accessibilty to the derivative .Personal usage, public distribution, government usage, enterprise usage and commercial usage .Author's notice Essentialy they all want a way to share the software and the code but they dont agree exactly the same about the way they allow the usage and release. It, in a way, like a will! So you have to know what you allow and what you do not allow. The GPL seem to have emphasis on responsability to contribute to the public maintenance of the product. They want all improvement that everyone do to stay public and to be accessible so that everyone can profit from it. http://www.gnu.org/copyleft/gpl.html BSD license and a like do not want to bother everyone with a social engagement to contribute like GPL but they want a minimal of fair usage about the Author's notice. They want a preservation of the author's notice. http://www.freebsd.org/copyright/license.html Here you could find many of them : http://www.opensource.org/licenses/bsd-license.php Some just want to share the code, they dont care about it usage the derivative work, license, publication, release and authors. This is mainly the case with the WTFPL. This is a very simple one. They allow change of the code with the condition of changing the name of the product. http://sam.zoy.org/wtfpl/COPYING Hope this help a bit

versionzero- 06-11-2006

...its just a challenge, once i start something i like to finish, We set out as a team in the v2os forum, to code a OS like Dex4u and as a team, we have done it, we all played our part and are still a team, How many OS teams can say that 8) This is something I'm very happy to heard! Very! very! very! I feel good to read that. May be a miss this kind of thing in my live. I'm so alone with all of my project and it's very difficult to drive a team to some successfull projects. So I have to say cheer and congratulation! But is probably 10 years to late to be successful :cry: I do not fully agree with you on this point! I, some time miss the old dos time where i could get the impression of knowing enougth of my computer that I could take the control of everything. The way Os like windows is evolving make thing beging so heavy that i'm lose in all the OS API. For every litle thing I want t do, I have t read so much on the API documentation that i lost my inspiration and never reach the end of my idea. Also I have the a huge disappointment about how computer power is lost. So now I'm happy to be back with simple thing that I can control and optimise the way I want it to be. You seem in a good way in that direction. I like a simpler system better done then a one too heavy and with too many flaw. I mainly concern with the security and never can feel I can know enough about my system that I can be in security. They are so many parameter to considere that i get lost very quickly. How could we be sure our system is not spyed and not hacked? I dont want to do paranoia but I need to know what happen on my system to feel secure. So I thing I small system we can control more easily what is happening and to make a success of that is a head of everything else that no one can say what is happening and what security is and is not. Security is increasingly difficult with the todays OS. Maintly I often wonder what serves all the power of our machines today. For spyer or for other thing(sorry for my parano). Also, they are many situation where litle system make beter job. I have seem some shop that have only a point of sale software on their computer and it run on windows event the software itself is a dos software. According to my point of view, it is preferable to have less functionalities and more control as well as a more solid foundation So for me, it's not important to implement everything about the protocol TCP/IP but to have the minimun needed to get what we want and then have the change to evolve from that. Here is my first lucky find about ip stack : http://www.w3.org/DesignIssues/Stack There are 3 layers Ethernet-->IP-->TCP And then the protocol is according to port number like port 25 for mail, then you follow the mail transport protocol (mtp) port 80 for Web port 21 FTP They said : Ethernet (cf. IEEE 802.3) and either DIX(RFC894) or 802.2,3 RFC1042 http://www.ietf.org/rfc/rfc1042.txt Internet Protocol (IP, RFC791) http://www.faqs.org/rfcs/rfc791.html Transmission Control Protocol (TCP) (RFC 793). http://www.ietf.org/rfc/rfc0793.txt Simple Mail Transport Protocol (SMTP) (RFC 822) Hyper Text Transport Protocol (HTTP) (RFC@@@ HTTP 1.1) hope this help a bit but just the begining

DennisCGc- 06-11-2006

Hi, There are 3 layers Ethernet-->IP-->TCP You forget one thing, the internet is not all about Ethernet. You have tokenring, SLIP, PPP and a few others as well. My design, which I have to admit that I haven't worked on that for a few weeks because of school, for Dex4u's stack is that every driver can register itself to the stack, and this means SLIP, Ethernet and the like can nicely cooperate with eachother. Second, you totally forget about UDP and ICMP. UDP is mostly used in internet-streams (video, radio) and f.e. my cable modem uses it to retrieve its parameters from my ISP. ICMP is a lot used in routing the packets. The program ping is probably the best well-known program which uses ICMP. And then the protocol is according to port number like port 25 for mail, then you follow the mail transport protocol (mtp) port 80 for Web port 21 FTP What protocol? I know where you can download the assigned numbers RFC, but quite frankly, I somehow know them already. However, this is not that important for a TCP/IP stack to know. According to my point of view, it is preferable to have less functionalities and more control as well as a more solid foundation So for me, it's not important to implement everything about the protocol TCP/IP but to have the minimun needed to get what we want and then have the change to evolve from that. I agree with it somehow, but only when you are designing it, you know you have to add more in the future. So, making it 'modular' will help you more, although it's probably more difficult in the beginning. But, I'm probably going off-topic now :D, so I think I'll open a thread about the stack one day, only when I have time(!!) to continue it. DennisCGc.

Dex- 06-11-2006

Thank you very much for your post on license and tcp/ip stack, the links look very informative, i will study them , as i am in get as much info as i can, before starting coding. And your ideas about how a OS should be are like mine, we should also as far as security is concerned, design OS like animals, that is if all humans were the same, we could get wiped out by a virus, but our DNA has little mistakes in it, so some people will be amusen to the virus. So if we all use window a virus could do a lot of damage, but if we had 100's of differant OS it would not be so bad. Once again thanks for the info and links 8) . EDIT: @DennisCGc, you seem to be the expert in the group as far as Networking goes, 8) . At XMAS I got about 6 books on TCP/IP and wi-fi hacking, just for when the time came to write this sort of code for Dex4u, i am giving them a good read, thats why my eye are like this :shock: I now need to wear these 8) :lol: But, I'm probably going off-topic now :D There's no such thing as off-topic on this forum.

versionzero- 06-11-2006

Hi, There are 3 layers Ethernet-->IP-->TCP You forget one thing, the internet is not all about Ethernet. You have tokenring, SLIP, PPP and a few others as well. My design, which I have to admit that I haven't worked on that for a few weeks because of school, for Dex4u's stack is that every driver can register itself to the stack, and this means SLIP, Ethernet and the like can nicely cooperate with eachother. Yes, of course and thanks you to remind me and I fully agree with you, internet is not only a matter of eternet and element have to cooperate all together and to have their independance. This is the way we should build it and as I'm not as knowleged as you I may be not as complete as you in my statements. I am curently studing this case. Could you explain the way you sea it? Second, you totally forget about UDP and ICMP. UDP is mostly used in internet-streams (video, radio) and f.e. my cable modem uses it to retrieve its parameters from my ISP. ICMP is a lot used in routing the packets. The program ping is probably the best well-known program which uses ICMP. Ok thanks you for your enlightment. I'm not as knowleged as you on that matter. I know UDP and ICMP exite but that's all I knows for now. What protocol? I know where you can download the assigned numbers RFC, but quite frankly, I somehow know them already. However, this is not that important for a TCP/IP stack to know. Ok may be you are wright. I' juste dont known exactly where to start from. Sorry and just would like to put some pointer here for someone if they are insterested to studies the case. According to my point of view, it is preferable to have less functionalities and more control as well as a more solid foundation So for me, it's not important to implement everything about the protocol TCP/IP but to have the minimun needed to get what we want and then have the change to evolve from that. I agree with it somehow, but only when you are designing it, you know you have to add more in the future. So, making it 'modular' will help you more, although it's probably more difficult in the beginning.. Yes of course you are wright and I fully agree with you. Modularity has to be done so we have to think a way to achieve that. Some architectural concept. The time it take to make it is not important for me. I prefer to take all the time needed and doing something very carefully designed, customisable, usefull, easy to use, robust and efficient. And also a thing that programmer would be happy to do with it. But, I'm probably going off-topic now :D, so I think I'll open a thread about the stack one day, only when I have time(!!) to continue it. I realy like this topic. The question now is on what part of the project do everyone agree to put their time on.

Dex- 06-12-2006

One of the ?, that i have the answer to, is modules, as Dex4u has the ability to load module and link into them on the fly. See here: http://dex.7.forumer.com/viewtopic.php?t=172&start=0 http://dex.7.forumer.com/viewtopic.php?t=185 The first thing we need to do is write a driver for our ethernet cards. If we do this ( thouse that are working on this project ), at lest we will have more than one driver. This will not be easy, as its the chichen and egg, as in not easy to test drivers without anything to test it with. All as with all projects, first thing to do is get it working right, once it working good, you can optimise it for speed. It would help if any members post there Ethernet card make, so a driver can be made for the commonest one. Regards Dex.

DennisCGc- 06-12-2006

Okay, before I'll answer any questions, it seemed that my replies yesterday sounded harsh. I'm sorry for that. The only things I can blame for is that I don't sleep much, plus a few private reasons. Anyway, My design, which I designed before all this for my OS except with a few minor differences (major in implementation), is that every network-enabled driver registers itself at my net.asm code. So: User A uses Dex4u. He has a normal SLIP connection to mainframe B. He loads the SLIP driver. The SLIP driver then registers itself, with a few parameters (offset of send_packet, receive_packet, etc.). The stack has an internal table of ip addresses for each device, routing tables, and driver tables. In that way, drivers can be easily loaded, without having to change the stack code. So far, I think this is pretty basic, but should do the trick. Please keep in mind, the driver is responsible to deliver complete packets to the stack. Ethernet drivers are also responsible to add their own layer. (But this can be avoided though: NE2k driver, 3com driver ------------------------------- Ethernet layer (registers itself as two devices) ------------------------------- Stack ---(etc) ) That's the cool thing, IMO :P, you can add a number of layers. This design will be used at least in my OS, but I think it can also be used in this OS, with a few alterations in the implementation (plus with a few limitations as well) Ok may be you are wright. I' juste dont known exactly where to start from. Sorry and just would like to put some pointer here for someone if they are insterested to studies the case. The way I learned it was rather silly, I became interested so I downloaded the RFCs, but also sniffed some traffic. You then have a 'perfect' (again, imo) combination of theory and practice. Please note however, don't literally copy the practice stuff, like Windows' stack behaviour. It's always best to come with your own design. To have more insight on sockets; program programs with socket support. Program a simple server (SMTP? HTTP? Too many to name them). Also write some clients. Toy with networking at your home, with routing tables etc. Also, read articles about networking protocols, or just networking (not the newbie stuff, most of them are imo boring). I didn't read books about it, but I did some research on my owm. If you have anymore questions, or if I haven't made myself clear (which should be able to occur, English is not my native language after all), just post. Good luck, DennisCGc.

Dex- 06-12-2006

Thanks DennisCGc, very informative :wink: .

hidnplayr- 04-03-2008

Dont forget the ARP protocol guys, as it keeps ethernet and IP together.. I'm currently trying to redesign the KolibriOS stack, but as I want EVERYTHING to be able to dynamically load and unload, this is not an easy task :) As for the speed, when you are parsing a packet, one protocol capsulated into another, DO NOT COPY THE DATA! this is one of the things that makes the current stack so slow. Put the data into a (dynamic) buffer instead, and pass a pointer. That being said, good luck ;) PS: i'll help you guys where i can :p

Dex- 04-03-2008

Thank for the info hidnplayr, and any help will be great, as and when your time allows, it seems i have so many off shoots that i am working on, its hard to get one thing finished. I must stop starting work on any other off shoots, untill i have finish the ones i have started. Regards Dex.

tonyMac- 04-04-2008

@dex: I know what you mean. I am working on the BASIC syntax layer for FASM, and that led me to work on math routines... Also I started working on the DexVM again, hopefully to get a simple bytecode reader working (remember the days of compiling by hand? oh yeah...)

Pixelator- 05-29-2008

GNU me thinks

Forumer™ is Voted #1 Free Forum Hosting provider
Build your own community today with the largest message board hosting company.