Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#26  2014-01-13 19:28:36

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: Unix

pasqdnik napisał(-a):

azhag jeśli można to ja poproszę kopię.

W cache Google jeszcze siedzi: http://webcache.googleusercontent.com/search?q=cach … lnk&gl=pl

Offline

 

#27  2014-01-13 19:54:46

  pasqdnik - Pijak ;-P

pasqdnik
Pijak ;-P
Skąd: Wrocław
Zarejestrowany: 2006-03-06

Re: Unix

ArnVaker napisał(-a):

pasqdnik napisał(-a):

azhag jeśli można to ja poproszę kopię.

W cache Google jeszcze siedzi: http://webcache.googleusercontent.com/search?q=cach … lnk&gl=pl

Fenk ju wery macz, ser.

:)

Ostatnio edytowany przez pasqdnik (2014-01-13 19:55:03)


Dum spiro - spero ...
pozdrawiam, pasqdnik

Offline

 

#28  2014-01-13 20:19:29

  dominbik - Członek DUG

dominbik
Członek DUG
Zarejestrowany: 2011-07-25

Re: Unix

szkoda tematu, był to ciekawy ;/


http://img34.imageshack.us/img34/5092/zw9m.png http://img29.imageshack.us/img29/219/pibw.png

Offline

 

#29  2014-01-14 23:29:19

  $pwd - Użytkownik

$pwd
Użytkownik
Zarejestrowany: 2013-02-07

Re: Unix

"Duszą" każdego komputera jest system. Spoiwo które łączy świat układów scalonych - z istotami biologicznymi jakimi jesteśmy my sami.
Dziedzictwo systemów komputerowych to historia rozwoju owej cyfrowej postaci, która pozwala nam dzisiaj przeglądać pocztę, robić zakupy, rozmawiać czy kasować posty.

Historia jest dość sponiewieraną nauką. Głównie przez terroryzujących datami nauczycieli w podstawówce czy liceum. Nauka procesów historycznych jest zupełnie czymś zgoła odmiennym. Jest to głównie świat statystyki opisowej, gromadzenia, tworzenia i analizowania baz danych.
Im więcej czytam na tematy związane ze starymi systemami jak CTSS, Multics, pierwsze wersje Rozwojowe Unixa tj. tworzone w laboratoriach Bella, AT&T, 
to tym więcej nabieram szacunku dla tych ludzi którzy mając przed sobą terminal, a w zasadzie odmianę telegrafu Hughesa, łączyli się z procesorem, za którego czas pracy często musieli słono płacić.
I nie chodzi mi tutaj o technikalia jednostek centralnych, pamięci, które ulegają ciągłym zmianom, ile raczej o koncept, jak to wszystko ma ze sobą współgrać by zwyczajnie na końcu działało.
I jeżeli dobrze się zastanowić wykładnia określona w latach 60 przez profesora Corbato co do zasad działania systemu operacyjnego, obowiązuje do dnia dzisiejszego w każdej dystrybucji GNU/Linuxa, systemów rodziny BSD i innym kontynuatorom Systemu V, rewizji 4. Jest ona nadrzędną częścią, taką konstytucją, pod którą dopiero programiści "uchwalają" ustawy.
Owa "konstytucja" ulegała w ostatnich paru dekadach tylko nieznacznym zmianom! - Standard ustalony przez Thompsona i Ritchiego, co do jądra monolitycznego napisanego przy zastosowaniu języka wysokiego poziomu... był jedną z tych zmian, która niejako tylko w tym i aż tym różniła się od zasad zaprezentowanych po raz pierwszy w systemie CTSS, przez profesora Corbato.
Dzisiaj natomiast  trend odchodzenia od jąder monolitycznych, wraz ze wzrostem możliwości obliczeniowych układów staje się coraz bardziej przybliżać nas do konstrukcji modułowej, rozproszonej np. Inferno, czy mikrokerneli Minix. Co ciekawe nad systemem Inferno pracował w ostatnich latach swojego życia Dennis M. Ritchie.

