What are services

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
User avatar
iansjack
Member
Member
Posts: 4703
Joined: Sat Mar 31, 2012 3:07 am
Location: Chichester, UK

Re: What are services

Post by iansjack »

devc1 wrote:Wow, how do you access 64 bit addresses using this PAE thing ? Do you remap them or what ? I don't know anything about PAE else than it just adds a few bits.
You could probably profit from reading the Intel/AMD programmers reference manuals.
thewrongchristian
Member
Member
Posts: 426
Joined: Tue Apr 03, 2018 2:44 am

Re: What are services

Post by thewrongchristian »

rdos wrote:
nexos wrote:
rdos wrote:RISC architectures are too unstable
By whom may I ask :wink:
The protected mode interface in x86 processors has existed since the 80s, and still is functional. Give me an example of a RISC processor where the binary code written a decade ago still works on a modern variant. That's what I meant by unstable.
MIPS? 64-bit MIPS goes back at least 30 years, and I dare say user code written in 1992 would run unchanged on any recent 64-bit MIPS implementation (OS permitting, of course, no more Irix or RISC/os and their respective platforms these days.)

SPARC? I'd wager money on binaries I compiled in 1998 (my first job using Solaris) would run unchanged on Solaris 11. Any incompatibilities would be software rather than hardware, and the same would be true for x86 based software as well (outdated libraries no longer being supported, for example.)

But proprietary software aside, both of the above as well as x86 would have common software available in the form of NetBSD, and I suspect the latest NetBSD (9.2) could run NetBSD binaries from nearly 30 years ago on each of these platforms.

Binary compatibility is almost always software limited at user level.
rdos wrote:
nexos wrote:
rdos wrote:I don't particularly enjoy portable C code scattered with ifdefs that I don't know the values of.
No different than assembly where you have no idea what values are in what registers.
The expected register content should be documented for each procedure. The values of ifdefs are never documented per source file, might not even be found in the projects include files, and sometimes are created by autoconf. Basically no project will document what the ifdefs are supposed to be set to or what their functions are.

Personally, I've adopted ifdef free programming. There are no ifdefs in the code I write, and I typically will remove ifdefs in code I port. Something that increase readability a lot.
Now I won't argue with you there. I think the only ifdefs I use are to turn on extra debug features. Different implementations will go in different files, with common code shared separated completely from non-shared code.
nexos
Member
Member
Posts: 1081
Joined: Tue Feb 18, 2020 3:29 pm
Libera.chat IRC: nexos

Re: What are services

Post by nexos »

devc1 wrote:I just wonder, why there is only AVX512. Why can't we have some extension that let's us do math on 1000 integers at once like gpus ? Or perform parallel conditionnal jumps on those 1000 integers ?
Err... the laws of physics? Supporting that would add an absolutely huge number of transistors and memory space on the CPU die, (especially in a mulit-core system, and that means the chip would have to get bigger, and then you start running into all kinds of issues with that.

I mean, maybe once they develop a 1nm process that might be possible. But I doubt it. And besides, the CPU would consume so much power with all that, I have a feeling that we would have bigger issues...
"How did you do this?"
"It's very simple — you read the protocol and write the code." - Bill Joy
Projects: NexNix | libnex | nnpkg
devc1
Member
Member
Posts: 439
Joined: Fri Feb 11, 2022 4:55 am
Location: behind the keyboard

Re: What are services

Post by devc1 »

Then why GPUs have thousands of cores and in each core they can perform maths on thousands of values in parallel
thewrongchristian
Member
Member
Posts: 426
Joined: Tue Apr 03, 2018 2:44 am

Re: What are services

Post by thewrongchristian »

devc1 wrote:Then why GPUs have thousands of cores and in each core they can perform maths on thousands of values in parallel
GPUs have lots of parallel cores, each of which operate in parallel on one or two scalar values.

So, the parallelism is coming from otherwise simple cores doing the same operation on a vector of inputs, with each core doing its share of the input vector.

What you're describing is 1000's of cores each handling 1000's of values in parallel. That'd be scaling in the millions of operations in parallel, which is several orders of magnitude more than what is actually happening.

Apart from anything else, the bandwidth required to feed millions of parallel execution units would be colossal, Terabytes per second sort of bandwidth.
nexos
Member
Member
Posts: 1081
Joined: Tue Feb 18, 2020 3:29 pm
Libera.chat IRC: nexos

Re: What are services

Post by nexos »

devc1 wrote:Then why GPUs have thousands of cores and in each core they can perform maths on thousands of values in parallel
To add to what was already said, GPUs don't need to focus quite as much on cache memory / branch prediction, both of which take up a fair amount CPU die space.
"How did you do this?"
"It's very simple — you read the protocol and write the code." - Bill Joy
Projects: NexNix | libnex | nnpkg
User avatar
iansjack
Member
Member
Posts: 4703
Joined: Sat Mar 31, 2012 3:07 am
Location: Chichester, UK

Re: What are services

Post by iansjack »

devc1 wrote:Then why GPUs have thousands of cores and in each core they can perform maths on thousands of values in parallel
GPUs are designed to perform the same operation, simultaneously, on a large data set, but are not so efficient at running a single thread. General purpose CPUs are designed to run a small number of independent threads very quickly and very efficiently. Although the former use case is found when processing images, or in scientific work, other programs represent the latter.

It’s difficult to see much use for massively parallel computations in an operating system, a program of interest to many here. But it would be an interesting experiment to write an OS designed to run just on a graphics card.
rdos
Member
Member
Posts: 3296
Joined: Wed Oct 01, 2008 1:55 pm

Re: What are services

Post by rdos »

devc1 wrote:Wow, how do you access 64 bit addresses using this PAE thing ? Do you remap them or what ? I don't know anything about PAE else than it just adds a few bits to addressing.
PAE use the same page table entries as long mode, except that you can only map 4G of linear memory. In fact, it's quite possible to share page tables between long mode and protected mode PAE since they are identical up to 4G.
devc1
Member
Member
Posts: 439
Joined: Fri Feb 11, 2022 4:55 am
Location: behind the keyboard

Re: What are services

Post by devc1 »

So from what I understand, you will use the 4gb protected mode page tables but in each page table entry you can set a 64 bit physical address ?
nullplan
Member
Member
Posts: 1790
Joined: Wed Aug 30, 2017 8:24 am

Re: What are services

Post by nullplan »

devc1 wrote:So from what I understand, you will use the 4gb protected mode page tables but in each page table entry you can set a 64 bit physical address ?
Yes. Or at least close enough. It is actually only 52 bits because of limitations placed on the format, but that should not really matter at this time.
Carpe diem!
devc1
Member
Member
Posts: 439
Joined: Fri Feb 11, 2022 4:55 am
Location: behind the keyboard

Re: What are services

Post by devc1 »

This is not in the topic, but does anyone have a full NTFS specification or atleast a read/write/create/delete files specification ? Or should I depend on the linux sources ?

I found a spec in the internet, but it just shows that there are MFTs, Logs and thing without showing how to use them.
Octocontrabass
Member
Member
Posts: 5562
Joined: Mon Mar 25, 2013 7:01 pm

Re: What are services

Post by Octocontrabass »

Microsoft has not made the NTFS specification public. Any information you find will be reverse-engineered and probably incomplete.
Post Reply