Archive

Posts Tagged ‘Kernel’

Linux 2.6.28 released for all the good l33tle boys and girls!

December 26th, 2008

Linus Torvalds just released Linux Kernel 2.6.28 today as an Christmas present to all the good (and not evil) l33tle-big boys and gals around the globe. This brings a whole host of new cool bits and bobs thats sure to get people excited (Ext4 being one and the GEM Memory Manager) read all about it in the Linux Kernel Newbies guide.

Some addtional juicy reading incase your stuck with the inlaws for some ‘family’ time:

Enjoy!

Developer, Kernel / Internals, Linux/Unix, Operating Systems, hardware , , , , , , , , , , , , ,

Microsoft Releases Singularity 2.0 Research Development Kit (RDK)

November 18th, 2008

Microsoft has just unleased the initial release of the Singularity 2.0 Research Development Kit (RDK). Singularity is a research operating system started around 2003 by Microsoft Research to write an OS in managed code. The inner-workings of Singularity taken from Wikipedia:

The lowest-level x86 interrupt dispatch code is written in assembly language and C. Once this code has done its job, it invokes the kernel, whose runtime and garbage collector are written in Sing# (an extension of C#) and runs in unsafe mode. The hardware abstraction layer is written in C++ and runs in safe mode. There is also some C code to handle debugging. The computer’s BIOS is invoked during the 16-bit real mode bootstrap stage; once in 32-bit mode, Singularity never invokes the BIOS again, but invokes device drivers written in Sing#, an extended version of Spec#, itself an extension of C#. During installation, Common Intermediate Language (CIL) opcodes are compiled into x86 opcodes using the Bartok compiler.

This new release brings some funky changes:

  • Support for AMD64 64-bit platforms
  • Updates to the Bartok MSIL-to-native compiler and the Sing# compiler
  • A new, more modern and extensible bootloader
  • Several new applications and application documentation
  • Eventing support
  • More extensive ACPI support
  • A unit testing library
  • A ramdisk device
  • An SMB client service
  • Can now check out the most recent version of the Singularity RDK directly from CodePlex source control

Its released under Microsoft’s shared source academic license which in basically means you can do what you like, just don’t make any money out of our hard work.

For convenience there’s even an ISO already baked ready to slap into a Virtual Machine :-)

There are others that deviate from Singularity that tackle the use of a managed operating system slightly differently and I wrote about them a while ago.

.NET / CLR / C#, Developer, Kernel / Internals, Operating Systems, Windows , , , , , , , , , , , , , ,

Ubuntu 8.10: Intrepid Ibex Released!

October 31st, 2008

With the amount of coverage surely to be taken by Windows 7 we can’t forget the other side of the force, Ubuntu 8.10 Intrepid Ibex was released a few hours ago.

Believe it or not I actually stayed up waiting for it to hit the servers, then hopped over to the iinet FTP server (mirror’d by the Internode servers also) as the 3FL Mirror (Westnet) wasn’t up to date (it is now!) and started leeching the sucker.

8.10 brings:

  • Linux Kernel v2.6.27 - which has the new Atheros driver, improved webcam support and support for the UBFIS file system, among other things documented on KernelNewbies.
  • Support for the UBIFS file system - especially for SSD/Flash drives in the hope it will improve performance and longetitivity of such devices.
  • GNOME v2.24 - which brings a slew of improvements including a tabbed nautilus.
  • X.Org v7.4 - includes Xorg-Server 1.5 which brings faster startup/shutdown times, hot-plugging for input devices.
  • Network Manager 0.7 - which adds 3G and PPPoE connectivity
  • Dynamic Kernel Module support - recompiles kernel modules automajically when kernel is updated.
  • LOTS more, documented in the 8.10 Release notes.

Mono 2.0, Python 2.6 and OpenOffice 3.0 didnt make the cut but will be present in 9.04 already dubbed the Jaunty Jackalope.

Download Ubuntu 8.10 and give it ago. For a complete look at Ubuntu 8.10, checkout these reviews:

Whilst I’ve had to hurry off to work with barely a few hours of sleep I did catch a few minutes of usage after a speedy install thanks to the USB installation method.

Developer, Linux/Unix, Operating Systems, software , , , , , , , , , , , , , , ,

Going Deep: Inside Windows 7 with Mark Russinovich

October 29th, 2008

If you like discussions about deep internals you’ll most definately have subscribed to the Going Deep series on Channel 9. Today they just released a fascinating interview with Kernel Guru, Mark Russinovich - of Sysinternals fame, who is now a Technical Fellow at Microsoft. One of my favourite books would have to be Windows Internals 4th Edition, and reference it quite frequently. Cant wait for the 5th edition!!!

