OSDev.org

The Place to Start for Operating System Developers
It is currently Thu Mar 28, 2024 2:55 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 25 posts ]  Go to page 1, 2  Next
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: 12
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: 2646
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: 12
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: 4591
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: 2646
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: 12
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  
 
 Post subject: Re: new-comer's questions
PostPosted: Sun Apr 08, 2018 12:01 pm 
Offline

Joined: Thu Sep 28, 2017 7:54 am
Posts: 12
Hello, Iansjack,

1) many apologies for not sending (posting) my messages in the forum earlier.
2) i made some initial steps in learning assembly language (masm, tasm) - of course, it is interesting task, because for me - it has been combination of three tasks - learning the language itself (syntaxis), basics of radioelectronics, and the major task - learning to think (brain thinking) in Assembly way.
3) of course, i have not become a professional in assembly programming and in radioelectronics - but i made some basic, first steps into these scientific fields - for me, in my age, it has been not easy (complicated) work-task.
4) i think, that you was right, that for me, in my age - it will be very complicated and not feasible task to develop Operating System from scartch in Assembly language.
5) nonetheless, i developed in myself a littly bit (very-very tiny portion) of intuition how and where to move in the complicated field of OS-development - that is what kind of books and research papers to look for in Internet.
6) of course, when i will have sufficient and worthy salary either in Russia or in Western countries - i will try to buy printed versions (copies) of A.Tanenbaum few books about the development and kinds of Operating Systems, and perhaps i will try to buy some other useful and interesting books (printed versions) about Assembly languages, about Radioelectronics and about Microelectronics - to develop further my Assembly-Radioelectronics skills, although i understand that it will be very-very complicated work-task for me in my age.
7) once again, please, accept my apologies for my naive relation to and misunderstanding of high degree of complexity in elaboration of Operating Syetems either for Personal Computers, or for some other hardware (radioelectronical equipment).

in the future, i will try (although, it is very-very difficult) to be more careful in understanding of such complicated tasks like OS and Radio- and Micro-electronics development.

thanks, once more, for your valuable comments.
Cheers.


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Sun Apr 08, 2018 1:42 pm 
Offline
Member
Member
User avatar

Joined: Mon Jan 15, 2018 2:27 pm
Posts: 201
Welcome aboard :)


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Sun Apr 08, 2018 3:45 pm 
Offline

Joined: Thu Sep 28, 2017 7:54 am
Posts: 12
Hello, pvc,

1) thank you for your moral support,
2) to be more serious - first of all, i have to find propper (good) job in the area of my profession (Atomic and Laser Physics) with the sufficient and worthy salary either in Russia and/or in the Western countries,
3) and only then i could think how to improve my knowledge in Operating Systems, Assembly, Radio- and Micro-electronics - that is to research in Internet and to buy books and subscription for the special research journals in OS, Assembly programming, Radio- and Micro-electronics development.

i hope that you understand me - i must be a financialy stable and independent person, before undertaking such very-very complex and difficult task-work like OS and hardware development, and programming in Assembly language.

Thanks once more.
Cheers.


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Mon Apr 09, 2018 4:19 am 
Offline
Member
Member
User avatar

Joined: Mon Jan 15, 2018 2:27 pm
Posts: 201
Actually I've also studied MEMS (and photonics). And guess what, I am unemployed. There is just little, to no, demand for such hi-tech profession in my country (Poland). Maybe if I moved to China… or Australia… But thanks to that I have a lot of free time and using this time I can study and experiment with this hobby of OS development.


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Mon Apr 09, 2018 3:28 pm 
Offline

Joined: Thu Sep 28, 2017 7:54 am
Posts: 12
Hello, pvc,