Bardzo dobrą, chociaż mało znaną książką, a przecież współcześnie wydaną jest praca Comera, Operating System Design - The Xinu Approach, Linksys Version, CRC Press, 2011.

Xinu, kolejny zdawać by się mogło system widmo.

Wracając do antenatów...
Poniekąd większość początkujących programistów styka się z historią, która występuje pod jednym z wielu eufemizmów.
Ucząc się np. z podręcznika Keringhana i Ritchiego, Język ANSI C, pierwszego programu;

#include <stdio.h>
main()
{
printf("Uszanowanie\n");
}

...uczymy się składni, która została wymyślona, dekady temu.

Kiedy w 1971 r., UNIX został przeniesiony na komputer DEC'a PDP-11, system charakteryzował się następującym rozkładem;
- 16KB zajmowało jądro, monolityczne, napisane w języku niskiego poziomu,
- 8KB to tzw. userland, czyli zestaw programów umożliwiający interakcję człowieka z system,
- 512KB to przestrzeń dyskowa, z ograniczeniem rozmiaru plików do 64KB.
W tym miejscu cofnę się do roku 1969, tj. do pierwszej wersji Unixa, napisanej w całości w assemblerze na mikrokomputer DEC'a PDP-7.
Pierwszym językiem stosującym poniekąd "makra" był języka autorstwa McClurea TMG, którego to wersję zaimplementował Dug McIlroy, tu polecam tekst R. M. McClure, 'TMG--A Syntax-Directed Compiler,' Proc 20th ACM National Conf. 1968, s. 262-74

Gdy TMG znalazł się w repozytorium, Thomson pewnego ranka stwierdził że jego system nie może nawet pretendować do miana takowego, bez posiadania na stanie Fortrana... takoż zabrał się za przepisanie tegoż stosując język TMG.
Po kilkutygodniowej pracy wyszedł przy okazji kompilator nowego języka, znanego współcześnie jako B, który został streszczony  w artykule S. C. Johnson and B. W. Kernighan, 'The Programming Language B,' Comp. Sci. Tech. Rep. #8, Bell Laboratories, Murray Hill NJ 1973.

B był rozwinięciem języka BCPL M. Richards, 'BCPL: A Tool for Compiler Writing and System Programming,' Proc. AFIPS SJCC 34 1969, s. 557-66.

Dopiero następstwem przeniesienia się na mocniejszy procesor PDP-11, było powstanie w 1971 r. języka o nazwie C.
D.M. Ritchie, S.C. Johnson, and M. E. Lesk, 'The C Programming Language,', Bell Sys. Tech. J., 57 No. 6 (July-August 1978), s. 1991-2019

Generalnie, tych kruczków jest sporo. Każdy tekst wnosi coś nowego. Chociaż niekoniecznie pozwala to nam ogarnąć całokształt tego zagadnienia.

Na koniec nadmienię też to iż nie przepadam za zbędnym sentymentalizmem. Czytałem bowiem kiedyś [jak odnajdę to zamieszczę], wstęp do sympozjum [1999 r.?] poświęconego rozwojowi linii Unixa od V1 do V10 tworzonej w Bell Labs, tj. okres od 1969 do 1995r.

I tam to jeden, nieznany mi uprzednio z imienia i nazwiska, acz anonsujący się jako znawca systemów pan, stwierdził z przekorą że taki Linux to jest pomyłka, że Linux zaprzecza wszelkim prawom prostoty stworzonym przez Thompsona... że jest za duży... że posiada błędy, wewnętrzne sprzeczności [sic!], słowem całkiem spora litania odniesień systemu z końca lat 70'tych tj. V7 Unixa do systemu w wersji krnela 2.2.x :)

Rozumiecie?
Ów człek porównywał system z 1979 r., który działał na circa 2-3? typach procesorów [ pamięci i urządzenia peryferyjne to inna para kaloszy, dopiero projekt BSD wyzwolił moc zmian architektur], z systemem Torvaldsa który rozpoznaje tysiące podzespołów, tworzy z tego przy starcie na poczekaniu kręgosłup, a następnie cały układ nerwowy i uruchamia się praktycznie "out of box", już to na komputerze Kowalskiego w Polsce już to Norrisa w US, czy Schmitta w Niemczech.

