Jump to content
  • Announcements

    • Jarpen Zigrin

      Zostań naszym fanem. Obserwuj nas w social mediach : )   12/11/2016

      Daj się poznać jako nasz fan oraz miej łatwy i szybki dostęp do najnowszych informacji poprzez swój ulubiony portal społecznościowy.    Obecnie można nas znaleźć m.in tutaj:   Facebook: http://www.facebook.com/pages/Historiaorgp...19230928?ref=ts Twitter: http://twitter.com/historia_org_pl Instagram: https://www.instagram.com/historia.org.pl/
    • Jarpen Zigrin

      Przewodnik użytkownika - jak pisać na forum   12/12/2016

      Przewodnik użytkownika - jak pisać na forum. Krótki przewodnik o tym, jak poprawnie pisać i cytować posty: http://forum.historia.org.pl/topic/14455-przewodnik-uzytkownika-jak-pisac-na-forum/
bavarsky

Historia rozwoju systemów operacyjnych

Recommended Posts

bavarsky   

Dennis Ritchie współtworzył z Kenem Thompsonem i paroma innymi osobami w tym Victorem A. Vyssotskym [zmarł w grudniu 2012] system o nazwie UNIX.

Największą innowacją [wręcz rewolucją] którą ten zespół stworzył, było "przeniesienie" kodu jądra systemu z języka niskiego poziomu do języka wysokiego poziomu tj. C. To właśnie jest dziedzictwo jądra monolitycznego, ten fundament który występuje współcześnie w Linuxie czy xBSD.

Większość natomiast głównych konceptów rozwiniętych w laboratoriach Bella, a tyczących time-sheringu, procesów, systemu plików, zawdzięczamy również dziś zapomnianemu prof. Fernando J. Corbato, pionierze systemów operacyjnych takich jak CTSS czy Multics.

Ritchie jak i wielu jego rówieśników, żył i tworzył w czasach w których komputery miały bardzo ograniczone moce przerobowe, zużywały ogromne ilości energii a przy tym zajmowały całe kondygnacje budynków.

Jednakże, co często jest DZISIAJ zapominane to właśnie pod koniec lat 60'tych nastała era tzw. minikomputerów słynnych maszyn serii PDP DEC'a. Dobitnie zaakcentował to

Nagle nie trzeba było robić "zrzutki" wielomilionowej, wystarczyło kilkaset tysięcy dolarów gdzie ten próg finansowy był już osiągalny przez większość stanowych uniwersytetów czy autonomicznych [państwowych/prywatnych] ośrodków badawczych, ergo komputery zaczynały być coraz bardziej dostępne, studenci mogli instalować na swoich stancjach terminale, które były np. udostępniane im przez ichniejszą Alma Mater. Jak to wyglądało w latach 60'tych polecam artykuł Toma Van Vlecka, pt. Home Terminals, który traktuje o tym, jak w latach 60'tych i 70'tych łączono się z 'mainframeami'

Temat, będzie rozwijany sukcesywnie.

Pozdr.

Marcin

Share this post


Link to post
Share on other sites
bavarsky   

Perfekcja.

The UNIX Time-Sharing System, edycja; Bell System Technical Journal, v 57: No 6 July-August 1978 --- www3.alcatel-lucent.com/bstj/vol57-1978/articles/bstj57-6-1905.pdf

Powyższy tekst został pierwszy raz upubliczniony w piśmie Communications of the ACM, Vol. 17, No. 7, July, 1974, pp. 365-375.

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.

Po początkowym sukcesie funkcjonowania Unixa, Thompson zaimplementował kompilator Fortrana z myślą o tymczasowej bazie wyjściowej dla rozwoju swojego projektu. Widząc jednak ograniczenia z tym związane, poznane uprzednio podczas prac nad Multicsem; jak problemy przy ewentualnych aktualizacjach kodu źródłowego, Thompson zdecydował się na przełomowy wówczas język BCPL na bazie którego stworzył swój własny B --> a który to następnie został rozwinięty przez Dennisa Ritchiego w C.