1) thanks for your reply-message.
2) i had worked in China in the past period of my life. this is why i know some information about China from my personal experience. this is true that it is economicaly developed country - but this is illusion in reality. China is very corrupted country, everything is based on the human connections - if you have such strong connections in the Government of China, then it is easy to make career, to find jobs with worthy salary, and even to open and to make business inside and outside China. again, only strong Governmental connections solve everything and all life issues in China.
Medicine (hospitals, polykiliniks, that is visits and tretament with a doctor) is very-very expensive in China - even for the Chinese people.
average (almost maximum vamue of) salary in Beijing is about 400-1000 dollars per month, in Shanghai - it is about 2000-2500 dollars per month. but the accomodation in Shanghai is very-very expensive.
the prices of the real eastates (apartments, flats, houses) in Chinese large developed cities are similar to the prices in London, Paris, Los-Angeles, Vancouver, Toronto.
3) the standard of living in Australia is much below than in the UK and in Germany - again, if you have strong connections in Australian Government then your life would be easy in Australia, if no - then the life in Australia would be very-very difficult and dangerous.
4) pvc, please, be very careful with the choice of the country to develop your OS and hardware hobbies - especially in Asia and in South-Pacific region.
5) pvc, because you live in Poland, it means that your are the member of the European Union - and this is why, of course, for you it is easier to go to foriegn countries.
as for me is concerned, i have Russian citizenship - and this is why i need stupid visas to go abroad and the work permit from the police (Ministry of Internal Affairs) of a foriegn country.
6) pvc, like you - i am also very interested on the learning and on the development of OS and hardware - at present, i am not a professional in OS development in the pure Assembly language - but i am intuitively understand that in principle this is feasible task to try to develop and experiment OS development in Assembly.
7) unfortunately, modern science and technology tends to the pharmaceutical field.
the Russian Government is not interested in Maths, Physics, Radioelectronics, and Chemistry anymore - especially after year 2000 - the Russian President has had very strong memory about Melbourne Olympiad in Australia in year 2000 - especially, about Gymnastics competition.

pvc, i do not know what i could advice you in terms of the further development of your OS hobby, based on my previous life experience ... may be, may be ... if you have your friends in the USA, ask them whether they could find paths to Pentagon and/or NASA people who could be interested in your skills for military and space applications.

All the best, and good luck.
Cheers.


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Tue Apr 10, 2018 12:08 am 
Offline

Joined: Thu Sep 28, 2017 7:54 am
Posts: 12
Hello, pvc,

1) i have read your last message that you have already removed from this thread. in any case, may i acknowledge you for your warm and kind words.
2) pvc, this thread is visited by and is read by many people who are, in reality may be, interested or not interested in OS development. this is why they may not understand correctly what we mean and what we want to say to each other.
3) pvc, both you and i live in the countries (Poland and Russia) that were the parts of the Russian Empire, and also then, our countries were in the same Warsaw Socialist military block - this is why we understand, as i hope, each other - on the other hand, other people from other countries, in the Forum, may not understand us.
4) that is why - my suggestion is to try to speak (to write messages) in English without double-meaning and to avoid politics - the latter may be bad and dangerous for both of us - Russia and Poland have transparent boarders for the police and for the FSB-KGB of our countries - this is true. unfortunately, the modern intelligence in our countries (Russia and Poland) is not so intellectually developed as in the time of the Soviet epoch.
5) my second suggestion, is to try to concentrate our future discussions on the OS development, Maths, Physics, Radio- and Micro-electronics, Chemistry, Material Science - for the better understanding of such complex and difficult topics associated with OS, Assembly, and hardware design and programming.
6) at present, i am interested in Assembly - i have some basic steps in masm, tasm, and i also would like to learn basics of nasm for x86-64-bit architecture.
7) of course, in the future, i would be interested to ask your professional advice and help in the OS development (GRUB, this is from your last message, that you removed). of course, in the future, i would be intersted to learn how to inter-mix C, C++, and Assembly for the OS and hardware programming - but this is for the future - because at present i am making only basic, first steps in Assembly, like a little child.

All the best.
Cheers.


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Tue Apr 10, 2018 8:35 am 
Offline
Member
Member
User avatar

