What is a 16 bit real mode OS? [closed] - operating-system

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
I am working on making a boot loader. I don't know anything till now. I am learning. What is a 16 bit Real mode OS ? What does "Real Mode" means

Read more about X86 and its real mode
In short, it is painful, and exists today for historical reasons.
Why do you work on a boot loader? Did you consider using GNU GRUB to load whatever kernel software you want to load? At least, study the source of some existing boot loader like Grub or LILO

"16 bits" means that that's the size of a "word" as recognized by the CPU (though memory may be organized into bytes, etc). It also implies that the memory address will not be substantially larger than 16 bits, but that gets to be a fuzzy area.
"Real mode" means that the memory is addressed without using any memory-mapping hardware. Ie, the address 1234 in a CPU register will, when used to reference memory, fetch the value at the physical location 1234 in RAM. Usually also implied is that there is little in the way of memory "protection" -- at most just a CPU register than reserves space above or below a certain address as "read-only".
Old original MS DOS would be considered to fall into this category, as would the original Apple II operating system, and many others that are mostly forgotten. Even some fairly large early computers (ie, multiple 6-foot-tall racks of equipment) operated in this mode.

I suggest having a look at James Molloy's Kernel Development Tutorial which introduces you to using GRUB and booting your kernel you can learn to write.

Related

Writing an operating system for arm architecture [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
How do I get started writing an operating system that runs on the arm architecture? I want to write a bootloader if possible and my own kernel. Can anyone help me get started?
I'd start by familiarising yourself with what is already out there - Linux is a good start. Look at the bootloaders used in the distributions on the rPi - what is used in Debian Squeeze for example, uBoot and BareBox. Another option is CFE - which is under BSD license and good during debugging/early development.
Another thing is to look at the ucLinux and ucLibC systems, along with buildroot and OpenWRT - all designed to squeeze it onto a small system.
Of course - building your own kernel - you are going to want to go far deeper - and spend time understanding MMU's, process management/multitasking, interrupts and so on. A good background in programming microcontrollers, a knowledge of assembler language and CPU/SOC architecture would be essential. With the ARM family - you'll want to know the various instruction sets supported, and which chips have features like MMU's, FPU's and similar.
Good luck - it sounds like an interesting project.

Why the programs which run on Windows don't run or MAC or Linux [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
If the compiler converts the high level language (like C++, for example) to the machine code to be executed by the Microprocessor.
Why can't the programs which run on Windows run on Mac or Linux?
As long as a high-level program really is written 100% in C++ or another language and uses no external code at all, it is in fact relatively easy to make it compile on any OS with a compiler, and it will behave in the same way.
The difficulty is that virtually every program uses libraries of the OS, e.g. for Input/Output, UI drawing etc., and these are different on every OS under the sun. In practice, it is impossible to get anything realistic done in a computer program without taking advantage of the massive amount of helper code present in the OS, or in libraries shipped with the OS. This is what makes porting harder - usually not actually difficult, just tedious.
Because a lot of your calls are referencing elements of the OS.
Like drawing, acessing the filesystem. These calls have to be translated, like Java or Qt.

Building my first operating system [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
I am a programmer with a good knowledge on Java, C, C++ and Ruby.
I know just got an idea of building an operating system, so I bought an empty hard disk and I connected to my SATA cable removing it from my old hard disk. I am somewhat aware of assembly language.
Now my problem is how to start my first program on the hard disk just like adding two numbers or something. Previously, I used micro processor kit to write my assembly level programs (also used MASAMS software).
Will you please let me know for the bare system without any kernel only by having some boot startup program in motherboard how to write programs?
I would suggest starting with a virtualization approach though, it will be much easier to debug and build for.
Once you have something a little more stable you can try it out on actual hardware.
Apart from reading up on the topic (I suggest buying a book or two), maybe you can start by looking at existing projects such as GeekOS for inspiration.
Good luck with your venture!
What you probably want is to write a boot sector program. This should help you. Also note you won't have any of the OS's facilities for printing to the screen so you will need to use the BIOS functions. I recommend you use a VM first instead until you get it right before trying to do it on an actual hard drive. Good luck!
I recommend you to start from MikeOS . It has preliminary introduction to assembly programming and all the tools you need to start your own OS ( including assembler, pc emulator, etc ), and also a very simple operating system which helps you to dive in .
After that, when got familiar with basics, you may want to take a look at OSDev for much more serious stuff . There a lot's of tutorial in there that you can make use of.

Instructions per second for iPhone [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
This is a bit of a generic question.
I am working on an iOS cocoa-2d game which involves complex path finding algorithms. The game is turn based. So before each user's turn I would like to calculate all possible paths. This involves running a lot of data manipulation commands and allocate and releasing simple data objects (no I/O) I am guessing about a million instructions are required to calculate all the paths each turn. Could the iPhone 3GS, 4 and 4G perform this at a fraction of a second, assuming the game is using a single thread.
In general how many instructions per second can be achieved within the game. I am looking for a guesstimate very high level figure.
This greatly depends on the type of "instructions" used in your algorithm or calculation, how they are scheduled by your compiler, and how you count them.
In extremely rough and coarse terms, the ARM CPUs currently used by Apple can issue on the order of 1 integer instruction per clock cycle, and the ARM processor cores used in iOS devices reportedly range in clock speed from 400 MHz to 1 GHz. A high ratio of floating point, multiply or divide instructions or cache misses may significantly change the actual instruction issue and retirement rate.
But the best way to get an accurate estimate would be to compile and benchmark your actual code on your target iOS device.

What is an Operating System (with respect to embedded systems)? [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 11 years ago.
I have seen Operating Systems described as "the software that controls the hardware". I don't understand what it really is however.
For example, if we are writing code for a calculator, if we write the code to implement the interface between the LCD and KEYPAD, that code is not considered an operating system is it?
what really does "Operating System" mean?
Jack, the wikipedia page on operating systems gives a pretty good overview to start with. To put it pretty simply, when you want to run multiple pieces of software on a single piece of hardware (in your case, the ARM chip) then something needs to control the access to the hardware. The operating system will schedule tasks and allocate hardware to allow the multiple different bits of software to co-exist peacfully. Without this control, there is no way to run multiple pieces of software at once. Your calculator example would not require an operating system, as it is a single piece of code to do a single job.
For compilers for the ARM devices, I would suggest looking at either GCC (which I believe can cross compile to ARM) or getting a development kit, which will likely come with a suite of tools to allow you to develop on it.
I'm afraid I can't help you on which version of ARM chips to choose though, as my experience with them is a little limited. If price of the hardware is an issue though, I believe the ARM 7 hardware will be cheaper, but it is always worth comparing.
Hope this helps.