I've been working on a new project I created called Chimera. It's an IA64 (Itanium2) instruction set disassembler. One day I'll hopefully transmute the disassembler into a binary or system emulator. I did look into adding the IA64 support into QEMU a few days ago. Lets just say, that project may have to wait until hell freezes over.
DJ Tiesto came out with a new sic album titled Kaleidoscope. It's been sparking a lot of controversy amongst the technophiles in that it has a more "pop" feel to it. This is due to the US and Canada not taking well to the "normal" techno/trance that's been coming from Europe since... ever. So, this musical mastermind decided to "persuade" the less electronica-inclined regions by mixing the hard beats with some more familiar sounds. I don't care what either side says really, I think it's a great album and a few songs such as "I Will Be Here" and "Century" have made my personal top 10.
The Pedigree project (an operating system mentioned in a previous post) is expected to make a release soon called Foster. I've been keeping an eye on the project on IRC and they have been working extremely hard to get the release deployed on time and to ensure all known bugs (of reasonable importance) are exterminated beforehand. I will be testing the binary release in the next few days and will certainly give feedback.
If I wasn't as tired I'd love to go on a very long rant about how much WINE (WINdows Emulator for Linux) has annoyed me today and how many hoops need to be jumped through to get half-baked game functionality... but as I said, I'm far too tired. ;)
Friday, November 13, 2009
Tuesday, October 27, 2009
Titanium-foil?
I haven't published a new post in quite some time. A lot of new events have unfolded since my last post, some good, some bad.
I'll be joining the military (U.S. Air Force) in the coming months. I've spoken to a decent recruiter and have filled out the necessary paperwork, in my mind it's a done deal. I'm still deciding which career path I'd like to take, but I've narrowed it down to a few. I'll most likely be aiming to go into the cyber-intelligence career fields.
I decided that before I actually go to basic training, I wanted to fulfil a few personal goals that with help me through the military and better myself. One of the goals is to get in shape (physically) enough that I won't struggle too much with basic and potentially drag a team down with me. I've improved quite a bit in the month I've been training and feel that it won't be long until that goal is met.
I've been working on a great project with a friend on IRC (#elitecafe). The project is called OpenLibC (Open-source C99-compliant C library), and has progressed quite a ways in the small time it's been worked on. It's being coded in C (GCC/ICC) and AT&T-syntax assembly (GAS).
I also did some work on a really awesome, up-and-coming operating system project called Pedigree. To give some perspective, most (~90%) hobby operating systems never see the light of day or accomplish anything more than a partial C library and a few common x86/x86-64 drivers. Pedigree is very advanced in the realm of hobby operating systems and has had some publicity in the past year in a few places (namely Reddit). I helped add in FPU/MMX/SSE support for user-space applications. I hope the project goes far as it has a ton of potential.
I tried out the beta for Ubuntu 9.10 x86-64 with grim results. Booting normally, I couldn't even get past the splash screen to the installer without it freezing the entire system. After some trial-and-error, I was able to get all the way through the installation in a non-graphical mode, but was met with a lovely freezing splash screen on reboot. After some more tinkering, I was able to get into a shell of the installation and found that the system would completely freeze (no input at all) upon starting the X server (Xorg). When I tried to debug the situation, I found out that 9.10 no longer needs the infamous /etc/X11/xorg.conf for X configuration. I now uses a built-in detection scheme and only uses the configuration file as additional parameters/options. All-in-all, after hours of trying to figure out the problem, I axed the endevour and re-installed 9.04. /fail
I'll be joining the military (U.S. Air Force) in the coming months. I've spoken to a decent recruiter and have filled out the necessary paperwork, in my mind it's a done deal. I'm still deciding which career path I'd like to take, but I've narrowed it down to a few. I'll most likely be aiming to go into the cyber-intelligence career fields.
I decided that before I actually go to basic training, I wanted to fulfil a few personal goals that with help me through the military and better myself. One of the goals is to get in shape (physically) enough that I won't struggle too much with basic and potentially drag a team down with me. I've improved quite a bit in the month I've been training and feel that it won't be long until that goal is met.
I've been working on a great project with a friend on IRC (#elitecafe). The project is called OpenLibC (Open-source C99-compliant C library), and has progressed quite a ways in the small time it's been worked on. It's being coded in C (GCC/ICC) and AT&T-syntax assembly (GAS).
I also did some work on a really awesome, up-and-coming operating system project called Pedigree. To give some perspective, most (~90%) hobby operating systems never see the light of day or accomplish anything more than a partial C library and a few common x86/x86-64 drivers. Pedigree is very advanced in the realm of hobby operating systems and has had some publicity in the past year in a few places (namely Reddit). I helped add in FPU/MMX/SSE support for user-space applications. I hope the project goes far as it has a ton of potential.
I tried out the beta for Ubuntu 9.10 x86-64 with grim results. Booting normally, I couldn't even get past the splash screen to the installer without it freezing the entire system. After some trial-and-error, I was able to get all the way through the installation in a non-graphical mode, but was met with a lovely freezing splash screen on reboot. After some more tinkering, I was able to get into a shell of the installation and found that the system would completely freeze (no input at all) upon starting the X server (Xorg). When I tried to debug the situation, I found out that 9.10 no longer needs the infamous /etc/X11/xorg.conf for X configuration. I now uses a built-in detection scheme and only uses the configuration file as additional parameters/options. All-in-all, after hours of trying to figure out the problem, I axed the endevour and re-installed 9.04. /fail
Sunday, April 5, 2009
Virtualization Pt. 1
I've been experimenting with PC virtualization for a while now. I've pretty much settled on VMWare's Virtual Server II as my primary software to use as it uses real virtualization (CPU extensions and host byte-code execution) rather than emulation. I get to still utilize my actual hardware features rather than have to use the emulated device. I was a bit put-off by the slow web interface, but have since upgraded to the much faster Windows Infrastructure Client application for it.
I wanted to start perparing for real network/server work and I wanted to do this using a virtual environment. I downloaded two copies of Windows Server 2003 x64 (180-day trial), two copies of CentOS 5.3 x64, and Ubuntu 8.10 x64. These are all installed and running currently.
I have the two Windows 2k3 servers acting as Domain Controllers (PDC and BDC running in failover + load-balance mode) and DNS servers (for clients to use). Then, I have the two CentOS servers acting as Apache + MySQL + Squid servers running in failover mode. Then of course, there's the lone Ubuntu client used for testing.
I've tested the Domain Controllers out and can do a full network logon with roaming profile support. I've also tested its failover abilities and it worked flawlessly. MicroSoft really put a lot of good code into making the Domain Controller and Active Directory managment software, two thumbs up. Squid was fairly easy to setup and I had to configure it not to do the actual caching part as all I wanted was the website blacklisting feature. It works great and is easy to manage. Apache2 and MySQL (with PHPMyAdmin) has always been easy to install + configure. I've setup Apache tons of times before on different host OS's, so it was a walk in the park.
Server 2003 is expensive, but worth it for any network that requires a good network logon server. CentOS is a great stable OS that has good uses as a web/file server, and you can't beat it's price.
I wanted to start perparing for real network/server work and I wanted to do this using a virtual environment. I downloaded two copies of Windows Server 2003 x64 (180-day trial), two copies of CentOS 5.3 x64, and Ubuntu 8.10 x64. These are all installed and running currently.
I have the two Windows 2k3 servers acting as Domain Controllers (PDC and BDC running in failover + load-balance mode) and DNS servers (for clients to use). Then, I have the two CentOS servers acting as Apache + MySQL + Squid servers running in failover mode. Then of course, there's the lone Ubuntu client used for testing.
I've tested the Domain Controllers out and can do a full network logon with roaming profile support. I've also tested its failover abilities and it worked flawlessly. MicroSoft really put a lot of good code into making the Domain Controller and Active Directory managment software, two thumbs up. Squid was fairly easy to setup and I had to configure it not to do the actual caching part as all I wanted was the website blacklisting feature. It works great and is easy to manage. Apache2 and MySQL (with PHPMyAdmin) has always been easy to install + configure. I've setup Apache tons of times before on different host OS's, so it was a walk in the park.
Server 2003 is expensive, but worth it for any network that requires a good network logon server. CentOS is a great stable OS that has good uses as a web/file server, and you can't beat it's price.
A new job!
This week has been a great and horrible week. I won't go into too much detail about the bad parts, but my grandma is in the hospital. Let's stick to the non-gloomy parts.
I got a job working for a local arts college. I'm now a network administrator! I've been looking for this opportunity for a while. I like servers and I like networks, so this seems like a great job for me. I'll be in charge of progressing the network into the modern age and have already mapped out a draft of what that will look like. For a mental picture, the design consists of a ton of virtualized servers and a lot of failovers and load-balancing. It's currently (and will be later as well) a hybrid server setup of Windows 2k(3) and Linux which I have setup quite a few test servers on in the past.
I'll also be working closely with the web designer. There are big goals for the website and the network and I hope I can help out in both those departments.
I'm really tired, and I need to start training my mind to go to bed early and wake up early.
I got a job working for a local arts college. I'm now a network administrator! I've been looking for this opportunity for a while. I like servers and I like networks, so this seems like a great job for me. I'll be in charge of progressing the network into the modern age and have already mapped out a draft of what that will look like. For a mental picture, the design consists of a ton of virtualized servers and a lot of failovers and load-balancing. It's currently (and will be later as well) a hybrid server setup of Windows 2k(3) and Linux which I have setup quite a few test servers on in the past.
I'll also be working closely with the web designer. There are big goals for the website and the network and I hope I can help out in both those departments.
I'm really tired, and I need to start training my mind to go to bed early and wake up early.
Thursday, March 26, 2009
uClibc; iCprogress
uClibc is a C99 C library that is made to be easily portable, lightweight, and easily built. It's designed for embedded systems, so it was made with size in mind. I recently ported uClibc v0.9.30.1 to my experimental OS called E/OS. Since then, I've really been enjoying the full formatting support of printf/sprintf (using custom wrappers for 80x25 text mode). I had ported PDPClib before (which was a breeze to port), but it had A: less-than-impressive formatting support, B: no C99 compliance, and C: buggy mathematical functions that lead to deadlocking.
With this new library setup, it will be much easier to get *nix applications ported over. I have no intention of designing a *nix-clone, but getting self-hosted (an environment where a user can create programs for the host) is a big deal and GCC/NASM can really help out there.
I just started commiting the new library port to my SVN repository at googlecode, and it has given me nothing but trouble. I added the entire library (~10MB), but I kept getting a "gateway not found" error. I finally had to un-add some of the library and upload it chunk by chunk.
I have an interview tomorrow about a network administrator job position at a local college. Hopefully that goes well.
Night.
With this new library setup, it will be much easier to get *nix applications ported over. I have no intention of designing a *nix-clone, but getting self-hosted (an environment where a user can create programs for the host) is a big deal and GCC/NASM can really help out there.
I just started commiting the new library port to my SVN repository at googlecode, and it has given me nothing but trouble. I added the entire library (~10MB), but I kept getting a "gateway not found" error. I finally had to un-add some of the library and upload it chunk by chunk.
I have an interview tomorrow about a network administrator job position at a local college. Hopefully that goes well.
Night.
Tuesday, March 17, 2009
Blah blah blah, and on it goes.
Today was a fairly... mediocre day. I got paid for a script I wrote (some JavaScript) earlier and that was a fairly good part of the day. It's sad that money is such an integrated part of our happyness.
I started writing a low-level library in C. It's a library of memory copy/set/clear/move/compare operations that are heavily optimized for the x86 and x86-64 architectures. I use SSE (2 and 4.1 mostly) to control large blocks of memory without filling up the caches due to a lot of small memory transfers. I'm particularly fond of the MOVNTDQA SSE4.1 instruction. The library will be released under the MIT license and currently only has memory_copy(x,y,z) and memory_clear(x,y) functions. It's designed to be very OS independant (not *that* hard due to the low-level nature of it) and should only end up relying on some basic typedefs (size_t) and CPUID structures (for feature parsing of SSEx capabilities).
The Lord of the Rings trilogy (extended versions) came today via NetFlix (which is awesome). Time to drone out for ~7-9 hours while I drool to epic battle scenes.
A grilled cheese sandwich is in order!
Stay Tuned,
Josh
I started writing a low-level library in C. It's a library of memory copy/set/clear/move/compare operations that are heavily optimized for the x86 and x86-64 architectures. I use SSE (2 and 4.1 mostly) to control large blocks of memory without filling up the caches due to a lot of small memory transfers. I'm particularly fond of the MOVNTDQA SSE4.1 instruction. The library will be released under the MIT license and currently only has memory_copy(x,y,z) and memory_clear(x,y) functions. It's designed to be very OS independant (not *that* hard due to the low-level nature of it) and should only end up relying on some basic typedefs (size_t) and CPUID structures (for feature parsing of SSEx capabilities).
The Lord of the Rings trilogy (extended versions) came today via NetFlix (which is awesome). Time to drone out for ~7-9 hours while I drool to epic battle scenes.
A grilled cheese sandwich is in order!
Stay Tuned,
Josh
Labels:
C,
development,
Lord of the Rings,
OSDev,
programming
Monday, March 16, 2009
Out with the C++.NET and in with the C#.NET!
After completing my ping utility in C++.NET, it was time to create a deployment scheme (installer). I searched high and low for a packaging wizard but came up empty handed. I finally turned to good ol' Google and realized that VC++.NET Express 2008 doesn't come with the deployment tools!!! I'm not sure what MS was trying to accomplish with that seeing as how C# and VB.NET both come with deployment wizards. So, I finally snapped and ported the C++.NET app to C#.NET and released it. < /rant >
I'm still doing some brainstorming for my next application (or most likely another Vista Sidebar Gadget). I'm currently working on a web browser in C#.NET that will allow users to alter the appearance of the interface a lot. It's still in its infancy but it already has the basic framework setup.
I will also be re-opening the Auto-Ping Sidebar Gadget that I made a few days ago to add some functionality. It also needs a picture for uploading to Windows Live Gallery. The first release already has 91 downloads as of this moment. I will probably add stricter rules to the ping reply parsing and also allow more user-defined controls (such as ICMP TTL and TimeOut).
I searched for a C# compiler earlier that could output native op-codes or even assembly, but only found a sketchy wonder-tool that costs ~1,000 USD. I will keep searching, but I have a feeling that short of writing a custom CIL parser + compiler, it will be a lost cause to seek native output for such tasks as OSDevelopment and non-.NET-frameworked environment applications.
Stay Tuned,
Josh
I'm still doing some brainstorming for my next application (or most likely another Vista Sidebar Gadget). I'm currently working on a web browser in C#.NET that will allow users to alter the appearance of the interface a lot. It's still in its infancy but it already has the basic framework setup.
I will also be re-opening the Auto-Ping Sidebar Gadget that I made a few days ago to add some functionality. It also needs a picture for uploading to Windows Live Gallery. The first release already has 91 downloads as of this moment. I will probably add stricter rules to the ping reply parsing and also allow more user-defined controls (such as ICMP TTL and TimeOut).
I searched for a C# compiler earlier that could output native op-codes or even assembly, but only found a sketchy wonder-tool that costs ~1,000 USD. I will keep searching, but I have a feeling that short of writing a custom CIL parser + compiler, it will be a lost cause to seek native output for such tasks as OSDevelopment and non-.NET-frameworked environment applications.
Stay Tuned,
Josh
Subscribe to:
Posts (Atom)
