+ 6
Can python be used to develop an operating system considering it is a high level language
Operating Systems
11 Respostas
+ 8
I don't know if it can be done, but I think it probably shouldn't.
Usually you want your operating system to spare as many resources as possible and run efficiently - because you don't want it to be in the way, when you're using your computer for whatever you're using it.
With applications, you can decide whether they should run quickly, be memory-efficient or whatever on a case-by-case basis.
Like when you're programming stuff that's not so hardware-challenging, you might go with Python, because writing is quick and simple.
But when you need to do crazy processing, like in a 3d game or something, you'd choose a language that makes for quicker code.
With an OS, you don't really have that choice - because it will always be running in the background, whatever you play on top of it.
So it should probably be quick, small and rather invisible.
I'd like to hear what more knowledgeable people say though.
+ 5
When developing an operating system you're required to have direct access to certain memory regions and communicate with hardware.
Python, being a high level language, cannot do these tasks.
In the early stages you don't even have the functionality in place to support its allocation and garbage collection.
You don't even have support for global variables in C yet.
Assembly and C are the go-to languages.
Assembly is used to switch the processor from real mode ( a 16 bit compatibility mode ) into protected mode and load in the kernel.
+ 4
Yes it's possible
+ 4
Do you know that the fastest operating systems even use fortran instead of c to just increase the speed a little bit. Fortran is I think at least 5 times harder to code than c and it's syntax is barely close to assembly. On making a operating system all that matters is the speed. Which is opposite of python.
+ 3
And what if you make a python interpreter run in background. I mean, what if the python interpreter is THE main part of the system?
You can write some c / asm functions for basic I/O and running task and make python interpreter run all the apps.
Then you have :
- kernel + routines wrote in c / asm
- the python interpreter with all that functions linked, so that it can be called in python
- the applicative part (all written in python)
+ 2
Possibility is low but yea sure it can be
+ 2
Mirielle🐶 [Inactive] it could support networking and graphics.
You can create c / asm basic functions for networking, for example, then link them to Python functions. The python interpreter will just be an abstract level. Then, in that os, you can't create native apps in compiled langages, because all apps run with the Python interpreter. But you can still create low-level program in Python by calling the right low-level functions. Thus, you can even create a graphical interface in python, or a filesystem!
About threads, why not creating a specific new Python interpreter that can run threads better? Definitely possible.
+ 2
{ __ƒαянαn__ } I know that. I never said that it has to be fast. It only has to be fast enough, so that you can't see that it is written in python. That can work perfectly on recent processors.
I never said I wanted to build an os in python, and if I've to build an os later, I'll never use python (asm and c instead, of course!). I just wanted to let you think about the possibility of writing an os in python.