Dochodzę do wniosku iż ów prelegent zapomniał iż dokonał się postęp, postęp którego znaczenia najwyraźniej nie zrozumiał, ergo, by go bardziej nie pogrążać, dodam że dokładnie to miał na myśli Thompson i Ritchie, mówiąc o portability ich systemu..

Pozdr.
Marcin

Ostatnio edytowany przez $pwd (2014-01-16 11:55:50)

Offline

 

#30  2014-01-15 10:55:01

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: Unix

\o/

zaimplementował Dug McIlroy

;)


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#31  2014-01-15 21:38:14

  $pwd - Użytkownik

$pwd
Użytkownik
Zarejestrowany: 2013-02-07

Re: Unix

Po dwóch tygodniach przerabiania I/O procesora KDJ11-BF, plus problemów z adapterem KTJ11-B UNIBUS i złym adresowaniem pamięci modułów MSV11-JB/JC. Udało się postawić BSD w wersji 2.11, na mikrokomputerze PDP-11

Pierwsze co uderza to manuale.
Jednak nie tak dokładne jak w OpenBSD :] Ingo Schwarze alias schwarze@ to już firma z tradycjami.

Ostatnio edytowany przez $pwd (2014-01-15 22:16:34)

Offline

 

#32  2014-01-17 20:06:35

  $pwd - Użytkownik

$pwd
Użytkownik
Zarejestrowany: 2013-02-07

Re: Unix

Log #1 17.01.2014
-------------------
[1] Skończyłem katalogowanie publikacji technicznych maszyn DEC DIGITAL, od końca lat 50. do 90. XX w., jest tego ok. 19 GB, samo uporządkowanie wszystkiego zajęło mi ok. miesiąc czasu. Dużą część pozyskałem dzięki uprzejmości byłych pracowników DEC'a, w tym jednego z głównych projektantów systemu VMS. Listing plików z podziałem na katalogi wygenerowałem z przekierowaniem do pliku. Całość można zobaczyć tutaj.   

[2] W przyszłym tygodniu jadę odwiedzić Bernda, tj. profesora Ulmanna, prowadzącego muzeum komputerów analogowych + maszyn DEC'a, które znajduje się w miejscowości Heidenrod-Kemel, niedaleko Darmstadt.

End

Offline

 

#33  2014-08-09 16:19:58

  $pwd - Użytkownik

$pwd
Użytkownik
Zarejestrowany: 2013-02-07

Re: Unix

https://lh4.googleusercontent.com/-lbF9TGs4gF8/U11N2SZ7vvI/AAAAAAAAAlA/cwUasuYhYq0/w631-h375-no/wyman-tty.jpg

Zdjęcie które podałem, zostało wykonane w 1973 r.; przedstawia jeden z pierwszych terminali domowych.

Niegdyś w "Tajemnicach magicznego ogrodu" tj. repozytorium Systemu V Rewizja 4; doczytałem że w latach 80'tych były testy systemu Xinu, który działał niejako w "bańce" tj. powłoce wyżej systemu niższego.

Swoją drogą bootowałem go swego czasu z pozycji qemu; tj. implementowałem go do NetBSD [ten system robił za host], po czym uruchamiałem tunel z połączeniem szeregowym i miałem dostęp do Xinu.

Dennis Ritchie w ostatnim swoim okresie życia działał na systemach Inferno i Plan 9; tj. zmienił całkowicie metodykę podstawy systemu z monolitycznej na modułową i mikrokernele [Minix].

Dzisiaj np. karty płatnicze oparte o 32 bitowe procesory ARM'a, są kontrolowane przez dwupoziomowy system tzw. JavaCard. Natomiast dzięki rozprawie Cramera wiem iż Xinu ma duży wkład w to.

Na koniec polecam wywiad z Bobem Supnikiem, twórcą projektu SIMH;
http://www.youtube.com/watch?v=ZWo_-fvIzXU

Offline

 

#34  2014-12-19 14:06:58

  $pwd - Użytkownik

$pwd
Użytkownik
Zarejestrowany: 2013-02-07

