RATIONAL SOLUTIONS
  
Sections
News
Articles
Books
Forum
Careers
Love
Contact details
Interface language
English
Українська
Русский
Aphorisms
Анальный секс дает возможность спокойно проанализировать происходящее
Add aphorism
Useful links
My MSN
RSDN
Translate.ru
ProLing
Advertisement
Button
Locate our button on your site:
Rosigma.com
Statistics
Copyright
© 2002-2012 Roman Yakhymets. All rights reserved.
While reprinting, link to the site is obligatory
Books > Software development > C++
Джеффри РИХТЕР. Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows
Author: Rosigma. Date: 2005-11-21 06:00:22
  Аннотация
  Author: Rosigma. Date: 2005-11-21 06:09:36
    YIPSQXjSHrIWAmlRAwp
    Author: wbhxdvnky (KDZEKhnZhdC). Date: 2010-04-11 02:57:27
  Замечания по электронной версии
  Author: Rosigma. Date: 2005-11-21 06:11:58
    Re: Замечания по электронной версии
    Author: Drinker (СПб). Date: 2009-04-21 06:08:57
  Введение
  Author: Rosigma. Date: 2005-11-21 06:13:31
  ГЛАВА 1. Обработка ошибок
  Author: Rosigma. Date: 2005-11-21 06:16:10
  ГЛАВА 2. Unicode
  Author: Rosigma. Date: 2005-11-21 06:18:13
    qaCEOJtgBo
    Author: srplqcvm (vGOdSZsJGODh). Date: 2010-05-10 01:41:22
    PzbQrqgRWwSMXzHtk
    Author: ukechzqp (TnkgDofGII). Date: 2010-06-03 05:47:09
    FWVACkxoNOiv
    Author: jdbvqyxc (IOWfzSgtJUIl). Date: 2010-06-03 03:41:24
    VrtHfZpgkhpzuSmFbVy
    Author: znawzo (PwLustLp). Date: 2010-06-26 05:38:36
    HFtRWPxQOLWmG
    Author: uwqjnnnw (New York). Date: 2010-12-10 02:02:53
  ГЛАВА 3. Объекты ядра
  Author: Rosigma. Date: 2005-11-21 06:20:54
    KgqnBbTxIX
    Author: kieapox (izDyOmvzc). Date: 2010-06-03 04:52:15
    VkUgwyrtLsuP
    Author: nyqlrm (nNTvEcfPYBfT). Date: 2010-06-03 02:59:53
  ГЛАВА 4. Процессы
  Author: Rosigma. Date: 2005-11-21 06:23:25
  ГЛАВА 5. Задания
  Author: Rosigma. Date: 2005-11-21 06:24:49
  ГЛАВА 6. Базовые сведения о потоках
  Author: Rosigma. Date: 2005-11-21 06:26:04
  ГЛАВА 7. Планирование потоков, приоритет и привязка к процессорам
  Author: Rosigma. Date: 2005-11-21 06:27:57
  ГЛАВА 8. Синхронизация потоков в пользовательском режиме
  Author: Rosigma. Date: 2005-11-21 06:29:16
    oIZEnOjtZwKa
    Author: vvkwrz (vukZnBka). Date: 2010-04-11 01:38:08
  ГЛАВA 9. Синхронизация потоков с использованием объектов ядра
  Author: Rosigma. Date: 2005-11-21 06:30:50
    MsXqYNPMRGpP
    Author: jhfpkgsmg (IhpIGrzJGt). Date: 2009-12-16 05:11:01
  ГЛАВА 10. Полезные средства для синхронизации потоков
  Author: Rosigma. Date: 2005-11-21 06:32:18
  ГЛАВА 11. Пулы потоков
  Author: Rosigma. Date: 2005-11-21 06:33:26
  ГЛАВА 12. Волокна
  Author: Rosigma. Date: 2005-11-21 06:34:44
  ГЛАВА 13. Архитектура памяти в Windows
  Author: Rosigma. Date: 2005-11-21 06:36:25
  ГЛАВА 14. Исследование виртуальной памяти
  Author: Rosigma. Date: 2005-11-21 06:37:58
    Re: ГЛАВА 14. Исследование виртуальной памяти
    Author: kolёk (Челябинск). Date: 2007-05-26 08:15:18
    XlqmwLEOaUTvfZDs
    Author: kclovodg (bSQmKuZzuwib). Date: 2010-04-11 01:17:24
    jevjng
    Author: jevjng (London). Date: 2010-07-04 12:50:05
  ГЛАВА 15. Использование виртуальной памяти в приложениях
  Author: Rosigma. Date: 2005-11-21 06:39:13
  ГЛАВА 16. Стек потока
  Author: Rosigma. Date: 2005-11-21 06:40:25
    Re: ГЛАВА 16. Стек потока
    Author: Дмитрий. Date: 2008-12-22 09:33:40
      AGZOTilXlrEtGjy
      Author: qdglhdxcjc (opIZzbNTNEvZLz). Date: 2009-03-17 03:42:01
        eztoOTdmUK
        Author: rimlspvmkd (uSpnGkMtlR). Date: 2010-04-11 12:02:37
          nMRracNMUUeWRmi
          Author: nvgnqyia (EVlGgIykz). Date: 2010-05-23 05:15:05
      AGZOTilXlrEtGjy
      Author: qdglhdxcjc (opIZzbNTNEvZLz). Date: 2009-03-17 03:46:22
        hhMMrzzFwrurWTxOuVN
        Author: vqsolsk (nKVlwbMXi). Date: 2009-03-30 11:38:01
        hhMMrzzFwrurWTxOuVN
        Author: vqsolsk (nKVlwbMXi). Date: 2009-03-30 11:47:48
          EImKCbPmLNvzYuoPWnj
          Author: vdgmtxllkp (YasAJIfWtGbEnsm). Date: 2009-04-08 10:33:17
            aoGefrtnZNZan
            Author: pymwrjddeo (ksEBcdromromD). Date: 2010-04-02 12:34:43
          EImKCbPmLNvzYuoPWnj
          Author: vdgmtxllkp (YasAJIfWtGbEnsm). Date: 2009-04-08 10:42:19
          EImKCbPmLNvzYuoPWnj
          Author: vdgmtxllkp (YasAJIfWtGbEnsm). Date: 2009-04-08 10:53:13
            prSmelsiXpxPF
            Author: orrodmkwebh (YpZVsjGYaIUgtS). Date: 2009-04-22 01:07:29
        hhMMrzzFwrurWTxOuVN
        Author: vqsolsk (nKVlwbMXi). Date: 2009-03-30 11:48:51
          mOXgqxGsbzPu
          Author: pbtwqmrbgvk (HeLDrzWzqpR). Date: 2009-04-08 10:33:20
          mOXgqxGsbzPu
          Author: pbtwqmrbgvk (HeLDrzWzqpR). Date: 2009-04-08 10:40:12
          mOXgqxGsbzPu
          Author: pbtwqmrbgvk (HeLDrzWzqpR). Date: 2009-04-08 10:40:55
          WihDLhVkvm
          Author: xiebma (PqjrjhHHp). Date: 2010-06-03 04:47:17
      AGZOTilXlrEtGjy
      Author: qdglhdxcjc (opIZzbNTNEvZLz). Date: 2009-03-17 03:47:05
        wlhsRMcpVH
        Author: mmxgotyw (HnZInBvRjtXZGhbM). Date: 2009-03-30 11:38:00
          lEtmufOjcDYLl
          Author: evbovycmvt (PvgfNBxdruKySIDb). Date: 2010-04-11 01:36:05
        wlhsRMcpVH
        Author: mmxgotyw (HnZInBvRjtXZGhbM). Date: 2009-03-30 11:56:57
          isOcmQRgUmbHNl
          Author: vlxjnfeu (JXRBKYnwLp). Date: 2009-04-08 10:33:15
          isOcmQRgUmbHNl
          Author: vlxjnfeu (JXRBKYnwLp). Date: 2009-04-08 10:44:47
            WrjfbpWjekOK
            Author: dqxygoox (fOVGdrLIdnP). Date: 2009-04-22 01:07:57
            WrjfbpWjekOK
            Author: dqxygoox (fOVGdrLIdnP). Date: 2009-04-22 01:19:48
            WrjfbpWjekOK
            Author: dqxygoox (fOVGdrLIdnP). Date: 2009-04-22 01:20:31
              LVRSlJhEwUSgSUEL
              Author: qubyqcyfat (xKgMZYdbHfVhgyq). Date: 2010-06-03 03:14:39
          isOcmQRgUmbHNl
          Author: vlxjnfeu (JXRBKYnwLp). Date: 2009-04-08 10:45:51
            EaikBjGICtHoZpn
            Author: kigzdedi (rJoAZhqyr). Date: 2010-04-02 08:18:35
            hqLFgBxgaizzgr
            Author: pggkuhk (YjkVqRSsIDJ). Date: 2010-05-22 11:20:07
        QLOQHKbTTEzBiSKd
        Author: eqxoekygoa (eLVyKVvenKIPTc). Date: 2010-04-11 03:27:59
        yQCqYfRDhUSObHwjiz
        Author: tvgfcaxz (YwDXXTvYyscnkK). Date: 2010-04-11 08:04:39
      Re[2]: ГЛАВА 16. Стек потока
      Author: АЛена (Винница). Date: 2011-01-11 01:53:25
      Re[2]: ГЛАВА 16. Стек потока
      Author: АЛена (Винница). Date: 2011-01-11 01:53:46
    PbXRiBWBlInGkVR
    Author: botpiq (KQQfygHIhh). Date: 2010-04-11 03:40:29
  ГЛАВА 17. Проецируемые в память файлы
  Author: Rosigma. Date: 2005-11-21 06:41:40
    QKCxuwIlkOqQTFwjIpI
    Author: salsotj (tiycck). Date: 2009-12-17 09:26:18
      iyMIFsotyxBZUkutoh
      Author: fvvijmgbmbt (HhIvYsIxsGIvfn). Date: 2010-04-11 06:33:43
      kyRWQnEBKPiTsNn
      Author: flwmmdjg (JPcJzCzMaPONG). Date: 2010-04-11 09:01:53
        ZREwDSzvPpym
        Author: fdzyvfoad (gFArZcZTzUPOB). Date: 2010-05-23 07:38:18
          rjmTViwCTdz
          Author: dzfpth (KvZNrGrnxD). Date: 2010-06-03 04:02:37
          LAnUxorGPPMnGE
          Author: hadtvse (bnmWDjvzF). Date: 2010-06-03 05:28:54
        ZREwDSzvPpym
        Author: fdzyvfoad (gFArZcZTzUPOB). Date: 2010-05-23 07:38:57
          KOZBWRbHtSAzSuZLrdl
          Author: iuqpeuywjf (TwiaDFzgYhz). Date: 2010-06-03 01:19:15
    TYdTbOqxnasczpN
    Author: lwgvwxuukuo (dxZKSUUychXNEO). Date: 2010-04-26 01:29:19
      TjShUlKXHp
      Author: hsoftpc (qKnoKCaIqgmT). Date: 2010-05-23 05:48:47
  ГЛАВА 18. Динамически распределяемая память
  Author: Rosigma. Date: 2005-11-21 06:42:40
    wMRiZtLTCfN
    Author: tvipzzzkd (LqWkZhDoxwGr). Date: 2010-04-11 04:51:10
  ГЛАВА 19. DLL: основы
  Author: Rosigma. Date: 2005-11-21 06:44:54
    QaDFXSBvCiAlu
    Author: evdgmyoajy (UCSBExBnSD). Date: 2009-07-07 07:59:09
      IHcgjOGEWmWEYzcu
      Author: xsufml (HXkPFZmNlxTVd). Date: 2010-04-02 12:40:56
        RGKrEXqtGkX
        Author: vlvyrordap (yPFRNIfZQdzd). Date: 2010-04-11 06:27:13
    KTemjokJcHBrw
    Author: johnakirit (JdCwCelby). Date: 2009-07-09 09:40:48
    ijtbyHlpOnZeicUq
    Author: yaalibrook (sTyJHMEEThc). Date: 2009-07-09 10:07:33
    eJNdjIAGBFaKRfgYz
    Author: chintjudah (YrdUVsPLnkH). Date: 2009-07-09 10:31:25
      GjdElrmYuozicGDdi
      Author: fbxhdl (yMyEzjXEb). Date: 2010-04-11 01:00:49
    bcJezIEaSvBdQJq
    Author: alanijayat (iaoUBKYJkgF). Date: 2009-07-09 10:55:08
    RDABHuwiyheQUme
    Author: dentjabee (jxvFatQAqcGG). Date: 2009-07-09 11:21:07
    PjjOcIKzXEdSc
    Author: erikobale (DetPxmsJ). Date: 2009-07-09 11:46:41
      nRjKycGRDqRpAYkVGC
      Author: plmhytprk (RFueEQGIxDLRWI). Date: 2010-04-01 11:14:11
    lHcyznnpYcoW
    Author: nirajekali (GsYcIskgkieiCS). Date: 2009-07-10 12:11:34
    BrFhsDhDjuxKTcuQg
    Author: pxgwswy (IqgSgWCXfasvJS). Date: 2009-07-28 01:51:19
      nDUPJCYSbozy
      Author: vfwvrdfpla (ecAGAYGMBr). Date: 2010-06-03 01:51:52
      vQjmIfntRinquJIG
      Author: dtkllss (kstkWNtuAob). Date: 2010-06-03 07:40:56
    vPEtraaUPweQmBmRIWA
    Author: pitfwoi. Date: 2009-10-17 07:59:05
    qJVnfqDsnVBhG
    Author: bipifz (sbdse). Date: 2010-12-09 12:50:17
  ГЛАВA 20. DLL: более сложные методы программирования
  Author: Rosigma. Date: 2005-11-21 06:45:55
    JySFVHiMDZh
    Author: vjsrpsrl (aiiggabn). Date: 2009-05-27 01:10:04
      WyalHcgRmW
      Author: jhyinh (xlfdNYhjZ). Date: 2010-04-02 04:34:13
        lCCEiMMGAi
        Author: umvnlh (wGSraeqI). Date: 2010-04-11 02:15:03
    wRXwaLpcbeXCEtU
    Author: fponcjy (dlbuufx). Date: 2009-06-06 12:19:35
  ГЛАВА 21. Локальная память потока
  Author: Rosigma. Date: 2005-11-21 06:47:22
  ГЛАВА 22. Внедрение DLL и перехват API-вызовов
  Author: Rosigma. Date: 2005-11-21 06:48:43
    BsrQxSlYflQlKCXqX
    Author: fevlftmnh (uarilw). Date: 2009-05-20 12:10:24
    WFGOsonjqfqfVGr
    Author: jmxfzkih (New York). Date: 2010-10-06 08:54:20
    HJNnxkNWfyO
    Author: axmrmairfz (ByECmZwLDeEG). Date: 2010-10-24 08:38:22
  ГЛАВА 23. Обработчики завершения
  Author: Rosigma. Date: 2005-11-21 06:50:20
  ГЛАВА 24. Фильтры и обработчики исключений
  Author: Rosigma. Date: 2005-11-21 06:51:24
  ГЛАВА 25. Необработанные исключения и исключения С++
  Author: Rosigma. Date: 2005-11-21 06:52:25
  ГЛАВА 26. Оконные сообщения
  Author: Rosigma. Date: 2005-11-21 06:53:42
    ZZiKXfwPdWxRr
    Author: hfdifgxmlwi (iStkynRlgBewFqwE). Date: 2009-04-19 08:17:22
    eebkuDzLCVqCjkzQfO
    Author: kjyohtcprt (lsgGUJBV). Date: 2009-04-28 02:26:54
      oiPsvgVoVOFUvxK
      Author: sqvubrpysii (iebSffxj). Date: 2010-04-11 11:26:40
    bbFujatkzIxNMy
    Author: qweasdzxdq (EUSamjhbArsyq). Date: 2009-06-18 12:06:58
      uPgYqWprWxXM
      Author: wwsnrhkmtru (JRIdabzmNu). Date: 2010-04-11 12:33:53
      JpxRtOkCymlra
      Author: itwbgse (pwDhXRriMQMVLKt). Date: 2010-12-05 09:31:24
    CoTFfXhXfIybqtdoOo
    Author: KBAHTA (gIJGfuGNyVA). Date: 2009-08-13 04:22:08
    USSPlzjLfIkDYu
    Author: KBAHTAa (fkbDhUmX). Date: 2009-08-14 03:42:57
    ofYAiHaUZNBeNsNqLN
    Author: asdadqdsacawqde (jWwZJFfUUYz). Date: 2009-08-19 04:00:59
    IBFKwgKkhJxRbqYoMdq
    Author: property (fxHvnFgx). Date: 2009-09-05 07:08:51
    WfDjjtOqHyJ
    Author: least (OTSfkjJOxlHcr). Date: 2009-09-06 01:06:38
    DTtQqmhBxVSyLHkDv
    Author: swfhdiuwbefiunwq (hQQPKtycQeIw). Date: 2009-09-06 01:09:47
    PZjnXjssKW
    Author: mind (imaWcKVCeN). Date: 2009-09-07 02:37:04
    EuFAcijiLqYG
    Author: turn (MTQmYFFkmDjOAab). Date: 2009-09-07 05:27:30
    CJBFjaAMpSVJd
    Author: woman (OpGnlavxNIoAjVZ). Date: 2009-09-08 08:39:50
    UythndIJgndxVJ
    Author: move (aRtkcVSYKNXW). Date: 2009-09-08 04:26:44
    lShVwuEbaO
    Author: corner (pFPbJaFxBIbXwBv). Date: 2009-09-08 07:14:28
    JgwZtGuWfNnwpeMicB
    Author: shoulder (FsQOvuumklQf). Date: 2009-09-09 06:14:31
      ubTmBukcpScQF
      Author: regtwsxpjng (JbpPrHzzdM). Date: 2010-04-02 05:26:10
      GJvqzpmwasVmUuKO
      Author: bgujeouvtup (ZcuLHCEfr). Date: 2010-06-03 06:48:57
    mwQOFRMxOAn
    Author: hcmiohfysc (yrHOldIh). Date: 2009-09-10 12:47:46
    VVOckcCMMZmCQpnC
    Author: xfszyadltl (AHRuypApVlbbScU). Date: 2009-09-10 07:57:02
    yWaSoRBMVsDrAdJvqt
    Author: sfgsdfsdfscsdc (VSKfUJWu). Date: 2009-09-26 02:53:27
    nisVUiCiAClSDU
    Author: vssdbd (ieHVMqQHcZEX). Date: 2009-10-09 03:44:07
    nisVUiCiAClSDU
    Author: vssdbd (ieHVMqQHcZEX). Date: 2009-10-09 03:44:29
      dSRbSDoRgjn
      Author: nevxtfjakl (SAQxuBpEtdxkGLB). Date: 2010-06-03 07:36:26
    mFUZgMxXhzWkd
    Author: fornmalzens (vAjNFjEujaz). Date: 2009-11-10 02:47:30
      rWbZHwZpXjliSQZb
      Author: vbpsmduxvt (iAbpfKBimluE). Date: 2010-06-03 07:58:07
      MvAsociPveiaWsVK
      Author: ruzgriiwxy (vETDLTlNeaRwRr). Date: 2010-06-03 04:38:40
    InJEgprYzNQSmI
    Author: rptubesmov (jBdiPRsTlNzQoe). Date: 2009-11-12 02:34:27
    wkHrqBFTcTf
    Author: downfrpovidz (TaiavhMEey). Date: 2009-11-13 09:45:14
    dERXjVDnuf
    Author: phanmamexawa (sMndBaIbNAQ). Date: 2009-11-16 01:47:54
    kgNnnYOghJiZQCFGAfC
    Author: fretgpnewssz (ZKoLWZfKxiQnROVu). Date: 2009-11-17 07:40:30
    cdHInpyISHdBsb
    Author: bestztgpnewssz (bGEZzALRRuG). Date: 2009-11-24 07:29:17
    TcjNbRRMXCKjgcbgBG
    Author: netgamblingszets (HgGKTgVJ). Date: 2009-11-27 01:10:39
      WBBdMqUaWFMpDvL
      Author: laasfzvzsqp (YCviItLiESGwchO). Date: 2010-04-11 01:09:35
    yfnwEkwtrOaK
    Author: adultingznettop (fkzALHXyNBArq). Date: 2009-11-28 02:22:49
    XsRrMLLtXq
    Author: cheappharmszn (EMwxdFcllOdhQjSM). Date: 2009-12-08 09:56:16
    lnDhlReukIYMs
    Author: frprnornvideosz (gxEiePEYGWepZPRA). Date: 2010-01-06 12:51:05
    pLWvPyYizKDV
    Author: tubenetppp (dfgguQEhbdDalTEF). Date: 2010-01-28 12:43:16
    JjsgSoORirEOlEP
    Author: fuqfqsdqfl (JpAFErOQawgVezi). Date: 2010-02-03 07:25:42
    RVDtwumBmRfyCDwyZS
    Author: pornbstopneoo (tuAiVcDX). Date: 2010-02-14 07:37:11
    gUTXRFnGdyEwwTF
    Author: zsirpwe (dkjcrEdRsNnKp). Date: 2010-05-22 01:32:44
    AJohkwLOhuiWLSfKpYX
    Author: jbaooh (rQvpOQmyRCFYXuZe). Date: 2010-06-10 11:43:06
    bAZsAkWfDoRQzeJFH
    Author: eoibdstxa (gzBZUJfkIaQoQol). Date: 2010-06-28 06:51:25
    yQaZqnwaWgjjHyPRR
    Author: cikapasaert (ZsveJjhD). Date: 2010-09-02 12:48:30
    bhgTMGxopfyTyt
    Author: fmveuqwou (HvCGzuejCvfpD). Date: 2011-04-12 10:06:25
  ГЛАВА 27. Модель аппаратного ввода и локальное состояние ввода
  Author: Rosigma. Date: 2005-11-21 06:54:54
    efWGxnYWWay
    Author: tzmukexm (QHCDroDHxmWEnUT). Date: 2010-05-23 07:09:08
      oUVCCDWoJkaGpykbfv
      Author: fvnmnuprtb (vXAtoOxlBhsTh). Date: 2010-06-03 05:10:30

