Chris Donnan : Programming - Brooklyn Style
software, trading, family, fun
Posted .net, c#, linux, programming on Sunday, June 24th, 2007.
Via Matt (lots of good refs there usually) - here is an interesting post on “hacking away” to get silverlight running on Linux - in just a few days!!! Great stuff.
Posted linux, trading on Wednesday, September 20th, 2006.
I was doing some of my normal reading this evening. One of the more interesting things that I was reading was - again - regarding some news from Wombat today: Wombat Raises the Bar Again in High Performance Market Data Race on Intel, Novell, and Voltaire Technologies. Interesting - read the news - I found it while reading at another publication that I have read front to back since last night - AutomatedTrader.net. what a fantastic new publication - really!!! Anyhow I am off topic now. In short - Wombat is king in low latency data - enough said!
The Wombat speed records are awesome - but the real purpose of this post is to talk about SUSE Linux Enterprise Real Time. My main desktop has been Suse for ~the past year. I have had lots of attempts at making my MAIN machine linux over the past several years, but Suse was the 1st linux distro that let me make it my primary OS. I do not know how I missed it - but man is this real time Suse interesting! This statement sums up what they are shooting for here “SUSE Linux Enterprise Real Time, is the low-risk, high-performance, real-time Linux solution for complex financial services applications.”. Red Hat has such a huge enterprise finance market share - I am curious to see what happens with Suse Linux Enterprise Rea Time.
Some bullet points:
True Real-time SUSE Linux
Built on the SUSE Linux kernel, Real-Time Extensions is specifically engineered for real-time enterprise computing needs. Real-Time Extensions provides a single-kernel environment that directly controls all system operations. Complex real-time applications require that file I/O, networking and graphics be controlled deterministically together with real-time tasks. Only Real-Time Extensions ensures this determinism.
Guaranteed Response Time
In multiprocessing systems, Real-Time Extensions allows individual CPUs to be shielded from interrupt processing, daemons and other Linux tasks. Processor shielding provides a highly deterministic environment where interrupt response and transaction execution time is guaranteed. Real-Time Extensions offers a guaranteed kernel response time of less than 30 microseconds.
Scalable SMP and Processor Shielding
In tightly-coupled symmetric multiprocessing systems, SUSE Linux Enterprise Real Time allows individual CPUs to be shielded from interrupt processing, daemons, bottom halves, and other Linux tasks. RTE processor shielding provides a highly deterministic execution environment where interrupt response and the time it takes to execute a transaction can be guaranteed.
Multithreading and Preemption
The SUSE Linux Enterprise Real Time Linux kernel allows multiple processes to execute in the kernel simultaneously. The kernel protects key data structures and critical sections of code with semaphores and spin locks to preserve system integrity.
Processes executing in the RTE kernel can also be preempted, i.e. forced to relinquish a CPU involuntarily. The RTE kernel can transfer control from a lower priority process to a higher priority process except when the lower priority process is executing in a critical kernel section. To provide deterministic response, many critical sections of the kernel have been tuned and optimized to dramatically shorten non-preemptable conditions. These changes are key to allowing a high-priority process to respond immediately to an external event, even when the CPU is currently in use.
Semaphores internal to SUSE Linux Enterprise Real Time also support priority inheritance to prevent priority inversion when multiple threads of an application are competing for operating system resources.
Single Kernel Environment
SUSE Linux Enterprise Real Time is a standard Linux designed to fully support time-critical applications. RTE provides a true single-kernel programming environment that directly controls all system operation. Complex time-critical applications often require that high-speed file I/O, networking and graphics be performed deterministically together with real-time task scheduling. Only RTE’s single-kernel design ensures determinism and high-speed performance of all these features.
Frequency-Based Scheduler
SUSE Linux Enterprise Real Time’s Frequency-Based Scheduler (FBS) is a high-resolution task scheduler that enables the user to run processes in cyclical execution patterns. FBS controls the periodic execution of multiple, coordinated processes utilizing major and minor cycles with overrun detection. A performance monitor is also provided to view CPU utilization during each scheduled execution frame.
Real-Time Clock & Interrupt Module
SUSE Linux Enterprise Real Time supports Concurrent’s Real-Time Clock & Interrupt Module (RCIM), a multifunction PCI card designed for time- critical applications that require rapid response to external events. Eight programmable timers and twelve input and output external interrupt lines are available. Any interrupt source can be distributed to other systems for synchronizing multi-system applications. The RCIM also includes a high-resolution synchronized clock to provide a common time base across multiple systems. A GPS option allows system time to be synchronized with GPS standard time. High-stability crystal oscillator options provide for accurate time keeping without an external time source.
Needless to say - I will be following SUSE Linux Enterprise Real Time closely! Leave it to Wombat to be taking advantage of all the possible leverage points available. They are a great example of smart, motivated, experienced people - in the field - delivering empowering technology.
-Chris
Posted computer hardware, linux, programming on Monday, July 3rd, 2006.
Well…. Since I got my new machines as seen in these posts, I re-org’d my home network setup slightly.
I have 2 ~300 gb external firewire drives. I use these as my ‘primary’ and ‘backup’ drives. Everything permanent goes on the primary and the backup is cloned daily. These drives are setup under Meme - a Suse machine. They are shared out to the LAN using NFS for other linux machines and Samba for other Windows clients.
- 2 ~300 gb external firewire drives. ‘primary’ and ‘backup’ drives. primary cloned daily.
- Meme -Â primary Suse linux server. AMD based 1 GB RAM
- Nemo - windows server - Windows XP Pro. AMD based 1 GB RAM
- HP - New machine -Â primary windows desktop - AMD dual core 64 bit athlon. 2 GB RAM
- Plex - New notebook - dual boot - Suse 10.1/ Windows XP Pro (Usually Suse) - dual core - Intel Core Duo 2 GB RAM
I went through setting up both Ubuntu and Kubuntu. Frankly - I just like the Suse distro. I have had a suse machine for some time now. The Meme machine was running Redhat for ~2 years — again, I am just so accustomed to the Suse distro, that I put it on all the machines.
I have donated yet another notebook to a loved one. My Compaq notebook was great, but - it became unreliable. But for someone who wants to just check email etc - and has nothing - it is useful. So my brother in law is now the proud owner of it. The Sony (that I hated) before that Compaq has been serving my sister Jen and her husband (a mac lover) for some years now.
Vista machine coming soon…
-Chris
Posted linux on Friday, June 2nd, 2006.
There is a new set of Ubuntu releases available. All the talk about this has been about the “LTS” part of the release name - Long Term Support. Apparently they will be supporting this set of releases for 5 years. This is an effort to convince people that they SHOULD move to these Ubuntu releases ASAP! I find this novel since the company is only 2~ years old - and they are promising to do something for > 2 * their current existence
For those unaware -Ubuntu is a ‘Debian spawn’ linux distro that has gained LOTS of popularity in the past ~2 years. I have been (happily) running Suse 10 on one of my primary machines. I think Suse is one of the best distros I have ever seen. ALL linux distros have come along a lot in the past few years and become more ‘approachable’ for the non “super-unix-ite”. That all said - I am going to be setting up an ubuntu server now to get used to that distro and see some of the differences in the debian family of distros. I also will be trying to run Gnome desktop (again). I have been on KDE for some time now, but as I have changed distros over the years, I have toggled back n forth between Gnome and KDE . To be honest - I think I will miss KDE as I DO thing it is overall ‘better’ (ok - I admit better is vague).
-Chris
Posted linux on Monday, April 17th, 2006.
Oracle Looks At Buying Novell AND/ OR making their own linux distro! I am not really a Novell fan - but a Suse fan I am. I would hate to see Oracel eat and destry Suse. Oracle - greate database product (a lil’ pricey friends) but great product. Do not try to make OracleWindows (some linux distro they embrace and extend into Oracle OS).
-Chris
Posted Software Project Management, java, linux on Tuesday, March 14th, 2006.
Eclipse has great integration with subversion. I have been using subversion for my personal sorce control for a few weeks now. It is working out great. I have been a strong perforce fan, but it is only free for 2 users - ~$750/ user for ‘real’ life w/ perforce. SourceSafe is the devil. ClearCase is the devil. CVS I have had issues with enough. Subversion it is…
Just a few niceties:
In the main workspace area - you can browse the structure of your current workspace file and get a nice diff against the repository file. This is great to have IN the IDE. Subversion is great - you normally do it from the command line - but having the high intagration with the IDE is really great - down to the diff.