Re: Unix

W jednym z miejsc w sieci zacząłem kompletować literaturę poświęconą dystrybucji NetBSD. Poniżej do wglądu podaję główny post.

"Without its software, a computer is basically a useless lump of metal. With its software, a computer can store, process, and retrieve information; display multimedia documents; search the Internet; and engage in many other valuable activities to earn its keep. Computer software can be divided roughly into two kinds: system programs, which manage the operation of the computer itself, and application programs, which perform the actual work the user wants.

The most fundamental system program is the operating system, which controls alll the computer's resources and provides the base upon which the application programs can be written.

[...]
On top of the operating system is the rest of the system software. Here we find the command interpreter (shell), window systems, compilers, editors, and similar application-independent programs. It is important to realize that these programs are definitely not part of the operating system, even though they are typically supplied by the computer manufacturer.

This is a crucial, but subtle, point.

The operating system is that portion of the software that runs in kernel mode or supervisor mode. It is protected from user tampering by the hardware (ignoring for the moment some of the older microprocessors that do not have hardware protection at all).

Compilers and editors run in user mode.

If a user does not like a particular compiler, he is free to write his own if he so chooses; he is not free to write his own disk interrupt handler, which is part of the operating system and is normally protected by hardware against attempts by users to modify it.

Finally, above the system programs come the application programs. These programs are purchased or written by the users to solve their particular problems, such as word processing, spreadsheets, engineering calculations, or game playing."


Tanenbaum A. S., Woodhull A. S., Operating Systems: Design and Implementation, 2nd Edition, Prentice Hall, 1997, p. 1, 3.

For those who want to know more about NetBSD internals.

----------------------------------------
A) NetBSD - papers, publications
----------------------------------------

[1] Balmer M., Lua in the NetBSD Kernel, 2012 - [pdf] [u2]

[2] Balmer M., Ierusalimschy R., Moura A. L., Neto L. V., Scriptable Operating Systems with Lua, [ACM] 2014 - [pdf] [u2]

[3] Brown A. B., Seltzer M. I., Operating System Benchmarking in the Wake of Lmbench: A Case Study of the Performance of NetBSD on the Intel x86 Architecture, 2002 - [pdf] [u1]

[4] Chung S. W., The Design of the NetBSD I/O Subsystems, 2003, - [pdf] [u1]

[5] Cormack J., Kantee A., Rump Kernels No OS? No Problem!, 2014 - [pdf]

[6] Cranor C. D., Parulkar G. M., The UVM Virtual Memory System, 1999 - [pdf] [u3]

[7] Crooks A., Package Views - a more flexible infrastructure for third-party software, 2002 - [pdf]

[8] Crooks A., Feyrer H., The pkgsrc guide - Documentation on the NetBSD packages system, The NetBSD Foundation 2014 - [pdf]

[9] Crooks A., Kantee A., ReFUSE: Userspace FUSE Reimplementation Using puffs, 2007 - [pdf]

[10] Dreyfus E., Binary compatibility on NetBSD, 2014, - [pdf] [presentation] [u1]

[11] Efrat E., Recent Security Enhancements in NetBSD, 2006 - [pdf]

[12] Feyrer H., System Administration Training in the Virtual Unix Lab, 2008 - [pdf]

[13] Green M., Mewburn L., build.sh: Cross-building NetBSD, 2003 -[pdf]

[14] Hamsik A., The NetBSD Logical Volume Manager, 2009 - [pdf]

[15] Hoka A., Flash and NAND Subsystem for NetBSD, 2011 - [pdf] [u3]

[16] Kantee A., Flexible operating system internals: The design and implementation of the anykernel and rump kernels, 2012 - [pdf] [u2]

[17] Kantee A., Ysmal A., Fs-utils: File Systems Access Tools for Userland, 200 - [pdf]

[18] Kantee A., Rump File Systems: Kernel Code Reborn, 2009 - [pdf] [u2]

[19] Kesteloot L., Porting BSD UNIX to a New Platform, 1995 - [pdf] [u1]

[20] Kunz J., Writing Drivers for NetBSD, 2003 - [pdf]

