operating-system


Is it possible to create an OS that can run all application?


Just a thought, if we have to make our application cross-platform, then is it possible to create a cross-application OS?
Technically yes as long as you limit the scope of all to all applications that run on major OSes.
It is theoretically possible to create an OS that could handle applications run on the 4-5 most common OSes but the amount of work involved would be monumental.
Every time a new feature was added to any of the OSes, you'd need to add it to your OS too - So as well as being almost impossible to build, you'd need a large enough dev team to stay ahead of 4-5 of the largest dev teams/groups in the world.
No.
Lets say you do go and invest - a monumental amount of - effort in building you're Uber-OS (that will run Mac apps, Linux apps, Unix apps, Android apps, i-phone apps, Nokia apps, Symbian apps, SAP apps, Windows Apps etc).
Then there's nothing stopping someone writing a new OS that you don't support.
P.S. And there are hundreds (if not thousands) of different hand held devices out there for scanning products, weights and mesures etc many of which have their own flavour of OS.
No but with virtualization you could have a single computer that can run any application.
First there is the practical impossibility of successfully following the evolution of an indefinite number of operating systems. Do we take embedded OS into account? How about one-shot OS for specific applications? How about proprietary OS with no access to documentation?
Then there is also the - very difficult, if not impossible - problem of merging the various paradigms used in the wild. Ideally you would want OS services like the clipboard, or networking or ... or ... to work in a uniform way and allow applications to cooperate as if targeted to the same OS.
(Let's not even think about the various hardware-dependent applications.)
After all this, you should also consider what the application development for your own OS would be like...
I wonder if this is a good case for Gödel's incompleteness theorems :-)
PS: That said, there are quite a few projects attempting to bridge the various OS gaps:
http://en.wikipedia.org/wiki/List_of_computer_system_emulators
http://en.wikipedia.org/wiki/List_of_emulators#Operating_System_emulators
What you can do is use virtual machines, such as VMWare's software, and emulate several operating systems on the same physical machine.
What do you define by an operating system that can run all applications?
Applications are mostly written in a higher level language and then translated into binary code that differs between machine architectures (like Intel and PowerPC) and operating systems (like Windows or Unix-based systems).
Java for example is only cross-platform because not the language itself is cross-platform (any high level language is), but because there exist Java virtual machines for different architectures and operating systems that abstract the heterogeneity of the underlying system.
It is definitely not theoretically impossible (nothing is except for some mathematical problems), but can you imagine what one would have to do in order to make such a thing work? You can basically run Linux programs in Windows with CygWin, you can also run Windows programs in Linux with Wine. All of those try to create a small operating system (e.g. the Windows core) into your other OS (e.g. Linux). This is probably not what you want.
To summarize, I can't imagine anyone really trying to do that. With all the money in the world, seriously. Better invest in writing native apps for the operating systems you want to support.

Related Links

What does the kernel do while another process is running
Not able to understand fork() system call clearly?
Process termination by his parent or other processes
Using SIMD instructions in application oriented to multiple platforms and OS
Identify operating system
Do CPU and main memory need drivers to work?
Page frame number vs. Page table entry
About FAT-32 File System
Does a virtual address always translate to a physical one
How does the Virtual Memory Management System determine the backing store location in the disk?
Paged virtual address translation using a linear page table
Condition for deadlock to happen
Upating page table when an entry is evicted from TLB
what is the difference between kernel and system software?
Does a 64 bit runtime run faster than a 32 bit?
Start add2ress of the page in memory?

Categories

HOME
hpoo
google-chrome
webview
class
shinyapps
seedstack
enums
dry
hdfs
website
biztalk
visual-studio-2010
semantic-web
docker-cloud
twitter-fabric
gallery
angular2-template
specifications
clickable-image
lda
fbloginview
graphdb
pm2
live-streaming
bundler
squid
web-deployment
fosuserbundle
checkout
tfsbuild
xsl-fo
significance
psql
angular2-highcharts
node-webkit
activeadmin
weex
pymongo
animated-gif
firemonkey-style
strophe.js
openbravo
history.js
gravity-forms-plugin
windowsiot
rust-cargo
fotorama
caesar-cipher
osx-lion
db2-luw
xerces-c
nsuserdefaults
microsoft-ui-automation
spring-restcontroller
windows-store
flowchart
haar-classifier
expandablelistview
latexml
sendinput
vesta
kitura
absolute
section508
ptvs
allegro
boost-compute
cefpython
nsrunloop
zynq
android-4.2-jelly-bean
maven-release-plugin
timestamping
exists
distributed-cache
xcopy
vimperator
directx-9
highest
hmisc
postal-code
swagger-maven-plugin
algebraixlib
gflags
android-audiomanager
microsoft-expression-web
xml-signature
fileshare
autonumber
sensormanager
pacman
spiral
significant-digits
ckeditor.net
lynx
multiple-dispatch
workflow-manager-1.x
java.lang.class
type-safety
quartz-core
dynamic-c
ios-4.2
sscli
fgetc
asdoc
processors
regioninfo

Resources

Database Users
RDBMS discuss
Database Dev&Adm
javascript
java
csharp
php
android
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App