Gullible Jones wrote:Needless to say performance is dreadful on most laptops, since they usually don't have the hardware juice for it. As for desktops, I've run into enough display server crashes and kernel panics with several different machines that I don't even bother with a full desktop environment.
I shouldn't complain (these desktops are free, and I don't use any of them)... But try telling family members that, by the way, your snappy Windows 2000 and XP desktops will perform like a drunk sloth after you switch to Linux. People are never happy to hear that they must upgrade their hardware again in order to do the same damn thing.
Now, many people go on about things being compatible as a limiting factor. I call crap. You can design a CPU that can execute non native instruction almost as fast as the native CPU.
Downloadable microcode is one example.
Most O/S now are written in a high level language making porting pretty easy. Nothing like a re-write even if the instruction set is different.
It was certainly possible back then and within a year or so it would be far faster than the original, in many cases faster simply due to the speed of the newer processor.
Sigma_Orionis wrote:One thing to keep in mind.
End Users expect object code compatibility. They won't pay for the same software they already bought. (in the paid software world, which is mostly windows).Yeah, I know, most IT departments suck, that's because most organizations like it that way. No matter how much they complain.
There are other cases that are much more fun, particularly with applications like ERPs and CRMs, those things can be customized by the customer (who usually doesn't have the expertise, so they hire outside consultants to do it). Depending on the application (and on the general stupidity of the Customer and/or the Consultants) they might have customized the application so much that it can't be migrated (Peoplesoft is a good example of that).
Sigma_Orionis wrote:One thing to keep in mind.
End Users expect object code compatibility. They won't pay for the same software they already bought. (in the paid software world, which is mostly windows).
This is so common and pervasive, that if you snoop around open source software you'll find that the Unix/Linux version is offered in source code, 9 out of 10 times you'll see they provide a Windows Binary.
Most IT departments fall into the "End User" category. They tend to use commercial shrink-wrapped software, so the don't have access to the source code. IF they're lucky, they might be able migrate to the same version for different architecture they might not have to spend extra, or maybe a nominal fee. If they're not lucky they might have to buy a new license, that's not going to make the bean-counters happy.
In extreme cases (which are all too common) the version they use is so hopelessly outdated that they can't migrate, more often than not the original software vendor went belly up or was bought up by some other company which promptly discontinued the product.
There are other cases that are much more fun, particularly with applications like ERPs and CRMs, those things can be customized by the customer (who usually doesn't have the expertise, so they hire outside consultants to do it). Depending on the application (and on the general stupidity of the Customer and/or the Consultants) they might have customized the application so much that it can't be migrated (Peoplesoft is a good example of that).
This is all too common. I've been in several migrations of large applications and it's always the same story.
Yeah, I know, most IT departments suck, that's because most organizations like it that way. No matter how much they complain.
SciFiFisher wrote:They don't actually like it. They just don't want to spend the money to do things right. Almost good enough is cheaper.
SciFiFisher wrote:You forgot the really important part. The application was customized by a former employee (or contractor) who has long since gone. They didn't bother to create a manual detailing what they did. And they sure as hell didn't bother leaving a copy of the coding lying around. So every time the application crashes everyone prays that it will restore intact from the backup. And that the back up isn't more than a few days old.
FZR1KG wrote:You're kind of making my point here.
The industry is rife with obsolete software running on no longer supported O/S's that can't be migrated to newer hardware.
I have programs that run in some windows versions but not others so have to run a virtual O/S just to access them.
That's how I do my PCB and schematic designs. With software that is about 25 years old but still usable on an old O/S but totally unusable even with all compatibility setting's with news O/S's.
So why make a big deal about a new CPU that is software compatible but just slower than the latest wiz bang multi processor computer but is 100 times faster than the crappy old system they are using right from the start?
They want hardware compatibility that goes back to 1974 but the O/S isn't written to be compatible with older versions of itself beyond a few iterations.
It's a marketing ploy using smoke and mirrors to sell you a new O/S, nothing more.
Sigma_Orionis wrote:No I'm not. You keep placing the blame on the vendor. I keep telling you that the vendor does it that way because it is what the customer wants, the vendor doesn't care because it's business is to make money not make good systems. The vendor makes money, the idiot (i mean the customer) gets his house of cards, again: win-win
FZR1KG wrote:Ah young student, there is a difference between going from bit width to instruction set change......
Mainframe customers tend to have a very large financial investment in their applications and data. Some applications have been developed and refined over decades. Some applications were written many years ago, while others may have been written "yesterday." The ability of an application to work in the system or its ability to work with other devices or programs is called compatibility.
The need to support applications of varying ages imposes a strict compatibility demand on mainframe hardware and software, which have been upgraded many times since the first System/360™ mainframe computer was shipped in 1964. Applications must continue to work properly. Thus, much of the design work for new hardware and system software revolves around this compatibility requirement.
The overriding need for compatibility is also the primary reason why many aspects of the system work as they do, for example, the syntax restrictions of the job control language (JCL) that is used to control batch jobs. Any new design enhancements made to JCL must preserve compatibility with older jobs so that they can continue to run without modification. The desire and need for continuing compatibility is one of the defining characteristics of mainframe computing.
Absolute compatibility across decades of changes and enhancements is not possible, of course, but the designers of mainframe hardware and software make it a top priority. When an incompatibility is unavoidable, the designers typically warn users at least a year in advance that software changes might be needed.
FZR1KG wrote:Oh, forgot to add:
Don't mind me
I'm in the middle of a shit storm of stupid compatibility issues with software, using two laptops and different versions of compilers because what I have here is a system that was claimed to be "compatible" but didn't turn out to be.
So I'm probably a bit more touchy that I should be...die you fucking piece of shit software mother fucking prick of a thing!!!!...sorry. All good now.
I have programmers turrets at the moment.
My humble appolog...fucking compile you shit of a fucking thing!!!
Sigma_Orionis wrote:FZR1KG wrote:Ah young student, there is a difference between going from bit width to instruction set change......
Tell that to the IBM System/360 introduced in 1964
Direct from the horse's mouthMainframe customers tend to have a very large financial investment in their applications and data. Some applications have been developed and refined over decades. Some applications were written many years ago, while others may have been written "yesterday." The ability of an application to work in the system or its ability to work with other devices or programs is called compatibility.
The need to support applications of varying ages imposes a strict compatibility demand on mainframe hardware and software, which have been upgraded many times since the first System/360™ mainframe computer was shipped in 1964. Applications must continue to work properly. Thus, much of the design work for new hardware and system software revolves around this compatibility requirement.
The overriding need for compatibility is also the primary reason why many aspects of the system work as they do, for example, the syntax restrictions of the job control language (JCL) that is used to control batch jobs. Any new design enhancements made to JCL must preserve compatibility with older jobs so that they can continue to run without modification. The desire and need for continuing compatibility is one of the defining characteristics of mainframe computing.
Absolute compatibility across decades of changes and enhancements is not possible, of course, but the designers of mainframe hardware and software make it a top priority. When an incompatibility is unavoidable, the designers typically warn users at least a year in advance that software changes might be needed.
Sigma wrote:
No worries dude, arguments like these are great, makes me research and find stuff that is new to me and we get to pass the time.
BTW MostlySucks has a free version of their Visual C++ what-have-you 2013 thing, it might help.
Right now I am seeing how the idiots at corporate pretend to take a Datacenter that has given them 4 years of almost continous trouble-free operation and turn it into shit. So, yeah, I hear you.
Besides, you and I are way too old and have been too long in this business to bitch at each other over some geeky point that 90% of the world doesn't understand, much less give a damn about
FZR1KG wrote:Um, you realise that most of that series had downloadable microcode, basically what I was talking about, right?
Others has different instruction sets but provided emulators in hardware.
If you want compatibility you could have it. If you wanted speed you could have it.
You couldn't have both. If your program was written in a smaller CPU the better CPU would run it but it would run it as slow or slower on a clock by clock basis. Getting the extra speed needed faster clocking or conversion to the new instruction set.
Most of the time the microcode was loaded as a bootloader so changing to a different instruction set required a reset. Not practical but possible if you needed it. We don't need to go that far anymore since technology has come a long way since then.
They also offered microcode for scientific applications as well, you could just download it and get scientific (floating) calculations instead of BCD math that the business instruction set ran. The two were not compatible obviously.
That's the whole point about downloadable microcode, though back in those days it was simply microcode that was usually stored in core memory (magnetic cores). The really fast ones used hardwired logic rather than microcode and thus needed emulation hardware for backward compatibility.
It was when the modern CPU's came to being on a single chip that made having a separate bus or downloadable microcode more difficult, so they settled on the cheaper alternative of ROM based microcode due to silicon real estate. At that point the decision to stay with one CPU really locked you down on a machine code level but you could still emulate or simulate.
But just to be clear, I'm not saying compatibility isn't a top priority.
What I'm saying is that does not translate to CPU instruction set compatibility.
The IBM 360 you inked to is a classic example.
So are the cray's, the Primes, the Honeywell's, the Cybers etc.
They ran different CPU's which were obviously not machine code compatible but the software, microcode or extra hardware made them compatible.
I can't get software compatibility now even though the hardware is machine code compatible, but they got software compatibility without hardware compatibility back then. We've gone backwards, not forwards in that regard.
As a matter of interest, did you know that Motorola produced a 68000-360 a CPU with the scaled down IBM 360 instruction set?
The microcode/nanocode was in ROM rather than downloadable but there's what I was talking about.
CPU's of the modern era that can run code as far back as the late 50's because they ran changeable microcode.
Now if they did that in a downloadable form, the PC would be hardware compatible to almost any CPU's of the past simply because of it's address and data bus widths being more than enough to execute any instruction set.
If you want hardware compatibility, that's the way to do it.
Imagine if we'd gone down that path what things would be like today.
1) I could have any O/S I like on my laptop without compromising it's new features.
2) with multi processing CPU's I could run different O/S's at the same time on the same hardware.
3) If I needed a specific instruction set, I could download it. I could run IBM 360 programs or Cyber 18/20 programs faster than they were ever run.
Basically the computer industry was slowed down. The trend changed from producing better, faster and more flexible CPU's to CPU's that had backward machine code compatibility when there was no real need for it. As your example of the IBM 360 shows.
FZR1KG wrote:Ain't that the truth. Not that I'm bitching at you. It's the industry I'm pissed off with.
Remember, I was a design engineer back in the days where CPU development was really starting to take off and knew how to design CPU's and their peripherals such as cache etc. So watching the industry go down the path they did was frustrating as hell. Back in those days I'd debate with other design engineers about the trends and we speculated where it was heading. So far our predictions back then were pretty much spot on. Not bad for predictions made close to three decades ago.
The only one that hasn't happened yet is one I predicted would happen but hasn't quite yet, though the trend is heading that way so it's just a matter of time. Maybe I should check again, it's been a while. It may have happened since I last checked. PM me if you want to know what that was as I don't want to post it publicly.
FZR1KG wrote:I tried the 2013 C++ but it's not compatible to the 2005 version either.
The 2008 version allows you to update your code but all it does is break it.
The later versions don't even bother trying.
FZR1KG wrote:It is fun going back through memory lane though.
Most people don't even know what microcode is or if they have heard of it have no idea what it does or how it works yet their lives revolve around machines that use it. Not that I care, I just find it amusing at times. Especially when hearing people talk about computers and you know they don't really know much about them, but they think they do and are happy to share their wealth of knowledge with everyone. Little do they know the person next to them who looks like a blue collar laborer designed such systems for a living before they were even born.
FZR1KG wrote:Even more amusing is when people know I'm an electronics engineer and ask my advice on which computer to get.
I don't know. Why the hell would I?
FZR1KG wrote:I don't get involved with the latest CPU or benchmarks because I find it boring and I'm kind of pissed off with the whole industry anyway.
People overclocking CPU's to get them to run a bit faster. I know a guy that spent days tweaking a PC to get a few percent more performance.
Yay, he managed to tweak it to do benchmark software faster. Excellent. Good job. Here's a dog biscuit for you. lol
FZR1KG wrote:I'm also probably very biased. I'm a hardware guy. I love design. Digital and analog. I love to make new designs but that side of the industry is dying or so specialized it's not worth the effort. So I guess watching what happened was distressing to me.
Maybe I have 8086 PTSD?
Ever seen Charleston Heston at the end of "Planet Of The Apes?"
That's me banging my head asking, "why this piece of shit processor? why? WHY!!! arrrgggghhhhh" Damn you to hell!!!
FZR1KG wrote:On, on NPR today I heard about a guy that wrote a book about the most important company in the world, Intel... arrrgghhhh DAMN YOU ALL TO HELLL!!!!
Link: http://www.harpercollins.com/9780062226 ... el-trinity
Sigma wrote:Actually, I think that IBM (to use my example) implemented 99% of the compatibility customers wanted through the use of Hypervisors, After all: they virtually (pun not intended )invented the whole damned virtual machine thing. And they created an OS that is specialized to to run as a Hypervisor: The VM Operating System which is the spiritual granddaddy of what I use on Intel Hardware: VMWare:
By using VMWare, I run stuff that was written for whatever version of WIndows Server, or Linux (or almost any other OS written for IBM Compatible Intel Hardware) on modern hardware with virtually no changes.
I've got a Payroll System based on Peoplesoft 7.5, that thing is close to 15 years old. It's only certified on Windows 2000, and the Database it uses (Oracle 8.0.5) won't run on a modern version of Linux (originally the database was on an IBM RS/6000 S70).
We moved it to a couple of VMs over VMWARE, the application server still runs on WIndows 2000, the RDBMS server runs on Redhat Linux 7.3 (fortunately I could upgrade the RDBMS Server to Oracle 8.1.7 with no compatibility issues)
Of course, there's a performance penalty, so these days that CPUs run a gigahertz speeds and you can have 4 or 6 cpus on the same slab of silicon (so 24 or 32 Processor machines are affordable for someone who is not a multinational bank) You fix it with powerful CPUs. (and a good I/O Subsystem over a SAN too )
Hey, I am pretty sure that barring copyright problems, you can solve the binary compatibility issues through the use of downloadble microcode, the thing is that customers want it all: full compatibility and the new stuff, running at the same time. And they also want it dirt cheap too.
Of course, what you didn't spend on specialized hardware, you spend it on software licenses, VMWare is expensive as hell.
With CP-40, the hardware's supervisor state was virtualized as well, allowing multiple operating systems to run concurrently in separate virtual machine contexts.
Sigma_Orionis wrote:FZR1KG wrote:On, on NPR today I heard about a guy that wrote a book about the most important company in the world, Intel... arrrgghhhh DAMN YOU ALL TO HELLL!!!!
Link: http://www.harpercollins.com/9780062226 ... el-trinity
What can you expect from the same people who think that Steve Jobs was a legendary programmer?
Sigma wrote:The solution that worked for me, probably won't work for you, my problem was for server machines. Yours is a workstation problem.
How do you interface with the PSoC hardware? Serial Port? USB?
Sigma wrote:Hey I prefer stuff solved in hardware. Since, it's more expensive to implement and change than software it tends to be less buggy
FZR1KG wrote:Virtulization is a fancy name for simulation via a debugger, even though the debugger is pretty crude being basically a special instruction that does a system call.
FZR1KG wrote:You will notice though:With CP-40, the hardware's supervisor state was virtualized as well, allowing multiple operating systems to run concurrently in separate virtual machine contexts.
Exactly where I was saying we'd be now had they no gone down the path they did with the PC.
I mean hell, the O/S I wrote way back in the early '80's did the same thing on a Z80 CPU that didn't have special system instructions. I used the rst38 instruction which was not implemented on my system as it was designed to be a call to ROM in the lowest part of memory but my system had special hardware to make it start executing ROM from high memory thus no one used the rst instructions. As a bonus it's opcode was 0xFF, a jump of -1, so you could also make conditional rst 38 instructions using the jr (jump relative) instruction.
That way I could run CPM, my own O/S or the native interpreter and debug code by inserting the instruction.
FZR1KG wrote:I have noticed though that there is now a push toward virtulization software in the last decade or so. Only about 45 years behind the rest of the industry.
Likewise as you mentioned, hardware provided back in the '60 and still provided today is not used by MS O/S's.
Maybe the push toward virtulization will encourage that and some young buck will come up with the brilliant concept of using extra layers of rings and run an O/S in an O/S so that Windows type O/S's are the secondary O/S instead of the first and suddenly we can have multiple O/S's running on one system at the same time. That will however take MS to get its monumental head out of its ass long enough to realise that what it's been passing of as an O/S is actually a clusterfuck devil child of a shitty O/S and a GUI rolled into one then passed off as some great system.
Gullible Jones wrote:You guys have utterly lost me with the hardware stuff, howeverSigma wrote:Hey I prefer stuff solved in hardware. Since, it's more expensive to implement and change than software it tends to be less buggy
Don't know about pure hardware (i.e. etched in), but my experience is that flashable firmware tends to be buggy as shit, at least on the desktop/small server end. e.g. Pretty much all my laptops can be reliably made to crash during POST by various methods (usually plugging and unplugging a USB device works).
GJ wrote:Re virtualization, I think the deal is that it's now widely available on cheapo commodity hardware, and said commodity hardware has gotten quite powerful; so dividing up your tasks into VMs is usually feasible, and pays for itself when you're running a lot of stuff. But yes, it is old tech, and it always annoys me when interviewers treat it as cutting-edge must-know material that a veteran sysadmin couldn't learn in ~5 minutes.
GJ wrote:(I'm not so sure about the security end of things though. Hypervisors usually present a very small attack surface, but I've seen networks where having access to one VM would effectively give SSH access everywhere. By comparison it might very well be more secure to run all your services on one Linux server, with AppArmor restrictions for each service. Of course, with Linux kernel vulnerabilities a dime a dozen these days...)
Gullible Jones wrote:Don't know about pure hardware (i.e. etched in), but my experience is that flashable firmware tends to be buggy as shit, at least on the desktop/small server end. e.g. Pretty much all my laptops can be reliably made to crash during POST by various methods (usually plugging and unplugging a USB device works).
Gullible Jones wrote:Re virtualization, I think the deal is that it's now widely available on cheapo commodity hardware, and said commodity hardware has gotten quite powerful; so dividing up your tasks into VMs is usually feasible, and pays for itself when you're running a lot of stuff. But yes, it is old tech, and it always annoys me when interviewers treat it as cutting-edge must-know material that a veteran sysadmin couldn't learn in ~5 minutes.
Gullible Jones wrote:(I'm not so sure about the security end of things though. Hypervisors usually present a very small attack surface, but I've seen networks where having access to one VM would effectively give SSH access everywhere. By comparison it might very well be more secure to run all your services on one Linux server, with AppArmor restrictions for each service. Of course, with Linux kernel vulnerabilities a dime a dozen these days...)
Users browsing this forum: No registered users and 2 guests