I tried the first few tutorials but got bored very quickly. It will take a really long time before you can do any meaningful with your OS.
Your best bet would be to use something like Linux From Scratch and build upon that.
Cheers
I tried the first few tutorials but got bored very quickly. It will take a really long time before you can do any meaningful with your OS.
Your best bet would be to use something like Linux From Scratch and build upon that.
Cheers
If you ever made any demonstrations (demos) during the Amiga era, you would know how hard it is just to get even the simplest things working.
In general, for OS development, you have to know every bit of your hardware, get to know the whole instruction set (assembler/machine code instructions), look at pin layout and addressing and how to properly communicate with the different chips and busses on your computer. You have to know every detail on how to set up the timer chip, interrupts, and properly handle those. You have to set up a flat and protected memory mode (I think 'x86 CPUs STILL start up in REAL MODE.) You have to implement paging, a driver architecture, threading system, securing your kernel with proper communication between RINGS. (That is kernel mode/user mode/etc, essentially which privileges you are allowed on the CPU.) You have to get into every little detail on OS concepts. How to load files into memory, and run the software. You have to interface with hardware through drivers you make. Most hardware vendors DOES NOT even supply any technical documentation at all, which is why Linux struggles sometimes.
I haven't even started. None of these topics are trivial. I know a lot about these things because I have a special interest, but I would probably STRUGGLE a great deal if I ever were to actually start writing my own OS.
You have to be a wizard to be able to pull this through. Actually you have to be a lot of wizards, because that is what Apple and Microsoft has: LOTS of wizards that are experts on the field. What makes you think you can make something better than all those wizards together? Alone? With no cooperation from hardware vendors, because they just consider you too small to waste their time?
I started to make a disassembler for 680x0 once, trying to make it scriptable so you could easily add more processors later. Here is part of the code to detect instructions:
[BTST :111111001:0000100000xxxxxx00000000dddddddd]
[BCHG :111111001:0000100001xxxxxx00000000dddddddd]
[BCLR :111111001:0000100010xxxxxx00000000dddddddd]
[BSET :111111001:0000100011xxxxxx00000000dddddddd]
[MOVES :001111001:00001110xxxxxxxxxxxxx00000000000:SUPERVISOR]
A massive table of matching rules.
Here is the output of the first few lines of code for "Ultimate Soundtracker 1.21":
00000000: 4EB900001EB4 JSR $00001EB4.L
00000006: 4EB900006418 JSR $00006418.L
0000000C: 4EB9000020AA JSR $000020AA.L
00000012: 4EB90000004C JSR $0000004C.L
00000018: 610005CC BSR.W $000005E6
0000001C: 610002AE BSR.W $000002CC
00000020: 61000192 BSR.W $000001B4
00000024: 610000D4 BSR.W $000000FA
00000028: 0CB9736F6E6700002984 CMPI.L #$736F6E67, $00002984.L //'song'
00000032: 66000008 BNE.W $0000003C
00000036: 4EB900002270 JSR $00002270.L
0000003C: 0839000600BFE001 BTST #$6, $00BFE001.L //CIAA, PRA - /FIR1 /FIR0 /RDY /TK0 /WPR0 /CHNG /LED OVL
00000044: 670009BC BEQ.W $00000A02
00000048: 6000FFCE BRA.W $00000018
----------------------------------------------------------------
0000004C: 207900001EB0 MOVEA.L $00001EB0.L, A0
00000052: 317C0AAA0002 MOVE.W #$0AAA,$0002(A0)
00000058: 317C08880006 MOVE.W #$0888,$0006(A0)
0000005E: 317C0666000A MOVE.W #$0666,$000A(A0)
00000064: 4E75 RTS
----------------------------------------------------------------
00000066: 207900001EB0 MOVEA.L $00001EB0.L, A0
0000006C: 317C00A00002 MOVE.W #$00A0,$0002(A0)
00000072: 317C00800006 MOVE.W #$0080,$0006(A0)
00000078: 317C0060000A MOVE.W #$0060,$000A(A0)
00000080: 207900001EB0 MOVEA.L $00001EB0.L, A0
----------------------------------------------------------------
----------------------------------------------------------------
00000086: 317C0BA00002 MOVE.W #$0BA0,$0002(A0)
0000008C: 317C09800006 MOVE.W #$0980,$0006(A0)
00000092: 317C0760000A MOVE.W #$0760,$000A(A0)
0000009A: 207900001EB0 MOVEA.L $00001EB0.L, A0
----------------------------------------------------------------
----------------------------------------------------------------
000000A0: 317C005B0002 MOVE.W #$005B,$0002(A0)
000000A6: 317C00490006 MOVE.W #$0049,$0006(A0)
000000AC: 317C0006000A MOVE.W #$0006,$000A(A0)
000000B4: 207900001EB0 MOVEA.L $00001EB0.L, A0
----------------------------------------------------------------
----------------------------------------------------------------
000000BA: 317C0A5A0002 MOVE.W #$0A5A,$0002(A0)
000000C0: 317C08280006 MOVE.W #$0828,$0006(A0)
000000C6: 317C0606000A MOVE.W #$0606,$000A(A0)
000000CC: 4E75 RTS
----------------------------------------------------------------
000000CE: 207900001EB0 MOVEA.L $00001EB0.L, A0
000000D4: 317C0C000002 MOVE.W #$0C00,$0002(A0)
000000DA: 317C09000006 MOVE.W #$0900,$0006(A0)
000000E0: 317C0700000A MOVE.W #$0700,$000A(A0)
000000E6: 223C0000000F MOVE.L #$0000000F,D1
000000EC: 4EB90000188A JSR $0000188A.L
000000F2: 51C9FFF8 DBF.W D1, $000000EC
000000FA: 0CB90000000000002984 CMPI.L #$00000000, $00002984.L //' '
----------------------------------------------------------------
00000104: 67000004 BEQ.W $0000010A
00000108: 4E75 RTS
Even a "small" thing like this is a massive task...
:)In general, for OS development, you have to know every bit of your hardware.
(Assembly) code for which system architecture (linux, Windows, mac, myOS etc.)?Here is part of the code to detect instructions:
[BTST :111111001:0000100000xxxxxx00000000dddddddd]
UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32
--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy
Have you heard of JARVIS OS? It's being made by a group of 7 people with an average age of < 20. The founder is less than 20 (last time i checked).Now that I think about it, perhaps an OS with AI would be the best OS.
I used this software once that I can't find anyone called Cynthia 3.0. It was pretty much a chat bot whose image and animation you could change. You could teach it like:
"The sun is a big ball of burning gas in the sky."
This information would be saved to a text file.
Then you could type "what is a sun?"
And it would respond "The sun is a big ball of burning gas in the sky."
Creating a useful enough AI for such a system as seen in sic-fi movies doesn't seem far off with technology like this around, other than voice recognition files, and realistic text to speech recordings.
I myself am working on a pretty realistic AI system that started as a way to detect objects like we do in real life using senses.
I just picked up a new term called "fuzzy logic." That is what such a system as JARVIS would need to use.
To make such AI, You would need the most skilled people in every major science, medical, and artistic field (artistic if you want to make an iron man suit). And you'd need a good and simple yet effective plan.
Perhaps you'd need a cross of augmented reality and virtual reality to get sight right for iron man.
This topic has turned rather fantastic. Haha.
Making something as awesome as this is simply hard. Take it one step at a time.
For example, you can start with "JARVIS, search for Iron man on google" then "JARVIS, backup all my phone data and check my schedule" till you reach "JARVIS, make me a watchdogs duplicate and an engine 10 times more efficient than cryengine+unreal". Eventually, it'll reach "Kitt (do you know Kitt?), attack mode". Come to think of it, Kitt is better than JARVIS (name wise).
Take it one step at a time? You missed a lot of of steps between the first two and the third. I can write an irc bot that can do the first command in a minute (Hell my 15 year old intern showed me his bot which would return the first results of a search on google or youtube) and the second in a day, but reading it in from voice command is pretty hard and the third command is so insane I don't really want to think about it!
I mean, Kinect is probably the closest thing you have to something like jarvis or whatever and look how much R&D has gone into it plus that example of JARVIS OS? Is that just a linux distro because that's all I found.
"A Collaborative Free and Open-Source OS?" - That is practically the definition of almost all Linux Distros...
Engineering Manager at Deloitte Australia
In general, for OS development, you have to know every bit of your hardware.
(Assembly) code for which system architecture (linux, Windows, mac, myOS etc.)?Here is part of the code to detect instructions:
[BTST :111111001:0000100000xxxxxx00000000dddddddd]
I would like to kindly point out that none of those you listed -- Windows, Linux, Mac, or myOS are "architectures." All of these are operating systems. Examples of architectures are ARM, Amtel, PowerPC( *cringes* ), x86, and x86-64 (Both AMD64 and Intel 64).Thus, you already lack the most fundamental concepts needed to build J.A.R.V.I.S
"The code you write when you learn a new language is shit.
You either already know that and you are wise, or you don’t realize it for many years and you are an idiot. Either way, your learning code is objectively shit." - L. Spiro
"This is called programming. The art of typing shit into an editor/IDE is not programming, it's basically data entry. The part that makes a programmer a programmer is their problem solving skills." - Serapth
"The 'friend' relationship in c++ is the tightest coupling you can give two objects. Friends can reach out and touch your privates." - frob
I knew there was something wrong there. Note: i lack the knowledge of assembly and C coding so i still need to learn.I would like to kindly point out that none of those you listed -- Windows, Linux, Mac, or myOS are "architectures." All of these are operating systems. Examples of architectures are ARM, Amtel, PowerPC( *cringes* ), x86, and x86-64 (Both AMD64 and Intel 64).Thus, you already lack the most fundamental concepts needed to build J.A.R.V.I.S:)In general, for OS development, you have to know every bit of your hardware.
(Assembly) code for which system architecture (linux, Windows, mac, myOS etc.)?Here is part of the code to detect instructions:
[BTST :111111001:0000100000xxxxxx00000000dddddddd]
UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32
--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy
So aregee, which architecture is it for (and OS)?
He said what architecture, it's 680x0 assembler.
OS is mostly irrelevant, but "Ultimate Soundtracker" is an Amiga program.
I'm assuming though that the actual disassembler is not running on Amiga, but some modern OS on a modern processor (not 680x0)
I know :)Take it one step at a time? You missed a lot of of steps between the first two and the third
They are all voice commands and it's supposed to be hard, initially.. . . but reading it in from voice command is pretty hard
I really do think about it and it's amazing.. . . and the third command is so insane I don't really want to think about it!
It's not. They are building it from scratch, different from every OS.. . . and look how much R&D has gone into it plus that example of JARVIS OS? Is that just a linux distro because that's all I found.
UNREAL ENGINE 4:
Total LOC: ~3M Lines
Total Languages: ~32
--
GREAT QUOTES:
I can do ALL things through Christ - Jesus Christ
--
Logic will get you from A-Z, imagination gets you everywhere - Albert Einstein
--
The problems of the world cannot be solved by skeptics or cynics whose horizons are limited by the obvious realities. - John F. Kennedy
Note: i lack the knowledge of assembly and C coding so i still need to learn.
That has absolutly nothing to do with the question you asked. Problem is that you lack the most fundamental skills and concepts - apparently, ability to read and research, as aregee said:
I started to make a disassembler for 680x0 once
Also, his examples were based around Amiga PCs, as it was clearly mentioned in 1st sentence.
If you did a little Google search, you'd find out that 680x0 is another name for Motorola 68000 family of processors developed in 1980s and early 1990s, which had its own architecture which was competing with Intel's x86 architecture. Further reading would give you some insight into characteristics of the family.
It's not. They are building it from scratch, different from every OS.
So it's not this one? http://jarvisos.webs.com/
Because that one is SUSE Linux, and seems to be mostly vaporware, and not even including voice recognition (the easiest part of anything jarvis-like)
Are there more groups of young people making os:es they call "Jarvis"?