Answer» OK so I'm probably mad but HEY I like a challenge. I have had this idea plaguing me for quite some time now. I want to develop a new OS. Prob a Linux based system. I'm not a programmer but I am hoping to learn this year. I'm hoping to find a hand full of keen programmers that know enough of this sort of thing to create a team. As I'm not a programmer I'm hoping to lead this project as a project manager. I plan to manage this project via email between the team members involved. If able to learn some programming I will of course take on some tasks myself.
If you're a confident programmer and as ambitious as I am, let me know if your keen to under go this project.
If you think I'm way to far out of my depth and completely mad then feel free to let me know and why you think so.
If you have any advice or suggestions the yes definitely let me know.If possible, can I jump on this bandwagon?
Making an OS sounds really cool...I don't have much experience with actual programming, but I learn quick and am taking a computer science (/programming) course this semester in school, so I could probably get extra marks if I worked in a major colab like this...Yea its possible. More than anything I want people who are truly keen to take part. Obviously though people that know how to program are just as important. I'm happy someone like yourself who is just starting to learn to be a part of it as well. Just either post another message or send me a Personal Message with any related skills you may have and what area you'd be most keen to work on in the project.
Also I should also mention that I'm not expecting this to make alot of money, so anyone interested should be willing to do it for the love programing and the ambition of providing people with an alternative OS. One reason I don't expect it to make alot of money is because I want any charge for it to be as low and a affordable as possible, or as Linux, basically free.Instead of helping I could be an occasional critic. Ready?
Here are some critical questions.
1. Is the primary reason for the project the desire to learn new group skills? If so, don't you think a conventional face to face meeting would be better that e-mails? But if you want to work over distance, why not use video conferencing?
2. Is one of the objectives is to work on a project that fills a need, how will you find an operating system design that has not already be done?m Why limit the project to just an operating system? A vertical application may put every thing in one package with no line between OS and the application. Embedded software?
3. If an objective is to improve on something that already exists, can you estimate how much time it will take to make a significant improvement? And what about copyright or patent infringement?
4. If another objective is to improve the programming and group skills, how will you deal with the inflated egos some 'programmers' have? Some know only one or two programming methods and will insist that others have to use just those methods. How do you convince them the project is more important than 'proving a point'.
5 If another objective is to promote happy people who work together, how will you face jealous deconstructive and demeaning outside critics who would undermine your harmony? Hello,
Though I don't intend to discourage the group and the project, I totally agree with Geek-9pm's critics. I've seen and even worked for projects that broke down as a result of egos; point 4 and 5 of Geek-9pm's post.
I'm (we're) ready to help the project though not officially a part of it. Cant promise much contributions from the flight deck of a 747. If the OS you make is "linux-based" then you have to give it away for free minus the cost of your distribution media. No buts.
And if you actually intend to create an entire operating system that is actually something that people would buy I highly doubt you really see the scope of the project at all.
First: you need to will NEED to have somebody who KNOWS assembly. Or you could take code from linux for this part. Except then you'd be bound by the same licensing terms, the GPL.
Then you would need to be able to make calls to the BIOS and CPU instructions to switch to protected mode. This is almost certainly going to require assembly. Or you could copy it from Linux. and be bound by the gpl.
you'll need a boot loader. the basic MBR code will need to load the actual boot loader from disk, which means it will need to understand a file system. your not going to be able to just type out some visual basic or a batch file to get this working. you will need, at the very least, C or another low level language and a good understanding of the file system.
Then you need to write programs FOR the operating system. things like a text editor, calculator, etc. This means that you'll need to write an collection of functions that programs can call. This will require a good understanding of C and calling conventions such as stdcall (pascal), cdecl, etc. as well as how the parameters are pushed and popped to and from the stack during a function call.
And of course, will the PS be text based or graphical? if text based, you'll need a command processor. if graphical, you'll need resources and a good GRAPHIC designer. And of course even more APIs for the creation and handling of various GUI elements, such as buttons, comboboxes, etc. and of course, coding behind these graphical elements and some way for programs to intercept events such as when a textbox changes or when a button is pushed; this will require an advanced knowledge of either virtual function calls or Abstract virtual classes, and in either case is not something that a bunch of amateurs could pull off. Sure, Linux is, pretty much, made by amateurs, but there are also a lot of professionals, and, more importantly, they know what they are doing. Many of them understand C and assembly better then they understand their native language.
So far on your team you have somebody (yourself) who proposes to manage the project, despite having absolutely no experience in either programming, operating system design, or management. And a student who dabbles in batch. I see your team is coming together nicely. at the moment you might be able to compile a C hello world program if you work together on it for a few days.
ANyway: what it sounds like you really want to do is create your own linux distribution. However, like many linux distribution it will have quite a major flaw; in that the only reason for it's creation is not to make the Linux operating system better, but rather to have something that you can say "I did that".
basically, if you intend to make it yourself, even in a best case scenario there is absolutely no chance you could even make a very basic, single-task operating system from scratch in less then a year.
And if you are creating your own linux distro, it's going to need to have something other distros don't. And a cool name can only go so far.I like where you're going with the plan and yes it is ambitious to say the least but, as mentioned already, you have to have a target market to aim for that isn't already covered and there ARE 1,000's of linux distro's around for almost everything. On the other hand consider the average PC user groups:
1)programmers and enthusiasts love to go pulling open the case and tinkering around with the internals or writing code in DOS, not a great market. 2)middle aged or elderly people who just want an easy to use computer for surfing the web and sending e-mails etc, easy to use functionality!!! 3)teenage gamers who use the PC for modding, overclocking and running graphically intense games (.EXE's), here we have heavy resource usage requiring reduced O/S functioning in the background as well as multitasking demand for running multiple programs at once( web browsers/music players/e-mail/social networking apps/etc). Also the o/s has to be able to install programs from .exe files or ~.msi~ as most games are made for windows O/S's. (registry SUPPORT for reg keys)
all 3 groups will want security from viruses and malware (MAC kernel?/Linux kernel?)
so in summary a small sized quick booting easy to use O/S (GUI) that has low resource usage when running, dosen't epic fail with computer viruses but can install and run windows executables alongside its own programs (MAC/Linux or both). I don't envy the task ahead of you Lmao @ Geek9pm. I totally agree with your 4 & 5 points. I've been programming for 3 years now in college and I'm doing my final project; making an RPG in XNA. I've done 1,5 years of java, 1,5 of .NET. Still learning the basics.
I must say really, those 4 & 5 points are true. I've tried so many times to get help on IRC, but programmers have such inflated ego's it's almost impossible to discuss things with them in a normal way. They are also insane. I'm not joking.
I think BC_Programmer is exaggerating with the 1week-for-a-hello-world-program approach. =P A hello world program takes a few seconds to make.. I could even make the person understand the concept in 5 minutes.
As for making an OS, I think that requires an incredible dedication of spare time for the project alone and tens (ideally hundreds) of programmers.
That's my opinion. Linus, the Author of Linux was able to reach his goal is a rather short span of time. This interview gives you some idea of what kind of person it takes to get a big project going. http://www.linuxjournal.com/article/2736 After reading that interview, think about how or why was able to get others to help him. If you are willing to tackle this project, then start by learning x86 assembly language. If you want to finish quicker and get more instant gradification, then you should use C/C++ to make your OS. However, if you are more interested in the quality and speed of the OS, then you should (in my opinion) use assembly to write the whole thing.
I don't think that you should base it on linux/unix or whatever. If you are going to waste time making an OS, then at least do it right; start from scratch. Once you have learned assembly, there are SEVERAL websites I reccomend you look at to get some design theories.
osdev.org - general forums and a wiki bos.asmhackers.net - great framework to start from (not a finished project)
And if you decide not to base it off of linux, I would like to join. I have already started an OS project myself, but it is pretty much just a shell that uses BIOS for everything. If you would like to see the code for my OS, just e-mail me.Quote from: alphanumeric on February 11, 2010, 03:47:04 AM 2)middle aged or elderly people who just want an easy to use computer for surfing the web and sending e-mails etc, easy to use functionality!!! I just love to be patronized...
|