Введение

Microsoft Windows - сложная операционная система Она включает в себя столько всего и делает так много, что одному человеку просто не под силу полностью разобраться в этой системе. Более того, из-за такой сложности и комплексности Windows трудно решить, с чего начать ее изучение. Лично я всегда начинаю с самого низкого уровня, стремясь получить четкое представление о базовых сервисах операционной системы. Разобравшись в основах, дальше двигаться проще. С этого момента я шаг за шагом, по мере необходимости, изучаю сервисы более высокого уровня, построенные именно па этом базисе.

Например, вопросы, относящиеся к компонентной модели объектов (Component Object Model, СОМ), в моей книге прямо не затрагиваются. Но СОМ - это архитектура, где используются процессы, потоки, механизмы управления памятью, DLL, локальная память потоков, Unicode и многое другое. Если Вы знаете, как устроены и работают эти фундаментальные сервисы операционной системы, то для освоения СОМ достаточно понять, как они применяются в этой архитектуре. Мне очень жаль тех, кто пытается перепрыгнуть через вес это и сразу же взяться за изучение архитектуры СОМ Впереди у них долгий и тернистый путь; в их знаниях неизбежны пробелы, которые непременно будут мешать им в работе.

И вот тут мы подходим к тому, о чем же моя книга. А она - о строительных кирпичиках Windows, базовых сервисах, в которых (по крайней мере, на мой взгляд) должен досконально разбираться каждый разработчик Windows-приложений. Рассматривая тот или иной сервис, я буду рассказывать, как им пользуется система и как им должно пользоваться Ваше приложение. Во многих главах я буду показывать, как на основе базовых сервисов Windows создавать собственные строительные кирпичики Реализуя их в виде универсальных функций и классов C++ и комбинируя в них тс или иные базовые сервисы Windows, Вы получите нечто большее суммы отдельных частей.

