Windows on Pi?


155 posts   Page 3 of 7   1, 2, 3, 4, 5, 6, 7
by Flying Toaster » Tue May 01, 2012 1:32 am

Joe Schmoe said:

You're funny - no doubt about it.  I certainly give you props for that.

Your style reminds me a lot of mgmt_idiot - who posted here a few months ago.  No, I'm not making that up - and no, it isn't a slam - that really was his posting ID.  Your style is very similar to his - and it was equally a hoot then as now.


I don't think you realise what exactly is being presented here, and it's that you, not me, are claiming some sort of moral properness to be guaged in the involvement of a software company in a software project, and, as I have pointed out, unless you are suggesting something along the line of IBM in collusion with the Nazi regime, which is by no means a light accusation, then I do think you are owing whoever reading your post some clarification.
Posts: 10
Joined: Mon Apr 30, 2012 3:16 am
by Joe Schmoe » Tue May 01, 2012 1:40 am
Godwin says I just won.  Thank you, one and all.
Never answer the question you are asked. Rather, answer the question you wish you had been asked.

- Robert S. McNamara - quoted in "Fog of War" -
Posts: 2508
Joined: Sun Jan 15, 2012 1:11 pm
by abishur » Tue May 01, 2012 2:03 am
And we're done here.  I don't take kindly to anyone comparing anyone but Nazis to nazis which I don's see anyone but you doing Toaster.

Thread closed.
Dear forum: Play nice ;-)
User avatar
Forum Moderator
Forum Moderator
Posts: 4262
Joined: Thu Jul 28, 2011 4:10 am
Location: USA
by Bakul Shah » Tue May 01, 2012 2:33 am
Flying Toaster said:


I do believe – if I am not mistaken – that the Linux kernel is monolithic, and that means however much NT has in the kernel, there simply can't be any more than what Linux currently does. I do not see this has hindered Linux in anyway to run on ARM-based hardware, however.


Depending upon the source, Windows XP kernel has 40 to 45 million lines of code (MLOC), NT 4 about 11 to 12 MLOC. Linux-2.6 had 5.7 MLOC. I ran the following on the Raspi kernel git repo and it yields 13.5 MLOC.
    find . -name '*.[chly]' -o -name '*.cc' |xargs wc -l | \
grep total$ | awk '{count+=$1} END {print count;}'



Unlike Window, this includes code for many more supported architectures and drivers. On any given target a much smaller subset will be compiled. In comparison the FreeBSD 9.0 kernel has 5.1 MLOC (it also compiles on more platforms than Windows but fewer than Linux). I don't feel like doing an apples to apples comparison (source lines for linux vs FreeBSD for a x86 kernel supporting the same devices) but generally I find FreeBSD kernel code to be simpler. In comparison, the plan9 kernel is 0.24 MLOC!


Because, say, Windows is a popular operating systems? In fact, I am using it right now, all my family members are using it right now, all my friends are using it right now, and my neighbour's cats would probably be using it as well if not for the fact they are cats. Hence, I don't think the question that one should be asking here is "why" but, rather, "why not".


When I had the work Windows machine @ home, my cat used to use it regularly. She used the whole keyboard as a "touch pad" and would often leave the machine in an unusable state -- I discovered a lot of less documented key combinations that way!


I do believe that the userland side of the issue is well taken care of by the existing development frameworks of the platform and, if possible, the involvement of MS. This is not to mention that development tools for Windows are also pretty well-established due to the commercial nature of the platform - and, if I am not mistaken, this ought to take care of the "Computer Science" side of the picture pretty thoroughly.


I think you should consider the following: 1) the windows license would cost a lot more than the Raspi itself, 2) windows apps would cost a lot, 3) Raspi doesn't have enough memory -- expecting it to run windows would be like expecting an 800 pound gorilla to fit in an economy class airplane seat, 4) I don't think Microsoft has shown any desire to port their s/w to the Raspi.