One very important change in Windows 7 kernel is the dismantling of the Spin Lock Dispatcher and redesign and implementation of its functionality into separate components. This work was done by Arun Kishan (you’ve met him here on C9 last year). The direct result of this great work is that Windows 7 can scale to 256 processors and enabled the great Landy Wang to tune Windows Memory manager to be even more efficient than it already is. Mark also explains (again) what MinWin really is (heck, even I was confused. Not anymore…). MinWin is present in Windows 7.

There are some really interesting topics covered in this video, especially the content behind the scheduler and the thread dispatcher.

Channel 9 Going Deep: Inside Windows 7

Download Offline versions: WMV | WMV HD | MP4 (iPod) | ZUNE

.NET / CLR / C#, Developer, Kernel / Internals, Operating Systems, Security, Windows, Windows 7, software , , , , , , , , , , , , , , , , , , ,

Linux Kernel 2.6.27 Released, Linus offers some behind the scenes info too!

October 11th, 2008

Linus just released Linux Kernel 2.6.27 to the stable tree after 9 release candidate releases. Some highlights include:

2.6.27 add a new filesystem (UBIFS) optimized for “pure” flash-based storage devices, the page-cache is now lockless, much improved Direct I/O scalability and performance, delayed allocation for ext4, multiqueue networking, an alternative hibernation implementation based on kexec/kdump, data integrity support in the block layer for devices that support it, a simple tracer called ftrace, a mmio tracer, sysprof support, extraction of all the in-kernel’s firmware to /lib/firmware, XEN support for saving/restorig VMs, improved video camera support, support for the Intel wireless 5000 series and RTL8187B network cards, a new ath9k driver for the Atheros AR5008 and AR9001 family of chipsets, more new drivers, improved support for others and many other improvements and fixes.

You can read more about the changes on Linux Kernel Newbies guide on Linux 2.6.27.

If you’ve been looking into the very heavily publicised and incredibly serious Intel Network adapter e1000 corruption bug then you’ll be glad to know that it seems that its fixed (which was initially put into 2.6.27 -rc9). If you grabbed any of the Ubuntu Intreprid Pre-releases then you may have been affected - though later the modules were black-listed.

Now that Linus has started blogging, he gives a unique glimpse into the release process and how it differs from that of his previous company Transmeta.

So I tagged the release five hours ago, and during the few days before that I had barely a score of commits to merge. But now that I have cut the release, my mailbox is starting to come alive with merge requests for the next version - with thousands of commits queuing up for merging in just a few hours, as opposed to the slow trickle in the days that went before.

This is all exactly as it should be, of course, but it still feels bass-ackwards, in that people always talk about the death-march to a release, and how you’re supposed to take a well-deserved vacation after the release.

For example, when I worked for Transmeta, the hardware people would basically take a month off after doing a tape-out. That seems somewhat natural just deserts. But when it comes to Linux development the “tape-out” of making a release acts the other way around. The calm was before, now comes the week or two of crazy merging.

Read more on his blog post about On Making Releases. One wonders when he actually takes any form of vacation to relax without carrying around a lappy.

Developer, Linux/Unix, Operating Systems ,

Managed Operating Systems & COSMOS - C# Open Source Managed Operating System

September 21st, 2008

Writing an operating system in Managed Code is not entirely a new concept but its quite an interesting one. The fact that we have AOT compilers gives us this ability to write such things. This post is a little guided tour or information dump on COSMOS as I worked through the initial bits this weekend.

Background Information

