How to write a simple command line OS?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I have downloaded a MINIX 3 OS, and I run it in parallels desktop on my Mac pro.
the MINIX3 is a .iso file, and I want to know how to write some program and pack it out to a .iso file. and run it by virtual machine(Parallels Desktop)?
what should I do?
I am a Android Developer.
operating-system minix
add a comment |
I have downloaded a MINIX 3 OS, and I run it in parallels desktop on my Mac pro.
the MINIX3 is a .iso file, and I want to know how to write some program and pack it out to a .iso file. and run it by virtual machine(Parallels Desktop)?
what should I do?
I am a Android Developer.
operating-system minix
2
You could refer to the documentation on MMURTL V1.0 found at ipdatacorp.com/mmurtl for some ideas.
– Ben Key
Oct 23 '14 at 3:57
1
I suppose you don't want to spend a few years locked in a dark room and start everything from scratch. You can reuse an existing OS kernel to pack your "program" with. See en.wikipedia.org/wiki/List_of_operating_systems#Non-proprietary, en.wikipedia.org/wiki/Boot_disk, en.wikipedia.org/wiki/Live_CD. What do you want to achieve beyond the colored "Hello World"?
– xmojmr
Oct 23 '14 at 10:34
add a comment |
I have downloaded a MINIX 3 OS, and I run it in parallels desktop on my Mac pro.
the MINIX3 is a .iso file, and I want to know how to write some program and pack it out to a .iso file. and run it by virtual machine(Parallels Desktop)?
what should I do?
I am a Android Developer.
operating-system minix
I have downloaded a MINIX 3 OS, and I run it in parallels desktop on my Mac pro.
the MINIX3 is a .iso file, and I want to know how to write some program and pack it out to a .iso file. and run it by virtual machine(Parallels Desktop)?
what should I do?
I am a Android Developer.
operating-system minix
operating-system minix
asked Oct 23 '14 at 3:50
KrossKross
2281518
2281518
2
You could refer to the documentation on MMURTL V1.0 found at ipdatacorp.com/mmurtl for some ideas.
– Ben Key
Oct 23 '14 at 3:57
1
I suppose you don't want to spend a few years locked in a dark room and start everything from scratch. You can reuse an existing OS kernel to pack your "program" with. See en.wikipedia.org/wiki/List_of_operating_systems#Non-proprietary, en.wikipedia.org/wiki/Boot_disk, en.wikipedia.org/wiki/Live_CD. What do you want to achieve beyond the colored "Hello World"?
– xmojmr
Oct 23 '14 at 10:34
add a comment |
2
You could refer to the documentation on MMURTL V1.0 found at ipdatacorp.com/mmurtl for some ideas.
– Ben Key
Oct 23 '14 at 3:57
1
I suppose you don't want to spend a few years locked in a dark room and start everything from scratch. You can reuse an existing OS kernel to pack your "program" with. See en.wikipedia.org/wiki/List_of_operating_systems#Non-proprietary, en.wikipedia.org/wiki/Boot_disk, en.wikipedia.org/wiki/Live_CD. What do you want to achieve beyond the colored "Hello World"?
– xmojmr
Oct 23 '14 at 10:34
2
2
You could refer to the documentation on MMURTL V1.0 found at ipdatacorp.com/mmurtl for some ideas.
– Ben Key
Oct 23 '14 at 3:57
You could refer to the documentation on MMURTL V1.0 found at ipdatacorp.com/mmurtl for some ideas.
– Ben Key
Oct 23 '14 at 3:57
1
1
I suppose you don't want to spend a few years locked in a dark room and start everything from scratch. You can reuse an existing OS kernel to pack your "program" with. See en.wikipedia.org/wiki/List_of_operating_systems#Non-proprietary, en.wikipedia.org/wiki/Boot_disk, en.wikipedia.org/wiki/Live_CD. What do you want to achieve beyond the colored "Hello World"?
– xmojmr
Oct 23 '14 at 10:34
I suppose you don't want to spend a few years locked in a dark room and start everything from scratch. You can reuse an existing OS kernel to pack your "program" with. See en.wikipedia.org/wiki/List_of_operating_systems#Non-proprietary, en.wikipedia.org/wiki/Boot_disk, en.wikipedia.org/wiki/Live_CD. What do you want to achieve beyond the colored "Hello World"?
– xmojmr
Oct 23 '14 at 10:34
add a comment |
1 Answer
1
active
oldest
votes
Writing a OS, even a simple command line one, is significantly different than application programming that you would see as an Android developer. Parallels Desktop and other virtual machines simulate an enviroment in which an operating system believes it is running on real hardware, so this would be the equivalent of writing a simple operating system on a raw PC.
Some examples of things that you will have to be familiar with to write an operating system from scratch are the following:
- Knowledge of C and Assembly Programming
- Knowledge of the target architecture (in this case, x86)
- Knowledge of the boot process for the particular device
The knowledge needed to really be able to do all of this without a step by step guide takes years of learning and experience with how hardware and software interact, reading datasheets with sometimes missing documentation, etc. This is often experience that is not gained in application development. This is because in Operating Systems, you don't have many of the things you take for granted in application development, such as processes, input/output functions, datastructures such as hash-tables and maps, memory managment etc.
Don't panic! You don't need to know all of this to start developing a simple OS. You can start with a tutorial on how to write a simple operating system which will guide you through all the components and steps needed. There are several sites that provide this, but the best on in my opinion is the OsDev Wiki. There, you will find tutorials and information on OS development that will guide you through the entire process, as well as sample hobby OS's that people have made.
Rather than focus on a command line os that boots from an ISO image, I would go through the tutorial on the wiki found here: http://wiki.osdev.org/Bare_Bones. This will get you started with a very minimal "Hello World" operating system that boots from a floppy image, much simpler than ISO. The tutorial is quite in depth, going into the hardware and software interactions and the boot process.
It has always been my opinion that good developers, even ones who write web or android apps, understand the low level aspects such as assembly and hardware/software interaction. The absolute fastest way to learn such is through tutorials such as this.
Best of luck!
Thank you at all, I did also feel this is too difficult and complex. But I will try it in my best.
– Kross
Oct 23 '14 at 7:22
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f26521024%2fhow-to-write-a-simple-command-line-os%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Writing a OS, even a simple command line one, is significantly different than application programming that you would see as an Android developer. Parallels Desktop and other virtual machines simulate an enviroment in which an operating system believes it is running on real hardware, so this would be the equivalent of writing a simple operating system on a raw PC.
Some examples of things that you will have to be familiar with to write an operating system from scratch are the following:
- Knowledge of C and Assembly Programming
- Knowledge of the target architecture (in this case, x86)
- Knowledge of the boot process for the particular device
The knowledge needed to really be able to do all of this without a step by step guide takes years of learning and experience with how hardware and software interact, reading datasheets with sometimes missing documentation, etc. This is often experience that is not gained in application development. This is because in Operating Systems, you don't have many of the things you take for granted in application development, such as processes, input/output functions, datastructures such as hash-tables and maps, memory managment etc.
Don't panic! You don't need to know all of this to start developing a simple OS. You can start with a tutorial on how to write a simple operating system which will guide you through all the components and steps needed. There are several sites that provide this, but the best on in my opinion is the OsDev Wiki. There, you will find tutorials and information on OS development that will guide you through the entire process, as well as sample hobby OS's that people have made.
Rather than focus on a command line os that boots from an ISO image, I would go through the tutorial on the wiki found here: http://wiki.osdev.org/Bare_Bones. This will get you started with a very minimal "Hello World" operating system that boots from a floppy image, much simpler than ISO. The tutorial is quite in depth, going into the hardware and software interactions and the boot process.
It has always been my opinion that good developers, even ones who write web or android apps, understand the low level aspects such as assembly and hardware/software interaction. The absolute fastest way to learn such is through tutorials such as this.
Best of luck!
Thank you at all, I did also feel this is too difficult and complex. But I will try it in my best.
– Kross
Oct 23 '14 at 7:22
add a comment |
Writing a OS, even a simple command line one, is significantly different than application programming that you would see as an Android developer. Parallels Desktop and other virtual machines simulate an enviroment in which an operating system believes it is running on real hardware, so this would be the equivalent of writing a simple operating system on a raw PC.
Some examples of things that you will have to be familiar with to write an operating system from scratch are the following:
- Knowledge of C and Assembly Programming
- Knowledge of the target architecture (in this case, x86)
- Knowledge of the boot process for the particular device
The knowledge needed to really be able to do all of this without a step by step guide takes years of learning and experience with how hardware and software interact, reading datasheets with sometimes missing documentation, etc. This is often experience that is not gained in application development. This is because in Operating Systems, you don't have many of the things you take for granted in application development, such as processes, input/output functions, datastructures such as hash-tables and maps, memory managment etc.
Don't panic! You don't need to know all of this to start developing a simple OS. You can start with a tutorial on how to write a simple operating system which will guide you through all the components and steps needed. There are several sites that provide this, but the best on in my opinion is the OsDev Wiki. There, you will find tutorials and information on OS development that will guide you through the entire process, as well as sample hobby OS's that people have made.
Rather than focus on a command line os that boots from an ISO image, I would go through the tutorial on the wiki found here: http://wiki.osdev.org/Bare_Bones. This will get you started with a very minimal "Hello World" operating system that boots from a floppy image, much simpler than ISO. The tutorial is quite in depth, going into the hardware and software interactions and the boot process.
It has always been my opinion that good developers, even ones who write web or android apps, understand the low level aspects such as assembly and hardware/software interaction. The absolute fastest way to learn such is through tutorials such as this.
Best of luck!
Thank you at all, I did also feel this is too difficult and complex. But I will try it in my best.
– Kross
Oct 23 '14 at 7:22
add a comment |
Writing a OS, even a simple command line one, is significantly different than application programming that you would see as an Android developer. Parallels Desktop and other virtual machines simulate an enviroment in which an operating system believes it is running on real hardware, so this would be the equivalent of writing a simple operating system on a raw PC.
Some examples of things that you will have to be familiar with to write an operating system from scratch are the following:
- Knowledge of C and Assembly Programming
- Knowledge of the target architecture (in this case, x86)
- Knowledge of the boot process for the particular device
The knowledge needed to really be able to do all of this without a step by step guide takes years of learning and experience with how hardware and software interact, reading datasheets with sometimes missing documentation, etc. This is often experience that is not gained in application development. This is because in Operating Systems, you don't have many of the things you take for granted in application development, such as processes, input/output functions, datastructures such as hash-tables and maps, memory managment etc.
Don't panic! You don't need to know all of this to start developing a simple OS. You can start with a tutorial on how to write a simple operating system which will guide you through all the components and steps needed. There are several sites that provide this, but the best on in my opinion is the OsDev Wiki. There, you will find tutorials and information on OS development that will guide you through the entire process, as well as sample hobby OS's that people have made.
Rather than focus on a command line os that boots from an ISO image, I would go through the tutorial on the wiki found here: http://wiki.osdev.org/Bare_Bones. This will get you started with a very minimal "Hello World" operating system that boots from a floppy image, much simpler than ISO. The tutorial is quite in depth, going into the hardware and software interactions and the boot process.
It has always been my opinion that good developers, even ones who write web or android apps, understand the low level aspects such as assembly and hardware/software interaction. The absolute fastest way to learn such is through tutorials such as this.
Best of luck!
Writing a OS, even a simple command line one, is significantly different than application programming that you would see as an Android developer. Parallels Desktop and other virtual machines simulate an enviroment in which an operating system believes it is running on real hardware, so this would be the equivalent of writing a simple operating system on a raw PC.
Some examples of things that you will have to be familiar with to write an operating system from scratch are the following:
- Knowledge of C and Assembly Programming
- Knowledge of the target architecture (in this case, x86)
- Knowledge of the boot process for the particular device
The knowledge needed to really be able to do all of this without a step by step guide takes years of learning and experience with how hardware and software interact, reading datasheets with sometimes missing documentation, etc. This is often experience that is not gained in application development. This is because in Operating Systems, you don't have many of the things you take for granted in application development, such as processes, input/output functions, datastructures such as hash-tables and maps, memory managment etc.
Don't panic! You don't need to know all of this to start developing a simple OS. You can start with a tutorial on how to write a simple operating system which will guide you through all the components and steps needed. There are several sites that provide this, but the best on in my opinion is the OsDev Wiki. There, you will find tutorials and information on OS development that will guide you through the entire process, as well as sample hobby OS's that people have made.
Rather than focus on a command line os that boots from an ISO image, I would go through the tutorial on the wiki found here: http://wiki.osdev.org/Bare_Bones. This will get you started with a very minimal "Hello World" operating system that boots from a floppy image, much simpler than ISO. The tutorial is quite in depth, going into the hardware and software interactions and the boot process.
It has always been my opinion that good developers, even ones who write web or android apps, understand the low level aspects such as assembly and hardware/software interaction. The absolute fastest way to learn such is through tutorials such as this.
Best of luck!
edited Oct 23 '14 at 6:37
answered Oct 23 '14 at 6:31
DougvjDougvj
4,46011513
4,46011513
Thank you at all, I did also feel this is too difficult and complex. But I will try it in my best.
– Kross
Oct 23 '14 at 7:22
add a comment |
Thank you at all, I did also feel this is too difficult and complex. But I will try it in my best.
– Kross
Oct 23 '14 at 7:22
Thank you at all, I did also feel this is too difficult and complex. But I will try it in my best.
– Kross
Oct 23 '14 at 7:22
Thank you at all, I did also feel this is too difficult and complex. But I will try it in my best.
– Kross
Oct 23 '14 at 7:22
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f26521024%2fhow-to-write-a-simple-command-line-os%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
You could refer to the documentation on MMURTL V1.0 found at ipdatacorp.com/mmurtl for some ideas.
– Ben Key
Oct 23 '14 at 3:57
1
I suppose you don't want to spend a few years locked in a dark room and start everything from scratch. You can reuse an existing OS kernel to pack your "program" with. See en.wikipedia.org/wiki/List_of_operating_systems#Non-proprietary, en.wikipedia.org/wiki/Boot_disk, en.wikipedia.org/wiki/Live_CD. What do you want to achieve beyond the colored "Hello World"?
– xmojmr
Oct 23 '14 at 10:34