Windows XP Embedded on HTC devices? - Windows Mobile Development and Hacking General

Hi folks
Recenty I got the Windows XP Embedded kit, and I was really satisfied and surprised with the performance of the directly built system on an old machine like a P1 @ 200 MHz with 64 MB of RAM, without a hard disk.
The main goal would be to run truly win32 apps on mobile devices, to give better functionality and compatibility.
Yet the builder supports x86 architecture only, but cannot be a big problem to port it to ARM pocessors.
What might be difficult are these things:
-Getting win32 drivers for built-in devices (ex. integrated SDIO/USB WLAN, BT adapter, touchscreen, and sound devices, and apps for them!)
-Saving user data on turning off (Ebmedded systems are designed for a workstation, like a cash register: prebuilt apps, and nothing more comfort ) like WM200x
If anybody has any suggestion are to get a warm welcome
bye

Yet the builder supports x86 architecture only, but cannot be a big problem to port it to ARM pocessors.
Click to expand...
Click to collapse
Are you kidding me?
This would mean reverse engineering and recompiling every binary in the OS.
Do you have any idea how many hours something like that would take?

yup, you're right, but in theory it's possibe. I've seen a running DOS on a Microchip micro-controller, or for example the Atmel STK 1000 is Linux based, also seen an mPlayer app operational on the demo board at the college.
as you see, i'm not an experienced programmer, but i'm not afraid to ask
Yeah, the basic low-level binaries must be recompiled, and once it's ok, it might be usable with regular win32 apps, until you run an old DOS app, wich directly access the hardware.
A few years ago i was able to port Z80 software to 8086, and it wasn't easy.
I don't really know these things, just want to see opinions, possibilities, and suggestions.

exe files are binarys which are instructions directly for the cpu
it's not parsed by the operating system
so compiling the os is not enough every application needs to be recompiled too

The programs you mentioned have source available in one way or another (since DOS is very old there are clones, like freeDOS).
If you have the full source for an app and the right compiler, porting it to another CPU is feasible.
But, this is not the case with embedded XP. Getting the full source is impossible which means most of the system will have to be rewritten from scratch.
Just look at the Wine project to see what it takes, and they "have it easy" - they are just trying to simulate the APIs not change processor architecture. (Lets make it clear - ARM instruction set is very different from x86).
And as Rudegar said it will not let you run any program that has not been specially compiled for ARM CPU.
I know it sounds like we are trying to kill you idea here but its nothing personal, unfortunately it just isn't feasible. We would all like to be able to run desktop apps on our devices, but simply having embedded XP on them would not accomplish that. Also while many old DOS apps can be run using various emulators like pocketDOS, almost all Win32 apps take more resources than our little gadgets can offer.
I am fairly sure though that in 5 -10 years that problem will be fixed.

<_< man hours or not, reveng'ing this will have a bigger impact than just winDOS Mobile devices. Desktops have a use for this, definitely (because the Vista-Only crap is starting to hit the market). Too bad they don't provide assembly in programming classes anymore, obviously because they don't want anyone else to reverse engineer anything and spoil their foisting fun. <_<
In any case, IIRC XP Embedded is missing the install/uninstall engine, so you can't customize it after it's flashed onto the board. This isn't quite a good start - XPLite or 98Lite are better for reverse engineering from scratch (but they're too powerful for mobile devices).
The other alternative is porting ReactOS, which is a reimplementation of W2K. Those guys are "having a lot of fun" getting things to work, tho. <_<

Maybye Windows CE6 yes, but Windows XP Embedded no, because they must run at 686-AT/X platform IMB. Sorry of my English

linux would be a path
with most linux programs you can compile them yourself
using good old
./configure
make
make install
of cause gui programs could have issues displaying correct
on such a small screen

You MIGHT be able to pull it off by installing a minimal (very!) WinMo firmware and then have it autorun Bochs, which is known to be able to run the PC version of XP.. A customised, thinned-down XPe image should run fine under Bochs.
--W5i2

Related

how to run symbian software on xdaII