Unlike a JIT compiler - where the initial source (say C# or Java) gets translated into an IL (like MSIL in .NET or Bytecode in Java) which then gets to native code when run (via the .NET CLR or the Java VM), an AOT compiler transforms the source directly to native code - which implies its compiled for a specific architecture and feature-set (eg. x86 binary). Currently there are a couple (in .NET land) to choose from - SharpOS AOT and the IL2CPU project written by the Cosmos guys.

This ensures that the OS can be written entirely from managed code, unlike other attempts like JNode, JavaOS (both of which are Java based and include some ASM & C routines for the initial boot) and the Microsoft Singularity project - which uses some Assembler & C (for the interupt dispatcher) and C++ code to get things moving.

Pweety Screenshots

Side by side pretty pictures of some Managed OSs:

COSMOS

This weekend I took a bit of a look-c of COSMOS, which differs greatly from Singularity. The COSMOS compiler - called IL2CPU, written in C# - converts all the IL code generated to assembler (not to be confused with a .NET Assembly!), thereafter the assembler files are processed by NASM which generates compliant native x86 code. Eventually though, the COSMOS guys hope to generate native directly without the need for NASM. This process is quite streamlined and if you download the COSMOS User Kit you can get COSMOS + booted up and running in minutes! Its way coool!

The User Kit page has all the goss on getting it setup, I tried out Milestone 2, but some helpful  hints…

  • Dont install to the default Program Files folder (especially on Vista!) put it into a non-Windows oriented folder.
  • After installing and integrating into VS.NET, use the QEmu option to try it out - VMWare resources arent distributed it seems, as QEmu is already shipped theres nothing more to do.

After you have it installed, load VS.NET and create a new ‘COSMOS Boot’ project. The default template is shown below:


using System;
using Cosmos.Build.Windows;

namespace CosmosHelloWorld
{
class Program
{
#region Cosmos Builder logic
// Most users wont touch this. This will call the Cosmos Build tool
[STAThread]
static void Main(string[] args)
{
var xBuilder = new Builder();
xBuilder.Build();
}
#endregion

// Main entry point of the kernel
public static void Init()
{
Cosmos.Kernel.Boot.Default();
Console.WriteLine("Welcome! You just booted C# code. Please edit Program.cs to fit your needs.");
while (true)
;
}
}
}

Essentially, this boots the COSMOS kernel and displays “Welcome! You just booted C# code. Please edit Program.cs to fit your needs.”, quite simple. Run it and you’ll get the COSMOS Build Options window to help you deploy it - for simplicity select QEMU, hit build and watch the magic of the IL2CPU and other tools come together and build your OS and run QEMU. The output should be something like this (with differing paths ofcourse!):

BuildPath = ‘D:\R&D\Cosmos User Kit\’
ToolsPath = ‘D:\R&D\Cosmos User Kit\Tools\’
ISOPath = ‘D:\R&D\Cosmos User Kit\ISO\’
PXEPath = ‘D:\R&D\Cosmos User Kit\PXE\’
AsmPath = ‘D:\R&D\Cosmos User Kit\Tools\asm\’
VMWarePath = ‘D:\R&D\Cosmos User Kit\VMWare\’
VPCPath = ‘D:\R&D\Cosmos User Kit\VPC\’
Now compiling
Initializing IL2CPU… This may take a minute so please wait for further status…

Recognized Plug methods:

System_Boolean__System_Array_TrySZBinarySearch_System_Array__System_Int32__System_Int32__System_Object__System_Int32__

IL2CPU Run took 00:00:05.3281467
Please wait…executing D:\R&D\Cosmos User Kit\Tools\nasm\nasm.exe…
Please wait…executing D:\R&D\Cosmos User Kit\Tools\cygwin\ld.exe…
Now creating ISO
Try removing ‘D:\R&D\Cosmos User Kit\cosmos.iso’
Try removing ‘D:\R&D\Cosmos User Kit\ISO\output.bin’
Try copying ‘D:\R&D\Cosmos User Kit\output.bin’ to ‘D:\R&D\Cosmos User Kit\ISO\’
Running mkisofs
Please wait…executing D:\R&D\Cosmos User Kit\Tools\mkisofs.exe…
Please wait…executing D:\R&D\Cosmos User Kit\Tools\qemu\qemu.exe…
Press enter to continue.

The Build agent runs IL2CPU which outputs the ASM, which then goes through to NASM who hands it over to GNU Linker. Then we bake an ISO which gets booted by QEMU. Couldn’t be easier :-)

A man can dream Oh yes a man can dream

There are some incredibly exciting ideas are floating around about how to make the most of COSMOS and what can be fully realised on the Scenarios Page and an interview at Obsethryl Labs on COSMOS and another on SharpOS which is interesting reading.

Next time I’ll start poking around some more and see where it gets me.

.NET / CLR / C#, Developer, Java, Operating Systems, Windows , , , , , , ,

Ubuntu 8.04.1 LTS Released

July 4th, 2008

Ubuntu 8.04 was released when I was in Japan, but it didnt stop me from downloading it - sucked it up at ~5Mbps which was bloody ridiculous!

Now we can finally get our hands on the first update to this LTS, Ubuntu 8.04.1 which contains - amongst a slew of bug-fixed packages - Firefox 3.0 Final. More information on the changes are posted on the Ubuntu mailing list release notification.

I’m still running 7.10 on the server at home - until I get the bawls (and time!) to redo the lovely server ZEUS has become to be! In the meantime, my Dell M1330 is upgrading to the 8.04.1 release as I write.

Grab a copy of Ubuntu 8.04.1 today!

On a side note, just recently saw the release of Sabayon Linux 3.5 which brings some really cool things to the table, I’ve downloaded the LiveDVD and considering giving it a go.

Linux/Unix, Operating Systems , , , , , , , , , , , ,