[21] Kuparinen M., Xen Disk I/O Benchmarking: NetBSD dom0 vs Linux dom0, 2005 - [html] [u1]

[22] Lehey G., Debugging Kernel Problems, Edition for BSDCan 2006 - [pdf] [u3]

[23] Lupi F., The NetBSD Operating System - A Guide, 2003 - [pdf]

[24] McGarry G., Benchmark Comparison of NetBSD 2.0 and FreeBSD 5.3, 2004 - [pdf] [u1]

[25] McGarry G., Benchmark Comparison of NetBSD 3.0, FreeBSD 6.0 and Fedora Core 4, 2006 - [pdf] [u1]

[26] Mewburn L., The Design and Implementation of the NetBSD rc.d system, 2001 -[pdf]

[27] Neto L. V., NPF Scripting with Lua. Scripting the NetBSD Packet Filter with Lua, 2014 - [pdf] [u2]

[28] Nishimura T., 64bit SMP NetBSD OS Porting for TILE-Gx VLIW Many-Core Processor, 2013 - [pdf] [u3]

[29] Rasiukevicius M., NPF – the packet filter of NetBSD, 2012 - [pdf]

[30] Rasiukevicius M., Thread scheduling and related interfaces in NetBSD 5.0, 2009 - [pdf]

[31] Steinmann A., Single User Secure Shell, 2005 - [pdf] [u3]

[32] Thorpe J. R., A Machine-Independent DMA Framework for NetBSD, 1998? - [pdf]

-------------------------------
B) BSDTalk Interviews:
-------------------------------

[1] bsdtalk021 - Interview with Stephen Jones [smj] of SDF (March 1, 2006) [mp3] [u1]

[2] bsdtalk045 - Interview with NetBSD Developer Mouse (May 17, 2006) - End of life for the NetBSD 1.6 branch. Time to move on. [mp3] [u3]

[3] bsdtalk057 - Interview with Massimiliano Stucchi (July 24, 2006) - NetBSD 3.0.1 Released. [mp3] [u3]

[4] bsdtalk064 - Interview with NetBSD Developer Jason Thorpe (September 11, 2006) - [mp3] [u3]

[5] bsdtalk070 - Interview with NetBSD Developer Tim Rightnour (September 27, 2006) [mp3] [u3]

[6] bsdtalk089 - NetBSD Release Engineer Jeff Rizzo (December 29, 2006) [mp3] [u3]

[7] bsdtalk100 - NetBSD Developer Lubomir Sedlacik (February 15, 2007) [mp3] [u3]

[8] bsdtalk125 - Matthew Dillon (August 15, 2007) [mp3] [u3]

[9] bsdtalk171 - Andrew Doran from the NetBSD Project (March 6, 2009) [mp3] [u1]

[10] bsdtalk215 - NetBSD project update (May 23, 2012) [mp3] [u1]


--- Update List ---

[u1] update 1 - date: 14.12.2014
[u2] update 2 - date: 15.12.2014
[u3] update 3 - date: 16.12.2014

---------------------------------------

Salut,
Marcin F. Michalski

Offline

 

#35  2014-12-19 14:48:05

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: Unix

1340

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:04:41)

Offline

 

#36  2015-01-24 21:09:42

  $pwd - Użytkownik

$pwd
Użytkownik
Zarejestrowany: 2013-02-07

Re: Unix

Być może kogoś zainteresuje; zapodałem całość na http://daemonforums.org

"The number of UNIX installations has grown to 10, with more expected."
-> The UNIX Programmer's Manual, 2nd Edition, June, 1972.

----------------------------------------
A) OpenBSD - papers, publications
----------------------------------------


[1] Boutaba A., Murenin C.A., OpenBSD HARDWARE SENSORS FRAME WORK. A unified and ready to use system for hassle-free hardware monitoring., 2009  -[pdf]

[2] Brauer H., The surprising complexity of TCP/IP checksums in the network stack, 2013 - [pdf]

[3] Britt A.M., Data Structures Used in the OpenBSD Kernel, 2012 -[pdf]