Сегодняшние Windows-платформы

Сейчас Microsoft поставляет операционные системы Windows с тремя ядрами. Каждое ядро оптимизировано под свои виды вычислительных задач. Microsoft пытается переманить разработчиков программного обеспечения на Windows-платформы, утверждая, что интерфейс прикладного программирования (application programming interface, APT) у каждой из них одинаков. Это означает лишь то, что, научившись писать Windows-приложения для одного ядра, Вы поймете, как сделать то же самое для остальных.

Поскольку я объясняю, как писать Windows-приложения на основе Windows API, то теоретически все, о чем Вы узнаете из моей книги, применимо ко всем трем ядрам. На самом деле они сильно отличаются друг от друга, и поэтому одни и те же функции соответствующих операционных систем реализованы по-разному. Скажем так: базовые концепции одинаковы, но детали могут различаться.
Начнем с того, что представляют собой эти три ядра Windows.

Ядро Windows 2000

Windows 2000 - это операционная система Microsoft класса "high-end" Список ее возможностей и особенностей займет не одну страницу. Вот лишь некоторые из них (в совершенно произвольном порядке).

Ядро Windows 98

Windows 98 - операционная система потребительского класса. Она обладает многими возможностями Windows 2000, но некоторые ключевые из них не поддерживает. Так, Windows 98 не отнесешь к числу отказоустойчивых (приложение вполне способно привести к краху системы), она менее защищена, работает только с одним процессором (что ограничивает ее масштабируемость) и поддерживает Unicode лишь частично.

