DiskCache is an Apache2 licensed disk and file backed cache library, writtenin pure-Python, and compatible with Django.
This is a comprehensive index of city-building games, sorted chronologically.Information regarding date of release, developer, platform, setting and notability is provided when available. Rainmeter is open source software distributed free of charge under the terms of the GNU GPL v2 license. Website Download Show off your favorite desktop configuration by uploading a screenshot of your desktop! Mac OS 9 was the ninth major release of Apple's classic Mac OS operating system which was succeeded by OS X.Introduced on October 23, 1999, it was promoted by Apple as 'The Best Internet Operating System Ever', highlighting Sherlock 2's Internet search capabilities, integration with Apple's free online services known as iTools and improved Open Transport networking.
The cloud-based computing of 2020 puts a premium on memory. Gigabytes of emptyspace is left on disks as processes vie for memory. Among these processes isMemcached (and sometimes Redis) which is used as a cache. Wouldn't it be niceto leverage empty disk space for caching?
Django is Python's most popular web framework and ships with several cachingbackends. Unfortunately the file-based cache in Django is essentiallybroken. The culling method is random and large caches repeatedly scan a cachedirectory which slows linearly with growth. Can you really allow it to takesixty milliseconds to store a key in a cache with a thousand items?
In Python, we can do better. And we can do it in pure-Python!
Note: Micro-benchmarks have their place but are not a substitute for realmeasurements. DiskCache offers cache benchmarks to defend its performanceclaims. Micro-optimizations are avoided but your mileage may vary.
DiskCache efficiently makes gigabytes of storage space available forcaching. By leveraging rock-solid database libraries and memory-mapped files,cache performance can match and exceed industry-standard solutions. There's noneed for a C compiler or running another process. Performance is a feature andtesting has 100% coverage with unit tests and hours of stress.
Testimonials¶
Daren Hasenkamp, Founder –
'It's a useful, simple API, just like I love about Redis. It has reducedthe amount of queries hitting my Elasticsearch cluster by over 25% for awebsite that gets over a million users/day (100+ hits/second).'
Mathias Petermann, Senior Linux System Engineer –
'I implemented it into a wrapper for our Ansible lookup modules and we wereable to speed up some Ansible runs by almost 3 times. DiskCache is savingus a ton of time.'
Does your company or website use DiskCache? Send us a message and let us know.
Features¶
Discoships Mac Os 11
Pure-Python
Fully Documented
Benchmark comparisons (alternatives, Django cache backends)
100% test coverage
Hours of stress testing
Performance matters
Django compatible API
Thread-safe and process-safe
Supports multiple eviction policies (LRU and LFU included)
Keys support 'tag' metadata and eviction
Developed on Python 3.8
Tested on CPython 3.5, 3.6, 3.7, 3.8
Tested on Linux, Mac OS X, and Windows
Tested using Travis CI and AppVeyor CI
Quickstart¶
Installing DiskCache is simple with pip:
You can access documentation in the interpreter with Python's built-in helpfunction:
The core of DiskCache is three data types intended for caching. Cacheobjects manage a SQLite database and filesystem directory to store key andvalue pairs. FanoutCache provides a sharding layer to utilize multiplecaches and DjangoCache integrates that with Django:
Built atop the caching data types, are Deque and Index which work as across-process, persistent replacements for Python's collections.deque
anddict
. These implement the sequence and mapping container base classes:
Finally, a number of recipes for cross-process synchronization are providedusing an underlying cache. Features like memoization with cache stampedeprevention, cross-process locking, and cross-process throttling are available:
Python's docstrings are a quick way to get started but not intended as areplacement for the DiskCache Tutorial and DiskCache API Reference.
User Guide¶
For those wanting more details, this part of the documentation describestutorial, benchmarks, API, and development.
Comparisons¶
Comparisons to popular projects related to DiskCache.
Key-Value Stores¶
DiskCache is mostly a simple key-value store. Feature comparisons with fourother projects are shown in the tables below.
dbm is part of Python's standard library and implements a genericinterface to variants of the DBM database — dbm.gnu or dbm.ndbm. If none ofthese modules is installed, the slow-but-simple dbm.dumb is used.
shelve is part of Python's standard library and implements a 'shelf' as apersistent, dictionary-like object. The difference with 'dbm' databases isthat the values can be anything that the pickle module can handle.
sqlitedict is a lightweight wrapper around Python's sqlite3 database witha simple, Pythonic dict-like interface and support for multi-threadaccess. Keys are arbitrary strings, values arbitrary pickle-able objects.
pickleDB is a lightweight and simple key-value store. It is built uponPython's simplejson module and was inspired by Redis. It is licensed with theBSD three-caluse license.
Features
Feature | diskcache | dbm | shelve | sqlitedict | pickleDB |
---|---|---|---|---|---|
Atomic? | Always | Maybe | Maybe | Maybe | No |
Persistent? | Yes | Yes | Yes | Yes | Yes |
Thread-safe? | Yes | No | No | Yes | No |
Process-safe? | Yes | No | No | Maybe | No |
Backend? | SQLite | DBM | DBM | SQLite | File |
Serialization? | Customizable | None | Pickle | Customizable | JSON |
Data Types? | Mapping/Deque | Mapping | Mapping | Mapping | Mapping |
Ordering? | Insert/Sorted | None | None | None | None |
Eviction? | LRU/LFU/more | None | None | None | None |
Vacuum? | Automatic | Maybe | Maybe | Manual | Automatic |
Transactions? | Yes | No | No | Maybe | No |
Multiprocessing? | Yes | No | No | No | No |
Forkable? | Yes | No | No | No | No |
Metadata? | Yes | No | No | No | No |
Quality
Project | diskcache | dbm | shelve | sqlitedict | pickleDB |
---|---|---|---|---|---|
Tests? | Yes | Yes | Yes | Yes | Yes |
Coverage? | Yes | Yes | Yes | Yes | No |
Stress? | Yes | No | No | No | No |
CI Tests? | Linux/Windows | Yes | Yes | Linux | No |
Python? | 2/3/PyPy | All | All | 2/3 | 2/3 |
License? | Apache2 | Python | Python | Apache2 | 3-Clause BSD |
Docs? | Extensive | Summary | Summary | Readme | Summary |
Benchmarks? | Yes | No | No | No | No |
Sources? | GitHub | GitHub | GitHub | GitHub | GitHub |
Pure-Python? | Yes | Yes | Yes | Yes | Yes |
Server? | No | No | No | No | No |
Integrations? | Django | None | None | None | None |
Timings
These are rough measurements. See DiskCache Cache Benchmarks for morerigorous data.
Project | diskcache | dbm | shelve | sqlitedict | pickleDB |
---|---|---|---|---|---|
get | 25 µs | 36 µs | 41 µs | 513 µs | 92 µs |
set | 198 µs | 900 µs | 928 µs | 697 µs | 1,020 µs |
delete | 248 µs | 740 µs | 702 µs | 1,717 µs | 1,020 µs |
Caching Libraries¶
joblib.Memory provides caching functions and works by explicitly savingthe inputs and outputs to files. It is designed to work with non-hashable andpotentially large input and output data types such as numpy arrays.
klepto extends Python's lru_cache to utilize different keymaps andalternate caching algorithms, such as lfu_cache and mru_cache. Kleptouses a simple dictionary-sytle interface for all caches and archives.
Data Structures¶
dict is a mapping object that maps hashable keys to arbitraryvalues. Mappings are mutable objects. There is currently only one standardPython mapping type, the dictionary. Backtrack (itch) (vl4dwtz) mac os.
pandas is a Python package providing fast, flexible, and expressive datastructures designed to make working with 'relational' or 'labeled' data botheasy and intuitive.
Sorted Containers is an Apache2 licensed sorted collections library,written in pure-Python, and fast as C-extensions. Sorted Containersimplements sorted list, sorted dictionary, and sorted set data types.
Pure-Python Databases¶
ZODB supports an isomorphic interface for database operations which meansthere's little impact on your code to make objects persistent and there's nodatabase mapper that partially hides the datbase.
CodernityDB is an open source, pure-Python, multi-platform, schema-less,NoSQL database and includes an HTTP server version, and a Python clientlibrary that aims to be 100% compatible with the embedded version.
TinyDB is a tiny, document oriented database optimized for yourhappiness. If you need a simple database with a clean API that just workswithout lots of configuration, TinyDB might be the right choice for you.
Object Relational Mappings (ORM)¶
Django ORM provides models that are the single, definitive source ofinformation about data and contains the essential fields and behaviors of thestored data. Generally, each model maps to a single SQL database table.
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper thatgives application developers the full power and flexibility of SQL. Itprovides a full suite of well known enterprise-level persistence patterns.
Peewee is a simple and small ORM. It has few (but expressive) concepts,making it easy to learn and intuitive to use. Peewee supports Sqlite, MySQL,and PostgreSQL with tons of extensions.
SQLObject is a popular Object Relational Manager for providing an objectinterface to your database, with tables as classes, rows as instances, andcolumns as attributes.
Pony ORM is a Python ORM with beautiful query syntax. Use Python syntaxfor interacting with the database. Pony translates such queries into SQL andexecutes them in the database in the most efficient way.
SQL Databases¶
SQLite is part of Python's standard library and provides a lightweightdisk-based database that doesn't require a separate server process and allowsaccessing the database using a nonstandard variant of the SQL query language.
MySQL is one of the world's most popular open source databases and hasbecome a leading database choice for web-based applications. MySQL includes astandardized database driver for Python platforms and development.
PostgreSQL is a powerful, open source object-relational database systemwith over 30 years of active development. Psycopg is the most popularPostgreSQL adapter for the Python programming language.
Oracle DB is a relational database management system (RDBMS) from theOracle Corporation. Originally developed in 1977, Oracle DB is one of themost trusted and widely used enterprise relational database engines.
Microsoft SQL Server is a relational database management system developedby Microsoft. As a database server, it stores and retrieves data as requestedby other software applications.
Other Databases¶
Memcached is free and open source, high-performance, distributed memoryobject caching system, generic in nature, but intended for use in speeding updynamic web applications by alleviating database load.
Redis is an open source, in-memory data structure store, used as adatabase, cache and message broker. It supports data structures such asstrings, hashes, lists, sets, sorted sets with range queries, and more.
MongoDB is a cross-platform document-oriented database program. Classifiedas a NoSQL database program, MongoDB uses JSON-like documents withschema. PyMongo is the recommended way to work with MongoDB from Python.
LMDB is a lightning-fast, memory-mapped database. With memory-mappedfiles, it has the read performance of a pure in-memory database whileretaining the persistence of standard disk-based databases.
BerkeleyDB is a software library intended to provide a high-performanceembedded database for key/value data. Berkeley DB is a programmatic toolkitthat provides built-in database support for desktop and server applications.
LevelDB is a fast key-value storage library written at Google thatprovides an ordered mapping from string keys to string values. Data is storedsorted by key and users can provide a custom comparison function.
Reference¶
License¶
Copyright 2016-2020 Grant Jenks
Licensed under the Apache License, Version 2.0 (the 'License'); you may not usethis file except in compliance with the License. You may obtain a copy of theLicense at
DiskCache is an Apache2 licensed disk and file backed cache library, writtenin pure-Python, and compatible with Django.
This is a comprehensive index of city-building games, sorted chronologically.Information regarding date of release, developer, platform, setting and notability is provided when available. Rainmeter is open source software distributed free of charge under the terms of the GNU GPL v2 license. Website Download Show off your favorite desktop configuration by uploading a screenshot of your desktop! Mac OS 9 was the ninth major release of Apple's classic Mac OS operating system which was succeeded by OS X.Introduced on October 23, 1999, it was promoted by Apple as 'The Best Internet Operating System Ever', highlighting Sherlock 2's Internet search capabilities, integration with Apple's free online services known as iTools and improved Open Transport networking.
The cloud-based computing of 2020 puts a premium on memory. Gigabytes of emptyspace is left on disks as processes vie for memory. Among these processes isMemcached (and sometimes Redis) which is used as a cache. Wouldn't it be niceto leverage empty disk space for caching?
Django is Python's most popular web framework and ships with several cachingbackends. Unfortunately the file-based cache in Django is essentiallybroken. The culling method is random and large caches repeatedly scan a cachedirectory which slows linearly with growth. Can you really allow it to takesixty milliseconds to store a key in a cache with a thousand items?
In Python, we can do better. And we can do it in pure-Python!
Note: Micro-benchmarks have their place but are not a substitute for realmeasurements. DiskCache offers cache benchmarks to defend its performanceclaims. Micro-optimizations are avoided but your mileage may vary.
DiskCache efficiently makes gigabytes of storage space available forcaching. By leveraging rock-solid database libraries and memory-mapped files,cache performance can match and exceed industry-standard solutions. There's noneed for a C compiler or running another process. Performance is a feature andtesting has 100% coverage with unit tests and hours of stress.
Testimonials¶
Daren Hasenkamp, Founder –
'It's a useful, simple API, just like I love about Redis. It has reducedthe amount of queries hitting my Elasticsearch cluster by over 25% for awebsite that gets over a million users/day (100+ hits/second).'
Mathias Petermann, Senior Linux System Engineer –
'I implemented it into a wrapper for our Ansible lookup modules and we wereable to speed up some Ansible runs by almost 3 times. DiskCache is savingus a ton of time.'
Does your company or website use DiskCache? Send us a message and let us know.
Features¶
Discoships Mac Os 11
Pure-Python
Fully Documented
Benchmark comparisons (alternatives, Django cache backends)
100% test coverage
Hours of stress testing
Performance matters
Django compatible API
Thread-safe and process-safe
Supports multiple eviction policies (LRU and LFU included)
Keys support 'tag' metadata and eviction
Developed on Python 3.8
Tested on CPython 3.5, 3.6, 3.7, 3.8
Tested on Linux, Mac OS X, and Windows
Tested using Travis CI and AppVeyor CI
Quickstart¶
Installing DiskCache is simple with pip:
You can access documentation in the interpreter with Python's built-in helpfunction:
The core of DiskCache is three data types intended for caching. Cacheobjects manage a SQLite database and filesystem directory to store key andvalue pairs. FanoutCache provides a sharding layer to utilize multiplecaches and DjangoCache integrates that with Django:
Built atop the caching data types, are Deque and Index which work as across-process, persistent replacements for Python's collections.deque
anddict
. These implement the sequence and mapping container base classes:
Finally, a number of recipes for cross-process synchronization are providedusing an underlying cache. Features like memoization with cache stampedeprevention, cross-process locking, and cross-process throttling are available:
Python's docstrings are a quick way to get started but not intended as areplacement for the DiskCache Tutorial and DiskCache API Reference.
User Guide¶
For those wanting more details, this part of the documentation describestutorial, benchmarks, API, and development.
Comparisons¶
Comparisons to popular projects related to DiskCache.
Key-Value Stores¶
DiskCache is mostly a simple key-value store. Feature comparisons with fourother projects are shown in the tables below.
dbm is part of Python's standard library and implements a genericinterface to variants of the DBM database — dbm.gnu or dbm.ndbm. If none ofthese modules is installed, the slow-but-simple dbm.dumb is used.
shelve is part of Python's standard library and implements a 'shelf' as apersistent, dictionary-like object. The difference with 'dbm' databases isthat the values can be anything that the pickle module can handle.
sqlitedict is a lightweight wrapper around Python's sqlite3 database witha simple, Pythonic dict-like interface and support for multi-threadaccess. Keys are arbitrary strings, values arbitrary pickle-able objects.
pickleDB is a lightweight and simple key-value store. It is built uponPython's simplejson module and was inspired by Redis. It is licensed with theBSD three-caluse license.
Features
Feature | diskcache | dbm | shelve | sqlitedict | pickleDB |
---|---|---|---|---|---|
Atomic? | Always | Maybe | Maybe | Maybe | No |
Persistent? | Yes | Yes | Yes | Yes | Yes |
Thread-safe? | Yes | No | No | Yes | No |
Process-safe? | Yes | No | No | Maybe | No |
Backend? | SQLite | DBM | DBM | SQLite | File |
Serialization? | Customizable | None | Pickle | Customizable | JSON |
Data Types? | Mapping/Deque | Mapping | Mapping | Mapping | Mapping |
Ordering? | Insert/Sorted | None | None | None | None |
Eviction? | LRU/LFU/more | None | None | None | None |
Vacuum? | Automatic | Maybe | Maybe | Manual | Automatic |
Transactions? | Yes | No | No | Maybe | No |
Multiprocessing? | Yes | No | No | No | No |
Forkable? | Yes | No | No | No | No |
Metadata? | Yes | No | No | No | No |
Quality
Project | diskcache | dbm | shelve | sqlitedict | pickleDB |
---|---|---|---|---|---|
Tests? | Yes | Yes | Yes | Yes | Yes |
Coverage? | Yes | Yes | Yes | Yes | No |
Stress? | Yes | No | No | No | No |
CI Tests? | Linux/Windows | Yes | Yes | Linux | No |
Python? | 2/3/PyPy | All | All | 2/3 | 2/3 |
License? | Apache2 | Python | Python | Apache2 | 3-Clause BSD |
Docs? | Extensive | Summary | Summary | Readme | Summary |
Benchmarks? | Yes | No | No | No | No |
Sources? | GitHub | GitHub | GitHub | GitHub | GitHub |
Pure-Python? | Yes | Yes | Yes | Yes | Yes |
Server? | No | No | No | No | No |
Integrations? | Django | None | None | None | None |
Timings
These are rough measurements. See DiskCache Cache Benchmarks for morerigorous data.
Project | diskcache | dbm | shelve | sqlitedict | pickleDB |
---|---|---|---|---|---|
get | 25 µs | 36 µs | 41 µs | 513 µs | 92 µs |
set | 198 µs | 900 µs | 928 µs | 697 µs | 1,020 µs |
delete | 248 µs | 740 µs | 702 µs | 1,717 µs | 1,020 µs |
Caching Libraries¶
joblib.Memory provides caching functions and works by explicitly savingthe inputs and outputs to files. It is designed to work with non-hashable andpotentially large input and output data types such as numpy arrays.
klepto extends Python's lru_cache to utilize different keymaps andalternate caching algorithms, such as lfu_cache and mru_cache. Kleptouses a simple dictionary-sytle interface for all caches and archives.
Data Structures¶
dict is a mapping object that maps hashable keys to arbitraryvalues. Mappings are mutable objects. There is currently only one standardPython mapping type, the dictionary. Backtrack (itch) (vl4dwtz) mac os.
pandas is a Python package providing fast, flexible, and expressive datastructures designed to make working with 'relational' or 'labeled' data botheasy and intuitive.
Sorted Containers is an Apache2 licensed sorted collections library,written in pure-Python, and fast as C-extensions. Sorted Containersimplements sorted list, sorted dictionary, and sorted set data types.
Pure-Python Databases¶
ZODB supports an isomorphic interface for database operations which meansthere's little impact on your code to make objects persistent and there's nodatabase mapper that partially hides the datbase.
CodernityDB is an open source, pure-Python, multi-platform, schema-less,NoSQL database and includes an HTTP server version, and a Python clientlibrary that aims to be 100% compatible with the embedded version.
TinyDB is a tiny, document oriented database optimized for yourhappiness. If you need a simple database with a clean API that just workswithout lots of configuration, TinyDB might be the right choice for you.
Object Relational Mappings (ORM)¶
Django ORM provides models that are the single, definitive source ofinformation about data and contains the essential fields and behaviors of thestored data. Generally, each model maps to a single SQL database table.
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper thatgives application developers the full power and flexibility of SQL. Itprovides a full suite of well known enterprise-level persistence patterns.
Peewee is a simple and small ORM. It has few (but expressive) concepts,making it easy to learn and intuitive to use. Peewee supports Sqlite, MySQL,and PostgreSQL with tons of extensions.
SQLObject is a popular Object Relational Manager for providing an objectinterface to your database, with tables as classes, rows as instances, andcolumns as attributes.
Pony ORM is a Python ORM with beautiful query syntax. Use Python syntaxfor interacting with the database. Pony translates such queries into SQL andexecutes them in the database in the most efficient way.
SQL Databases¶
SQLite is part of Python's standard library and provides a lightweightdisk-based database that doesn't require a separate server process and allowsaccessing the database using a nonstandard variant of the SQL query language.
MySQL is one of the world's most popular open source databases and hasbecome a leading database choice for web-based applications. MySQL includes astandardized database driver for Python platforms and development.
PostgreSQL is a powerful, open source object-relational database systemwith over 30 years of active development. Psycopg is the most popularPostgreSQL adapter for the Python programming language.
Oracle DB is a relational database management system (RDBMS) from theOracle Corporation. Originally developed in 1977, Oracle DB is one of themost trusted and widely used enterprise relational database engines.
Microsoft SQL Server is a relational database management system developedby Microsoft. As a database server, it stores and retrieves data as requestedby other software applications.
Other Databases¶
Memcached is free and open source, high-performance, distributed memoryobject caching system, generic in nature, but intended for use in speeding updynamic web applications by alleviating database load.
Redis is an open source, in-memory data structure store, used as adatabase, cache and message broker. It supports data structures such asstrings, hashes, lists, sets, sorted sets with range queries, and more.
MongoDB is a cross-platform document-oriented database program. Classifiedas a NoSQL database program, MongoDB uses JSON-like documents withschema. PyMongo is the recommended way to work with MongoDB from Python.
LMDB is a lightning-fast, memory-mapped database. With memory-mappedfiles, it has the read performance of a pure in-memory database whileretaining the persistence of standard disk-based databases.
BerkeleyDB is a software library intended to provide a high-performanceembedded database for key/value data. Berkeley DB is a programmatic toolkitthat provides built-in database support for desktop and server applications.
LevelDB is a fast key-value storage library written at Google thatprovides an ordered mapping from string keys to string values. Data is storedsorted by key and users can provide a custom comparison function.
Reference¶
License¶
Copyright 2016-2020 Grant Jenks
Licensed under the Apache License, Version 2.0 (the 'License'); you may not usethis file except in compliance with the License. You may obtain a copy of theLicense at
Unless required by applicable law or agreed to in writing, software distributedunder the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES ORCONDITIONS OF ANY KIND, either express or implied. See the License for thespecific language governing permissions and limitations under the License.
Developer | Apple Computer |
---|---|
Type | Disk Drive |
Release date | May 4, 1984 |
Introductory price | US$495 |
The Macintosh External Disk Drive is the original model in a series of external 3+1⁄2-inch floppy disk drives manufactured and sold by Apple Computer exclusively for the Macintosh series of computers introduced in January 1984. Later, Apple would unify their external drives to work cross-platform between the Macintosh and Apple II product lines, dropping the name 'Macintosh' from the drives. Though Apple had been producing external floppy disk drives prior to 1984, they were exclusively developed for the Apple II, III and Lisa computers using the industry standard 5+1⁄4-inch flexible disk format. The Macintosh external drives were the first to widely introduce Sony's new 3+1⁄2-inch rigid disk standard commercially and throughout their product line. Apple produced only one external 3+1⁄2-inch drive exclusively for use with the Apple II series called the Apple UniDisk 3.5.
400K[edit]
The original Macintosh External Disk Drive (M0130) was introduced with the Macintosh on January 24, 1984. However, it did not actually ship until May 4, 1984, sixty days after Apple had promised it to dealers. Bill Fernandez was the project manager who oversaw the design and production of the drive.[1] The drive case was designed to match the Macintosh and included the same 400-kilobyte drive (a Sony-made 3+1⁄2-inch single-sided mechanism) installed inside the Macintosh. Although very similar to the 400-kilobyte drive which newly replaced Apple's ill-fated Twiggy drive in the Lisa, there were subtle differences relating mainly to the eject mechanism. However, confusingly all of these drives were labelled identically. The Macintosh could only support one external drive, limiting the number of floppy disks mounted at once to two, but both Apple and third party manufacturers developed external hard drives that connected to the Mac's floppy disk port, which had pass-through ports to accommodate daisy-chaining the external disk drive. Apple's Hard Disk 20 could accommodate an additional daisy-chained hard drive as well as an external floppy disk.
3.5-inch single-sided floppies had been used on several microcomputers and synthesizers in the early 1980s, including the Hewlett Packard 150 and various MSX computers. The standard on all of these was MFM with 80 tracks and 9 sectors per track, giving 360 kB per disk. However, Apple's custom interface uses Group Coded Recording (GCR) and a unique format which puts fewer sectors on the smaller inner tracks and more sectors on the wider outer tracks of the disk. The disk speeds up when accessing the inner tracks and slows down when accessing the outer ones. This is called the 'Zoned CAV' system; there are five zones of 16 tracks each, the inner most zone had 8 sectors per track, the next zone 9 sectors per track, and so on; the outermost zone has 12 sectors per track. This allows more space per disk (400 kB) and also improves reliability by reducing the number of sectors on the inner tracks which had less physical media to allocate to each sector.
The external 400-kilobyte Macintosh drive will work on any Macintosh that does not have a high density SuperDrive controller (due to electrical changes with the interface), but the disks in practice only support the MFS file system. Although a 400-kilobyte disk may be formatted with HFS, it cannot be booted from, nor is it readable in a Mac 128 or 512.
Copy protection schemes were not as elaborate or widespread on Macintosh software as they were on Apple II software for several reasons. First, the Mac drives did not afford the same degree of low-level control. Also Apple did not publish source listings for the Mac OS ROMs as they did with the Apple II. Finally, the Mac OS routines were considerably more complex and disk access had to be synchronized with the mouse and keyboard.
Discoships Mac Os X
800K[edit]
By early 1985, it was clear that the Macintosh needed additional storage space, in particular a hard drive. Apple announced their first hard drive for the Mac in March 1985. However, the MFS file system did not support subdirectories, making it unsuitable for a hard disk. Apple quickly began adopting for the Mac the hierarchical based SOS filing system introduced with the Apple III and long since implemented in ProDOS for the Apple II series and the Lisa. This change in the Mac's filing system delayed the introduction of the double sided Sony drives which Apple intended to offer as soon as the technology was available, a concession they made when adopting the Sony drives over their own problematic double-capacity Twiggy drives.[2][3] However, based on the success of the 3.5-inch floppy drive for the Mac, there was no such obstacle in immediately implementing an 800-kilobyte drive for the Apple II, so it was introduced in September 1985, four months before the version for the Mac. While Apple simultaneously introduced their new hard drive after a 6-month delay, they chose not to implement the new floppy drive for the Macintosh at that time.
Apple UniDisk 3.5[edit]
In September 1985, Apple released its first 3+1⁄2-inch drive (A2M2053) for the Apple II series utilizing Sony's new 800-kilobyte double-sided drive mechanism, which would not be released for the Macintosh until four months later. The Apple UniDisk 3.5 drive contained additional circuitry making it an 'intelligent' or 'smart' drive; this made it incompatible with the Macintosh, despite having the identical mechanism that was to be later used in the Macintosh drive. However, if the internal circuit board (which consisted of its own CPU, IWM chip, RAM and firmware) was bypassed it could operate on a Macintosh as an 800-kilobyte drive.[4] Endless game mac os. This permitted storage-hungry Mac users the ability to double their disk capacity 5 months before Apple officially made an 800-kilobyte drive available for the Mac. At the time, the HD20 Startup disk came with HFS and a new .Sony driver that supported 800k drives (in addition to the HD20). Ironically, though the drive would prove to be significantly faster than the previous 400-kilobyte drive, it was specifically slowed down to accommodate the slower 1-megahertz processor of the Apple II. It came in the Snow White-styled case and color to match the Apple IIc and had a pass-through connector for the addition of a second daisy-chained drive. It plugged in directly to the Apple IIc disk port (although original IIcs needed a ROM upgrade) and required a specialized interface card on earlier Apple II models. It would later also work directly with the built-in disk port on the Apple IIc Plus and Apple IIGS through backwards compatibility. This was not recommended for the latter two machines as the Apple 3.5' Drive was faster. It continued to be sold for use with the Apple IIc and IIe which could not use the subsequent replacement Apple 3+1⁄2-inch drive, until the Apple IIc Plus redesign in 1988 and Apple II 3.5 Disk Controller Card released in 1991. Apple developed a DuoDisk 3.5 which contained two drives vertically stacked, but never brought it to market. The 3+1⁄2-inch format was not very popular in the Apple II community (excluding the 16-bit Apple IIGS) as most software was released in the 5.25-inch format to accommodate the existing installed Disk II drives.
Macintosh 800K External Drive[edit]
In January 1986, Apple introduced the Macintosh Plus which had a Sony double-sided 800-kilobyte capacity disk drive, and used the new HFS disk format providing directories and sub-directories. This drive was fitted into an external case as the Macintosh 800K External Drive (M0131), which was slimmer than the earlier 400-kilobyte drive. It could be used with Macintosh models except for the original 128K, which could not load the HFS disk format. The drive supported the older 400-kilobyte single-sided disks allowing them to be shared. The use of Apple's GCR with variable speed (as used on the 400-kilobyte drive) accommodated a higher storage capacity than its 720-kilobyte PC counterparts. In addition, the mechanism was much quieter and significantly faster than its predecessor. Designed primarily to run on Macs with the new 128-kilobyte ROM which contained the necessary code to support the drive, it could be used with Macs with older 64-kilobyte ROMs if the proper software was loaded from the system folder of a Hard Disk 20 into the Mac's RAM. The drive controlled its own speed and was no longer dependent on an external signal from the Mac, which was blocked on the early drive mechanisms compatible only with the Macintosh. Later universal mechanisms, first used on the Apple II to accommodate proprietary signals, required special cables to isolate the speed signal from the Mac, to prevent damage to the drive. However, with its increased storage capacity combined with 2-4 times the RAM available on the Mac Plus, the external drive was less of a necessity than it had been with its predecessors. Nevertheless, with the only option for adding additional storage being extremely expensive hard drives, a year later Apple increased the maximum number of floppy drives that could be accessed simultaneously to three on the Macintosh SE (the Macintosh Portable was the only other Mac to do so).
Apple 3.5' Drive[edit]
Beginning in September 1986, Apple adopted a unified cross-platform product strategy essentially eliminating platform-specific peripherals where possible. The Apple 3.5' Drive (A9M0106), is an 800K external drive released in conjunction with the Apple IIGS computer, and replaced the beige-colored Macintosh 800K External Drive. It works on both the Apple IIGS as well as the Macintosh. It came in a case similar to the UniDisk, but in Platinum gray. Like the UniDisk 3.5, the Apple 3.5' Drive includes Apple II-specific features such as a manual disk eject button and a daisy-chain connector which allows two drives to be connected to an Apple II computer. The Macintosh however could still only accommodate one external drive, and ignores use of the eject button. Unlike the Macintosh 800K External Drive, the Apple 3.5' Drive can be used natively with the 64-kilobyte ROM stock Macintosh 128K & 512K computers without the HD20 INIT, albeit only with 400K MFS formatted disks. Designed as a universal external drive replacement, the Apple 3.5' Drive was eventually made compatible with the remaining Apple II models in production upon the introduction of the Apple IIc Plus and the Apple II 3.5 Disk Controller Card for the Apple IIe.
1.44MB[edit]
Following the success of the Macintosh implementation of the 3+1⁄2-inch format, the format was also adopted widely by the personal computer industry. However most of the industry adopted a different Modified Frequency Modulation (MFM) formatting scheme at a fixed rotational speed, incompatible with Apple's own GCR with variable speed, resulting in a less-expensive drive, but with a lower capacity (720 KB rather than 800 KB). In 1987 a newer and better, MFM-based, 'high-density' format was developed which IBM first introduced in their PS/2 systems, doubling the previous storage capacity to 1.4 MB. In Apple's pursuit of cross-compatibility with DOS and Windows-based systems to attract more business customers, they adopted the new format, thus confirming it as the first industry-wide floppy disk standard. However, Apple could not take advantage of the less expensive fixed-speed systems of the IBM-based computers, due to its backward incompatibility with their own variable-speed formats.
Discoships Mac Os Download
Apple FDHD Drive[edit]
Later renamed the Apple SuperDrive (G7287), the Apple FDHD Drive (Floppy Disk High Density) was introduced in 1989 as Apple's first external 1.44 MB high-density double-sided 3+1⁄2-inch floppy drive. It supported all of Apple's 3.5' floppy disk formats as well as all standard PC formats (e.g. MS-DOS, Windows), allowing the Macintosh to read and write all industry-standard floppy disk formats. The external drive was offered only briefly with support for the Apple II, coming late in that product's life. To take advantage of the drive's extended storage and new capabilities, it required the new SWIM (Sander-Wozniak Integrated Machine) floppy disk controller chip to be present on the Macintosh and Apple II, the latter requiring the Apple II 3.5 Disk Controller Card which integrated the chip. If the drive was connected to an older Macintosh, Apple IIGS or Apple IIc Plus with the older IWM (Integrated Woz Machine) chip, the drive would act as a standard 800K drive, without any additional capabilities. The interface card was necessary for the Apple IIGS to make use of its greater storage capacity and ability to handle PC formats. The Apple IIe could not utilize the drive in any form, unless it had the specialized interface card installed, much like the UniDisk 3.5 which the SuperDrive replaced. The last Mac it could be used with was the Classic II and was discontinued shortly thereafter. The drive was fitted in every desktop Mac from its introduction and was eliminated with the introduction of the iMac in 1998. PowerPC Macs dropped the original auto-inject Sony drives and went to a manual inject mechanism.
Macintosh HDI-20 External 1.4MB Floppy Disk Drive[edit]
Manufactured exclusively for use with the Macintosh PowerBook line, the Macintosh HDI-20 External 1.44MB Floppy Disk Drive (M8061) contained a low-powered, slimmer version of the SuperDrive and used a small square HDI-20[5] proprietary connector, rather than the larger standard DE-19 desktop connector, and was powered directly by the laptop. It had a matching dark gray case and an access cover which flipped down to form a stand. The external drive was sold optionally for those PowerBooks which had no built-in drive, however, the identical drive mechanism was included internally in some PowerBook models, which otherwise had no provision to accommodate an external drive.
Discoships Mac Os Catalina
Macintosh PowerBook 2400c Floppy Disk Drive[edit]
Compatible only with the PowerBook 2400c, the Macintosh PowerBook 2400c Floppy Disk Drive (M4327) used a unique Molex connector [6] rather than the previous HDI-20 connector. Possibly because of the 2400c's IBM design heritage, both the drive and the computer use the same connectors as IBM ThinkPad external floppy drives from the same period; however, IBM drives are not electrically compatible.[7]The drive was discontinued in 1998 and would be the last external floppy drive manufactured by Apple.
See also[edit]
References[edit]
- ^Bill Fernandez Portfolio
- ^MacTech Mousehole Vol 1, Issue 5, Letters, Rumor Mill at the Expo
- ^[1] Folklore.org: Macintosh Stories: Quick, Hide In This Closet!
- ^Naiman, Arthur (1987). The Macintosh Bible. Goldstein & Blair. p. 253. ISBN0-940235-00-5.
- ^HDI-20
- ^'PowerBook 2400c Developer Note'(PDF). Archived from the original on July 21, 2004. Retrieved September 30, 2016.CS1 maint: bot: original URL status unknown (link)
- ^'2400c questions: Sound + PCMCIA Ethernet'. 68kMLA Forums. Retrieved September 30, 2016.
External links[edit]
- Macintosh: Support for External Floppy Drives (at Apple support site)
- vintagemacworld.com Apple External Drives