It is also nice and easy to simply browse a repository and see what is there.

All in all - this is a great TOTALLY FREE solution for source control - and it is integrated right into the IDE. I am continually impressed by how far they have taken Eclipse. I will go into the latest edition of Ruby Eclipse next….
-Chris
Posted Development Tools, c#, linux on Wednesday, February 1st, 2006.
Well - I was able to EASILY take the portable part of my optimzation and classification software - import the projects into the latest MonoDevelop (v0.9), add a reference to db4o - and it built immediately. There you have it c#/ .Net, Linux (Suse10) working just like that.
The intellisense looks nice and works well - Again - I am spoiled by IDEs like Visual Studio and Eclipse that offer real refactoring support etc (natively or via plug ins at least). Still - not bad. It is too bad that I will not be able to port over the LOTS of UI code. Infragistics, TeeChart, lots more will just not be easily run on a nix machine.
Posted linux on Tuesday, January 17th, 2006.
Well - I must say that Suse 10 is just about the best linux distro I have used ever. Now - I am no *nix expert, but I have installed a good 1/2 dozen different linux distros over the past few years - and Suse 10 is just great. The only battle I had this time - I have had in the past : Video drivers on a laptop. In the end - It would only give me 800×600 resolution by default. To fix that - I simply needed to boot into run level 3, and tell Sax2 to force a resolution on the vesa driver using the –vesa flag. I expect this kind of stuff from any linux distro on a laptop. I did waste some time trying to do a kernel rebuild with some proprietary ATI driver - but it was not the correct solution.
I was able to get Eclipse with the Ruby and Java environments set up in minutes. My wireless network card (a 3com) that has given me problems with older Redhat, fedora, mandriva, etc distros worked out with ease.
My FAVORITE part was the I could remote desktop from the linux laptop to my main windows machine. Since I often sit on the sofa after my wife and kids to to bed with the laptop - I need to be able to get at all my machines (windows mostly). The remote desktop was top notch, 100% clean. Wonderful. One next step is to sort out a pet Ruby project to do 100% on the linux machine. I also plan on porting a C# AI project I spent some zillions of hours on ported to Java/ linux so I could easily value cluster myself on many linux machines… Aaah clustered AI is lovely.
I also need to get a mono development enviroment fully configured. Plenty of work to do
-Chris