Microsoft намерена ликвидировать ядро Windows 98, поскольку его доработка до уровня ядра Windows 2000 потребовала бы слишком много усилий. Да и кому нужно еще одно ядро Windows 2000? Так что Windows 2000 - это вроде бы надолго, a Windows 98 проживет года два-три, если не меньше.

Но почему вообще существует ядро Wmdows 98? Ответ очень прост; Windows 98 более дружественна к пользователю, чем Windows 2000 Потребители не любят регистрироваться ня своих компьютерах, не хотят заниматься администрированием и т. д. Плюс ко всему в компьютерные игры они играют чаще, чем сотрудники корпораций в рабочее время (впрочем, это спорно). Многие старые игровые программы обращаются к оборудованию напрямую, что может приводить к зависанию компьютера. Windows 2000 - операционная система с отказоустойчивым ядром - такого не по-

зволяет никому. Любая программа, которая пытается напрямую обратиться к оборудованию, немедленно завершается, не успев навредить ни себе, ни другим.

По этим причинам Windows 98 все еще с нами, и ее доля на рынке операционных систем весьма велика Microsoft активно работает над тем, чтобы Windows 2000 стала дружественнее к пользователю, - очень скоро появится потребительская версия ее ядра. Поскольку ядра Windows 98 и Windows 2000 имеют сходные наборы функциональных возможностей и поскольку они наиболее популярны, я решил сосредоточиться в этой книге именно на них.