Nevertheless, if you feel strongly, you should champion your cause with Microsoft.
Posts: 292
Joined: Sun Sep 25, 2011 1:25 am
by jamesh » Tue May 01, 2012 10:56 am
I got special permission to write this, and James has kindly agreed to use his supar-mod-powarz to post it. Unfortunately, our ex-friend managed to get the thread killed before I could respond to some of his assertions, and it seemed worthwhile to nip them in the bud before they're used to fuel the next "Wah! Wah! Wah! Why won't you implement Windows" thread.

I should note that I am in no way representing the Foundation, merely pointing out some misunderstandings and fallacies as I see them.

[Admin' note. I wouldn't normally do this, but the points originally made, and Simon's replies are particularly relevant, and indeed quite interesting and well informed, which is why his post has been added after the thread lock]


tufty said:
The original NT kernel was quite nice, but at around the NT 4.0 mark, it started going off the rails, with an awful lot of stuff being brought into kernel space "for performance reasons".


I do believe – if I am not mistaken – that the Linux kernel is monolithic, and that means however much NT has in the kernel, there simply can't be any more than what Linux currently does.



The linux kernel is, indeed, monolithic. Unfortunately, the rest of your assertion is totally wrong.

In kernel terms, what "monolithic" actually means is that drivers run in kernel space, rather than being separate user-space processes, as they would be in a purely microkernel architecture. In terms of "amount of code required" and "amount of code running", of course, this is irrelevant - the drivers need to run no matter what if you want your hardware to work. The main difference between the two approaches is the tradeoff between performance and stability; while a monolithic kernel runs like a doped whippet, it is also subject to broken drivers bringing down the entire system.

The NT kernel circa NT3.5 was a fairly pure microkernel, but with NT 4.0 started to pull not only drivers, but the entire windowing system into kernel space, for performance reasons. This was, for a large part, the reason for the infamous "blue screen of death" so frequently encountered by MS users.



First of all, let's assume we have access to the codebase of whatever Windows variant we want to start from.


Irrelevant. Unless we are looking at some very convoluted division of responsibilities here and the total absence of well-defined APIs, there is no reason for access to soucre code being essentially for any party other than MS itself for the incorporation of Windows to RPi.


In short, "only MS can port Windows to the Pi".



It may be that the Vista/Win7/Win8 family of kernels are still multi-platform, but I strongly doubt it. You'd probably have to start with something at around the Win2K point.


Again, don't get me wrong here, but I do believe I have phrased my question carefully enough to exclude any speculations that are without technical merits. Unless you have something to substantiate your doubt, then I'll simply have to kindly ask you, again, for some substantial evidence to support your claim.


Okay. I cannot point you to code, as what I have seen was under an NDA. I have not seen the Vista/7/8 codebase. I have, however, seen the XP codebase, and there's good reason it doesn't form the base of Windows CE. Windows XP embedded does exist (my chairlift runs it), and is allegedly at least partially based on the XP desktop kernel codebase, but it only runs on x86-alike platforms.



If you want to start from the Win8/ARM codebase, you'd have to backport all the ARMv7 stuff it uses to use ARMv6 equivalents where possible


I am not sure I am missing something here – and pushing aside the fact Windows embedded lines support ARMv6 from the word "go" - but isn't this supposed to be the kind of stuff that you take care of in the compiler?


No. No it's not. It's the kind of stuff that you take care of in source code. There's not an enormous amount of it, but it needs to be extremely stable.



slim the whole thing down to work within the amount of memory available


As I have pointed out several times, this has been done once on the server side of things, and I am not seeing that the Server Core install option is going to vanish in the next release of Windows Server, which, I must add, has always been based on the same things released for the client editions of Windows.


So, like I said, "slim it down". Server Core requires 512MB of ram. You've got 224MB, tops, to play with on the Pi. That's what makes it difficult and a lot of work.



and somehow work out a way of getting it to run at anything above a snail's pace (the Pi's ARMv6 core is *significantly slower per-cycle than a single ARMv7 core, which Win8 is demanding 2 of, and at a significantly higher clockspeed).