[4] Burnside M., Keromytis A.D., Raadt de, T., Wright J.L., Cryptography As An Operating System Service: A Case Study, ACM, 2006[/i]  -[pdf] [u1]

[5] Callahan B., OpenBSD: a crash course, 2014 -[pdf] [Also look at part C) Miscellanea - to hear the recorded and related version to this conference]

[6] Callahan B., Intro to OpenBSD, 2014 - [pdf]

[7] Faurot E., OpenSMTPD: We deliver!, 2013  -[pdf] [u1]

[8] Guillaume K., SECURITY : OPENBSD VS FREEBSD, 2014 - [html] [blog entry]

[9] Hartmeier D., Firewall Management, 2006[?] - [html]

[10] Hartmeier D.,Firewall Ruleset Optimization, 2006[?] - [html]

[11] Hartmeier D.,Testing Your Firewall, 2006[?] - [html]

[12] Jeker C., OpenBGPD bringing full views to OpenBSD since 2004, 2009 -[pdf] [u1]

[13] Jeker C., Oppermann A., The Design and Implementation of OpenBGPd, 2004[/i] -[pdf] [u1]

[14] Keromytis A.D., Raadt de, T., Wright J.L., The Design of the OpenBSD Cryptographic Framework, Usenix, 2003 -[pdf] [u1]

[15] Kirillov V., OpenBSD Kernel Internals - The Hitchhiker's Guide, 2009 -[pdf]

[16] Lawrence T., Managing 600 OpenBSD-based Firewalls in Microsoft-Centric Small and Medium Businesses, 2010 - [pdf] [u1]

[17] Miller D., Secure Portability, 2005 -[pdf]

[18] Miller D., Security measures in OpenSSH, 2007 -[pdf] [u1]

[19] Miller D., What's new in OpenSSH?, 2011 -[pdf] [u1]

[20] Miller T. C., Raadt de, T., strlcpy and strlcat — consistent, safe, string copy and concatenation, Usenix, 1999 -[pdf] [u1]

[21] Millican E., Building an IPv6 Firewall with OpenBSD, ? - [pdf]

[22] Murenin C.A., History of the OpenBSD - Hardware Sensors Framework, 2008  -[pdf]

[23] Murenin C.A., OpenBSD Hardware Sensors: Environmental Monitoring and Fan Control, 2010 -[pdf]

[24] Schneeberger C., Firewalling IPv6 with OpenBSD's pf (packet filter), 2003 - [pdf]

[25] Schiffman M., The Belt And Suspenders Approach [OpenBSD Kernel Enhancements], 1998 -[pdf] [u1]

[26] Schwarze I., Let’s make manuals more useful!, 2014 -[pdf]

[27] Schwarze I., Let’s make manuals more useful!: Tutorial on software documentation, 2014 -[pdf]

[28] Schwarze I., New trends in mandoc: Enhancing the modern toolbox for the classic documentation formats, 2014 -[pdf]

[29] Unangst T., rthreads: A New Thread Implementation for OpenBSD, 2005 -[pdf] [u1]

[30] Urig V., IPv6 HowTo for OpenBSD, 2008 -[pdf]

[31] GPU Accelerated Cryptography as an OS Service, 2009 - [pdf]


-------------------------------
B) BSDTalk Interviews:
-------------------------------


[1] bsdtalk236 - NYCBSDCon 2014 with Brian Callahan and Ike Levy (December 21, 2013) - Interview with Brian Callahan and Ike Levy about the upcoming NYCBSDCon 2014.


---------------------------------------------------------
C) Miscellanea [Video/Audio Interviews-Presentations, etc.]:
---------------------------------------------------------


[1] Interview with Henning Brauer , (ruBSD 2013) - [YouTube]

[2] BSD Now 38 - A BUG's Life; "This week on the show we'll be chatting with Brian Callahan and Aaron Bieber about forming a local BSD users group." - [YouTube]

[3] Brian Callahan, OpenBSD: a crash course, at NYC*BUG, January 2014 - [mp3]

[4] Interview with Theo de Raadt, (ruBSD 2013) - [YouTube]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)