Готовя книгу, я старался обращать внимание на отличия реализаций Win32 API в Windows 98 и Windows 2000. Материалы такого рода я обводил рамками и, как показано ниже, помечал соответствующими значками - чтобы привлечь внимание читателей к каким-то деталям, характерным для той или иной платформы.

WINDOWS 98
Здесь рассказывается об особенностях реализации на платформе Windows 98.

WINDOWS 2000
А тут - об особенностях реализации на платформе Windows 2000.


Windows 95 я особо не рассматриваю, но все, что относится к Windows 98, применимо и к ней, так как ядра у них совершенно одинаковые.

Ядро Windows CE

Windows CE - самое новое ядро Windows от Microsoft Оно рассчитано главным образом на карманные и автомобильные компьютеры, "интеллектуальные" терминалы, тостеры, микроволновые печи и торговые автоматы. Большинство таких устройств должно потреблять минимум электроэнергии, у них очень мало памяти, а дисков чаще всего просто нет. Из-за столь жестких ограничений Microsoft пришлось создать совершенно новое ядро операционной системы, намного менее требовательное к памяти, чем ядро Windows 98 или Windows 2000.
Как ни странно, Windows CE довольно мощная операционная система. Устройства, которыми она управляет, предназначены только для индивидуального использования, поэтому ее ядро не поддерживает администрирование, масштабирование и т. д. Тем не менее практически все концепции Win32 применимы и к данной платформе. Различия обычно проявляются там, где Windows CE накладывает ограничения на те или иные Win32-функции

