OSDev.org

The Place to Start for Operating System Developers
It is currently Wed Nov 22, 2017 2:24 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 7 posts ] 
Author Message
 Post subject: new-comer's questions
PostPosted: Thu Sep 28, 2017 9:07 am 
Offline

Joined: Thu Sep 28, 2017 7:54 am
Posts: 3
Hi, i am a new-comer to the OS development. i would like to develop my own operating system from scratch (that is from zero). i read OSDev Wiki, and understant that this will be either my new hobby, or, may be, the self-responsible step to be self-confident in the computer science, physics, maths, signal processing, cryptography, electronics, radiophysics, and other areas of science. i understand that this will take me into the long travel through the mountains, hills, and ravines of the modern science. i am a physicist-theorist in atomic and laser physics. when i was young (staright after my PhD in the UK) i could not find a job in High Tech area in the USA, perhaps because i was not self-confident in my narrow speciality, and did not have enough experience in programming. at the moment, i am confident in atomic, laser, and plasma physics, but it took me long time to makes research and self-education in physics-maths. at the moment, i am in Russia, and can not find a job (jobless) because of high percentage of unemployment in Russia. i firmly decided that i would like to move to the High Tech area, R&D. as a method-steps to polish my professional knowledge and skills in order to have self-experience and self-education in High Tech area, i would like to develop my own operating system. at the moment, i do not know to much about operating systems, how to develop them, which point to start from, i do not know about computer architectures, about the details of modern Intel and Apple processors (how to design and to make them in reality), electronics parts of the computers and architectures, and assembly language etc. i understand that i rise many questions that can not be answerd in one day - but as you see, this is only one way for me to find a job either in Russia, or in the USA/Canada/UK, and to earn money for life.
ok, about me - i have Windows 7 (64-bit), x64 architecture laptop, MinGW_64, Notepad++, and some knowledge and experience in C (scientific code development). please, note, that i do not have Linux, because the Internet-provider (because of stupid politics of Russian President and Russian Government) turns off network connection of the Linux-users.
my questions are 1) what would be the first step for me to develop a OS using my laptop and Windows 7 ? 2) would only NASM compiler be appropriate for the OSDev ? 3) what should i learn about the computers (hardware, architecture, electronics etc.) ? 4) is it possible to develop a OS in Windows 7 for another architecture computer-hardware ? 5) what books and Web-sites would you recomend for me to read as a first step in the area of OSdev ? Thank you.


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Thu Sep 28, 2017 9:49 am 
Offline
Member
Member
User avatar

Joined: Sun Oct 22, 2006 7:01 am
Posts: 2559
Location: Devon, UK
Hi and welcome,

[First suggestion is to break up the wall of text!]

goldov wrote:
1) what would be the first step for me to develop a OS using my laptop and Windows 7 ?
2) would only NASM compiler be appropriate for the OSDev ?
3) what should i learn about the computers (hardware, architecture, electronics etc.) ?
4) is it possible to develop a OS in Windows 7 for another architecture computer-hardware ?
5) what books and Web-sites would you recomend for me to read as a first step in the area of OSdev ? Thank you.


1) Check out the GCC Cross-Compiler article on the wiki and get Cygwin (or use NASM with Cygwin if you are determined to use assembly). I use Windows 10 and have now found Windows Subsystem for Linux (Bash on Ubuntu on Windows) to be much better but this option isn't there for Windows 7. I'd generally avoid MinGW but I will probably get flamed for that. Certainly the Cross-Compiler is much more heavily tested in Cygwin. Then look at our barebones tutorials.
2) No. NASM is an assembler but there are many appropriate compilers and assemblers you can use. If you have experience in C, why not use GCC?
3) As much as possible, but start by downloading the Intel Software Developers Manuals.
4) Yes. For one, Qemu will allow you to emulate many architectures on a PC host.
5) Start with our wiki. There are tons of links on the getting started page.

This is a very brief answer but a lot of it depends on the direction you want to go in. I'm not in CS/IT so can't comment on how likely OS Dev skills are to help your job prospects, though.

Cheers,
Adam


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Thu Sep 28, 2017 10:50 am 
Offline

Joined: Thu Sep 28, 2017 7:54 am
Posts: 3
Shalom,

at present i do not know Assembly language at all - this is why i would like to learn Assembly during OS development - i do not consider this as a challenge (attraction), rather i consider this as a way-method to be self-confident in computer technology, electronics, radio, physics, maths etc. i understand that this will be difficult task for myself, but i do not have another choice to find a good job in the USA/UK/Canada/Russia.
my questions - 1) is it possible to develop OS using only Assembler, or it will be necessary to use GCC Cross-Compiler either, that is it will be necessary to download Cygwin for Windows 7 ? 2) i do not want to copy Menuet OS, but i would like to use only Assembler. i would not use ready-made graphical functions offered by FASM, this is why i have chosen NASM - but may be someone in the Forum could offer me a better choice of Assembler ? - in order to learn and to program "primitive" (fundamental) tasks - processors, graphical cards, sound cards etc.