hello to all
I want to run one application who is designed for symbian on my xdaII,I have sis (installer) and files extracted from sis (app,rsc,aif),but I need to know how to make conversion of application.decompile from symbian and recompile for pocketpc.also I want to know convert win32 applications to run on pocketpc.
any info is wellcome.
I dont know if this is any help.
http://symbian.compactbyte.com/
http://www.inf.u-szeged.hu/gcc-arm/
this is completely impossible
What a wish...
Like asking to run all Windows Apps on LINUX OS - without using an intermediary !!
rgs/DD
You will require the source code for each application and then rewrite everything to be compatible with the other operating system.
Very unlikely to happen. You may be able to use an emulator, eg for the Palm OS, but not generally symbian (eg p900) <> WinCE so far.
V
Porting Win32 apps shouldn't be too difficult as scene as the WinCE API's and the Win32 API's are pretty much similar in most respects. However full access to the source code and a lot of spare time would be an essential. Porting apps from Symbian would be to say the least stupid, you may as well write the app yourself from scratch than try and port code written for a completely different architecture!
From what I've read it is possible to port Symbian type apps to Windows Mobile & vice versa. I would like to try porting the New Flashlite 3 to WM. Anyone have any links to resources that may help? The reason is that adobe has stated that it does not intend to port the new FL3 to the WM platform.
no it's not. you'll need to have the sources first. and then you'll need to restructre the whole sourcecode to match the api.
if you want youtube ... take flash 7 for ppc.
NVM... I see that I can possibly use some of the engine code but must completely rework the GUI...
BTW, flash 7 will NOT give you youtube, although YT has nothing to do with the ???
Thx.

Linux under virtualization?

Ok, so I'm not anywhere near the kind of programmer to be able to do this, since I pretty much just know basic, and a tiny bit of ANSI C, but I'm a Wallaby user, and would love to run Linux on my phone as my primary OS, but, as you all know, its far from usable on the Wallaby...
If the ARM processor supports virtualization, couldn't someone who's a much better coder than me write a virtual machine to run Linux on some more of these unsupported phones? I know its a bit on the "ugly hack" side, but it would give more people more freedom of choice.
It seems to me that it should be possible to emulate some already-known versions of the parts in the phone (such as lcd, gsm, usb, sd/mmc, etc) and just control the real thing through the windows api.
Correct me if I'm wrong, but it seems to me that this could be an excellent way to make Linux work reliably on MOST windows mobile phones, at least until real compatibility is achieved. I know that it would be slower than the real thing, but hey, its better than nothing!
Under powered by far!
Virtual machines are highly inefficent methods of running code, especially for what you are proposing.
Think how slow the Java VM is for running even the most basic of Apps.
Now, you may point out that Xen and the like run virtual machines inside Linux - however these have to be specifically compiled for the hardware... which brings us write back to the problem we started with - Linux wont compile properly for the smart phone hardware.
Perhaps a more attractive solution is to look at porting Cygwin and all the Xcygwin tools to windows mobile. Again I have no real idea of how practical this is!
jummama said:
I'm a Wallaby user, and would love to run Linux on my phone as my primary OS, but, as you all know, its far from usable on the Wallaby...
Click to expand...
Click to collapse
Wallaby is full of custom ASICs. Given the limited number of developers it's simply not worth investing time.
Otherwise, there is not techinical reason why Linux will not tun on Wallaby.
Ah well, just thought I'd throw it out there.. see what you all think of it. I just figured that it could be done at a reasonable speed, after seeing what virtual pc and vmware do on the pc, but maybe not. But yeah, what about the porting of cygwin to windows mobile? That seems to me like it would be quite a reasonable solution for a lot of phones.

IDE to run on WM...

