Talk:Classic Mac OS memory management

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Untitled[edit]

I apologize if my English isn't perfect, anyway, I think is at least understandable. Motorola MC68000 isn't a "full 32-bit" processor; it has only 24-bit wide address bus. It is incorrect to say "24 lines allow addressing up to 8MB" because 24 lines allow to address up to 16 MBytes of memory (any kind of course). The reason of the 8MBytes limit is due the way the memory map was structured on "24-bit" Macs (http://www.osdata.com/system/physical/memmap.htm#MacPlus). Because of this MacOS 7 is able to address more than 8 MBytes of memory (4MBytes RAM + 4MBytes ROM) only on the models equipped with "full 32-bit" processors. I know my english is simple. Please feel free to improve it in any way. Please let me know (here) if anybody of you think I'm wrong somehow. - 213.203.155.204 18:04, 1 January 2006 (UTC)[reply]

The tone of the article worries me slightly...the author(s) seem to assume that Apple refused to change the memory manager out of pure stubbornness or pig-headedness. I think it more likely that Apple assumed all along that some radically new OS would supercede the existing Mac OS (as OS X eventually did) and that it would not be worth the trouble to rewrite the entrenched memory manager. -Astrovan

Some developers were already indicating their displeasure at the way memory management worked as far back as 1989 or so (possibly earlier, but that's when I became aware of it). At that time System 7 hadn't even been released, and it certainly didn't address the issue. In fact by making MultiFinder a non-optional part of the system, it made the situation worse. There were some third-party extensions that replaced the memory manager (Optimem), which showed that it could be changed - though it's true that Optimem caused some compatibility issues with some apps - but then they didn't have the inside story that Apple themselves would have had. In 1992 some colleagues and I had a lengthy discussion with some Apple engineers at a developer seminar about the situation, and we outlined a scheme to them that we thought could have worked. They agreed it was a workable idea, but told us that backward compatibility would be too difficut to ensure, though we didn't really buy that, since our plan provided an identical view of the system from the app's perspective. Perhaps they knew that it really wasn't apps they were worried about, it was system code that was taking liberties - it's come to light much more recently that a lot of it was undocumented, uncommented and certainly unmanaged. However, despite this their tone was very much along the lines of "you boys shouldn't meddle in grown-up's business, now go away and leave it to us, we know what we're doing". We found it patronising to say the least, especially as clearly the implementation that the "grown ups" had come up with sucked so badly. OS X totally replaces the memory manager though implements the same APIs in Carbon, so it shows that a different plan could have been dropped in underneath without compromising API compatibility - and provided apps stuck to the rules that Apple had promoted since the first public issue of Inside Macintosh, they would not have had a problem. Apple's other sticking plaster "solutions" to the problem - temporary memory and so forth, as well as the seriously crappy virtual memory scheme in System 7.whatever, simply added to the problem in spades. It's a moot point, but they really should have bitten the bullet and fixed it with System 7, even if there would have been some bumps in the road as a result - they did it with the 24 -> 32 bit thing, 68k -> PowerPC thing, and others, so why they were so stubborn about this is hard to fathom.Graham 08:00, 5 Sep 2004 (UTC)
I agree with the points made by Graham, however, I do believe that the article does not contain a level of objectivity that is desirable. While Graham makes perfectly valid points, they are still points of personal opinion, which could be done without. If this article was more objective, then perhaps it would not seem to people that Apple was 'stubborn or pig-headed'. For instance, instead of saying "Apple did a bad thing" we could say "It was some people's opinion that Apple did a bad thing", the latter keeping a neutral point of view. This would be quite an interesting (and by that I mean 'boring') task to do, but it would give this article quite a nice polish. --huwr 08:51, 6 Sep 2004 (UTC)

I am deleting this:

In fact this demonstrates conclusively that it was possible to change the model all along without a major compatibility issue, which was always Apple's defence for keeping the original scheme.

because it is, pardon me, bullsh*t. The "compatibility issue" was that applications were reaching into private memory manager data structures, patching traps (in many cases, Apple could not change the order in which purely internal routines were called by portions of the toolbox without breaking important third-party applications), directly reading low-memory globals, in other words, generally violating encapsulation. This was a problem for the entire Mac toolbox, not just the memory manager.

All of that compatibility nightmare still exists -- in the Mac OS 9 emulation layer (Classic.app).

In Carbon on Mac OS X, Apple could do away with all the cruft because there is no binary compatibility with old applications. Carbon apps may run on Mac OS 9 -- but the version of Carbon on Mac OS 9 is a compatibility shim that still uses the old implementation underneath the modernized API calls. Only in Mac OS X could Apple fully do away with the old implementation.

(If you must have credentials, I was a software engineer on the Carbon team at Apple.) —Preceding unsigned comment added by 213.203.155.204 (talkcontribs) 19:04, 1 January 2006 (UTC)[reply]

I think that's fair comment. But since Apple were already aware that there was a problem as far back as the late 80s, there is no real reason that Carbon or so0mething very like it could not have been instigated then, rather than waiting for OS X (and which, I seem to recall, was forced on them by some high-profile rebellious developers who refused point-blank, and quite reasonably, to port their code to Cocoa). Adoption might have been slower since there was no clear benefit in the short term, but Apple could have done it. I think that's the point. Graham 03:44, 2 January 2006 (UTC)[reply]
That's not really the topic of the article, though. Your meeting with Apple engineers of course isn't usable in the article because of WP:Verifiability. It's clear that everyone was annoyed by MultiFinder and the lame memory scheme we all found ourselves in; if you feel the need to add citations saying so then feel free. More citation would help this article, though it's hard to find them on programming topics from the 80s and early 90s. Tempshill 23:07, 8 March 2006 (UTC)[reply]

Fair use rationale for Image:Mac OS Classic application memory allocation.png[edit]

Image:Mac OS Classic application memory allocation.png is being used on this article. I notice the image page specifies that the image is being used under fair use but there is no explanation or rationale as to why its use in this Wikipedia article constitutes fair use. In addition to the boilerplate fair use template, you must also write out on the image description page a specific explanation or rationale for why using this image in each article is consistent with fair use.

Please go to the image description page and edit it to include a fair use rationale. Using one of the templates at Wikipedia:Fair use rationale guideline is an easy way to insure that your image is in compliance with Wikipedia policy, but remember that you must complete the template. Do not simply insert a blank template on an image page.

If there is other fair use media, consider checking that you have specified the fair use rationale on the other images used on this page. Note that any fair use images lacking such an explanation can be deleted one week after being tagged, as described on criteria for speedy deletion. If you have any questions please ask them at the Media copyright questions page. Thank you.

BetacommandBot (talk) 07:01, 1 January 2008 (UTC)[reply]

Historic or current article[edit]

Does this article reflect the current state or is it a historic article about pre OS X era? If so it should be renamed IMHO. —Preceding unsigned comment added by 217.110.199.118 (talk) 10:18, 28 August 2009 (UTC)[reply]

This article is definitely not up to date. There is no description of the 64 bit system used today Agnerf (talk) 05:22, 18 August 2019 (UTC)[reply]
Renamed it because it is fundamentally historic. Contemporary macOS memory management methods are not particularly distinctive. On the whole, not hugely different from any other Unix-like operating system. Only Classic Mac OS has such a unique way of managing memory that it deserves its own article in my opinion. (But, if someone disagrees, and thinks such an article should be written about contemporary macOS, by all means go ahead in another article.) SJK (talk) 08:38, 1 January 2020 (UTC)[reply]

"32-bit clean" redirect[edit]

32-bit clean redirects here, but there's a similar phenomenon in the ARM architecture and System/360 which also had programs use unused address bits to store data which caused problems when addresses were expanded. — Preceding unsigned comment added by 206.21.52.10 (talk) 07:15, 7 February 2013 (UTC)[reply]

External links modified[edit]

Hello fellow Wikipedians,

I have just modified one external link on Mac OS memory management. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}} (last update: 18 January 2022).

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers.—InternetArchiveBot (Report bug) 07:36, 11 January 2018 (UTC)[reply]

Is this article overly-technical?[edit]

I was reading this article and it seems excessively technical. If I did not have a computer science background myself, I would struggle to make sense of this article. I think that mentions to specific API names and features is a little too specific. Perhaps this could be rewritten to be more high-level or understandable to less-technical users? I marked the page itself as technical after reading the guidelines. — Preceding unsigned comment added by Rjkucia (talkcontribs) 17:11, 8 September 2020 (UTC)[reply]

@Rjkucia: This is an article about an inherently technical topic, and a rather obscure technical topic at that – the memory management of a discontinued operating system. The fact is, memory management is something which only concerns programmers, and you need to know a bit of background about computer science and/or programming to make sense of it. As such, I feel that asking for this article to be made less technical is a bit of a dubious request. When we dealing with more advanced topics, which are not of general interest, I think it is reasonable to assume readers already understand the basics. If they don't, they can always read other articles, or other sources, to get those basics before attempting to tackle something like this SJK (talk) 11:00, 10 September 2020 (UTC)[reply]