The Symbian OS (779886), страница 12
Текст из файла (страница 12)
And by the way we did producedevices like the MC400 where multiple applications were visible on the screenat the same time, though we ended up going toward smaller devices. But thevision was that the user could see multiple applications at the same time. Werecognized that all of those applications would need to access a file systemor whatever, that if you were running multiple applications at the same timeand they compete for the same resources then you need to sort that out.
Oneway of sorting that out, which is the design pattern we adopted, was to use aserver to serialize access to a shared resource. So that was the slogan, ‘serversserialize access to a shared resource’.And the mass-storage media card on the devices at that time was a sharedresource too, so you couldn’t just have applications writing to mass storage,you had to have something in between that was sorting out that access.
VMSused servers for that, a file server, so we made a file server and we also hada supervisory process server. So the design principle of the 16-bit system wasthat you had client–server and fast context switching, so there’s no penaltyfor using servers and you get a clean architectural way of serializing access toshared resources, including memory, which I suppose is what you could saythe system supervisor was.The server principle runs deep and important design consequencesfollow. For example, the need for fast context switching is what determinesthe process and thread architecture of the operating system.Charles Davies:So to grow the heap dynamically, well you had a server process to do that,which is the modern pre-emptive multitasking kernel approach.
And a fileserver and the idea of servers for other things. We knew we wanted to dographics and we wanted to have a windowing system. The competition wasstill doing character-mode graphics at that time and we wanted a true graphicsmode, with variable fonts and more than one application drawing to the screenat the same time. And so we had to have a model for doing that. So we said,‘Okay, the file server shares access to mass storage and the window serveris the right architecture for serializing shared access to the screen.’ And youneed a windowing system.
Even on phones, other processes can pop up anotification at any time and it basically handles that. So that was an advancedattribute of the design.The design principles were not necessarily novel but their applicationto the class of small device that Psion was pioneering certainly was, theOPERATING SYSTEM INFLUENCES43Apple Newton notwithstanding. The vision that Psion was pursuing sohungrily was of sophisticated pocket computers aimed at an audienceof consumer users rather than technical wizards – mobile and pocketcomputing for all.Charles Davies:There were GUIs around at that time, Amiga and Macintosh, that did clipping.Windows was tiled at that time, but we said we wanted overlapping windows.We couldn’t afford a hardware solution.
We had been involved in doing anabortive piece of work for Thompson, which we called a Thompsonitosh,which was Macintosh-like with hardware support for overlapping windows,so we knew about those things. We had also worked on software for theSinclair QL and we’d worked on PC software. Remember, this was the ageof integrated suites, which at that time were still character-mode-based andcame with their own windowing APIs. IBM, for example, had something calledTopView at the time.
So that was the kind of environment, but we wanted todo graphics and we wanted a contemporary, modern way of doing it.So we had pre-emptive multitasking for windows and the Window Serverwas born and lots of things got done in servers. The idea of fast lightweightclient–server internals and servers managing clients were early design principles. The other part of client–server architecture, I guess, was the idea thatthis is an operating system that needed to run for years at a time without areboot and that meant you had to have system software that looked after badlybehaving applications and so that led to the idea that servers managed theirclients if the clients didn’t do the right thing, so that the servers didn’t getleft with memory leakage or data from long-gone clients.
Servers knew aboutclient processes and managed their data on behalf of client processes, even ifthey terminated, so there are services to let you know if a client dies and alsoto clean up server-side resources so that you could run for a long time, becausefor sure you were going to have many dying applications panicking over time.Another design principle that came in the early days was asynchronicity.We learned that from VMS, the idea that you had event signaling and notpolling. So part of that was that we were designing for battery-powered devicesand ROM-based devices, which is why we thought DOS was not appropriatebecause it wasn’t designed for either ROM-based or battery-powered systems.For us, ‘execute in place’ was the norm – the idea that you executed in place inROM but you could add applications that loaded – that was part of the design.The idea of dynamic libraries was an early part of the design and I guess wewere aware that Windows had dynamic libraries.
We knew we had to haveshared libraries and we didn’t want to be loading multiple copies of the samecode, which by the way was the norm if you just used compilers and linkersin the usual way. I mean these were times when people had overlays, wherethe code got loaded in at the same addresses, right? That was when Bill Gatesfamously said 640 KB should be enough for everybody. And having writtensoftware with the overlay model, we figured we didn’t want that. Overlayswere impossible to manage. They fell over under their own complexity after atime. So we wanted libraries that were loaded once.44THE HISTORY AND PREHISTORY OF SYMBIAN OSThese principles were rehearsed through the three generations of Psionoperating systems leading up to the creation of EPOC and eventuallyof Symbian OS. But they were driven also by a product vision.
Thecompany was driven by the vision of creating products aimed squarely atordinary users, which would entice them and charm them and becomeindispensable pocket companions.Charles Davies:We were building products. We were working from an idea of the userexperience that we wanted. So we didn’t just do pre-emptive multitaskingbecause we thought we wanted to do an operating system and that was the funthing to do, although there was that element to it too, if we’re being honest.But we had a vision that you shouldn’t have to wait for boot up, that thiswould be an instantly available, instant-on device and one where you didn’thave to exit one application before you could run another one, because thatwasn’t an appropriate user experience for a handheld device.We also thought that multitasking was a good thing for writing robustsoftware.
We had this ethic of robustness, that the product didn’t go wrongand that you didn’t have to be a techie to use it. Because in those days youknow, I remember the first 5 MB hard disk we bought for £6000. £6000! Andyou went on a training course to learn how to use it! And that was not thevision of the product that we had. We had a vision of a product used bysomebody who wasn’t stupid, but who wasn’t going to read the manual, adevice where the operating system did the work for you rather than the otherway around.So it was based from the user experience backwards; the technology was insupport of the user experience. That was in the bones of the product vision. Wedidn’t think of ourselves as producing an operating system and an applicationsuite. We thought of ourselves as producing a product that would sell.
It wouldwalk off the shelves because people wanted it and it would be hard to imitatebecause we’d put some good technology in it.With hindsight, the prehistory of the company looks very much likea dress rehearsal for a category of device which did not then exist – themobile phone.3Introduction to the Architectureof Symbian OS3.1 Design Goals and ArchitectureArchitecture is goal driven.
The architecture of a system is the vehiclethrough which its design goals are realized. Even systems with relativelylittle formal architecture, such as Unix,1 evolve according to more orless well-understood principles, to meet more or less well-understoodgoals. And while not all systems are ‘architected’, all systems have anarchitecture.Symbian OS follows a small number of strong design principles.