Thank you.


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Thu Sep 28, 2017 12:32 pm 
Offline
Member
Member
User avatar

Joined: Sat Mar 31, 2012 3:07 am
Posts: 3011
Location: Chichester, UK
Leaving aside the question as to whether assembler is a good choice of language for an OS (which has been discussed in great depth on these forums), I would strongly recommend that you hone your assembler skills on simpler user programs before attempting to write an OS using it. When you are fully proficient in the use of assembler then you can consider writing an OS with it (if you still think at that stage that it is a good choice). Otherwise you will be frustrated by trying to learn two different things at the same time.

Just my opinion which, I am sure, some will share and others will not.


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Thu Sep 28, 2017 1:57 pm 
Offline

Joined: Wed Sep 27, 2017 2:50 pm
Posts: 12
Operating system development isn't really a job. You will probably never get millions. You will never have fancy ad campaigns or employees. It's impossible to get a job from it.

What about a YouTube channel or something? You can earn money from ads. That will get you some money. It is possible.

The wiki has some useful information. You must have programming experience. You need to learn Assembly. Math and Science is important but isn't really require in this field.

Sorry, I don't think you really know what it's about. It's a hobby. It's not like you're going to make Windows 7 overnight. There is an extremely low chance of that. MenuetOS and KolibriOS has never got success.

How come Russia turn off the Internet for Linux?

_________________
Computers aren't to blame... the ones who program them are.


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Thu Sep 28, 2017 2:12 pm 
Offline
Member
Member
User avatar

Joined: Sun Oct 22, 2006 7:01 am
Posts: 2559
Location: Devon, UK
Hi,

iansjack wrote:
Leaving aside the question as to whether assembler is a good choice of language for an OS (which has been discussed in great depth on these forums), I would strongly recommend that you hone your assembler skills on simpler user programs before attempting to write an OS using it. When you are fully proficient in the use of assembler then you can consider writing an OS with it (if you still think at that stage that it is a good choice). Otherwise you will be frustrated by trying to learn two different things at the same time.

+1

The reason I got side-tracked by GCC was that you mentioned you know C and you mentioned other architectures, so I assumed some kind of portability. If your plan is to use NASM only, there's no reason you need Cygwin or MinGW at all, depending on the rest of your toolchain. Native Windows tools exist which can write bootable flash drives or Qemu can simply boot a binary image directly.

Again, the wiki is a *really* good place to start as it has both internal and external links. In addition to taking iansjack's advice on user programs, you also need to make a plan. Will you create something from a boot sector upwards in pure x86 assembly? Will you use a boot manager and write a basic kernel? Will you write something targeted more to ARM? Perhaps for your purposes, learning assembly in user mode will be enough and you don't need to go as far as a hobby OS?

If you plan to target a PC, my advice about the Intel manuals stands. If your going for ARM, download the ARM Reference Manual and so on....

Cheers,
Adam


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Thu Sep 28, 2017 2:32 pm 
Offline

Joined: Thu Sep 28, 2017 7:54 am
Posts: 3
Hi, Iansjack,

thanks for your comments. yes, of course, you are absolutely right - i plan to hone (polish) assembly skills, initially, on simpler tasks, and, then, after having an experience with assembler, of course, i will think either to use assembler, or GCC-compiler (which i am familiar with) - this is usual way how technical and science PhD students learn their subjects in the UK and in Russia. on the other hand, you may agree with me, that in order to learn how hardware works it will be necessary 1) to "speak" in its language and 2) to know electronics in deltails including electromagnetic signal propagation through the nested structure of different crystals (semiconductors and metals) which would be associated with the transistors in macroscopic radioelectronics. as for me - second task is not complicated to understand at least general priniciples and then to make corresponding simulations (of course, in reality it is a hard work to simulate such interesting combined physics), but the first task (assembly) is unknown for me so far, this is why i would like to learn the interactive language (assembly) of any hardware. i guess you agree with me that assembly language is different from one processor (or microshema - in Russian) to another. at the moment i do not have money to buy electronics parts (which are very expensive in Russia) and to learn assembly for many of them - at the moment i have only laptop, Windows 7 (64-bit) and x64-microprocessor in the laptop.
i made research in internet and found information that NASM would be closer to the tasks associated with the programming the hardware - that i am planning to make in the future after having experience with NASM assembly language/compiler.
as a second part of my journey into OSDev, of course, i will get Cygwin but not all (tens of Gigabytes) of it - only necessary parts.

Iansjack, thanks, once more, for your information.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: JAAman and 17 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:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group