Quantcast
Channel: Nikolay Igotti
Browsing index pages (30 articles)

Leaving Sun

Starting Aug 17 I leave Sun Microsystems. My personal e-mail is igotti@gmail.com. Have fun! PS: I have no other technical blog yet, you may look at my Livejournal blog, but it's in Russian and...

View Article


FS neutral data recovery tool

Recently my wife got several files accidentally removed, from ext3 storage. I tried several different programs, including FS debuggers, but mostly unsuccessful, as ext3 is rather aggressively erasing...

View Article


Explicit template instantiation in shared libraries

Now a little bit of C++ stuff. Usually I consider this language a bit undercooked, in its "advanced" features, like templates, but sometimes they could be useful. Consider following simple...

View Article

Double mapping of memory regions on Unix

Sometimes it makes sense to double map the same physical memory onto different locations in address space of process, for example in 64-bit systems have some parts of your address space to be...

View Article

Hotspot internals Q&A

Now this blog is mostly collection of random system programming technologies, in my opinion interesting enough to share. But as my full time job is to hack Hotspot JVM I could also answer VM internals...

View Article


ILP64, LP64, LLP64

One important platform feature, to be considered when writing portable 64-bit code is if it is LP64, LLP64 or ILP64. Those abbreviations stands for size in bits of basic C data types (int, long,...

View Article

Raw page table access

Today, I'd like to show an example of raw physical memory access, to demonstrate layout of x86 page tables. This demo requires x86 Solaris with 32-bit kernel, and root privileges. You can see how to...

View Article

Debugger for Win32 (v2)

Previous version of mini-debugger I described here has a disadvantage, as it was unable to catch symbols in statically linked binaries. This version patches target, not assuming that we call via jump...

View Article


C mini-contest

Go guess, what's behaviour of this code:intfoo() {while (0) while (1) while (2) ; } and this intfoo() {while (2) while (1) while (0) ; } Both are valid C constructs, of course. PS: Question itself is...

View Article


Neat book

Frank Hoffman at Solaris team wrote this book which is neat summary of x86/amd64 low level programming. I like it.

View Article

SPARC ASIs

One, not so frequently used, yet useful feature of SPARC CPUs is ASI, or address space identifier, essentially just a 8-bit tag attached to memory address, modifying the way how memory access happens....

View Article

VTBL games

Little game with changing vtbl entry for an instance. Probably more interesting part would be class-wide modification, but it's usually in read only area (text segment). For completeness of demo we'll...

View Article

Overriding symbols on Win32

Today I was asked it it's possible to implement something similar to Linux's LD_PRELOAD for Windows, to allow override of particular symbol. I answered yes, and here's how I did it (some dynamic code...

View Article


Memory debugger for Windows

For the sake of completeness, here's version of memory debugger for Win32. It uses vectored exception, so works only for Win2K or later. #define_WIN32_WINNT 0x0500 #include<stdio.h>...

View Article

memory debugger for linux

Sometimes it's required for an application to catch all memory accesses to particular location, for example for debugging purposes. It could be done using mprotect call, but there's another, specific...

View Article


More fun with SEH

Just to demonstrate what kind of fancy stuff SEH provides, I wrote this small demo code for win32/x86. Idea of this code is to show how to modify the way other frames handle their exceptions. I don't...

View Article

dd story

One rather interesting difference between Linux and Solaris is how command like thisdd if=/dev/zero of=/dev/null bs=900M count=1 behave, especially if box has smth like 256M of RAM. Solaris behaves...

View Article


Living in nirvana

Recently I've read rather interesting life story of math professor John Wren-Lewis, who unintentionally got (and keeps for several years) nirvana-like state of mind. He calls it "eternity...

View Article

Simple JIT compiler for your application

Just in time code generation usually considered to be complicated task, and it really is. Although there are cases (for example in multimedia, games or cryptographic application) when it does makes...

View Article

Fixing FPU control word on Win32

On Win32 fixing of control word is also possible, but done differently, as Win32 uses SEH (structured exception handlers) to handle hardware faults, and some magic is required to let fault really...

View Article
Browsing index pages (30 articles)


Latest Images