DOS 6.22
Windows 3.1
Windows 95
Windows 98/ME
Windows NT 4
Windows 2000
Windows Server 2003
Windows XP
Windows Vista (32/64 bit)
MAC OS 9
MAC OS X
Ubuntu 8.10
Red Hat's Fedora 10
Suse 9.0
openSuse 10.2
openSuse 11.1
Suse Entreprise 10.2
FreeBSD 7.1
uCOS
RTOS's
Friday, 13 February 2009
Programming languages I've worked with
PERL
C
C++
Visual Basic
GW Basic (back in the old days)
HTML (and a few other related ones, dhtml, xml, etc)
PHP (very basic)
Assembly (ASM, 8086 and embedded)
UML
This list is not finished yet
C
C++
Visual Basic
GW Basic (back in the old days)
HTML (and a few other related ones, dhtml, xml, etc)
PHP (very basic)
Assembly (ASM, 8086 and embedded)
UML
This list is not finished yet
C++ and MicroCodes
So yesterday I was given a new project to get cracking on a program that was originally written to display and update micro codes into a BIOS ROM file. The program is written in C++. I've got a little background in the language, but not enough. So I've got my work cut out for me as some people would say.
So microcodes, what are they? Microcodes are made by the CPU engineer up building of a processor. These microcodes act as a fix or a workaround for errors within the processor. They can be stored in a high speed memory usually embedded into the processor itself. They translate machine instructions into sequences of detailed circuit-level operations. Now Wikipedia says they are not supposed to be visible or changeable by a normal programmer of an assembly programmer but this isn't strictly true. These codes can be embedded into the BIOS ROM and flashed to the BIOS PROM, where the microcodes will then be utilized.
So what do I have to do? My job entails taking the current program we have for displaying and updating these microcodes and adapting it to be able to upload microcode blocks into the ROM that may be larger than the microcodes it's replacing. The current program will overwrite adjacent sectors in the ROM, removing other microcodes. So I'm basically going to be working a fix.
So here I go, I've just finished installing Microsoft Visual Studio 2008 and I'm looking forward to doing more programming.
So microcodes, what are they? Microcodes are made by the CPU engineer up building of a processor. These microcodes act as a fix or a workaround for errors within the processor. They can be stored in a high speed memory usually embedded into the processor itself. They translate machine instructions into sequences of detailed circuit-level operations. Now Wikipedia says they are not supposed to be visible or changeable by a normal programmer of an assembly programmer but this isn't strictly true. These codes can be embedded into the BIOS ROM and flashed to the BIOS PROM, where the microcodes will then be utilized.
So what do I have to do? My job entails taking the current program we have for displaying and updating these microcodes and adapting it to be able to upload microcode blocks into the ROM that may be larger than the microcodes it's replacing. The current program will overwrite adjacent sectors in the ROM, removing other microcodes. So I'm basically going to be working a fix.
So here I go, I've just finished installing Microsoft Visual Studio 2008 and I'm looking forward to doing more programming.
System DVT
SO, over the last week, I've been up to fairly boring monotonous stuff. But given that, I've now got exposure to Fedora 10, Suse 10.2, Windows Server 2003, FreeBSD 7.1 and FreeDOS 1.0. Also got to use a number of AMD BIOS utilities through NDA, Linux Firmware Development Kits and other PCI testing programs.
Basically, I was given a system to run a DVT (Design Validation Test) on. The DVT document was already written up and the tests had already passed on its official DVT. I just had to get up to speed with the technology in order to start a DVT on a newer version of the system.
Firstly I had to log into the system remotely over the RLM console (Remote LAN Module) and log into the console via serial. Then with various commands I had to take dumps of the PCI setup with varying different cards installed and setup. I still have a lot to learn on PCI architecture so my checks of the PCI dump were slow. Since the start of this DVT, I've actually started reading my PCI System Architecture book and I'm slowly beginning to grasp what PCI is all about. Then of course when I finish that, I'll be moving onto PCIe. Plenty to do.
Anyway, part of the DVT involved enabling and disabling Option ROM's. These are devices which are called by the BIOS to add functionality to the PC. The most common of these would be a VGA card. You can see exactly when this Option ROM is called by the BIOS as it is the first thing that comes up on screen. Other Option ROM's include network cards, SCSI cards, hard drives (SATA/PATA) or Fibre Optic Channels.
This brings me to IPL. In order to test the robustness of the system, it was necessary to load a number of operating systems onto a hard drive through the system. So I went through the monotony of installing, loading and configuring Windows Server 2003, Fedora Linux 10, FreeBSD, FreeDOS and DOS from a floppy drive. Other similar tests were booting from a USB key and from a PXE server (which I mentioned before).
All in all a very interesting experience. I'm looking forward to using the new system, but that doesn't arrive until next week when I'm gonna test the crap out of it!
Basically, I was given a system to run a DVT (Design Validation Test) on. The DVT document was already written up and the tests had already passed on its official DVT. I just had to get up to speed with the technology in order to start a DVT on a newer version of the system.
Firstly I had to log into the system remotely over the RLM console (Remote LAN Module) and log into the console via serial. Then with various commands I had to take dumps of the PCI setup with varying different cards installed and setup. I still have a lot to learn on PCI architecture so my checks of the PCI dump were slow. Since the start of this DVT, I've actually started reading my PCI System Architecture book and I'm slowly beginning to grasp what PCI is all about. Then of course when I finish that, I'll be moving onto PCIe. Plenty to do.
Anyway, part of the DVT involved enabling and disabling Option ROM's. These are devices which are called by the BIOS to add functionality to the PC. The most common of these would be a VGA card. You can see exactly when this Option ROM is called by the BIOS as it is the first thing that comes up on screen. Other Option ROM's include network cards, SCSI cards, hard drives (SATA/PATA) or Fibre Optic Channels.
This brings me to IPL. In order to test the robustness of the system, it was necessary to load a number of operating systems onto a hard drive through the system. So I went through the monotony of installing, loading and configuring Windows Server 2003, Fedora Linux 10, FreeBSD, FreeDOS and DOS from a floppy drive. Other similar tests were booting from a USB key and from a PXE server (which I mentioned before).
All in all a very interesting experience. I'm looking forward to using the new system, but that doesn't arrive until next week when I'm gonna test the crap out of it!
Friday, 6 February 2009
PXE Server Still
Ok, I know I said I'd have more information up about this PXE server, but it's been incredibly awkward and difficult. I think I've found a solution though, instead of using Altiris' Deployment software, I've found some very useful software with the GNU GPL, which means I may be able to pull this off. It needs a little tweaking and it seems more complicated than it actually is.
So here it is, I've currently got my Windows XP system down in the lab. The reason I'm not running in Linux is that I need to have Windows running on this machine at the same time as it is running a licence server for a number of tools we use. Anyway, I downloaded VMplayer.exe, it's free Virtual Machine software which allows you to run an image on openSuse 10.2 (my choice) within a windows environment. Within openSuse, I've installed the PXE server, setup the DHCPd and ATFTP servers and setup the filenames and directories in the /srv/tftp/tftpboot folder. In this folder, I've copied initrd and linux files (32 bit and 64 bit, as an option to boot either) as well as the configured pxelinux.0 file. I'm not going to go into it all now, but so far so good. The board hasn't yet recognised the Linux PXE server. I'm hoping this is actually possible as I'm using the VMPlayer and not a proper installation of Suse. I think this is the last attempt at getting this to work that I'll try. After this, I'm just going to have to get a system all by itself and set it up that way. Sure here goes nothing, I'll keep it posted.
So here it is, I've currently got my Windows XP system down in the lab. The reason I'm not running in Linux is that I need to have Windows running on this machine at the same time as it is running a licence server for a number of tools we use. Anyway, I downloaded VMplayer.exe, it's free Virtual Machine software which allows you to run an image on openSuse 10.2 (my choice) within a windows environment. Within openSuse, I've installed the PXE server, setup the DHCPd and ATFTP servers and setup the filenames and directories in the /srv/tftp/tftpboot folder. In this folder, I've copied initrd and linux files (32 bit and 64 bit, as an option to boot either) as well as the configured pxelinux.0 file. I'm not going to go into it all now, but so far so good. The board hasn't yet recognised the Linux PXE server. I'm hoping this is actually possible as I'm using the VMPlayer and not a proper installation of Suse. I think this is the last attempt at getting this to work that I'll try. After this, I'm just going to have to get a system all by itself and set it up that way. Sure here goes nothing, I'll keep it posted.
Monday, 2 February 2009
Free Dental checkups??
So I've found out I may be eligible for 2 free dental check ups a year. Conditions are that I've been paying PRSI for the last five years (since I'm over 25, under 25's only need 2 years of PRSI).
Phoned up the Department of Social and Family Affairs on 1890400400, listened to their hold music for ages before I eventually got through to someone. I gave them my PPS number and lo and behold, I'm not eligible! I was told you need 260 weeks of paying PRSI to be eligible, I've only got 235, but they also said they need my P60 from 2008, which means I'm more than likely well over the limit as soon as that is sent in. I love finding out about tax benefits I didn't previously know about, especially since I know I need a filling, my tooth's been killing me for ages now and I just didn't have the funds for it.
I think I'm going to look into more ways of getting my tax money back to me. There's all these benefits that I never knew about, I think it's the tax office dirty little secret that they don't want to admit to. In times like these, every penny is a happy penny in my books :D
Phoned up the Department of Social and Family Affairs on 1890400400, listened to their hold music for ages before I eventually got through to someone. I gave them my PPS number and lo and behold, I'm not eligible! I was told you need 260 weeks of paying PRSI to be eligible, I've only got 235, but they also said they need my P60 from 2008, which means I'm more than likely well over the limit as soon as that is sent in. I love finding out about tax benefits I didn't previously know about, especially since I know I need a filling, my tooth's been killing me for ages now and I just didn't have the funds for it.
I think I'm going to look into more ways of getting my tax money back to me. There's all these benefits that I never knew about, I think it's the tax office dirty little secret that they don't want to admit to. In times like these, every penny is a happy penny in my books :D
Tuesday, 27 January 2009
PXE Boot Server
Right, so my next task is to setup a PXE boot server for one of projects. The reason we're using PXE boot is that on the board, we've no hard drive attached and a network boot seems to be the best and fastest option for booting a number of these boards at the same time using the one PC/Server.
So, what's PXE boot? It's a Preboot Execution Environment (PXE, pronounced 'pixie') which allows the user to boot a computer over a network, usually a LAN (Local Area Network), independently of a hard drive or operating system.
-Update: I've been working on trying to get this PXE server up and going for a couple of days now, I've made progress but I'm stuck at trying to get an operating system booted on the motherboard. This is driving me mad. Firstly I was trying to get an image of Windows (any version), but now I've found I need to boot up using linux. This should be pretty easy and straight forward. However, I seem to be missing one or two key parts of the PXE boot process and the program I'm using doesn't give me all the access I need to make the necessary changes. I may have to change what program I'm using.
Here's a quick run-down. I'm using Windows Deployment Services (WDS). MSSQL is needed to install this. This can be installed in the setup menu of WDS by clickin on install third party software. This will connect to the website and download the best matching version. The WDS includes a PXE Boot configuration tool, Boot Disk Creator, Rapid Install Utility and the Deployment Services Console. Within the Console, I should be able to schedule an Initial Deployment (for first time installations) and load an OS from there. Unfortunately all my options seem to point at installing an OS on the local hard drive. I can't do this. I've got a motherboard thats connnected to our network and has a monitor on it. This is all the access I'm allowed to have and this is all I should need. I need to have the motherboard boot using PXE boot into a Linux environment across a networked installation on a remote hard drive. How hard can that be? It ain't hard, it's just awkward.
Did I mention the computer I have to work off of, is currently a licence server for another application here in the building and has to be running Windows for it to work. So goodbye to the easier option of doing it all through Linux.
Did I mention, I've chosen Suse 10.0 or 10.2 (not quite sure which on yet) as this seems to be the popular one here for the company and most people know it. I know there's a dozen other distributions and I should check them out but for keeping things simple, this is probably the best solution.
So right now, my motherboard gets an IP address from our DHCP server, boots from the PXE server, loads Bootworks, loads a DOS image and then throws me into command prompt. So far, so good. I should be able to get this to work, I'm only a step or two off. I just need to find out what I do next.
I'll give a proper rundown of how it works, when I get it to work, for the moment, this is only a log.
So, what's PXE boot? It's a Preboot Execution Environment (PXE, pronounced 'pixie') which allows the user to boot a computer over a network, usually a LAN (Local Area Network), independently of a hard drive or operating system.
-Update: I've been working on trying to get this PXE server up and going for a couple of days now, I've made progress but I'm stuck at trying to get an operating system booted on the motherboard. This is driving me mad. Firstly I was trying to get an image of Windows (any version), but now I've found I need to boot up using linux. This should be pretty easy and straight forward. However, I seem to be missing one or two key parts of the PXE boot process and the program I'm using doesn't give me all the access I need to make the necessary changes. I may have to change what program I'm using.
Here's a quick run-down. I'm using Windows Deployment Services (WDS). MSSQL is needed to install this. This can be installed in the setup menu of WDS by clickin on install third party software. This will connect to the website and download the best matching version. The WDS includes a PXE Boot configuration tool, Boot Disk Creator, Rapid Install Utility and the Deployment Services Console. Within the Console, I should be able to schedule an Initial Deployment (for first time installations) and load an OS from there. Unfortunately all my options seem to point at installing an OS on the local hard drive. I can't do this. I've got a motherboard thats connnected to our network and has a monitor on it. This is all the access I'm allowed to have and this is all I should need. I need to have the motherboard boot using PXE boot into a Linux environment across a networked installation on a remote hard drive. How hard can that be? It ain't hard, it's just awkward.
Did I mention the computer I have to work off of, is currently a licence server for another application here in the building and has to be running Windows for it to work. So goodbye to the easier option of doing it all through Linux.
Did I mention, I've chosen Suse 10.0 or 10.2 (not quite sure which on yet) as this seems to be the popular one here for the company and most people know it. I know there's a dozen other distributions and I should check them out but for keeping things simple, this is probably the best solution.
So right now, my motherboard gets an IP address from our DHCP server, boots from the PXE server, loads Bootworks, loads a DOS image and then throws me into command prompt. So far, so good. I should be able to get this to work, I'm only a step or two off. I just need to find out what I do next.
I'll give a proper rundown of how it works, when I get it to work, for the moment, this is only a log.
Subscribe to:
Posts (Atom)