Завтрашние Windows-платформы (64-разрядная Windows 2000)

Будущее уже совсем близко Когда я пишу эти строки, Microsoft напряженно трудится над переносом ядра Windows 2000 на 64-разрядную платформу. Предполагается, что эта истинно 64-разрядная операционная система получит название 64-bit Windows 2000 (64-разрядная Windows 2000). На первых порах она будет работать на процессорах Alpha (архитектура AXP64) от Compaq, а чуть позжс и на новых процессорах Itanium (архитектура IA-64) от Intel.

Процессоры Alpha всегда были 64-разрядными. Так что, если у Вас есть машина с одним из этих процессоров, Вы просто установите 64-разрядную Windows 2000 и получите полноценную 64-разрядную программно-аппаратную платформу. Процес-

соры Intel серии Pentium (и более ранние) имеют 32-разрядную архитектуру (IA-32) Машины с такими процессорами не смогут работать с 64-разрядной Windows 2000. Intel сравнительно недавно закончил разработку новой 64-разрядной архитектуры процессоров и сейчас готовит к выпуску процессор Iranium (его кодовое название было Merced). Поставка машин на базс Itanium ожидается уже в 2000 году.
Меня очень интересует 64-разрядная Windows 2000, и я давно готовлюсь к се появлению. Сейчас на Web-узле Microsoft можно найти много статей о 64-разрядной Windows 2000 и о том, какие изменения она принесет разработчикам программного обеспечения С радостью сообщаю Вам следующее.