...I expect reasoning well-substantiated with technical details...


Okay, then. Win8/ARM requires, as I understand it, at least a dual-core Cortex-A9 processor running at 1GHz+. That's not "this device has this processor", that's the baseline. A single Cortex-A9 core is approximately twice as fast (2.5DMIPS/Mhz) as the Pi's ARMv6 (1.2DMIPS/Mhz); a dual core running at 1.3 times the clock speed is - well - you do the math.

Sure, you can run stuff under the baseline. But platform optimisation is aimed at making the baseline responsive, which leaves you with a platform that's got a processor executing codeat best(okay, okay, I'll do the math) 2 * 2 * 1.3 = around five times slower than the baseline.

You see that 2 GHz machine on your desk that's just about usable for Vista? Downclock it to 400MHz and start developing games on it. That's your Pi running Win8, that is.



The "secure boot" issue is not thorny for ideological reasons, it's thorny for hardware reasons – you can't implement it on the Pi platform. Thus, you are not going to get MS's approval to run Win8/ARM on the Pi unless they decide to throw away that restriction.


I don't see why that would be an issue at all unless I have already formed an opinion on whether they will hesitate to forgo this supposed "restriction". (Needless to say, I have not.)


Meh. MS won't forgo it unless they're forced to do so. It really is that simple. Win8/ARM == hardware lockdown. Remember, they aren't licensing Win8/ARM to just anyone, they are licensing to specific suppliers, for specific platforms, and one of their requirements is that those platforms feature UEFI lockdown.



In what way would it be in the interests of the foundation to do so?


Because, say, Windows is a popular operating systems?


Mere popularity does not make it a good tool for education. I'm not convinced that Linux is the right tool either.



In what way would it be beneficial to have Windows of some variant running on the Pi, given that it's not going to be able to run any existing software.


I do believe that the userland side of the issue is well taken care of by the existing development frameworks of the platform and, if possible, the involvement of MS.


"It's only a recompile away". How many times have we heard that? The same has been said of Windows CE, but go find yourself some software to run on it. Software doesn't magically become available unless developers take the time to port, debug, and package it.

Oh, and Win8/ARM software will only be available through MS's "Windows Store", and *only* code targetting the Win8/ARM APIs will be allowed on that store. So forget getting that odd application you wanted running on it unless the developer is willing to shell out for an account on the store.


This is not to mention that development tools for Windows are also pretty well-established due to the commercial nature of the platform - and, if I am not mistaken, this ought to take care of the "Computer Science" side of the picture pretty thoroughly.


It might, if MS were to target anything other than their own languages. However, it would be significantly easier and cheaper for MS to simply provide a "loss leader" teaching pack to be used on the PCs that schools already have.

