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;
}







1















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.










share|improve this question


















  • 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


















1















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.










share|improve this question


















  • 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














1












1








1


1






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.










share|improve this question














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






share|improve this question













share|improve this question











share|improve this question




share|improve this question










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














  • 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












1 Answer
1






active

oldest

votes


















4














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!






share|improve this answer


























  • 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












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
});


}
});














draft saved

draft discarded


















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









4














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!






share|improve this answer


























  • 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
















4














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!






share|improve this answer


























  • 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














4












4








4







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!






share|improve this answer















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!







share|improve this answer














share|improve this answer



share|improve this answer








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



















  • 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




















draft saved

draft discarded




















































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.




draft saved


draft discarded














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





















































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







Popular posts from this blog

How to send String Array data to Server using php in android

Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

Is anime1.com a legal site for watching anime?