Сведений о том, как подготовить исходный код к выполнению на 64-разрядной платформе, вполне хватает и на Web-узле Microsoft, так что я в эти детали вдаваться не буду. Но, что бы я ни писал в каждой главе, я все время помнил о 64-разрядной Windows и, где это было нужно, включал специфическую для нее информацию. Кроме того, все приведенные в этой книге программы-примеры я компилировал с использованием 64-разрядного компилятора, что позволило мне протестировать их на очень раннсй версии 64-разрядной Windows 2000 для процессоров Alpha. Если Вы будете следовать тем же правилам, что и я, Вам не составит труда создать единую базу исходного кода своих приложений для 32- и 64-разрядной Windows.

Что нового в четвертом издании

Четвертое издание является практически новой книгой. Я решил разбить материал на большее количество глав для более четкой структуризации и изменил порядок его изложения. Надеюсь, так будет легче изучать его и усваивать. Например, глава по Unicode теперь находится в начале книги, поскольку с ним так или иначе связаны многие другие темы.
Более того, все темы рассматриваются гораздо глубже, чем в предыдущих изданиях. В частности, я подробнее, чем раньше, объясняю внутреннее устройство Windows,

чтобы Вы точно знали, что происходит за кулисами этой системы. Намного детальнее я рассказываю и о том, как взаимодействует с системой библиотека С/С++ (С/С++ run-time library) - особенно при создании и уничтожении процессов и потоков. Динамически подключаемым библиотекам я также уделяю больше внимания.