I think here is the right place to ask
Do u know/is there any C/C++ IDE that can actually run on WM?
I do not mean writing apps for WM. I mean writing, compiling (and y not debugging) programms directly on the PDA.
And generally is there such an IDE for any other programming language?
thx in advance
there is some for c# .net
and pocketVI support some c not to compile to native code or a real IDe though
I don't even think the pocket pc is powerful enough (yet) to handle the task of compiling software (unless you get a real os on there like linux).
I dont know if this is what you are looking for, but you can try Basic4PPC
I've tried it and I love'd it!
Rudegar said:
there is some for c# .net
and pocketVI support some c not to compile to native code or a real IDe though
Click to expand...
Click to collapse
yes i've seen that! i guess u r talking about http://www.geocities.com/hrowson/wm5_software/index.htm
just wondering if there are similar IDEs for other langs, like C, C++
Steven855 said:
I don't even think the pocket pc is powerful enough (yet) to handle the task of compiling software (unless you get a real os on there like linux).
Click to expand...
Click to collapse
hm.. i do not think that compiling is such an intensive task.. Well if u have like 5000 lines on ur windows mobile sure will take long..
But generally testing smal progs etc would be fine i think
Compiling is not something that came out with along with the fast CPUs!
What is more, the HD has a pretty fast CPU (i think!). Still remember that my first desktop PC's CPU was around 500MHz (!)
fredamexis said:
I dont know if this is what you are looking for, but you can try Basic4PPC
I've tried it and I love'd it!
Click to expand...
Click to collapse
u can use it to write progs directly @ ur PDA? (withour PC)
thx i will check it anyway!
See this thread: http://forum.xda-developers.com/showthread.php?t=445396
The following will compile (I've tried them) on the phone:
PocketGCC (FREEWARE)
Pocket C# Combo (Everything you need to compile and write apps for WM-- FREEWARE)
However, they do have limitations.
I'm completely positive FPC can be made to run on ARM. I'd say the chances of getting Lazarus (*the* FPC IDE) to run on WM are 30% out-of-the-box, and 70% after a day of hacking
The real question is... WHYYYY!?!?!?!?!?! would you want to?
LiKBeAsT said:
hm.. i do not think that compiling is such an intensive task.. Well if u have like 5000 lines on ur windows mobile sure will take long..
But generally testing smal progs etc would be fine i think
Click to expand...
Click to collapse
Dude seriously, compiling is a very CPU intensive task. 5000 lines? That is exactly one nothing in code terms.
Compiling is not something that came out with along with the fast CPUs!
What is more, the HD has a pretty fast CPU (i think!). Still remember that my first desktop PC's CPU was around 500MHz (!)
Click to expand...
Click to collapse
Oh please. My first desktop PC's CPU was 4.77mhz (with a turbo switch to 8!) and I'm considered a newbie in that area. While 500mhz is not necessarily slow, HTC hasn't produced a fast device in over two years. The HD is a horribly slow device.
Just a guess, but I'd say that the HD should still be fine for compiling. No floating point operations and no graphics.
Limitations to compilation probably memory size and memory speed, more than anything else? This will be a particular problem for C++, especially if you're doing anything more than minimal templating.
And putting Linux on it won't suddenly make it much better at compiling things - very little of this will be reliant on the OS subsystem.
ajige said:
See this thread: http://forum.xda-developers.com/showthread.php?t=445396
The following will compile (I've tried them) on the phone:
PocketGCC (FREEWARE)
Pocket C# Combo (Everything you need to compile and write apps for WM-- FREEWARE)
However, they do have limitations.
Click to expand...
Click to collapse
yea checked that out but it also had many other stuff and i wasn't sure about what i was asking
Chainfire said:
I'm completely positive FPC can be made to run on ARM. I'd say the chances of getting Lazarus (*the* FPC IDE) to run on WM are 30% out-of-the-box, and 70% after a day of hacking
The real question is... WHYYYY!?!?!?!?!?! would you want to?
Click to expand...
Click to collapse
erm.. i guess for fun, testing small progs and keep in touch with the lang when away from PC
Chainfire said:
Dude seriously, compiling is a very CPU intensive task. 5000 lines? That is exactly one nothing in code terms.
Oh please. My first desktop PC's CPU was 4.77mhz (with a turbo switch to 8!) and I'm considered a newbie in that area. While 500mhz is not necessarily slow, HTC hasn't produced a fast device in over two years. The HD is a horribly slow device.
Click to expand...
Click to collapse
Well, obviously i ammuch more younger (going to 20!) So my first PC was turbo-machine
Anyway! i guess nobody is going to use PPC IDE for that big progs and of course yes. they will take hours to compile (i guess)
Fast is a bit subjective i think.. What do u mean horribly slow? in terms of CPU, response time etc?
Thx everyone for the input!
PPC is pretty fast. You feel it is slow just because it has too many bad designed apps slow it down (must have while(1000) {Sleep(1000)} inside! no joking, I did see it sometimes!) and it has lack of good graphic driver (or chipset) so your TF3D has to use software to simulate semi-transparent effects and support z-order by allocating large buffer and repeatedly copy them.
Try pocketdos (or bochs emulator), you can run a windows 3.1 on ppc.
Then you can use TC, or old version of VC++/VB/Delphi etc on windows 3.1/dos
Considering emulator running on a real machine usually ~100 times slower than virtual machine, and ARM processor is a RISC chipset usually faster than CISC, your PPC is much faster than a Pentium even some Pentium III computer.
You may not understand how RISC faster than CISC. a function call in x86 cpu usually like
PUSH param1
PUSH Param2
Call function1 ( which push IP and stack again)
and more PUSH inside the function1.
it involves a lot of memory operations. memory is out of CPU so it is low.
A function call in ARM cpu usually like
MOV R0, param1
MOV R1, param2
BL function1 (which set return address in a register)
It doesn't use memory at all. everything is done within processor.
Pentium and after that solve this bottle neck by adding cache. But your code may not in cache when switching context. RISC is naturally faster.
ARM in general can be fast. However in MSM7K devices it usually isn't. All floating point operations for example are done in software, not hardware - this is why a lot of stuff is slow (try for example a Samsung chipset based on ARM, they are much faster for a lot of things). Hardware floating point is an absolute must for any multimedia related thing, and can affect any multiplication or division (and similar) where your compiler does not know at design time whether it will be an integer operation or not.
Furthermore, TF3D is actually one of the few things on these devices that actually does use hardware graphics acceleration.
Even then, while I do agree that RISC in general can be faster than CISC , no compiler worth its salt will use a stack-based calling convention (at least for non-exported functions) unless explicitly specified to do so. Register based function calling exactly like you give for your ARM example is quite normal on x86 as well.
And yes, my old and rusty 500mhz Pentium laptop literally ran circles around any MSM7K.
As far as I known compiler or IDE almost doesn't need float pointer operations at all.
386SX or 486SX works well and fast with old version of VB and VC.
That was an example for why MSM7K was slow. Even if it isn't applicable to compiling, it's still a slow-ass chip
Meme IDE
you could try this...its not c# or c++ but very similar
Build with a drag and drop editor. Develop complex functions using the unique MemeScript. A language created to make elements simple and cohesive on any platform.
It is currently in beta release and at the moment you can develop for Android and WM. IOS will be included in the full release and Blackberry further down the line.
OH and its FREE
find out more or download and play with it at www.memeapps.com
joememe said:
you could try this...its not c# or c++ but very similar
Build with a drag and drop editor. Develop complex functions using the unique MemeScript. A language created to make elements simple and cohesive on any platform.
It is currently in beta release and at the moment you can develop for Android and WM. IOS will be included in the full release and Blackberry further down the line.
OH and its FREE
find out more or download and play with it at www.memeapps.com
http://www.memeapps.com/
Click to expand...
Click to collapse
it is worth to try after the running download. Thank's for the hint.

Replicate phone environment on PC?

Hey, I am entirely new to Android development. Is it possible to run Android OS inside a VM Player on my PC running Windows 7? I've done this with several flavors of Linux, but I dont know enough about how Android operates.
I'm not talking about just a development sandbox... a fully-functional installation of Android with networking capabilities would be the goal. Does anyone have experience with this?
First one with helpful answer gets a free iPad!!*
*some restrictions apply
----
EDIT: seriously, has nobody ever done this
Yes - see http://www.android-x86.org/
You can download a live cd version of Android compiled for x86 machines, and install it in your VM of choice. - Just pick Linux 2.6 as the host OS when creating your VM
(Though the Android emulator that comes with the SDK is pretty much fully functional, too, and more representative of an actual phone, since it's running Arm instructions rather than x86)
Cool, thanks for the tip
I havent played with the Emulator yet, or really gotten my hands dirty. Does the emulator just allow you to test your program, or does it emulate the entire OS- destop, applications, settings and all?
What I would really like to do (not sure if possible) is to do all the configuration for my phone OS via my PC, then just save the image and copy it to the phone. Starting to think this might not be easy
SilverStrings said:
I havent played with the Emulator yet, or really gotten my hands dirty. Does the emulator just allow you to test your program, or does it emulate the entire OS- destop, applications, settings and all?
Click to expand...
Click to collapse
The emulator in the SDK gives you pretty much a full phone environment (It's missing stuff like the google branded apps, but there are ways around that...)

[POLL] What OS do you use?

Just curious to see exactly how many people actually use Linux or OSX a.k.a the only OSes you can build Android on which IMO all Android devs should be using
I'm running Manjaro, an Arch based distro
Sent from my ASUS_Z00AD using Tapatalk
Jhdoubleoseven said:
Just curious to see exactly how many people actually use Linux or OSX a.k.a the only OSes you can build Android on which IMO all Android devs should be using
Click to expand...
Click to collapse
Haha still on win 7...Waiting for win 10
Jhdoubleoseven said:
Just curious to see exactly how many people actually use Linux or OSX a.k.a the only OSes you can build Android on which IMO all Android devs should be using
Click to expand...
Click to collapse
There are virtualization options availible for Windows such as cygwin I've used in the past that can help.
PC Gaming Master Race (Windows). Proud. xD
8.1 on one xubuntu 15.04 on another
Sent from my ASUS_Z00AD using XDA Free mobile app
Jhdoubleoseven said:
Just curious to see exactly how many people actually use Linux or OSX a.k.a the only OSes you can build Android on which IMO all Android devs should be using
Click to expand...
Click to collapse
I'm using fedora but why should all android devs use linux? I think you should use whatever you're comfortable with
Niropa said:
I'm using fedora but why should all android devs use linux? I think you should use whatever you're comfortable with
Click to expand...
Click to collapse
Because:
1) Android is a Linux system so if you wanna develop it it's best to know Linux up close and personal
2) Building Android things (like ROMs) on Linux is much more straightforward
3) Linux systems are much more secure and generally more stable (not related to Android, just in general)
4) Microsoft is a corporate evil that restricts the freedom of its users and encourages the use of proprietary software
OSX is also guilty of the same evils as Windows with the exception that OSX is a Unix system and therefore enjoys many of the same benefits as Linux
I've been a linux user since 1998, I'm comfortable building programs from scratch, used to build my own kernel (prior to 3.x) and have modified kernel modules to add support for some devices.
Having said that, I tried to build a kernel and system for an Android device some long time ago, did have the source tree for the device, but it always failed because some blob was missing or some source file had incorrect references to other files. I just tossed the towel, mainly because compilation took forever just to fail at the end. Besides I had to download like 40GB to set up the build environment.
Having previous linux experience did not help me much, as Android was different enough to what I knew. This was at the time gingerbread was the latest version ( Android 3 devices existed, but that's another story).
Hopefully things have changed, if so I might give it a try again.
Sent from my ASUS_Z00AD using Tapatalk
Jhdoubleoseven said:
Because:
1) Android is a Linux system so if you wanna develop it it's best to know Linux up close and personal
2) Building Android things (like ROMs) on Linux is much more straightforward
3) Linux systems are much more secure and generally more stable (not related to Android, just in general)
4) Microsoft is a corporate evil that restricts the freedom of it)sers and encourages the use of proprietary software
OSX is also guilty of the same evils as Windows with exception that OSX is a Unix system and therefore enjoys many of the same benefits as Linux
Click to expand...
Click to collapse
1) android is very different then any Linux distribution, as glock said having previous experience on Linux does not help much.
2) I agree with that point because Linux comes with a lot of tools needed to compile but if that's the only reason you need Linux for then it's better to just run it as a secondary OS on a virtual machine.
3) now that's a very silly point, Linux is only more secure because its more obscure then other operating systems and saying it is generally more stable is just wrong. With windows I had rarely any problems. With any Linux distribution I get very bad screen tearing, audio stops working after a reboot, many packages (steam for example) don't work without hours of troubleshooting and file transfers to my phone or music player make at least one song on every album sound like it got thrown in a blender and got chopped up before being transfered. There are many more problems which don't help my android development. When iI could be updating my ROMs I can't because I'm busy troubleshooting why my distribution decided not to pass grub.
4) that's also a very silly point stallman. With that logic you should not be using phones either because they contain proprietary blobs. The play store is proprietary. Most websites you visit are proprietary (including github which is needed for android development) your mp3s are proprietary, even your computer that you think is running all free software iis running a proprietary BIOS. I could go on all day about the proprietary software you use but I'm on my phone
Niropa said:
3) now that's a very silly point, Linux is only more secure because its more obscure then other operating systems and saying it is generally more stable is just wrong. With windows I had rarely any problems. With any Linux distribution I get very bad screen tearing, audio stops working after a reboot, many packages (steam for example) don't work without hours of troubleshooting and file transfers to my phone or music player make at least one song on every album sound like it got thrown in a blender and got chopped up before being transfered. There are many more problems which don't help my android development. When iI could be updating my ROMs I can't because I'm busy troubleshooting why my distribution decided not to pass grub.
Click to expand...
Click to collapse
I work for a major IT company. All system administrators- Window, Unix, Mainframe, or DBA have to use Linux as their OS because it is more secure than MS Windows. The base multi-user model of Unix makes it more secure, then add things like SELinux, and becomes very hard to compromise.
Your garbled songs sounds like you are disconnecting your device before all the files have finished transferring. Your screen tearing sounds like you are using a software or frame buffer driver instead of the accelerated driver for your video chipset. Sound can be a pita at times. A newer distro solved my issues (meaning updated kernel drivers) with sound. For Steam, I think I had to enable a repo, then just 'yum install steam'. It is not so much Linux is difficult as it is different from what you are used to.
alose said:
I work for a major IT company. All system administrators- Window, Unix, Mainframe, or DBA have to use Linux as their OS because it is more secure than MS Windows. The base multi-user model of Unix makes it more secure, then add things like SELinux, and becomes very hard to compromise.
Your garbled songs sounds like you are disconnecting your device before all the files have finished transferring. Your screen tearing sounds like you are using a software or frame buffer driver instead of the accelerated driver for your video chipset. Sound can be a pita at times. A newer distro solved my issues (meaning updated kernel drivers) with sound. For Steam, I think I had to enable a repo, then just 'yum install steam'. It is not so much Linux is difficult as it is different from what you are used to.
Click to expand...
Click to collapse
Lol nice assumptions but no. I can assure you I'm not disconnecting it before its finished transferring, my only guess is it has something to do with libmtp and the way it handles file transfers which must be different then other operating systems. I use the open source amd drivers which give me screen tearing. I noticed proprietary drivers fixed it but then when I reboot its just a blank screen that iI cant be bothered to troubleshoot. I have steams repo enabled and it iinstalls fine with dnf but I can't figure out how to get it to actually open. Opening with the command line doesn't give me any errors to work with either sadly. Also as I stated in an earlier post I use fedora and am much more experienced with Linux then any other OS. I'm also on the latest kernel released (4.0.6 I think? I'll have to double check) and I still get issues with pulseaudio.
With all that being said I'm not trying to bash Linux and say windows is better,(like i said i use fedora myself and have been using other various distros for the past several years)my point was that you should use whatever works best for you and won't get in your way.
All runing linux
Jhdoubleoseven said:
Just curious to see exactly how many people actually use Linux or OSX a.k.a the only OSes you can build Android on which IMO all Android devs should be using
Click to expand...
Click to collapse
2 laptop, raspberrypi, game pc, media pc, kib pc, all running flavor of Linux.:good:
Windows ME.
Posted using my phone.
Niropa said:
Lol nice assumptions but no. I can assure you I'm not disconnecting it before its finished transferring, my only guess is it has something to do with libmtp and the way it handles file transfers which must be different then other operating systems. I use the open source amd drivers which give me screen tearing. I noticed proprietary drivers fixed it but then when I reboot its just a blank screen that iI cant be bothered to troubleshoot. I have steams repo enabled and it iinstalls fine with dnf but I can't figure out how to get it to actually open. Opening with the command line doesn't give me any errors to work with either sadly. Also as I stated in an earlier post I use fedora and am much more experienced with Linux then any other OS. I'm also on the latest kernel released (4.0.6 I think? I'll have to double check) and I still get issues with pulseaudio.
With all that being said I'm not trying to bash Linux and say windows is better,(like i said i use fedora myself and have been using other various distros for the past several years)my point was that you should use whatever works best for you and won't get in your way.
Click to expand...
Click to collapse
I definitely see your point. I guess it really depends on what you hardware you use Linux on; I run Arch on my old HP G71 from 2011 with an Intel Core 2 Duo and everything runs amazingly. The only issues I've ever had is pulseaudio (which magically fixed itself after some time) and a few crashes due to me using a custom kernel (linux-ck). In fact, the only problems I've ever had are completely due to a mistake on my part.
With the Microsoft it was mild sarcasm with a big point: pretty much everything in Windows is closed source. Pretty much everything in Linux is open source (depending on what distro you use, of course). I'm not afraid of proprietary; I run Plex Media Server and Google Chrome. But I made that choice to run those programs. Just like I made the choice of what window manager to run; how to log in to my system (I go through startx now); how to play music (mpd); how to interface with my network. All of these were choices I made in building my system from the ground up -- even with distros like Ubunutu you can still replace basically whatever you want. That's what I meant when I said that Windows takes away your freedom.
Mint 17 on C720 i3 Chromebook here!
Jhdoubleoseven said:
Because:
1) Android is a Linux system so if you wanna develop it it's best to know Linux up close and personal
2) Building Android things (like ROMs) on Linux is much more straightforward
3) Linux systems are much more secure and generally more stable (not related to Android, just in general)
4) Microsoft is a corporate evil that restricts the freedom of its users and encourages the use of proprietary software
Click to expand...
Click to collapse
1) Tools to build apps for Android are cross-platformed. Using Eclipse IDE under Windows i compile every my app and don't see any restrictions making me want to migrate to Linux.
2) VirtualBox + Ubuntu solve this problem completely.
3) Not more secure and definitely not more stable. You can setup Linux to be less secure and setup Windows to be more secure. And if you compare how many side (i mean apps not included in distro) apps you use in Windows and in Linux, you will find the answer about security. Even light usage of Linux (mostly for kernel compilation and some AOSP code) produces different services/apps crash. So, if i would use Linux as i'm using Windows, there will be even more crashes.
What i really hate in Linux is how much time it requires to be prepared for some non-generic environment. If somehow happen distro doesn't provide required package (even from dedicated support server), or more worse if package version is different from required, then be prepared for "sex" with Linux. You can spend a lot of time to compile and most likely to fix incompatibilities in source code. Sometimes such preparation takes several days. And then when you are prepared, you can compile that code in 5 minutes. Nope.. Such productivity isn't for me. In most cases i even don't expect compilation because i simply want to use some utility. And then i find that pre-compiled version doesn't work. Because there is very low compatibility between different versions of Linux. Even binary compiled for Linux release couple years ago may not work in more modern Linux (unless it statically linked, but even in this case there is no warranty). And if it doesn't work, see my description about preparation to compile it
Btw, both VirtualBox and VMWare require special drivers for guest Linux to properly support folder sharing and VM window handling. And these drivers have to be recompiled with every minor kernel version update. This is IMHO very lame for Linux. Even after some kernel update (through standard distro package manager, so it's very minor update) VMWare stop to compile its drivers. So i have to find why and then patch the source code. And i often ask myself "Why i have to do this crap again and again?"
In Windows, i can take binary compiled for Windows XP, and use it in Windows 10. Interoperability of binaries between versions of Linux is a big red sign for me.
I was trying to migrate to Linux several times already in the past 10 years. And every time i find my self spending most of time for side tasks than my main projects.
Another thing i don't like in Linux is GUI. Not the design. It's OK for me to adapt to new interface. KDE or XFCE are fine. What i don't like in Linux GUI is how it works. Sometimes it lives its own life. Some windows appear when i don't expect, or i forgot about it already. It looks like GUI threads are running not in sync (or in very weak sync) with main code. I prefer MS Windows behavior when app tries to open the window, i cannot do anything. So, i know, something will happen soon. On Linux it's always a guess game "will some new window appear or app simply ignores my input."
4) From other side, you can see standardization of APIs and stable for many years SDK in Windows. As a software developer i care about it very much. There is no restriction for Open Source projects.
Absence (or nearly absence) binary compatibility between Linux versions, very flexible and often changing APIs can be considered as an additional security mechanism, but I'm against such methods.
---------- Post added at 06:01 AM ---------- Previous post was at 05:36 AM ----------
P.S: About "Android is a Linux": it's completely wrong.
Android is an OS with high level of abstraction when it comes to devices.
To make this abstraction, Linux kernel is used. Nothing to do with Desktop Linux here.
Generally speaking, any kernel could be used to make this abstraction. It could be OpenBSD and even Windows kernel. Android wouldn't be different. Google choose Linux kernel to be free from other software developers - that's the only reason.
sorg said:
1) Tools to build apps for Android are cross-platformed. Using Eclipse IDE under Windows i compile every my app and don't see any restrictions making me want to migrate to Linux.
2) VirtualBox + Ubuntu solve this problem completely.
3) Not more secure and definitely not more stable. You can setup Linux to be less secure and setup Windows to be more secure. And if you compare how many side (i mean apps not included in distro) apps you use in Windows and in Linux, you will find the answer about security. Even light usage of Linux (mostly for kernel compilation and some AOSP code) produces different services/apps crash. So, if i would use Linux as i'm using Windows, there will be even more crashes.
What i really hate in Linux is how much time it requires to be prepared for some non-generic environment. If somehow happen distro doesn't provide required package (even from dedicated support server), or more worse if package version is different from required, then be prepared for "sex" with Linux. You can spend a lot of time to compile and most likely to fix incompatibilities in source code. Sometimes such preparation takes several days. And then when you are prepared, you can compile that code in 5 minutes. Nope.. Such productivity isn't for me. In most cases i even don't expect compilation because i simply want to use some utility. And then i find that pre-compiled version doesn't work. Because there is very low compatibility between different versions of Linux. Even binary compiled for Linux release couple years ago may not work in more modern Linux (unless it statically linked, but even in this case there is no warranty). And if it doesn't work, see my description about preparation to compile it
...
Click to expand...
Click to collapse
Actually, every distro is binary compatible -- binaries are based on the processor, so every Linux x86-64 computer can run any binaries on my Arch Linux system. You're either referring to package compatibility, as different distros use different package managers, or just that you don't have all the dependencies (such as the libraries required to run).
Secondly, I'm surprised to hear how many crashes and issues you have with Linux... I easily get an uptime of 30 days+ without a single issue and then choose -- not get forced -- to reboot because my kernel is out of date. I've heard Ubuntu has given people issues but I use Arch which required me to know my hardware to install exactly what I need -- nothing more. Arch, being rolling release and up-to-date, is amazingly stable and also ensures you are in the driver's seat.
Thirdly, while you're right that you can have a secure Windows, the problem is how freely Windows gives out root permissions -- it's just asking for malware. Especially if you make youeself an admin, have fun running as root 24/7. Any *nix OS has an incredibly strong user system -- my system itself has over 20 users on it even though I am the only human who uses it. The other 19 users run programs and keep privileges separate. That and Linux is open source, so instead of like 1000 people looking through the source code you have over 10,000 eyes that may see any vulnerabilities. Windows "security through obscurity" is absolute crap; I will gladly use Windows once they go open source and I can get rid of that bloated UI and use something I have full control of.
Like you said, it really depends on a lot of things... however, as a power user I could never go back to Windows. I need freedom and transparency; Windows offers neither. Definitely don't think less of people who use Windows; some people want things to just work and don't care about anything else. I like things to work exactly like I want them to work and to be in control of what goes on with my computer. It's really just preference; my system is constantly changing and I configured everything myself. It's hard to describe, but when your OS becomes a project -- your project -- that you put time and effort in to get working like you want it's a really gratifying feeling
Jhdoubleoseven said:
or just that you don't have all the dependencies (such as the libraries required to run).
Click to expand...
Click to collapse
Exactly. Sorry for wrong wording.

Categories

Resources