Rok 1973 okazał się być przełomem, przełomem tak znacznym iż do dnia dzisiejszego ogólna architektura współczesnych systemów Unixo-podobnych jak z rodziny xBSD czy Linux, pozostaje niezachwiana.

Rdzeń Unixa, czyli Kernel, główny program, twórca wszystkich procesów, zarządca zasobami komputera, tymi chronionymi jak i otwartymi, został przepisany z języka niskiego poziomu jakim był maszynowy, do języka wysokiego poziomu tj. C.

Podczas uruchomienia komputera i podczas zmian przy pracy, nad 'kodem' słownym rozumianym przez człowieka, acz niekoniecznie w bezpośrednim zwarciu z 'rejestrami' maszyny, czuwał kompilator, który przekładał proste bloki logiczne, algorytmy złożone ze słów, zmiennych, w ciągi cyfr rozumiane w jednostce centralnej.

Wielką zaletą takiego rozwiązania, była możliwość szybkiego rozprzestrzeniania się Unixa najpierw na poziomie AT&T, po czym na niwie akademickiej - na różne architektury procesorów, z możliwością błyskawicznej adaptacji systemu do nowych potrzeb, rozwoju techniki [nauka C była nieporównywalnie prostsza niż języka niskiego poziomu jakim był asembler, nie wspominając o języku maszynowym, którego biegłością nawet w tamtych czasach mogło poszczycić się niewiele osób.

Share this post


Link to post
Share on other sites

Ja jestem dyletantem w tym zakresie, pracując dla FM Logistic na początku miałem do czynienia z Unixem, furorę robiłem umiejętnością stosowania "siekiery".

Share this post


Link to post
Share on other sites
bavarsky   

Osoby które sobie tego życzą, a chciałyby się nauczyć podstaw funkcjonowania w userlandzie systemu operacyjnego typu UNIX, tj. OpenBSD, informuję iż o określonych [głównie wieczornych porach] mogę włączyć komputer który będzie umożliwiać taką naukę.

Lekcje mogę prowadzić tutaj, ewentualnie będą do pobrania/przeczytania w formie przygotowanych uprzednio tutoriali.

Share this post


Link to post
Share on other sites
bavarsky   

Ostatnimi czasy wskrzesiłem Klakiera

Wymiana płyty głównej i zasilacza pomogła.

Jest to komputer słynnej niegdyś rodzimej firmy Optimus, seria Prestige.

Co ciekawe obudowa była importowana przez Optimusa, od amerykańskiego potentata DEC DIGITAL; twórcy pierwszych minikomputerów serii PDP -- obecnie i tej firmy już nie ma.

Spec. Pentium III 800 EB, 256 MB RAM 133 Mhz, pierwotnie 20 GB HDD, do czasu awarii dwa 80 GB ATA/100 -- obecnie jeden.

Swego czasu ten komputer obsługiwał 45 osób :> Konta shellowe, programowanie w C, serwer ftp.

Mam również, IBM RS/6000 wersja 43P-150, z kapitalnym procesorem PowerPC 604ev RISC, 400 Mhz FSB 100 Mhz, keszu całe mrowię + 0,5 GB RAM

Maszyna sprawna ale czyszczenia wymaga i muszę zasilacz dać do regeneracji, bo dmuchnąć ogniem/dymem może - paru kondensatorom się przytyło, nie wspominając o sporych warstwach kurzu. Kolega mówił że komputer działał 24/7 z drobnymi przerwami przez cały rok i tak przez 7 lat

Wprawdzie jest bez systemu - dysk padł, ale niebawem postawię na nim AIX 4.x jak uporam się z twardzielem, a jeżeli będą osoby chętne, to zapodam telneta lub SSH -coby można sobie zobaczyć jak licencjonowany UNIX System V w wersji IBM'a działa.

Poniżej print wartości wydrukowanych przez program dmesg, który bazuje pośrednio przez pipeline z sysctl

$ dmesg

OpenBSD 5.3 (GENERIC) #50: Tue Mar 12 18:35:23 MDT 2013

deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC

cpu0: Intel Pentium III ("GenuineIntel" 686-class) 798 MHz

cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PSE36,PSN,MMX,FXS R,SSE

real mem = 267907072 (255MB)

avail mem = 252534784 (240MB)

.

.

. 00

bios0: OPTIMUS S.A. MS-6337

.

.

.

+ rozkład napięcia i temperatury rdzenia głównego CPU.

$ sysctl hw.sensors

hw.sensors.lm1.temp0=41.00 degC

hw.sensors.lm1.temp1=37.50 degC

hw.sensors.lm1.fan2=5037 RPM

hw.sensors.lm1.volt0=1.68 VDC (VCore A)

hw.sensors.lm1.volt1=1.49 VDC (VCore B)

hw.sensors.lm1.volt2=3.30 VDC (+3.3V)

hw.sensors.lm1.volt3=5.00 VDC (+5V)

hw.sensors.lm1.volt4=11.98 VDC (+12V)

hw.sensors.lm1.volt5=-12.12 VDC (-12V)

hw.sensors.lm1.volt6=-6.36 VDC (-5V)

hw.sensors.lm1.volt7=4.87 VDC (5VSB)

hw.sensors.lm1.volt8=3.01 VDC (VBAT)

A tutaj całość już po uruchomieniu

Share this post


Link to post
Share on other sites
bavarsky   

Po ostatniej awarii, stwierdzam że naprawa systemu poszła mi całkiem gładko.

Klakier działa i serwuje domową stronę http://ctss.sytes.net --> Całość jest zgodna z regułą 'KISS', takoż głównie z tego powodu iż serwer ma 12 lat i 256 MB pamięci operacyjnej, chociaż utylizacja tejże dzięki zastosowaniu mojego ulubionego systemu OpenBSD [akurat w wersji 5.3], jest nad wyraz efektywna;

Memory: Real: 14M/83M act/tot Free: 159M Cache: 44M Swap: 0K/511M

Nie jest wykluczone że strona zostanie przeniesiona na serwer płatny w najbliższym czasie, oraz fakt taki iż działać będzie o określonych porach dnia; shutdown robię w czasie nocnym [circa 23-24-5 rano].

Na komputerze obecnie kompiluję SIMH, emulator procesora PDP11, na którym uruchomię Unixa v.6; zwiedzanie systemu będzie ogólnodostępne, dla każdego chętnego. Wymagany jest terminal [pod Windowsa PuTTy], z obsługą portu 23 tj. telnetu.

Być może w przyszłości uda się uruchomić również Ultrixa 4.5 na emulatorze VAX'a :)

Share this post


Link to post
Share on other sites
bavarsky   

Czytając czas temu klasyczną publikację Lionsa pt. Commentary on the Sixth Edition UNIX Operating System, która to wydana została w 1977 r.; pomyślałem że ciekawie byłoby uruchomić legendarny system, którego kod od dobrej dekady jest udostępniony za darmo.

Naturalnie na współczesnych 'wirtualnych maszynach' pokroju VMWare; powyższy pomysł raczej spełnić się nie mógł.

Takoż; trafiłem na projekt SIMH; www.simh.trailing-edge.com ---> który stworzył bazę do uruchomienia zaszłego softu.

Potrzebowałem 16 bitowego procesora PDP 11 najlepiej w wersji 40.. takoż go dzięki SIMH dostałem.

Na moim głównym komputerze, na którym chodzi od prawie roku FreeBSD 8.3, pobrałem ten emulator, skompilowałem poleceniem gmake [w linuxach naturalnie będzie to make], i takoż w katalogu /BIN uzyskałem masę plików wykonywalnych, emulujących różne systemy komputerowe od Altaira, przez PDP 8, różne IBM'y czy nawet pierwsze 32 bitowe VAX'y DEC'a.

Naturalnie po uruchomieniu PDP11 --> dostajemy czysty 'system' działający bez systemu operacyjnego.

W tym przypadku należy pobrać 'kasetę' tj. plik zawierający system UNIX v6, którą Ken Wellsch dobre 10 lat temu przepisał ze 'źródła' czyli kaset mikrokomputera PDP-11, owy plik 6 megabajtowy znajduje się na stronie autora; wwwlehre.dhbw-stuttgart.de/~helbig/os/v6/

Plik dist.tap najlepiej skopiować do katalogu BIN.

Proces instalacyjny podzieliłem na kilka części:

[1] Po uruchomieniu emulatora; należy zainicjować proces instalacyjny procesora, obszarów pamięci m.in. dyskowej [utworzone zostaną pliki rk0 rk1 rk2] itp.

set cpu 11/40

set tm0 locked2

attach tm0 dist.tap

attach rk0 rk0

attach rk1 rk1

attach rk2 rk2

d cpu 100000 012700

d cpu 100002 172526

d cpu 100004 010040

d cpu 100006 012740

d cpu 100010 060003

d cpu 100012 000777

g 100000

Po wklepaniu powyższego; dajemy CTRL+E tj. wstrzymujemy system;

następnie wpisujemy g 0

i po ukazaniu się znaku = wpisujemy:

tmrk

disk offset

0

tape offset

100

count

1

=tmrk

disk offset

1

tape offset

101

count

3999

= [## dajemy CTRL-E ]

Simulation stopped, PC: 137300 (BGE 137274)

sim> q

Goodbye

Tym sposobem zainstalowaliśmy taśmę.

[2] Przystępujemy do instalacji dysku:

-włączamy emulator PDP11 i wklepujemy poniższą sekwencję;

set cpu 11/40

set tto 7b

set tm0 locked

attach tm0 dist.tap

attach rk0 rk0

attach rk1 rk1

attach rk2 rk2

dep system sr 173030

boot rk0

Całość zostanie zapisana w pliku dboot.ini.

[3] Rozruch systemu do poziomu jednego użytkownika tzw. single user mode

PDP-11 simulator V3.8-1

sim> set cpu 11/40

Disabling XQ

sim> set tto 7b

sim> set tm0 locked

sim> attach tm0 dist.tap

sim> attach rk0 rk0

sim> attach rk1 rk1

sim> attach rk2 rk2

sim> dep system sr 173030

sim> boot rk0

@rkunix

mem = 1030

RESTRICTED RIGHTS

Use, duplication or disclosure is subject to

restrictions stated in Contract with Western

Electric Company, Inc.

#

Gdy pojawi się #, należy wprowadzić modyfikację do programu gtty; wpisując STTY -LCASE

[4] Konfiguracja jądra systemu UNIX v. 6; pod emulator procesora PDP 11/40 SIMH

- Stworzenie programu mkconf;

chdir /usr/sys/conf

cc mkconf.c

mv a.out mkconf

- Wpisanie podstawowych parametrów konfiguracyjnych do mkconf;

# ./mkconf

rk

tm

tc

8dc

lp

done

#

-Kompilacja configu, wraz z powiązaniem tegoż z jądrem systemu;

as m40.s

mv a.out m40.o

cc -c c.c

as l.s

ld -x a.out m40.o c.o ../lib1 ../lib2

mv a.out /unix

- Weryfikacja jądra, które winno wynosić ok. 30 KB;

ls -l /unix

-rwxrwxrwx 1 root 30346 Oct 10 12:43 /unix

[5] Tworzenie pliku urządzeń [terminale, powiązanie do karty sieciowej itp.]; poniżej trzeba wszystko wklepać jak leci:

/etc/mknod /dev/rk0 b 0 0

/etc/mknod /dev/rk1 b 0 1

/etc/mknod /dev/rk2 b 0 2

/etc/mknod /dev/mt0 b 3 0

/etc/mknod /dev/tap0 b 4 0

/etc/mknod /dev/rrk0 c 9 0

/etc/mknod /dev/rrk1 c 9 1

/etc/mknod /dev/rrk2 c 9 2

/etc/mknod /dev/rmt0 c 12 0

/etc/mknod /dev/lp0 c 2 0

/etc/mknod /dev/tty0 c 3 0

/etc/mknod /dev/tty1 c 3 1

/etc/mknod /dev/tty2 c 3 2

/etc/mknod /dev/tty3 c 3 3

/etc/mknod /dev/tty4 c 3 4

/etc/mknod /dev/tty5 c 3 5

/etc/mknod /dev/tty6 c 3 6

/etc/mknod /dev/tty7 c 3 7

chmod 640 /dev/*rk*

chmod 640 /dev/*mt*

chmod 640 /dev/*tap*

dd if=/dev/mt0 of=/dev/rk1 count=4000 skip=4100

/etc/mount /dev/rk1 /usr/source

dd if=/dev/mt0 of=/dev/rk2 count=4000 skip=8100

mkdir /usr/doc

[6] Konfiguracja uruchamiania:

# cat >> /etc/rc

/etc/mount /dev/rk1 /usr/source

/etc/mount /dev/rk2 /usr/doc

[CTRL-D]

[7] Odbudowa komendy df;

# chdir /usr/source/s1

# ed df.c

/rp0/d

.-2a

"/dev/rk0",

"/dev/rk1",

.

w

q

# cc df.c

# cp a.out > /bin/df

[8] Sprawdzanie systemu [tj. w pierwszej kolejności pamięci];

icheck /dev/rrk0

dcheck /dev/rrk0

icheck /dev/rrk1

dcheck /dev/rrk1

icheck /dev/rrk2

dcheck /dev/rrk2

[9] Załączenie wielowątkowości;

# ed /etc/ttys

1,8s/^0/1/p

w

q

#

[10] Ponieważ w tym systemie nie ma opcji reboot [czy tym bardziej shutdown -h now], musimy kilka razy wpisać w terminalu polecenie sync, a następnie naciskamy Ctrl-E, wychodząc całkowicie z emulatora SIMH.

KONIEC INSTALACJI ---> przechodzimy do normalnej procedury uruchamiania systemu PDP 11/40 z systemem UNIX v.6

set cpu 11/40

set cpu idle

set tto 7b

set tm0 locked

attach rk0 rk0

attach rk1 rk1

attach rk2 rk2

attach lpt printer.txt

set dci en

set dci lines=8

set dco 7b

att dci 5555 #tutaj wybieramy port na którym ma nasłuchiwać emulator

boot rk0

Słowo wyjaśnienia dla osób które widzą problematyczny rozkład plików binarnych np. w katalogu /etc, jak mount, mknod.

[1] Opisana procedura tyczy uruchomienia systemu operacyjnego Unix v.6 na emulatorze procesora PDP11/40 - jest to łopatologiczna wykładnia tego co należy zrobić by załadować do tych paru kilobajtów pamięci "obraz" systemu.

[2] Wszystkie wersje Rozwojowe Unixa, a do takiej zalicza się choćby v.6 nigdy nie stanowiły dystrybucji przeznaczonej do sprzedaży. Wręcz początkowo nikt z takiego założenia nawet nie wychodził!

[3] Dzięki zmianie prawa w Stanach pod koniec lat 70'tych, pozwolono AT&T na udostępnienie swojego systemu dla ośrodków naukowych takich choćby jak w Berkeley.

[4] System III czy V + wersje BSD; to były dystrybucje Unixa + mnogie klony różnych firm które nabyły prawa do kodu źródłowego. Sztandarowym produktem Microsoftu przez pierwszą dekadę wcale nie był DOS, tylko Xenix... zresztą to on był rozważany jako system który miałby wejść na platformy znane współcześnie jako PC. Ostało się jednak na CP/M'ie z tej to racji iż Xenix miał za wysokie progi sprzętowe.

[5] Pod koniec lat 70'tych, za hasło często starczał... login :> Wraz ze wzrostem możliwości komunikacyjnych, łączenia wielu systemów w ogromne sieci, zaczęto przerabiać sprawę bezpieczeństwa użytkowników systemu, nie muszę dodawać co zrobił taki Morris, który wykorzystał lukę w buforze programu finger... pod koniec lat 80'tych?

Share this post


Link to post
Share on other sites
bavarsky   

Aktualizacja strony o kilka nowych tekstów.

Zwłaszcza polecam artykuł; Bournea, The UNIX Shell.

Tymczasem polecam również

z 1963, przedstawiający profesora Corbato alias Corby, który przedstawia funkcjonowanie systemu CTSS na komputerze GE bodaj 630.

Share this post


Link to post
Share on other sites
bavarsky   

Mało w istocie jest dyskusji na temat założeń współczesnych systemów operacyjnych. Wydaje się że 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].

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.

Chciałbym się Zapytać Szanownych użytkowników forum historia.org.pl, o czym chcieliby porozmawiać?, podyskutować?

Share this post


Link to post
Share on other sites
bavarsky   

Swoją drogą TOPS10 czy TOPS20, umożliwiał np. przed zalogowaniem się do systemu sprawdzenie programem systat lub finger, kto jest aktualnie zalogowany w systemie, z podaniem np jego nr TCP/IP.

Zrobiłem nawet taki test, na TOPS20, który działa współcześnie za pośrednictwem NetBSD, i co? - Prawie 30 lat minęło i mamy taki listing [x'ami przez wzgląd na prywatność zamaskowałem IP wyświetlonych osób]:

Connected to twenex.org.

Escape character is '^]'.

TWENEX.ORG' date=' PANDA TOPS-20 Monitor 7.1(21733)-4

If new, type 'new new' ..

@systat

Tue 26-Nov-2013 10:06:07 Up 1576:37:27

9+5 Jobs Load av 0.02 0.01 0.01

Job Line Program User Origin

6 DET EXEC TILT

7 17 HTTPD NCSA

8 45 EXEC CROSS (166.84.xxx.xx)

9 DET EXEC DWF

10 46 MM TCROWLEY (164.55.xxx.xx)

11 44 EXEC ECKROTH (192.94.xx.xx)

12 47 TOPS20 NEW (192.94.xx.xx)

13 50 CRIME NEW (62.99.xxx.xx)

15 52 HELP NEW (74.203.xxx.xxx)

1 13 OPR OPERATOR

2 DET SYSJB1 OPERATOR

3 14 NETSRV OPERATOR

4 15 SMTJFN OPERATOR

5 16 MMAILR OPERATOR

@[/quote']

Inna sprawa że TOPS10 wersja 7 umożliwiał jeszcze dokładniejsze działania, np. systat us, wyświetlał listę użytkowników systemu [podobnie jak wyżej podałem], przy czym dodatkowo umożliwiał działania z pjob [n] - gdzie n stanowi nr wzięty z kolumny Job. W TOPS10 dodatkowo funkcjonowały konta 'zawieszone/ukryte' jak np. 1,3, pass OLD lub OLDLIB, 1,4 pass SYS lub SYSLIB, 1,5 pass NEW lub NEWLIB czy też 6,6 z hasłem MAINT lub FIXIT.

Aha zapomniałbym o programie Finger, który również dawał się uruchomić przed frontem loginu, przy czym nie we wszystkich wersjach, chociaż na TOPS20 serwowanym przez twenex.org, jak najbardziej...

Share this post


Link to post
Share on other sites
bavarsky   

11553280176_a3f548988d_n.jpg

1. Dell Precision 450

Pod tymi dwoma radiatorami znajduje się para Xeon'ów 2,4 ghz, obok czarnego radiatora [CPU Nr 1], jest płytka VRM tj. Voltage Regulator 04K666, która musi zostać doinstalowana w przypadku rozbudowy tej płyty głównej o kolejny procesor [Dell Precision 450 najczęściej był sprzedawany w układzie jedno procesorowym].

Co ciekawe ta linia starych Xeonów, obsługuje technologię HT tj. Hyper-threading, inaczej na jednym rdzeniu procesor implementuje dwa wątki tzn. na jednym logicznym układzie tworzą się dwa wirtualne procesory, ergo system operacyjny widzi zamiast dwóch CPU, cztery.

Intel na początku XXI stulecia zaczął prace nad rozwojem tej technologii, znanej wcześniej jako HEP tj. Heterogeneous Element Processor, zapoczątkowanej na początku lat 80. XX w., przez Denelcor Inc.

Chodziło o to by procesor mógł efektywniej wykorzystywać swój potencjał obliczeniowy, poprzez podzielenie zadań na tzw. dwa "wirtualnie procesory".

W zasadzie całość zbiera się do tego iż to system operacyjny "kreuje" owe "dwa" cpu, przy wsparciu ze strony fizycznego procesora [odpowiednio wydzielona struktura adresowania].

Dzisiaj mamy natomiast procesory wielordzeniowe [a te często działają również z technologią HT, ergo jak komputer posiada zainstalowany jeden procesor Core i7 w układzie 4 rdzeni, z włączoną technologią HT [na poziomie BIOS'a], system operacyjny będzie widział 8 rdzeni.

I taka ciekawostka... po 4 godzinnym teście Linpacka [można sobie skopiować listing tego programu ze strony TOP500, skompilować i uruchomić - tylko systemy GNU/Linux, xBSD, SunOS, AIX etc. Unix-like], wyszło mi że ta maszyna z roku 2004 przy włączonym HT, z 2 GB RAM ma moc obliczeniową 16 GFLOPS, dla porównania Deep Blue IBM'a, który sprawił psikusa Kasparowowi w 1997 r., osiągał moc w tymże teście 11.38 GFLOPS -> pracując na 30 procesorach Power2 IBM'a [P2SC] RISC.

Tym niemniej w owym to czasie tylko nieliczna część programów użytkowych z bazy "ogólnego" przeznaczenia typu: edytory tekstu, przeglądarki internetowe wspierała rozwiązania wielopotokowe, nie wspominając o systemach operacyjnych, które dopiero "uczyły" się takowego wsparcia dla użytkowników domowych/ wszak nie stanowiło to problemu dla maszyn z systemami opartymi na System V, AIX, Solaris, OpenVMS, SunOS i innymi klonami Systemu V + cała rodzina wersji systemów z "rodu" BSD.

Wracając do Intela... ów przeszło 8 lat temu wypuścił linię Pentium D, tj. 64 bitowe chipy, w układzie dwóch rdzeni.

Problem był w tym iż adresowanie tych dwóch rdzeni było niekoniecznie szczęśliwe, ot bowiem "dowodzeniem" nad tymi dwoma rdzeniami przejmował od początku startu komputera chipset płyty głównej a nie... sam CPU.

Skutkiem było to, że Pentium D był w zasadzie zminiaturyzowanym układem dwuprocesorowym "starego" typu tj. przedstawiającego się tym iż na płycie instalowano dwa osobno pracujące procesory [jak to ma miejsce na załączonym wyżej zdjęciu Nr.1]

Dopiero po tym czasie Intel wprowadził ulepszone Core 2 Duo, których oba rdzenie współpracują ze sobą, niezależnie czy uruchamiamy program który został przemyślany na architekturę jedno czy wieloprocesorową.

System operacyjny który działa na tym komputerze to OpenBSD, który wprowadził obsługę SMP tj. Symmetric MultiProcessor w roku 2004.

Przy czym dzięki SIMH emuluję BSD w wersji 2.11 na procesorze PDP-11, udostępniam też ok. 20 GB dokumentów źródłowych tyczących mikrokomputerów wyprodukowanych przez DIGITALA, a robię to przy współudziale z Australijskim Towarzystwem Miłośników Unixa.

---.-

Share this post


Link to post
Share on other sites
bavarsky   

PROŚBA DO MODERATORA Ponieważ nie posiadam możliwości edycji, proszę skasować powyższy post, a zostawić ten [dokonałem kilku zmian/błędów].

"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ła 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

Share this post


Link to post
Share on other sites

A ja mam pytanie: dawnymi czasy pewien profesor na zjeździe hakerów i komuteromaniaków (jakieś lata 90-te) pokazał taką sztuczkę przy pomocy prostego sprzętu a la niemal tv - sciągnął sygnał z komputerów pobliskich biur. Innymi słowy widział na swym monitorze co ktoś inny pisał.

Jak?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Przed wyrażeniem zgody na Terms of Use forum koniecznie zapoznaj się z naszą Privacy Policy. Jej akceptacja jest dobrowolna, ale niezbędna do dalszego korzystania z forum.