Simon
Soon to be unemployed software engineer currently specialising in camera drivers and frameworks, but can put mind to most embedded tasks. Got a job in N.Cambridge or surroundings? I'm interested!
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11517
Joined: Sat Jul 30, 2011 7:41 pm
by liz » Wed May 02, 2012 4:32 am
Thanks Tufty - and given that Toaster has now been banned for some additional very odd passive-aggressive nastiness (see his attempted resurrection of this thread in the Off Topic forum if you're interested, folks), I'm reopening this thread because it's interesting and useful. If anyone else Godwinises themselves, the mods are poised to come down like a ton of bricks. Let's talk about operating systems, not politics.
--
Head of Comms, Raspberry Pi Foundation
User avatar
Raspberry Pi Foundation Employee & Forum Moderator
Raspberry Pi Foundation Employee & Forum Moderator
Posts: 4036
Joined: Thu Jul 28, 2011 7:22 pm
by rurwin » Wed May 02, 2012 8:11 am
Well, OK, but I had to go back to page 2 to find anything to argue with. Except to say <achem>Psion Organiser II</achem> to the guys on page 3. It had non-volatile storage. The III on the other hand did not.

cheery said:


rurwin said:


If all the RaspPi does is force Microsoft to support the teaching of computing, then it will have been a success. It"s only us Linux fanatics who will be crying into our real ale.


Concept such as Raspberry will be not profitable for Microsoft in short run, so once they ´succeed´ monopolizing it, they"ll drop the thing after a short while.

Microsoft is great at the Embrace-Extend-Extinguish cycle, but they do not generally pull out of a market segment that can sustain sales, and I believe that this niche can.

I hate Microsoft as much as any idealist liberal, (I happen to think that a company's first responsibility should be to society, not its share-holder's wallets,) but they do not have to do anything illegal, nor even very reprehensible, to take the market from the RaspPi. All they need to do, as IBM did in 1981, is to sell a product and support it with marketing money.

That may be a disadvantage to the children, because the MS device is likely going to be tied down and only work with a Windows PC etc. However it may be an advantage because MS will spend money on teacher training and support materials. A single source (or single standard) for add-ons may be better or worse than mutliple competing sources.

Time will tell.
User avatar
Forum Moderator
Forum Moderator
Posts: 2902
Joined: Mon Jan 09, 2012 3:16 pm
by bobc » Wed May 02, 2012 6:49 pm
Call me cynical, but I think the only reason that Microsoft would get involved with the 'Pi would be to kill it. Funny thing is, my old mate from Uni is now on the board at Microsoft, but I haven't really spoken to him since then, so I doubt he would take my call ;)

The technical details of an OS are really interesting for the serious coder, and I think it is pretty cool that today anyone can download the source for a serious mainstream OS, examine it, and even build a custom version. That was pretty unthinkable when I started my career. We can thank all those from the Regents of Berkeley through to Linus Torvalds for that.

The impact of having access to technology that was once only the province of Big Corporations is yet to be fully felt I think. Like IBM, I doubt that Microsoft can keep control of the desktop for ever. Microsoft are a grown up company though, I will let them worry about their future ;)

In the meantime, we have a great opportunity to use and explore a fully featured modern OS. I think not making the call to MSFT is a good call by the Foundation.
Posts: 87
Joined: Fri Apr 06, 2012 8:01 am
by tufty » Wed May 02, 2012 6:53 pm
bobc said:


a fully featured modern OS


Not disagreeing with anything else, but Linux is far from "modern".
Posts: 1363
Joined: Sun Sep 11, 2011 2:32 pm
by jamesh » Wed May 02, 2012 7:29 pm
There are very few 'modern' OS's! It seems to me that the theoretical basics of a decent OS have been around for years. Can't think (correct me!) of 'new' stuff being invented/discovered that would make for any more 'modern' OS's than Linux or Windows.
Soon to be unemployed software engineer currently specialising in camera drivers and frameworks, but can put mind to most embedded tasks. Got a job in N.Cambridge or surroundings? I'm interested!
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11517
Joined: Sat Jul 30, 2011 7:41 pm
by bobc » Wed May 02, 2012 7:48 pm
tufty said:


bobc said:


a fully featured modern OS


Not disagreeing with anything else, but Linux is far from "modern".


Yes it is, try using a dictionary.
Posts: 87
Joined: Fri Apr 06, 2012 8:01 am
by jbeale » Wed May 02, 2012 8:15 pm
JamesH said:


There are very few 'modern' OS's! It seems to me that the theoretical basics of a decent OS have been around for years. Can't think (correct me!) of 'new' stuff being invented/discovered that would make for any more 'modern' OS's than Linux or Windows.


Here is one standard text by Tanenbaum, includes Windows and Linux. Publication Date: December 21, 2007.  I'm no expert but I'd say OS progress has been rather incremental since then.
http://www.amazon.com/Modern-O.....0136006639
User avatar
Posts: 1966
Joined: Tue Nov 22, 2011 11:51 pm
by jamesh » Wed May 02, 2012 8:20 pm
bobc said:


tufty said:


bobc said:


a fully featured modern OS


Not disagreeing with anything else, but Linux is far from "modern".


Yes it is, try using a dictionary.