Joined: Fri Oct 27, 2006 9:42 am
Posts: 1925
Location: Athens, GA, USA
I am still curious about the claim that Linux users are being denied Internet access in Russia, and indeed, how that is even possible (since I have been led to understand that both Android phones and Raspberry Pis are available there, both of which run Linux kernels...). I know that VPNs are illegal there as of last spring (or at least it was something mentioned elsewhere as a possibility, I don't know if the rule went into effect or not), but that's a separate issue entirely. After a brief set of searches I haven't seen any references to RUNET not allowing Linux systems to connect.

Could you give more details on this, or pointers towards information about it?

Mind you, for Windows 7 it would be possible to run a Linux dev host in the VirtualBox, or the Windows version of QEMU, which would be similar to using WSL in most regards, but that probably wouldn't gain you much over using Cygwin and would still involve gigs of downloads to set up.

I am also wondering why you seem to think a knowledge of semiconductor electronics is necessary, or even useful, for OS development. Trust me, it isn't, not at this level of work anyway. Knowing more about it might give you a better understanding of things like how the L1 and L2 caches and the instruction pipeline work, or how out-of-order operations are performed, but until and unless you get to a point where you are measuring per-cycle timings for different CPU models, it simply won't come up in operating system development. There is no reason to focus on the hardware in a topic that is really all about software.

If you plan to build or modify hardware, that's a different story, and some people here do that sort of thing as well, but that's not related to OS dev for the most part. Even for maker type things such as Arduino and RPi, the only time in programming it that you are likely to need to know the electronics is if you are writing a driver for a custom piece of equipment. Most maker-class programming is done in either C, Python, or even Scratch, with little if any assembly programming needed.

_________________
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
Ordo OS Project
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.


Top
 Profile  
 
 Post subject: Re: new-comer's questions
PostPosted: Tue Apr 10, 2018 1:53 pm 
Offline

Joined: Thu Sep 28, 2017 7:54 am
Posts: 12
Hello, Sholl-R-LEA,

1) thanks for your message, advice and comments.

2) Sholl-R-LEA, you asked me about Linux in my computer. as you know very well, the Cold War was finished, and FSB-KGB and CIA-FBI have close cooperative connections. this is why i will not develop this topic in details, because it could be bad and harmful for my and your health and lives.

i am Russian citizen (i hold only Russian passport), but i am not Russian physicist, because i was educated in one of the NATO countries, and then had worked also in NATO countries. also, i am not a supporter of Russian President and Russian Government - this is why, according the Russian Law accepted by Russian State Duma, FSB-KGB and Russian police have limited (confined) my access to Internet by turning off my Internet connection (via Internet provider), when i switch to Linux. in the past my Internet connection in Linux had worked fine. at present i have Internet connection only in Windows 7 (64-bit).

FSB-KGB, Russian police and Russian President needs only obedient "sheeps and goats" among Russian people. those (including me), who do not follow the stupid politics of Russian President, are the subjects to the different kinds of repressions and pressure from the side of FSB-KGB and Russian police.

3) Sholl-R-LEA, you also asked me about the necessity of semiconductor electronics. ok, i will give you the answer. you are right - to develop OS, one does not need to know about Radio- and Micro-electronics. that is just software programming. you are right.

Sholl-R-LEA, ... i am not young ... in my age i do not think about scientific prizes and honors. i do not setup the goal to develop the selfconsistent OS, like Minix, Menuet, and Kolibry, and to develop super-puper hardware, because this is very-very difficult work-task for one person.
because i am a scientist-physicist i just only would like to know - what are OS, and hardware, how they work and interact with each other. as a result of such my wish, i would like to learn some fundamentals of Assembly languages, and radio- and microelectronics design ... only fundamentals, and, of course, would like to learn and to make coding (in Assembly and C) of such OS parts like a kernel, drivers etc - of course not everything but some basic elements to understand what is is, what it consists from, how the software interacts with hardware etc.

Sholl-R-LEA, ... you know, i am a physicist, and my speciality is computer modelling ... may be, may be this is why i like to experiment, practice, and to learn Assembly (OS) and hardware development, and programming.

i hope that i answered all your questions.

All the best.
Cheers.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 25 posts ]  Go to page 1, 2  Next

All times are UTC - 6 hours


Who is online

Users browsing this forum: SemrushBot [Bot] and 64 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