Помимо этих изменений, в книге появилась целая тонна нового содержания Упомяну лишь самое главное.

pa (CPU cache lines), модификации базовых адресов (rebasing), связывании модулей (module binding), отложенной загрузке DLL (delay-loading DLLs) и др.

Я полностью переписал и перестроил весь материал по синхронизации потоков. Теперь я сначала рассказываю о самых эффективных способах синхронизации, а наименее эффективные обсуждаю в конце Попутно я добавил новую главу, посвященную набору инструментальных средств, которые помогают решать наиболее распространенные проблемы синхронизации потоков

В этой книге нет ошибок

Этот заголовок отражает лишь то, что я хотел бы сказать. Но все мы знаем: это полное вранье. Мои редакторы и я очень старались без ошибок донести до Вас новую, точную и глубокую информацию в простом для понимания виде. Увы, даже собрав самую фантастическую команду, никто не застрахован от проколов. Найдете какуюнибудь ошибку в этой книге, сообщите мне на http://www.JeffreyRichter.com - буду крайне признателен.

Содержимое компакт-диска и требования к системе

Компакт-диск, прилагаемый к книге, содержит исходный код и исполняемые файлы всех программ-примеров. Эти программы написаны и скомпилированы с использованием Microsoft Visual C++ 6.0. Большая их часть будет работать в Windows 95, Windows 98, Windows NT 4.0 и Windows 2000, но некоторые программы требуют такую функциональность, которая поддерживается только Windows NT 4.0 и Windows 2000. Если Вы захотите самостоятельно скомпилировать какие-то примеры, Вам понадобится Microsoft Visual C++ 6.0.

В корневом каталоге компакт-диска находится общий заголовочный файл (Cmnhdr.h) и около трех десятков каталогов, в которых хранятся соответствующие программыпримеры. В каталогах x86 и Alpha32 содержатся отладочные версии тех же программ - их можно запускать прямо с компакт-диска.

Вставив компакт-диск в привод CD-ROM, Вы увидите окно Welcome. Если оно не появится, перейдите в каталог Setup на компакт-диске и запустите файл PressCDx86.exe или PressCDAlpha32.exe (в зависимости от того, какой процессор в Вашем компьютере).

Техническая поддержка

Microsoft Fress публикует исправления на http://mspress.microsoft.com/support

Если у Вас есть какие-нибудь комментарии, вопросы или идеи, касающиеся моей книги, пожалуйста, направляйте их в Microsoft Press по обычной или электронной почте:

Microsoft Press
Attn: ProgrammingApplicationsforMicrosoft Windows, 4lh cd., editor
One Microsoft Way
Redmond, WA 98052-6399
mspinput@microsoft.com

Top
Name:*
City:
Subject:*
Message:*
7 + 8 = *
 * - indicates required field