Linux is very similar to Unix, which was started in or around 1971/2. Modern compared to, say, the Pyramids? Of course its being worked on now, so in that respect it's modern. What criteria are you applying to say its modern?
Soon to be unemployed software engineer currently specialising in camera drivers and frameworks, but can put mind to most embedded tasks. Got a job in N.Cambridge or surroundings? I'm interested!
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11517
Joined: Sat Jul 30, 2011 7:41 pm
by jbeale » Wed May 02, 2012 8:32 pm
Correct me if I'm wrong, but I believe Tanenbaum"s book "Modern Operating Systems" is one of the better-known standard references in the field of operating system design.

Of course, Linus and Tanenbaum had a well-known disagreement in 1992, when the latter suggested than Linux is obsolete (in favor of microkernel designs) http://en.wikipedia.org/wiki/T.....lds_debate but, since Linux is in the current edition of Tanenbaum's book…
User avatar
Posts: 1966
Joined: Tue Nov 22, 2011 11:51 pm
by Dave_G_2 » Wed May 02, 2012 8:56 pm
Is Linux modern or not?

Surely the question should be:

Does it really mater?
User avatar
Posts: 196
Joined: Sat Apr 14, 2012 7:04 pm
by RaTTuS » Thu May 03, 2012 8:29 am
UNIX , linux and windows [to some extent] are modern O/S

i.e.

multi user / multi threading

old O/S are single user [or single at any one time]

it is very easy to have 2 ore more people logged into linux machines with their own displays and keyboards simultaneously

but as Dave_G_2 says - does it really matter .
1QC43qbL5FySu2Pi51vGqKqxy3UiJgukSX - Prosliver FTW
"That's not right, the badgers have moved the goalposts."
User avatar
Posts: 4628
Joined: Tue Nov 29, 2011 11:12 am
Location: North West UK
by jamesh » Thu May 03, 2012 9:08 am
I did some reading up on this last night in my Operating Systems Book (1984ish vintage). Multi user/multithreading was introduced in the 60's.....
Soon to be unemployed software engineer currently specialising in camera drivers and frameworks, but can put mind to most embedded tasks. Got a job in N.Cambridge or surroundings? I'm interested!
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 11517
Joined: Sat Jul 30, 2011 7:41 pm
by rurwin » Thu May 03, 2012 9:46 am
@RaTTuS,

You are talking about micro-computers. In the operating system field in general, multi-user and multi-tasking has been the standard since the 1960s. Unix grew up in that company and has only been on microcomputers since they grew powerful enough to run it.

Linux has not changed much since 1991, Unix for as long or longer. Windows has not changed meaningfully since about 1995.

In the meantime there have been advances in the operating system field. For example Inferno offers seamless distributed computing and totally portable binaries. There has been some research into object orientation, but nothing has stuck (not even after Microsoft announced it.) Even in 1991 monolithic kernels (both Linux and NT are monolithic) were old-fashioned. However micro-kernels proved to have their own disadvantages which has allowed Linux to keeps its place in the face of competition from the GNU/Hurd. Linux has since become more modular, but nowhere near as much as for example QNX, which can have every single piece of the operating system swapped out and upgraded without rebooting.

In the main, advances in OS design since 1990 have been incremental and not of interest to the mainstream. This has allowed the mass-market leaders to stay in control. It is probably incorrect however to label them as "modern".
User avatar
Forum Moderator
Forum Moderator
Posts: 2902
Joined: Mon Jan 09, 2012 3:16 pm
by mole125 » Thu May 03, 2012 10:33 am
Dave_G_2 said:


Is Linux modern or not?

Surely the question should be:

Does it really mater?


The forum is half dead at the moment so does it really matter whether it matters? Is it interesting is possibly a better criteria.

So far we've established that multi-user and multi-threading aren't modern concepts in operating design. Motholithic or micro-kernels are just a means to an end and not a feature in themselves so can't really be used as criteria of being modern.

So what would/should a modern/state of the art OS feature? Is it ease of upgrading, or distributing workloads/auto scaling with hardware? Or something else?
Posts: 230
Joined: Tue Jan 10, 2012 2:01 pm
by RaTTuS » Thu May 03, 2012 11:02 am
@rurwin

Thanks
1QC43qbL5FySu2Pi51vGqKqxy3UiJgukSX - Prosliver FTW
"That's not right, the badgers have moved the goalposts."
User avatar
Posts: 4628
Joined: Tue Nov 29, 2011 11:12 am
Location: North West UK
by SN » Thu May 03, 2012 12:24 pm
'modern' is not the word you're interested in, it's 'capable'

'modern' is pointless because the roots of every major OS out there were laid in the 1970's at the latest.

You applevictims are running a 'NIX OS and UNIX was originally born 1969

And Windoze (since the death of ME) can be chased back conceptually back through to DEC VMS which was born in 1975

And don't confuse GUI Appeal with 'capability' either
Steve N – binatone mk4->intellivision->zx81->spectrum->cbm64->cpc6128->520stfm->pc->raspi ?
User avatar
Posts: 1009
Joined: Mon Feb 13, 2012 8:06 pm
Location: Romiley, UK
by mole125 » Thu May 03, 2012 12:43 pm
I agree mostly with what you say but I'm not sure 'capable' is the correct term either.

I think 'near state of the art' is probably closer to what we are interested in - which is approximately what modern normally means if the recent stuff had kept evolving properly and not stuck quite so closely to its 60's roots.
Posts: 230
Joined: Tue Jan 10, 2012 2:01 pm
by rurwin » Thu May 03, 2012 1:14 pm
There are differences between a current Linux kernel and a 1970's OS:


  • modularisation

  • journaled file systems

  • object orientation (file-types and associations)

  • loadable device-drivers

  • Access Control Lists

  • granular authorisation escalation.

  • And of course GUI


And there are a few that haven't made it yet:


  • Distributed computing (except in Beowulf/OpenMOSIX)

  • Deep object orientation

  • Micro-kernel

User avatar
Forum Moderator
Forum Moderator
Posts: 2902
Joined: Mon Jan 09, 2012 3:16 pm
by nick.mccloud » Thu May 03, 2012 1:17 pm
What befuddles me is that lack of radical inovation - we've glued all the CPU cores so closely together and bound it to one main bank of memory that some intelligent multithreaded systems are hamstringed from the start.

I really don't understand why my GUI isn't running on one processing unit rather than this messy part CPU part GPU arrangement, that network activity & downloads take up a bunch of threads on the main CPU and that different activities with different time dependancies take up OS scheduling time.

I emulate such a system in the office by having a main machine plus two others for slave tasks, plus at least one more remote on the internet at my ISP - what would be better would be able to make requests and have it farmed out to an appropriate machine without me having to review resources, workloads etc. Then consolidate all that down in to one machine that has three or more sub sections that can run at full tilt.

Strikes me that a Bramble would be a good low cost way of emulating such a thing as a starting point.
User avatar
Posts: 797
Joined: Sat Feb 04, 2012 4:18 pm
by mole125 » Thu May 03, 2012 1:34 pm
Multi processor/multi core solutions do effectively do that function - a CPU nowadays is made up of multiple processor units as you describe it.

The big issue is data transfer between the cores which is why there is pressure to make them faster and closer together. The concept of having slave jobs being farmed out relies on a mechanism to identify up front what resources the jobs need and how much communication is needed between different jobs. You know as a human that your file donwload job doesn't need to communicate with other processes, but it would be very hard to tell that just by looking at the web browser executable. without any other context.

But you are right, perhaps the problem here is that programmers and programs and operating systems are all written in a fundamentally procedural and single threaded manner - they might be designed for multiple users but the base assumption is that each process is still a single monolithic thread of execution.

Maybe we need to break away from our C and Posix heritage of writing operating systems and instead start with a language designed from the base up for distributed processing (such as go? http://golang.org/) and accept that existing programs may need significant rewriting?
Posts: 230
Joined: Tue Jan 10, 2012 2:01 pm